class mrpt::viz::CEllipsoidInverseDepth3D
Overview
An especial “ellipsoid” in 3D computed as the uncertainty iso-surfaces of a (inv_range,yaw,pitch) variable.
The parameter space of this ellipsoid comprises these variables (in this order):
inv_range: The inverse distance from the sensor to the feature.
yaw: Angle for the rotation around +Z (“azimuth”).
pitch: Angle for the rotation around +Y (“elevation”). Positive means pointing below the XY plane.
This parameterization is based on the paper:
Civera, J. and Davison, A.J. and Montiel, J., “Inverse depth parametrization for monocular SLAM”, T-RO, 2008.
This class expects you to provide a mean vector of length 3 and a 3x3 covariance matrix, set with setCovMatrixAndMean().
Please read the documentation of CGeneralizedEllipsoidTemplate::setQuantiles() for learning the mathematical details about setting the desired confidence interval.
#include <mrpt/viz/CEllipsoidInverseDepth3D.h> class CEllipsoidInverseDepth3D: public mrpt::viz::CGeneralizedEllipsoidTemplate, public mrpt::viz::CVisualObject { public: // typedefs typedef std::shared_ptr<mrpt::viz ::CEllipsoidInverseDepth3D> Ptr; typedef std::shared_ptr<const mrpt::viz ::CEllipsoidInverseDepth3D> ConstPtr; typedef std::unique_ptr<mrpt::viz ::CEllipsoidInverseDepth3D> UniquePtr; typedef std::unique_ptr<const mrpt::viz ::CEllipsoidInverseDepth3D> ConstUniquePtr; // fields static constexpr const char* className = "mrpt::viz" "::" "CEllipsoidInverseDepth3D"; // construction CEllipsoidInverseDepth3D(); // methods static constexpr auto getClassName(); static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); static std::shared_ptr<CObject> CreateObject(); template <typename... Args> static Ptr Create(Args&&... args); template <typename Alloc, typename... Args> static Ptr CreateAlloc( const Alloc& alloc, Args&&... args ); template <typename... Args> static UniquePtr CreateUnique(Args&&... args); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual mrpt::rtti::CObject* clone() const; void setUnderflowMaxRange(const float maxRange); float getUnderflowMaxRange() const; };
Inherited Members
public: // typedefs typedef std::shared_ptr<CObject> Ptr; typedef std::shared_ptr<const CObject> ConstPtr; typedef std::shared_ptr<CSerializable> Ptr; typedef std::shared_ptr<const CSerializable> ConstPtr; typedef std::shared_ptr<CVisualObject> Ptr; typedef std::shared_ptr<const CVisualObject> ConstPtr; typedef std::unique_ptr<CObject> UniquePtr; typedef std::unique_ptr<const CObject> ConstUniquePtr; // structs struct PoseAndScale; struct State; // methods static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; const auto& shaderLinesVertexPointBuffer() const; const auto& shaderLinesVertexColorBuffer() const; auto& shaderLinesBufferMutex() const; void setLineWidth(float w); float getLineWidth() const; void enableAntiAliasing(bool enable = true); bool isAntiAliasingEnabled() const; const auto& shaderTrianglesBuffer() const; auto& shaderTrianglesBufferMutex() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); PoseAndScale getPoseAndScale() const; virtual CVisualObject& setColor_u8(const mrpt::img::TColor& c); bool isLightEnabled() const; void enableLight(bool enable = true); TCullFace cullFaces() const; void notifyBBoxChange() const; auto getBoundingBoxLocalf() const; virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const;
Typedefs
typedef std::shared_ptr<mrpt::viz ::CEllipsoidInverseDepth3D> Ptr
A type for the associated smart pointer.
Construction
CEllipsoidInverseDepth3D()
Constructor.
Methods
virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const
Returns information about the class of an object in runtime.
virtual mrpt::rtti::CObject* clone() const
Returns a deep copy (clone) of the object, indepently of its class.
void setUnderflowMaxRange(const float maxRange)
The maximum range to be used as a correction when a point of the ellipsoid falls in the negative ranges (default: 1e6)