-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPolyLineObject.hh
146 lines (102 loc) · 4.06 KB
/
PolyLineObject.hh
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//=============================================================================
//
// Types
//
//=============================================================================
/**
* \file PolyLineObject.hh
* This File contains the PolyLine Object
*/
#ifndef POLYLINEOBJECT_HH
#define POLYLINEOBJECT_HH
//== INCLUDES =================================================================
#include "PolyLineTypes.hh"
#include <OpenFlipper/common/BaseObjectData.hh>
#include <ObjectTypes/PolyLine/PolyLineNodeT.hh>
#include <OpenFlipper/common/GlobalDefines.hh>
//== TYPEDEFS =================================================================
//== CLASS DEFINITION =========================================================
/** This class provides the functionality for all kind of meshes for the framework
*/
class DLLEXPORT PolyLineObject : public BaseObjectData {
public:
typedef PolyLine PolyLineType;
/// constructor
PolyLineObject();
/** \brief copy constructor
*
* Create a copy of this object
*/
PolyLineObject(const PolyLineObject& _object);
/// destructor
virtual ~PolyLineObject();
/// Reset current object, including all related nodes.
virtual void cleanup();
/** return a full copy of this object ( All scenegraph nodes will be created )
* but the object will not be a part of the object tree.
*/
BaseObject* copy();
protected:
/// Initialise current object, including all related nodes.
virtual void init(PolyLine* _line = 0);
//===========================================================================
/** @name Name and Path handling
* @{ */
//===========================================================================
public:
/// Set the name of the Object
void setName( QString _name );
//===========================================================================
/** @name Content
* @{ */
//===========================================================================
public:
/// return a pointer to the line
PolyLine* line();
/** \brief This function is called to update the object
*
* If the object changes, the core will call this function. Normally this will update
* the corresponding scenegraph nodes or trigger other data handling which has to be done
* when the object changes.
*
* \note Do not call this function yourself to avoid unnecessary overhead(the core will call it when it is required)
*/
virtual void update(UpdateType _type = UPDATE_ALL );
private:
PolyLine* line_;
/** @} */
//===========================================================================
/** @name Visualization
* @{ */
//===========================================================================
public :
/// Get the scenegraph Node
ACG::SceneGraph::PolyLineNodeT< PolyLine >* lineNode();
private :
/// Scenegraph Mesh Node
ACG::SceneGraph::PolyLineNodeT< PolyLine >* lineNode_;
/** @} */
//===========================================================================
/** @name Object Information
* @{ */
//===========================================================================
public:
/// Get all Info for the Object as a string
QString getObjectinfo();
/** @} */
//===========================================================================
/** @name Picking
* @{ */
//===========================================================================
public:
/// detect if the node has been picked
bool picked( uint _node_idx );
/// Enable or disable picking for this Object
void enablePicking( bool _enable );
/// Check if picking is enabled for this Object
bool pickingEnabled();
/** @} */
};
//=============================================================================
#endif // POLYLINEOBJECT_HH defined
//=============================================================================