00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef opengl_CAxis_H
00029 #define opengl_CAxis_H
00030
00031 #include <mrpt/opengl/CRenderizable.h>
00032
00033 namespace mrpt
00034 {
00035 namespace opengl
00036 {
00037 class MRPTDLLIMPEXP CAxis;
00038
00039
00040 DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE( CAxis, CRenderizable )
00041
00042
00043
00044
00045 class MRPTDLLIMPEXP CAxis : public CRenderizable
00046 {
00047 DEFINE_SERIALIZABLE( CAxis )
00048 protected:
00049 float m_xmin,m_ymin,m_zmin;
00050 float m_xmax,m_ymax,m_zmax;
00051 float m_frecuency;
00052 float m_lineWidth;
00053 bool m_marks;
00054
00055 public:
00056 void setAxisLimits(float xmin,float ymin, float zmin, float xmax,float ymax, float zmax)
00057 {
00058 m_xmin=xmin; m_ymin=ymin; m_zmin=zmin;
00059 m_xmax=xmax; m_ymax=ymax; m_zmax=zmax;
00060 }
00061
00062 void setFrequency(float f) { ASSERT_(f>0); m_frecuency=f; }
00063
00064 void setLineWidth(float w) { m_lineWidth=w; }
00065 float getLineWidth() const { return m_lineWidth;}
00066
00067 void enableTickMarks(bool v=true) { m_marks=v; }
00068
00069
00070
00071 static CAxisPtr Create(
00072 float xmin,float ymin, float zmin,
00073 float xmax, float ymax, float zmax,
00074 float frecuency = 1, float lineWidth = 3, bool marks=false)
00075 {
00076 return CAxisPtr( new CAxis( xmin,ymin, zmin, xmax,ymax,zmax,frecuency,lineWidth,marks ) );
00077 }
00078
00079
00080
00081 void render() const;
00082
00083 private:
00084
00085
00086 CAxis(
00087 float xmin=-1.0f,float ymin=-1.0f, float zmin=-1.0f,
00088 float xmax=1.0f, float ymax=1.0f, float zmax=1.0f,
00089 float frecuency = 0.25f, float lineWidth = 3.0f, bool marks=false) :
00090 m_xmin(xmin),m_ymin(ymin),m_zmin(zmin),
00091 m_xmax(xmax),m_ymax(ymax),m_zmax(zmax),
00092 m_frecuency(frecuency),
00093 m_lineWidth(lineWidth),
00094 m_marks(marks)
00095 {
00096 }
00097
00098
00099 virtual ~CAxis() { }
00100 };
00101
00102 }
00103 }
00104
00105 #endif