00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_VIEW_PRIMITIV_BOX_H
00008 #define BALL_VIEW_PRIMITIV_BOX_H
00009
00010 #ifndef BALL_VIEW_KERNEL_GEOMETRICOBJECT_H
00011 # include <BALL/VIEW/KERNEL/geometricObject.h>
00012 #endif
00013
00014 #ifndef BALL_MATHS_BOX3_H
00015 # include <BALL/MATHS/box3.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00020 namespace VIEW
00021 {
00022
00030 class BALL_VIEW_EXPORT Box
00031 : public GeometricObject,
00032 public Box3
00033 {
00034 public:
00035
00036 BALL_CREATE(Box)
00037
00038
00041
00053 Box();
00054
00057 Box(const Box& box);
00058
00059 Box(const Vector3& point,
00060 const Vector3& right_vector,
00061 const Vector3& height_vector,
00062 float depth);
00063
00064 Box(const Vector3& point,
00065 const Vector3& right_vector = Vector3(0, 1, 0),
00066 const Vector3& height_vector = Vector3(1, 0, 0),
00067 const Vector3& depth_vector = Vector3(0, 0, 1));
00068
00070
00072
00075 virtual ~Box();
00076
00081 virtual void clear();
00082
00084
00087
00090 void set(const Box& box);
00091
00094 const Box& operator = (const Box& box);
00095
00097
00100
00111 virtual bool isValid() const;
00112
00123 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
00124
00125
00126 virtual void getVertices(vector<Vector3>& vertices) const;
00128 };
00129
00130 }
00131 }
00132
00133 #endif // BALL_VIEW_PRIMITIV_BOX_H