00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_VIEW_PRIMITIV_DISC_H
00008 #define BALL_VIEW_PRIMITIV_DISC_H
00009
00010 #ifndef BALL_VIEW_KERNEL_GEOMETRICOBJECT_H
00011 # include <BALL/VIEW/KERNEL/geometricObject.h>
00012 #endif
00013
00014 #ifndef BALL_VIEW_MATHS_CIRCLE3_H
00015 # include <BALL/MATHS/circle3.h>
00016 #endif
00017
00018 namespace BALL
00019 {
00020 namespace VIEW
00021 {
00029 class BALL_VIEW_EXPORT Disc
00030 : public GeometricObject,
00031 protected Circle3
00032 {
00033 public:
00034
00035 BALL_CREATE(Disc)
00036
00037
00040
00043 Disc();
00044
00047 Disc(const Disc& disc);
00048
00049 Disc(const Circle3& circle);
00050
00052
00054
00058 virtual ~Disc();
00059
00064 virtual void clear();
00065
00067
00070
00073 void set(const Disc& Disc);
00074
00077 const Disc& operator = (const Disc& Disc);
00078
00082 void swap(Disc& Disc);
00083
00085 void setCircle(const Circle3& circle);
00086
00087 const Circle3& getCircle() const
00088 { return *this;}
00089
00091
00094
00104 virtual bool isValid() const;
00105
00116 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
00117
00118
00119 virtual void getVertices(vector<Vector3>& vertices) const;
00120
00122 };
00123
00124 }
00125 }
00126
00127 #endif // BALL_VIEW_PRIMITIV_Disc_H