glc_cylinder.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_CYLINDER_H_
00028 #define GLC_CYLINDER_H_
00029
00030 #include "glc_mesh.h"
00031 #include "../glc_config.h"
00032
00035
00040
00041 class GLC_LIB_EXPORT GLC_Cylinder : public GLC_Mesh
00042 {
00044
00046
00047 public:
00048
00050
00054 GLC_Cylinder(double dRadius, double dLength);
00055
00057 GLC_Cylinder(const GLC_Cylinder& sourceCylinder);
00058
00060 virtual ~GLC_Cylinder();
00061
00063
00065
00067
00068 public:
00070 static quint32 chunckID();
00071
00073 inline double length(void) const
00074 {return m_Length;}
00075
00077 inline double radius(void) const
00078 {return m_Radius;}
00079
00081 inline int discretion(void) const
00082 {return m_Discret;}
00083
00085 virtual GLC_Geometry* clone() const;
00086
00088 bool EndedIsCaped() const {return m_EndedIsCaped;}
00089
00091 virtual const GLC_BoundingBox& boundingBox(void);
00092
00094
00096
00098
00099 public:
00101
00102 void setLength(double Length);
00103
00105
00106 void setRadius(double Radius);
00107
00109
00110 void setDiscretion(int TargetDiscret);
00111
00113 void setEndedCaps(bool CapsEnded);
00114
00116
00118
00120
00121 private:
00123
00125 virtual void glDraw(const GLC_RenderProperties&);
00127
00129
00131
00132 private:
00134 void createMeshAndWire();
00135
00137
00139
00141 private:
00142
00144 double m_Radius;
00145
00147 double m_Length;
00148
00150 int m_Discret;
00151
00153 bool m_EndedIsCaped;
00154
00156 static quint32 m_ChunkId;
00157
00158 };
00159 #endif //GLC_CYLINDER_H_