-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDgDiscRF_template.h
98 lines (81 loc) · 2.9 KB
/
DgDiscRF_template.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
97
98
////////////////////////////////////////////////////////////////////////////////
//
// DgDiscRF_template.h: DgDiscRF template class definition.
//
// Version 6.1 - Kevin Sahr, 5/23/13
//
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setVertices (const DgLocation& loc, DgPolygon& vec) const
{
vec.clearAddress();
backFrame().convert(vec);
if (loc.rf() == *this)
{
setAddVertices(*(this->getAddress(loc)), vec);
}
else
{
DgLocation tmpLoc(loc);
this->convert(&tmpLoc);
setAddVertices(*(this->getAddress(tmpLoc)), vec);
}
} // void DgDiscRF::setVertices
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setVertices (const DgLocation& loc, const DgRFBase& rf,
DgPolygon& vec) const
{
setVertices(loc, vec);
if (rf != backFrame()) backFrame().convert(vec);
} // const DgLocVector& DgDiscRF::setVertices
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setNeighbors (const DgLocation& loc, DgLocVector& vec) const
{
vec.clearAddress();
this->convert(vec);
if (loc.rf() == *this)
{
setAddNeighbors(*(this->getAddress(loc)), vec);
}
else
{
DgLocation tmpLoc(loc);
this->convert(&tmpLoc);
setAddNeighbors(*(this->getAddress(tmpLoc)), vec);
}
} // void DgDiscRF::setNeighbors
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setPoint (const DgLocation& loc, DgLocation& point) const
{
if (loc.rf() == *this)
{
setAddPoint(*(this->getAddress(loc)), point);
}
else
{
DgLocation tmpLoc(loc);
this->convert(&tmpLoc);
setAddPoint(*(this->getAddress(tmpLoc)), point);
}
} // void DgDiscRF::setPoint
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setPoint (const DgLocation& loc, const DgRFBase& rf,
DgLocation& point) const
{
setPoint(loc, point);
if (rf != backFrame()) backFrame().convert(&point);
} // void DgDiscRF::setPoint
////////////////////////////////////////////////////////////////////////////////
template<class A, class B, class DB> void
DgDiscRF<A, B, DB>::setAddPoint (const A& add, DgLocation& pt) const
{
DgLocation* tmpLoc = backFrame().makeLocation(invQuantify(add));
pt = *tmpLoc;
delete tmpLoc;
} // void DgDiscRF<A, B, DB>::setPoint
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////