basic/geometry/IGS/IGS_Circle.h

Go to the documentation of this file.
00001 #ifndef _IGS_CIRCLE_H_
00002 #define _IGS_CIRCLE_H_
00003 
00004 #pragma warning ( disable : 4786 )
00005 #include "IGS_Object.h"
00006 #include <map>
00007 #include "math/circle.h"
00008 #include "math/vector4.h"
00009 #include <vector>
00010 
00011 //=============================================================================
00012 class IGS_Circle :
00013         virtual public IGS_Object,
00014     public Circle
00015 {
00016 public:
00017     //constructor
00018         IGS_Circle();
00019 
00020     //consturctor
00021     IGS_Circle( const double radius );
00022 
00023         //prepare the object before rendering
00024         virtual void Prepare( const IGS_Controller& controller );
00025 
00026         //determine the radius of the circle
00027         double Radius() const;
00028 
00029         //render the circle
00030         virtual void Render( const IGS_Controller& controller ) const;
00031 
00032     //set the center of the circle
00033     void SetCenter( const Vector2& center );
00034 
00035     //set whether or not the circle should be filled in when rendered or not
00036     void SetRenderFilled( const bool filled );
00037 
00038 protected:
00039         //the vertices will be the same for all circles
00040         //double m_VertexList[ 33 ][ 3 ];
00041         struct VertexList
00042         {
00043                 double vertices[ 33 ][ 3 ];
00044         };
00045 
00046         VertexList* m_VertexList;
00047     bool                m_RenderFilled : 1;
00048         static std::map< double, VertexList > g_VertexLists;
00049 };
00050 //=============================================================================
00051 #endif

Generated on Sat Apr 1 21:30:32 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO