disc.h

Go to the documentation of this file.
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