void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
A compile-time fixed-size numeric matrix container.
void setCovMatrix(const mrpt::math::CMatrixDouble &m, int resizeToSize=-1)
Set the 2x2 or 3x3 covariance matrix that will determine the aspect of the ellipsoid (if resizeToSize...
This class is a "CSerializable" wrapper for "CMatrixDynamic<double>".
bool m_drawSolid3D
If set to true (default), a whole ellipsoid surface will be drawn, or if set to "false" it will be dr...
~CEllipsoid() override=default
Private, virtual destructor: only can be deleted from smart pointers.
float m_lineWidth
The line width for 2D ellipses or 3D wireframe ellipsoids (default=1)
GLdouble GLdouble GLdouble GLdouble q
float getQuantiles() const
float m_quantiles
The number of "sigmas" for drawing the ellipse/ellipsoid (default=3)
void render_dl() const override
Render If one of the eigen value of the covariance matrix of the ellipsoid is null, ellipsoid will not be rendered to ensure stability in the rendering process.
GLubyte GLubyte GLubyte GLubyte w
A renderizable object suitable for rendering with OpenGL's display lists.
mrpt::math::TPoint3D m_bb_min
unsigned int m_2D_segments
The number of segments of a 2D ellipse (default=20)
void setQuantiles(float q)
The number of "sigmas" for drawing the ellipse/ellipsoid (default=3)
void setCovMatrix(const mrpt::math::CMatrixFixed< T, 3, 3 > &m, int resizeToSize=-1)
Set the 2x2 or 3x3 covariance matrix that will determine the aspect of the ellipsoid (if resizeToSize...
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void setLineWidth(float w)
The line width for 2D ellipses or 3D wireframe ellipsoids (default=1)
bool traceRay(const mrpt::poses::CPose3D &o, double &dist) const override
Ray tracing.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
unsigned int m_3D_segments
The number of segments of a 3D ellipse (in both "axis") (default=20)
The namespace for 3D scene representation and rendering.
mrpt::math::TPoint3D m_bb_max
void set2DsegmentsCount(unsigned int N)
The number of segments of a 2D ellipse (default=20)
math::CMatrixD m_cov
The 2x2 or 3x3 covariance matrix that will determine the aspect of the ellipsoid. ...
void set3DsegmentsCount(unsigned int N)
The number of segments of a 3D ellipse (in both "axis") (default=20)
void enableDrawSolid3D(bool v)
If set to true (default), a whole ellipsoid surface will be drawn, or if set to "false" it will be dr...
A 2D ellipse or 3D ellipsoid, depending on the size of the m_cov matrix (2x2 or 3x3).
mrpt::math::CMatrixDouble getCovMatrix() const
void getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const override
Evaluates the bounding box of this object (including possible children) in the coordinate frame of th...
float getLineWidth() const
math::CMatrixD m_eigVal
Used to store computed values the first time this is rendered, and to avoid recomputing them again...
math::CMatrixD m_prevComputedCov
void setCovMatrix(const mrpt::math::CMatrixFixed< T, 2, 2 > &m)
Set the 2x2 or 3x3 covariance matrix that will determine the aspect of the ellipsoid (if resizeToSize...
CMatrixDynamic< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).