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 class OPENGL_IMPEXP CSimpleLine : public CRenderizableDisplayList
00046 {
00047 DEFINE_SERIALIZABLE( CSimpleLine )
00048
00049 protected:
00050 float m_x0,m_y0,m_z0;
00051 float m_x1,m_y1,m_z1;
00052 float m_lineWidth;
00053 public:
00054 void setLineWidth(float w) { m_lineWidth=w; CRenderizableDisplayList::notifyChange(); }
00055 float getLineWidth() const { return m_lineWidth;}
00056
00057 void setLineCoords(float x0,float y0,float z0, float x1, float y1, float z1)
00058 {
00059 m_x0=x0; m_y0=y0; m_z0=z0;
00060 m_x1=x1; m_y1=y1; m_z1=z1;
00061 CRenderizableDisplayList::notifyChange();
00062 }
00063
00064 void getLineCoords(float &x0,float &y0,float &z0, float &x1, float &y1, float &z1) const
00065 {
00066 x0=m_x0; y0=m_y0; z0=m_z0;
00067 x1=m_x1; y1=m_y1; z1=m_z1;
00068 }
00069
00070
00071
00072 void render_dl() const;
00073
00074
00075 static CSimpleLinePtr Create(
00076 float x0,float y0, float z0,
00077 float x1,float y1, float z1, float lineWidth = 1 )
00078 {
00079 return CSimpleLinePtr(new CSimpleLine(x0,y0,z0,x1,y1,z1,lineWidth));
00080 }
00081
00082 private:
00083
00084
00085 CSimpleLine(
00086 float x0=0,float y0=0, float z0=0,
00087 float x1=0,float y1=0, float z1=0, float lineWidth = 1 ) :
00088 m_x0(x0),m_y0(y0),m_z0(z0),
00089 m_x1(x1),m_y1(y1),m_z1(z1),
00090 m_lineWidth(lineWidth)
00091 {
00092 }
00093
00094
00095 virtual ~CSimpleLine() { }
00096 };
00097
00098 }
00099
00100 }
00101
00102
00103 #endif