BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: disc.h,v 1.8.16.1 2007-03-25 21:26:08 oliver Exp $ 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 // Method to get all vertices from a geometric object 00119 virtual void getVertices(vector<Vector3>& vertices) const; 00120 00122 }; 00123 00124 } // namespace VIEW 00125 } // namespace BALL 00126 00127 #endif // BALL_VIEW_PRIMITIV_Disc_H