-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathApproximationEdge.h
49 lines (41 loc) · 1.13 KB
/
ApproximationEdge.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
/**
* @file ApproximationEdge.h
* @author Dan R. Lipsa
* @date 28 Apr. 2011
* @ingroup data model
* @brief Curved edge approximated with a sequence of points.
*/
#ifndef __APPROXIMATION_EDGE_H__
#define __APPROXIMATION_EDGE_H__
#include "Edge.h"
/**
* @brief Curved edge approximated with a sequence of points.
*/
class ApproximationEdge : public Edge
{
public:
ApproximationEdge (
size_t pointCount,
const boost::shared_ptr<Vertex>& begin,
const boost::shared_ptr<Vertex>& end,
const G3D::Vector3int16& endLocation,
size_t id, Edge::Type type,
ElementStatus::Enum duplicateStatus = ElementStatus::ORIGINAL);
virtual size_t GetPointCount () const;
virtual G3D::Vector3 GetPoint (size_t i) const;
void SetPoint (size_t i, const G3D::Vector3& p)
{
m_points[i] = p;
}
protected:
ApproximationEdge (const ApproximationEdge& approximationEdge);
virtual boost::shared_ptr<Edge> createDuplicate (
const OOBox& originalDomain,
const G3D::Vector3& newBegin, VertexSet* vertexSet) const;
protected:
vector<G3D::Vector3> m_points;
};
#endif //__APPROXIMATION_EDGE_H__
// Local Variables:
// mode: c++
// End: