MRPT
1.9.9
|
Virtual base to provide a compiler-independent RTTI system.
Each class named Foo
will have associated smart pointer types:
Foo::Ptr
=> std::shared_ptr<Foo>
(the most commonly-used one)Foo::ConstPtr
=> std::shared_ptr<const Foo>
Foo::UniquePtr
=> std::unique_ptr<Foo>
Foo::ConstUniquePtr
=> std::unique_ptr<const Foo>
It is recommended to use MRPT-defined std::make_shared<>
instead of std::make_shared<>
to create objects, to avoid memory alignment problems caused by classes containing Eigen vectors or matrices. Example:
Or using the shorter auxiliary static method ::Create()
for conciseness or to keep compatibility with MRPT 1.5.* code bases:
If a special memory allocator is needed, use Foo::CreateAlloc(alloc,...);
.
#include <mrpt/rtti/CObject.h>
Public Types | |
using | Ptr = std::shared_ptr< CObject > |
using | ConstPtr = std::shared_ptr< const CObject > |
using | UniquePtr = std::unique_ptr< CObject > |
using | ConstUniquePtr = std::unique_ptr< const CObject > |
Public Member Functions | |
virtual const mrpt::rtti::TRuntimeClassId * | GetRuntimeClass () const |
Returns information about the class of an object in runtime. More... | |
virtual CObject * | clone () const =0 |
Returns a deep copy (clone) of the object, indepently of its class. More... | |
virtual | ~CObject ()=default |
RTTI classes and functions for polymorphic hierarchies | |
mrpt::rtti::CObject::Ptr | duplicateGetSmartPtr () const |
Makes a deep copy of the object and returns a smart pointer to it. More... | |
Static Public Member Functions | |
static const mrpt::rtti::TRuntimeClassId & | GetRuntimeClassIdStatic () |
Static Protected Member Functions | |
static mrpt::rtti::TRuntimeClassId * | _GetBaseClass () |
Static Protected Attributes | |
static const mrpt::rtti::TRuntimeClassId | runtimeClassId |
using mrpt::rtti::CObject::ConstPtr = std::shared_ptr<const CObject> |
using mrpt::rtti::CObject::ConstUniquePtr = std::unique_ptr<const CObject> |
using mrpt::rtti::CObject::UniquePtr = std::unique_ptr<CObject> |
|
virtualdefault |
|
staticprotected |
Definition at line 104 of file CObject.cpp.
|
pure virtual |
Returns a deep copy (clone) of the object, indepently of its class.
Implemented in mrpt::obs::CObservation3DRangeScan, mrpt::nav::CLogFileRecord_ND, mrpt::nav::CLogFileRecord_FullEval, mrpt::img::CImage, mrpt::maps::CMultiMetricMap, mrpt::obs::CObservationIMU, mrpt::poses::CPose3D, mrpt::obs::CObservationRGBD360, mrpt::obs::CObservationVelodyneScan, mrpt::maps::TMapGenericParams, mrpt::maps::CRandomFieldGridMap3D, mrpt::hmtslam::THypothesisIDSet, mrpt::detectors::CDetectable3D, mrpt::maps::CLandmarksMap, mrpt::hmtslam::CHMTSLAM, mrpt::hmtslam::CLocalMetricHypothesis, mrpt::opengl::COctoMapVoxels, mrpt::kinematics::CKinematicChain, mrpt::obs::CObservationGPS, mrpt::maps::CMultiMetricMapPDF, mrpt::maps::CHeightGridMap2D, mrpt::obs::CRawlog, mrpt::opengl::COpenGLViewport, mrpt::obs::CObservationRotatingScan, mrpt::opengl::CPlanarLaserScan, mrpt::nav::CHolonomicFullEval, mrpt::opengl::COpenGLScene, mrpt::slam::CIncrementalMapPartitioner, mrpt::vision::CFeature, mrpt::maps::COccupancyGridMap2D, mrpt::obs::CObservation2DRangeScan, mrpt::opengl::CFrustum, mrpt::nav::CHolonomicND, mrpt::obs::CSensoryFrame, mrpt::poses::CPose2DInterpolator, mrpt::opengl::CEllipsoidInverseDepth3D, mrpt::poses::CPose3DInterpolator, mrpt::nav::CHolonomicVFF, mrpt::opengl::CPointCloud, mrpt::opengl::CPointCloudColoured, mrpt::poses::CPose3DQuat, mrpt::opengl::CPolyhedron, mrpt::hmtslam::CLSLAMParticleData, mrpt::opengl::CEllipsoidInverseDepth2D, mrpt::detectors::CDetectable2D, mrpt::maps::CBeaconMap, mrpt::opengl::CAngularObservationMesh, mrpt::opengl::CAssimpModel, mrpt::poses::CPose3DQuatPDFGaussian, mrpt::poses::CPose3DQuatPDFGaussianInf, mrpt::opengl::CEllipsoidRangeBearing2D, mrpt::opengl::CText3D, mrpt::maps::COctoMap, mrpt::opengl::CBox, mrpt::opengl::CEllipsoid2D, mrpt::poses::CPose2D, mrpt::maps::CReflectivityGridMap2D, mrpt::nav::CPTG_DiffDrive_C, mrpt::opengl::CEllipsoid3D, mrpt::poses::CPose3DPDFGaussianInf, mrpt::opengl::CVectorField3D, mrpt::poses::CPose3DPDFGaussian, mrpt::maps::CColouredOctoMap, mrpt::obs::CObservationStereoImages, mrpt::opengl::CMesh, mrpt::opengl::CMeshFast, mrpt::poses::CPosePDFParticles, MyNS::Bar, mrpt::hmtslam::CHMHMapNode, mrpt::hmtslam::CRobotPosesGraph, mrpt::opengl::CMesh3D, mrpt::opengl::CVectorField2D, mrpt::poses::CPose3DPDFParticles, mrpt::hmtslam::CMHPropertiesValuesList, mrpt::obs::CObservationStereoImagesFeatures, mrpt::opengl::CColorBar, mrpt::maps::CBeacon, mrpt::maps::COccupancyGridMap3D, mrpt::nav::CPTG_DiffDrive_alpha, mrpt::opengl::CText, mrpt::maps::CRBPFParticleData, mrpt::maps::CLandmark, mrpt::maps::CHeightGridMap2D_MRF, mrpt::opengl::CCamera, mrpt::poses::CPosePDFGaussianInf, mrpt::poses::CPosePDFSOG, mrpt::hmtslam::CHMHMapArc, mrpt::obs::CObservationPointCloud, mrpt::opengl::CSetOfLines, mrpt::poses::CPoint2D, mrpt::poses::CPointPDFSOG, mrpt::maps::CGasConcentrationGridMap2D, mrpt::maps::CWirelessPowerGridMap2D, mrpt::maps::CSimpleMap, mrpt::obs::CObservationImage, mrpt::poses::CPoint3D, mrpt::poses::CPose3DPDFSOG, mrpt::obs::CObservationBatteryState, mrpt::hmtslam::CHierarchicalMHMap, mrpt::maps::CSimplePointsMap, mrpt::obs::CActionRobotMovement2D, mrpt::opengl::CDisk, mrpt::maps::CColouredPointsMap, mrpt::maps::CWeightedPointsMap, mrpt::nav::CLogFileRecord, mrpt::obs::CObservationOdometry, mrpt::obs::CObservationRawDAQ, mrpt::opengl::CAxis, mrpt::opengl::CCylinder, mrpt::opengl::CGridPlaneXY, mrpt::opengl::CGridPlaneXZ, mrpt::opengl::CSphere, mrpt::poses::CPointPDFParticles, mrpt::obs::CObservationBearingRange, mrpt::obs::CObservationWindSensor, mrpt::opengl::CArrow, mrpt::poses::CPosePDFGaussian, MyNS::MyDerived2, mrpt::obs::CObservationRange, mrpt::img::TCamera, mrpt::maps::CPointsMapXYZI, mrpt::nav::CMultiObjMotionOpt_Scalarization, mrpt::nav::CPTG_Holo_Blend, mrpt::obs::CActionCollection, mrpt::obs::CActionRobotMovement3D, mrpt::obs::CObservationWirelessPower, mrpt::opengl::CSetOfObjects, mrpt::nav::CLogFileRecord_VFF, mrpt::nav::CPTG_DiffDrive_CC, mrpt::nav::CPTG_DiffDrive_CCS, mrpt::nav::CPTG_DiffDrive_CS, mrpt::obs::CObservation6DFeatures, mrpt::obs::CObservationSkeleton, mrpt::poses::CPose3DPDFGrid, mrpt::obs::CObservationVisualLandmarks, mrpt::math::CMatrixD, mrpt::math::CSplineInterpolator1D, mrpt::obs::CObservationBeaconRanges, mrpt::obs::CObservationComment, mrpt::obs::CObservationGasSensors, mrpt::obs::CObservationReflectivity, mrpt::obs::CObservationRFID, mrpt::poses::CPosePDFGrid, mrpt::poses::CPoses2DSequence, mrpt::img::TStereoCamera, mrpt::poses::CPoses3DSequence, mrpt::math::CMatrixF, mrpt::opengl::CSetOfTriangles, mrpt::poses::CPointPDFGaussian, mrpt::hmtslam::CPropertiesValuesList, mrpt::math::CMatrixB, mrpt::obs::CObservationCANBusJ1939, mrpt::obs::CObservationRobotPose, mrpt::opengl::CSetOfTexturedTriangles, MyNS::MyDerived1, mrpt::math::CPolygon, mrpt::opengl::CTexturedPlane, mrpt::poses::CPoint2DPDFGaussian, MyNS::Foo, mrpt::kinematics::CVehicleVelCmd_DiffDriven, mrpt::kinematics::CVehicleVelCmd_Holo, mrpt::opengl::CSimpleLine, and MyNS::Foo.
Referenced by duplicateGetSmartPtr(), mrpt::maps::CSimpleMap::insert(), mrpt::obs::CActionCollection::insert(), and mrpt::poses::CPoseRandomSampler::setPosePDF().
|
inline |
Makes a deep copy of the object and returns a smart pointer to it.
Definition at line 204 of file CObject.h.
References clone().
Referenced by mrpt::obs::CRawlog::insert().
|
inlinevirtual |
Returns information about the class of an object in runtime.
Reimplemented in mrpt::opengl::CGeneralizedEllipsoidTemplate< DIM >, mrpt::opengl::CGeneralizedEllipsoidTemplate< 2 >, mrpt::opengl::CGeneralizedEllipsoidTemplate< 3 >, mrpt::obs::CObservation3DRangeScan, mrpt::nav::CLogFileRecord_ND, mrpt::nav::CLogFileRecord_FullEval, mrpt::maps::CRandomFieldGridMap2D, mrpt::img::CImage, mrpt::maps::CMultiMetricMap, mrpt::obs::CObservationIMU, mrpt::poses::CPose3D, mrpt::obs::CObservationRGBD360, mrpt::obs::CObservationVelodyneScan, mrpt::nav::CParameterizedTrajectoryGenerator, mrpt::maps::TMapGenericParams, mrpt::maps::CRandomFieldGridMap3D, mrpt::hmtslam::THypothesisIDSet, mrpt::detectors::CDetectable3D, mrpt::maps::CLandmarksMap, mrpt::hmtslam::CHMTSLAM, mrpt::hmtslam::CLocalMetricHypothesis, mrpt::opengl::COctoMapVoxels, mrpt::kinematics::CKinematicChain, mrpt::maps::CPointsMap, mrpt::obs::CObservationGPS, mrpt::maps::CMultiMetricMapPDF, mrpt::maps::CHeightGridMap2D, mrpt::obs::CRawlog, mrpt::opengl::COpenGLViewport, mrpt::obs::CObservationRotatingScan, mrpt::opengl::CPlanarLaserScan, mrpt::nav::CHolonomicFullEval, mrpt::opengl::COpenGLScene, mrpt::slam::CIncrementalMapPartitioner, mrpt::vision::CFeature, mrpt::maps::COccupancyGridMap2D, mrpt::obs::CObservation2DRangeScan, mrpt::maps::CMetricMap, mrpt::opengl::CFrustum, mrpt::nav::CHolonomicND, mrpt::obs::CSensoryFrame, mrpt::poses::CPose2DInterpolator, mrpt::opengl::CEllipsoidInverseDepth3D, mrpt::opengl::CRenderizable, mrpt::poses::CPose3DInterpolator, mrpt::nav::CHolonomicVFF, mrpt::opengl::CPointCloud, mrpt::opengl::CPointCloudColoured, mrpt::poses::CPose3DQuat, mrpt::opengl::CPolyhedron, mrpt::poses::CPose3DQuatPDF, mrpt::hmtslam::CLSLAMParticleData, mrpt::opengl::CEllipsoidInverseDepth2D, mrpt::detectors::CDetectable2D, mrpt::maps::CBeaconMap, mrpt::opengl::CAngularObservationMesh, mrpt::obs::CObservation, mrpt::opengl::CAssimpModel, mrpt::poses::CPose3DQuatPDFGaussian, mrpt::poses::CPose3DQuatPDFGaussianInf, mrpt::opengl::CEllipsoidRangeBearing2D, mrpt::opengl::CText3D, mrpt::maps::COctoMap, mrpt::opengl::CBox, mrpt::opengl::CEllipsoid2D, mrpt::poses::CPose2D, mrpt::maps::CReflectivityGridMap2D, mrpt::nav::CPTG_DiffDrive_C, mrpt::opengl::CEllipsoid3D, mrpt::poses::CPose3DPDF, mrpt::poses::CPose3DPDFGaussianInf, mrpt::opengl::CVectorField3D, mrpt::poses::CPose3DPDFGaussian, mrpt::poses::CPosePDF, mrpt::maps::CColouredOctoMap, mrpt::obs::CObservationStereoImages, mrpt::opengl::CMesh, mrpt::opengl::CMeshFast, mrpt::opengl::CRenderizableShaderPoints, mrpt::poses::CPosePDFParticles, MyNS::Bar, mrpt::hmtslam::CHMHMapNode, mrpt::hmtslam::CRobotPosesGraph, mrpt::opengl::CMesh3D, mrpt::opengl::CVectorField2D, mrpt::poses::CPointPDF, mrpt::poses::CPose3DPDFParticles, mrpt::hmtslam::CMHPropertiesValuesList, mrpt::obs::CObservationStereoImagesFeatures, mrpt::opengl::CColorBar, mrpt::maps::CBeacon, mrpt::maps::COccupancyGridMap3D, mrpt::nav::CPTG_DiffDrive_alpha, mrpt::opengl::CText, mrpt::maps::CRBPFParticleData, mrpt::maps::CLandmark, mrpt::maps::CHeightGridMap2D_MRF, mrpt::opengl::CCamera, mrpt::poses::CPoint2DPDF, mrpt::poses::CPosePDFGaussianInf, mrpt::poses::CPosePDFSOG, mrpt::serialization::CSerializable, mrpt::hmtslam::CHMHMapArc, mrpt::obs::CObservationPointCloud, mrpt::opengl::CSetOfLines, mrpt::poses::CPoint2D, mrpt::poses::CPointPDFSOG, mrpt::maps::CGasConcentrationGridMap2D, mrpt::maps::CWirelessPowerGridMap2D, mrpt::maps::CSimpleMap, mrpt::obs::CObservationImage, mrpt::poses::CPoint3D, mrpt::poses::CPose3DPDFSOG, mrpt::obs::CObservationBatteryState, mrpt::hmtslam::CHierarchicalMHMap, mrpt::maps::CSimplePointsMap, mrpt::nav::CAbstractHolonomicReactiveMethod, mrpt::obs::CActionRobotMovement2D, mrpt::opengl::CDisk, mrpt::maps::CColouredPointsMap, mrpt::maps::CWeightedPointsMap, mrpt::nav::CLogFileRecord, mrpt::obs::CObservationOdometry, mrpt::obs::CObservationRawDAQ, mrpt::opengl::CAxis, mrpt::opengl::CCylinder, mrpt::opengl::CGridPlaneXY, mrpt::opengl::CGridPlaneXZ, mrpt::opengl::CSphere, mrpt::poses::CPointPDFParticles, MyNS::BarBase, mrpt::obs::CObservationBearingRange, mrpt::obs::CObservationWindSensor, mrpt::opengl::CArrow, mrpt::poses::CPosePDFGaussian, MyNS::MyDerived2, mrpt::obs::CObservationRange, mrpt::img::TCamera, mrpt::maps::CPointsMapXYZI, mrpt::nav::CMultiObjMotionOpt_Scalarization, mrpt::nav::CPTG_Holo_Blend, mrpt::obs::CActionCollection, mrpt::obs::CActionRobotMovement3D, mrpt::obs::CObservationWirelessPower, mrpt::opengl::CSetOfObjects, mrpt::detectors::CDetectableObject, mrpt::nav::CLogFileRecord_VFF, mrpt::nav::CPTG_DiffDrive_CC, mrpt::nav::CPTG_DiffDrive_CCS, mrpt::nav::CPTG_DiffDrive_CS, mrpt::obs::CObservation6DFeatures, mrpt::obs::CObservationSkeleton, mrpt::opengl::CRenderizableShaderText, mrpt::opengl::CRenderizableShaderTexturedTriangles, mrpt::opengl::CRenderizableShaderTriangles, mrpt::poses::CPose3DPDFGrid, mrpt::obs::CObservationVisualLandmarks, mrpt::math::CMatrixD, mrpt::math::CSplineInterpolator1D, mrpt::nav::CHolonomicLogFileRecord, mrpt::nav::CMultiObjectiveMotionOptimizerBase, mrpt::obs::CAction, mrpt::obs::CObservationBeaconRanges, mrpt::obs::CObservationComment, mrpt::obs::CObservationGasSensors, mrpt::obs::CObservationReflectivity, mrpt::obs::CObservationRFID, mrpt::opengl::CRenderizableShaderWireFrame, mrpt::poses::CPosePDFGrid, mrpt::poses::CPoses2DSequence, mrpt::img::TStereoCamera, mrpt::poses::CPoses3DSequence, mrpt::math::CMatrixF, mrpt::opengl::CSetOfTriangles, mrpt::poses::CPointPDFGaussian, mrpt::hmtslam::CPropertiesValuesList, mrpt::math::CMatrixB, mrpt::obs::CObservationCANBusJ1939, mrpt::obs::CObservationRobotPose, mrpt::opengl::CSetOfTexturedTriangles, MyNS::MyDerived1, mrpt::kinematics::CVehicleVelCmd, mrpt::math::CPolygon, mrpt::opengl::CTexturedPlane, mrpt::poses::CPoint2DPDFGaussian, MyNS::Foo, mrpt::kinematics::CVehicleVelCmd_DiffDriven, mrpt::kinematics::CVehicleVelCmd_Holo, mrpt::opengl::CSimpleLine, and MyNS::Foo.
Definition at line 190 of file CObject.h.
References CLASS_ID.
|
static |
Definition at line 19 of file CObject.cpp.
References runtimeClassId.
Referenced by TEST().
|
staticprotected |
Definition at line 181 of file CObject.h.
Referenced by GetRuntimeClassIdStatic().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: c7a3bec24 Sun Mar 29 18:33:13 2020 +0200 at dom mar 29 18:50:38 CEST 2020 |