glc_circle.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef GLC_CIRCLE_H_
00026 #define GLC_CIRCLE_H_
00027
00028 #include "glc_geometry.h"
00029
00030 #include "../glc_config.h"
00031
00034
00039
00040 class GLC_LIB_EXPORT GLC_Circle : public GLC_Geometry
00041 {
00043
00045
00046 public:
00047
00049
00050 GLC_Circle(const double &dRadius, double Angle= 2.0 * glc::PI);
00051
00053 GLC_Circle(const GLC_Circle& sourceCircle);
00054
00056 virtual ~GLC_Circle();
00057
00059
00061
00063
00064 public:
00065
00067 inline int discretion() const
00068 { return m_Discret;}
00069
00071 inline double radius() const
00072 {return m_Radius;}
00073
00075 inline double diameter() const
00076 {return m_Radius * 2.0;}
00077
00079 virtual const GLC_BoundingBox& boundingBox();
00080
00082 virtual GLC_Geometry* clone() const;
00084
00086
00088
00089 public:
00091
00092 void setDiameter(double D);
00093
00095
00096 void setRadius(double R);
00097
00099
00101 void setDiscretion(int TargetDiscret);
00102
00104
00105 void setAngle(double AngleRadians);
00106
00108
00110
00112
00113 private:
00114
00116
00118 virtual void glDraw(const GLC_RenderProperties&);
00120
00122
00124
00125 private:
00127 void createWire();
00128
00130
00132
00134 private:
00136 double m_Radius;
00137
00139 int m_Discret;
00140
00142 double m_Angle;
00143
00145 GLuint m_Step;
00146
00147 };
00148 #endif //GLC_CIRCLE_H_