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
00023
00024
00026
00027 #ifndef GLC_CIRCLE_H_
00028 #define GLC_CIRCLE_H_
00029
00030 #include "glc_geometry.h"
00031
00032 #include "../glc_config.h"
00033
00036
00041
00042 class GLC_LIB_EXPORT GLC_Circle : public GLC_Geometry
00043 {
00045
00047
00048 public:
00049
00051
00052 GLC_Circle(const double &dRadius, double Angle= 2.0 * glc::PI);
00053
00055 GLC_Circle(const GLC_Circle& sourceCircle);
00056
00058 virtual ~GLC_Circle();
00059
00061
00063
00065
00066 public:
00067
00069 inline int discretion() const
00070 { return m_Discret;}
00071
00073 inline double radius() const
00074 {return m_Radius;}
00075
00077 inline double diameter() const
00078 {return m_Radius * 2.0;}
00079
00081 virtual const GLC_BoundingBox& boundingBox();
00082
00084 virtual GLC_Geometry* clone() const;
00086
00088
00090
00091 public:
00093
00094 void setDiameter(double D);
00095
00097
00098 void setRadius(double R);
00099
00101
00103 void setDiscretion(int TargetDiscret);
00104
00106
00107 void setAngle(double AngleRadians);
00108
00110
00112
00114
00115 private:
00116
00118
00120 virtual void glDraw(const GLC_RenderProperties&);
00122
00124
00126
00127 private:
00129 void createWire();
00130
00132
00134
00136 private:
00138 double m_Radius;
00139
00141 int m_Discret;
00142
00144 double m_Angle;
00145
00147 GLuint m_Step;
00148
00149 };
00150 #endif //GLC_CIRCLE_H_