-
Notifications
You must be signed in to change notification settings - Fork 0
/
DgIDGGS.h
96 lines (71 loc) · 3.43 KB
/
DgIDGGS.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
////////////////////////////////////////////////////////////////////////////////
//
// DgIDGGS.h: DgIDGGS class definitions
//
// Version 6.1 - Kevin Sahr, 5/23/13
//
////////////////////////////////////////////////////////////////////////////////
#ifndef DGIDGGS_H
#define DGIDGGS_H
#include <cmath>
#include "DgDiscRFS.h"
#include "DgIDGG.h"
#include "DgEllipsoidRF.h"
////////////////////////////////////////////////////////////////////////////////
class DgIDGGS : public DgDiscRFS<DgQ2DICoord, DgGeoCoord, long double> {
public:
static const DgIDGGS* makeRF (DgRFNetwork& network,
const DgGeoSphRF& backFrame, const DgGeoCoord& vert0,
long double azDegs, unsigned int aperture = 4, int nRes = 1,
const string& gridTopo = string("HEXAGON"),
const string& name = "IDGGS", const string& projType = "ISEA",
bool isMixed43 = false, int numAp4 = 0,
bool isSuperfund = false);
// copy constructor and operator= not implemented
virtual const DgResAdd<DgQ2DICoord>& undefAddress (void) const
{ static DgResAdd<DgQ2DICoord>
undef(DgQ2DICoord::undefDgQ2DICoord, -1);
return undef; }
const DgIDGG& idgg (int res) const
{ return static_cast<const DgIDGG&>(operator[](res)); }
const DgGeoSphRF& geoRF (void) const { return geoRF_; }
const DgGeoCoord& vert0 (void) const { return vert0_; }
long double azDegs (void) const { return azDegs_; }
unsigned int aperture (void) const { return aperture_; }
bool isMixed43 (void) const { return isMixed43_; }
bool isSuperfund (void) const { return isSuperfund_; }
int numAp4 (void) const { return numAp4_; }
const string& gridTopo (void) const { return gridTopo_; }
const string& projType (void) const { return projType_; }
protected:
DgIDGGS (DgRFNetwork& network,
const DgGeoSphRF& backFrame,
const DgGeoCoord& vert0,
long double azDegs, unsigned int aperture = 4, int nRes = 1,
const string& gridTopo = string("HEXAGON"),
const string& name = "IDGGS",
const string& projType = "ISEA",
bool isMixed43 = false, int numAp4 = 0,
bool isSuperfund = false);
// remind sub-classes of the pure virtual functions remaining from above
virtual void setAddParents (const DgResAdd<DgQ2DICoord>& add,
DgLocVector& vec) const = 0;
virtual void setAddInteriorChildren (const DgResAdd<DgQ2DICoord>& add,
DgLocVector& vec) const = 0;
virtual void setAddBoundaryChildren (const DgResAdd<DgQ2DICoord>& add,
DgLocVector& vec) const = 0;
virtual void setAddAllChildren (const DgResAdd<DgQ2DICoord>& add,
DgLocVector& vec) const = 0;
private:
const DgGeoSphRF& geoRF_;
DgGeoCoord vert0_;
long double azDegs_;
string gridTopo_;
string projType_;
bool isMixed43_;
int numAp4_;
bool isSuperfund_;
};
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#endif