00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_VIEW_DATATYPE_VERTEX1_H
00008 #define BALL_VIEW_DATATYPE_VERTEX1_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_MATHS_VECTOR3_H
00015 # include <BALL/MATHS/vector3.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00020 namespace VIEW
00021 {
00031 class BALL_VIEW_EXPORT Vertex
00032 {
00033 public:
00034
00035 BALL_CREATE(Vertex)
00036
00037
00040
00045 Vertex();
00046
00052 Vertex(const Vertex& vertex);
00053
00055
00058
00061 virtual ~Vertex();
00062
00068 virtual void clear();
00069
00071
00074
00079 void set(const Vertex& v);
00080
00086 const Vertex& operator = (const Vertex& v);
00087
00092 void swap(Vertex& v);
00093
00095
00098
00102 void setVertex(const Vector3& v);
00103
00107 void setVertex(const float x, const float y, const float z);
00108
00112 Vector3& getVertex();
00113
00117 const Vector3& getVertex() const;
00118
00122 void getVertex(Vector3& v) const;
00123
00127 void getVertex(float& x, float& y, float& z) const;
00128
00142 void setVertexAddress(const Vector3& v);
00143
00152 void setDefaultVertexAddress();
00153
00158 Vector3* getVertexAddress() const;
00159
00161
00164
00172 bool isDefaultVertexAddress() const;
00173
00175
00178
00182 virtual bool isValid() const;
00183
00191 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
00192
00194
00195 private:
00196
00197
00198 Vector3 vertex1_;
00199
00200
00201 Vector3* vertex1_ptr_;
00202 };
00203
00204
00205 # ifndef BALL_NO_INLINE_FUNCTIONS
00206 # include <BALL/VIEW/DATATYPE/vertex1.iC>
00207 # endif
00208
00209 }
00210 }
00211
00212 #endif // BALL_VIEW_DATATYPE_VERTEX1_H