-
Notifications
You must be signed in to change notification settings - Fork 0
/
DgBoundedIDGGS.h
64 lines (43 loc) · 1.91 KB
/
DgBoundedIDGGS.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
////////////////////////////////////////////////////////////////////////////////
//
// DgBoundedIDGGS.h: DgBoundedIDGGS class definitions
//
// Version 6.1 - Kevin Sahr, 5/23/13
//
////////////////////////////////////////////////////////////////////////////////
#ifndef DGBOUNDEDIDGGS_H
#define DGBOUNDEDIDGGS_H
#include <cstdint>
#include "DgIDGGS.h"
#include "DgBoundedIDGG.h"
#include "DgIDGG.h"
class DgLocation;
class DgBoundedIDGGS;
////////////////////////////////////////////////////////////////////////////////
class DgBoundedIDGGS
: public DgBoundedRF<DgResAdd<DgQ2DICoord>, DgGeoCoord, long double > {
public:
DgBoundedIDGGS (const DgIDGGS& rf);
virtual DgResAdd<DgQ2DICoord>& incrementAddress
(DgResAdd<DgQ2DICoord>& add) const;
virtual DgResAdd<DgQ2DICoord>& decrementAddress
(DgResAdd<DgQ2DICoord>& add) const;
virtual bool validAddress (const DgResAdd<DgQ2DICoord>& add) const
{ return add == endAdd() || (add.res() >= 0 &&
add.res() < IDGGS().nRes() &&
grids()[add.res()]->validAddress(add.address())); }
const DgResAdd<DgQ2DICoord>& invalidAdd (void) const
{ return IDGGS().undefAddress(); }
const DgIDGGS& IDGGS (void) const { return IDGGS_; }
const vector<DgBoundedIDGG*>& grids (void) const { return *grids_; }
virtual std::uint64_t seqNumAddress
(const DgResAdd<DgQ2DICoord>& add) const;
virtual DgResAdd<DgQ2DICoord> addFromSeqNum
(std::uint64_t sNum) const;
private:
const DgIDGGS& IDGGS_;
vector<DgBoundedIDGG*>* grids_;
};
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif