-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDgBoundedRFS2D.h
64 lines (43 loc) · 1.99 KB
/
DgBoundedRFS2D.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
////////////////////////////////////////////////////////////////////////////////
//
// DgBoundedRFS2D.h: DgBoundedRFS2D class definitions
//
// Version 6.1 - Kevin Sahr, 5/23/13
//
////////////////////////////////////////////////////////////////////////////////
#ifndef DGBOUNDEDRFS2D_H
#define DGBOUNDEDRFS2D_H
#include <cstdint>
#include "DgDiscRFS2D.h"
#include "DgBoundedRF2D.h"
#include "DgIVec2D.h"
class DgLocation;
class DgBoundedRFS2D;
////////////////////////////////////////////////////////////////////////////////
class DgBoundedRFS2D
: public DgBoundedRF<DgResAdd<DgIVec2D>, DgDVec2D, long double > {
public:
DgBoundedRFS2D (const DgDiscRFS2D& rf,
const DgIVec2D& lowerLeft0, const DgIVec2D& upperRight0);
virtual DgResAdd<DgIVec2D>& incrementAddress
(DgResAdd<DgIVec2D>& add) const;
virtual DgResAdd<DgIVec2D>& decrementAddress
(DgResAdd<DgIVec2D>& add) const;
virtual bool validAddress (const DgResAdd<DgIVec2D>& add) const
{ return add == endAdd() || (add.res() >= 0 &&
add.res() < discRFS().nRes() &&
grids()[add.res()]->validAddress(add.address())); }
const DgResAdd<DgIVec2D>& invalidAdd (void) const
{ return discRFS().undefAddress(); }
const DgDiscRFS2D& discRFS (void) const { return discRFS_; }
const vector<DgBoundedRF2D*>& grids (void) const { return *grids_; }
virtual std::uint64_t seqNumAddress (const DgResAdd<DgIVec2D>& add)
const;
virtual DgResAdd<DgIVec2D> addFromSeqNum (std::uint64_t sNum) const;
private:
const DgDiscRFS2D& discRFS_;
vector<DgBoundedRF2D*>* grids_;
};
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif