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_CEllipsoid_H
00029 #define opengl_CEllipsoid_H
00030
00031 #include <mrpt/opengl/CRenderizable.h>
00032 #include <mrpt/math/CMatrixD.h>
00033
00034 namespace mrpt
00035 {
00036 namespace opengl
00037 {
00038 class MRPTDLLIMPEXP CEllipsoid;
00039
00040
00041 DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE( CEllipsoid, CRenderizable )
00042
00043
00050 class MRPTDLLIMPEXP CEllipsoid : public CRenderizable
00051 {
00052 DEFINE_SERIALIZABLE( CEllipsoid )
00053
00054 private:
00057 math::CMatrixD m_eigVal,m_eigVec,m_prevComputedCov;
00058
00059 public:
00062 math::CMatrixD m_cov;
00065 bool m_drawSolid3D;
00068 float m_quantiles;
00071 unsigned int m_2D_segments;
00074 unsigned int m_3D_segments;
00077 float m_lineWidth;
00078
00080 static CEllipsoidPtr Create()
00081 {
00082 return CEllipsoidPtr( new CEllipsoid() );
00083 }
00084
00087 void render();
00088
00089 private:
00092 CEllipsoid() : m_eigVal(),m_eigVec(),m_prevComputedCov(),
00093 m_cov(2,2),
00094 m_drawSolid3D(true),
00095 m_quantiles(3),
00096 m_2D_segments(20),
00097 m_3D_segments(20),
00098 m_lineWidth(1.0)
00099 {
00100 }
00102 virtual ~CEllipsoid() { }
00103 };
00104
00105 }
00106
00107 }
00108
00109
00110 #endif