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
00025
00026
00027
00028 #ifndef opengl_CSimpleLine_H
00029 #define opengl_CSimpleLine_H
00030
00031 #include <mrpt/opengl/CRenderizableDisplayList.h>
00032
00033 namespace mrpt
00034 {
00035 namespace opengl
00036 {
00037 class OPENGL_IMPEXP CSimpleLine;
00038
00039
00040 DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE( CSimpleLine, CRenderizableDisplayList, OPENGL_IMPEXP )
00041
00042
00043
00044
00045
00046 class OPENGL_IMPEXP CSimpleLine : public CRenderizableDisplayList
00047 {
00048 DEFINE_SERIALIZABLE( CSimpleLine )
00049
00050 protected:
00051 float m_x0,m_y0,m_z0;
00052 float m_x1,m_y1,m_z1;
00053 float m_lineWidth;
00054 public:
00055 void setLineWidth(float w) { m_lineWidth=w; CRenderizableDisplayList::notifyChange(); }
00056 float getLineWidth() const { return m_lineWidth;}
00057
00058 void setLineCoords(float x0,float y0,float z0, float x1, float y1, float z1)
00059 {
00060 m_x0=x0; m_y0=y0; m_z0=z0;
00061 m_x1=x1; m_y1=y1; m_z1=z1;
00062 CRenderizableDisplayList::notifyChange();
00063 }
00064
00065 void getLineCoords(float &x0,float &y0,float &z0, float &x1, float &y1, float &z1) const
00066 {
00067 x0=m_x0; y0=m_y0; z0=m_z0;
00068 x1=m_x1; y1=m_y1; z1=m_z1;
00069 }
00070
00071
00072
00073 void render_dl() const;
00074
00075
00076 static CSimpleLinePtr Create(
00077 float x0,float y0, float z0,
00078 float x1,float y1, float z1, float lineWidth = 1 )
00079 {
00080 return CSimpleLinePtr(new CSimpleLine(x0,y0,z0,x1,y1,z1,lineWidth));
00081 }
00082
00083 private:
00084
00085
00086 CSimpleLine(
00087 float x0=0,float y0=0, float z0=0,
00088 float x1=0,float y1=0, float z1=0, float lineWidth = 1 ) :
00089 m_x0(x0),m_y0(y0),m_z0(z0),
00090 m_x1(x1),m_y1(y1),m_z1(z1),
00091 m_lineWidth(lineWidth)
00092 {
00093 }
00094
00095
00096 virtual ~CSimpleLine() { }
00097 };
00098
00099 }
00100
00101 }
00102
00103
00104 #endif