ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ccHObjectCaster Class Reference

Useful class to (try to) statically cast a basic ccHObject to a given type. More...

#include <ecvHObjectCaster.h>

Static Public Member Functions

static ccPointCloudToPointCloud (ccHObject *obj, bool *isLockedVertices=nullptr)
 Converts current object to 'equivalent' ccPointCloud. More...
 
static ccGenericPointCloudToGenericPointCloud (ccHObject *obj, bool *isLockedVertices=nullptr)
 Converts current object to 'equivalent' ccGenericPointCloud. More...
 
static ccShiftedObjectToShifted (ccHObject *obj, bool *isLockedVertices=nullptr)
 Converts current object to 'equivalent' ccShiftedObject. More...
 
static ccGenericMeshToGenericMesh (ccHObject *obj)
 Converts current object to ccGenericMesh (if possible) More...
 
static ccMeshToMesh (ccHObject *obj)
 Converts current object to ccMesh (if possible) More...
 
static ccSubMeshToSubMesh (ccHObject *obj)
 Converts current object to ccSubMesh (if possible) More...
 
static ccPolylineToPolyline (ccHObject *obj)
 Converts current object to ccPolyline (if possible) More...
 
static ccCircleToCircle (ccHObject *obj)
 Converts current object to ccCircle (if possible) More...
 
static ccFacetToFacet (ccHObject *obj)
 Converts current object to ccFacet (if possible) More...
 
static ccPlanarEntityInterfaceToPlanarEntity (ccHObject *obj)
 Converts current object to ccPlanarEntityInterface (if possible) More...
 
static ccGenericPrimitiveToPrimitive (ccHObject *obj)
 Converts current object to ccGenericPrimitive (if possible) More...
 
static ccSphereToSphere (ccHObject *obj)
 Converts current object to ccSphere (if possible) More...
 
static ccCylinderToCylinder (ccHObject *obj)
 Converts current object to ccCylinder (if possible) More...
 
static ccConeToCone (ccHObject *obj)
 Converts current object to ccCone (if possible) More...
 
static ccPlaneToPlane (ccHObject *obj)
 Converts current object to ccPlane (if possible) More...
 
static ccQuadricToQuadric (ccHObject *obj)
 Converts current object to ccQuadric (if possible) More...
 
static ccBoxToBox (ccHObject *obj)
 Converts current object to ccBox (if possible) More...
 
static ccDiscToDisc (ccHObject *obj)
 Converts current object to ccDisc (if possible) More...
 
static ccDishToDish (ccHObject *obj)
 Converts current object to ccDish (if possible) More...
 
static ccExtruToExtru (ccHObject *obj)
 Converts current object to ccExtru (if possible) More...
 
static ccTorusToTorus (ccHObject *obj)
 Converts current object to ccTorus (if possible) More...
 
static ccOctreeProxyToOctreeProxy (ccHObject *obj)
 Converts current object to ccOctreeProxy (if possible) More...
 
static ccOctreeToOctree (ccHObject *obj)
 Converts current object to ccOctree (if possible) More...
 
static ccKdTreeToKdTree (ccHObject *obj)
 Converts current object to ccKdTree (if possible) More...
 
static ccSensorToSensor (ccHObject *obj)
 Converts current object to ccSensor (if possible) More...
 
static ccGBLSensorToGBLSensor (ccHObject *obj)
 
static ccCameraSensorToCameraSensor (ccHObject *obj)
 
static ccImageToImage (ccHObject *obj)
 
static cc2DLabelTo2DLabel (ccHObject *obj)
 Converts current object to cc2DLabel (if possible) More...
 
static cc2DViewportLabelTo2DViewportLabel (ccHObject *obj)
 Converts current object to cc2DViewportLabel (if possible) More...
 
static cc2DViewportObjectTo2DViewportObject (ccHObject *obj)
 Converts current object to cc2DViewportObject (if possible) More...
 
static ccIndexedTransformationBufferToTransBuffer (ccHObject *obj)
 Converts current object to ccIndexedTransformationBuffer (if possible) More...
 
static cloudViewer::geometry::ImageToImage2 (ccHObject *obj)
 
static cloudViewer::geometry::RGBDImageToRGBDImage (ccHObject *obj)
 
static cloudViewer::geometry::VoxelGridToVoxelGrid (ccHObject *obj)
 
static cloudViewer::geometry::LineSetToLineSet (ccHObject *obj)
 
static cloudViewer::geometry::OctreeToOctree2 (ccHObject *obj)
 
static ccBBoxToBBox (ccHObject *obj)
 
static ecvOrientedBBoxToOrientedBBox (ccHObject *obj)
 
static ccCoordinateSystemToCoordinateSystem (ccHObject *obj)
 Converts current object to ccCoordinateSystem (if possible) More...
 
static bool CloneChildren (const ccHObject *sourceEntity, ccHObject *destEntity, std::vector< int > *newPointOrTriangleIndex=nullptr, const ccHObject *sourceEntityProxy=nullptr, ccHObject *destEntityProxy=nullptr)
 

Detailed Description

Useful class to (try to) statically cast a basic ccHObject to a given type.

Definition at line 63 of file ecvHObjectCaster.h.

Member Function Documentation

◆ CloneChildren()

bool ccHObjectCaster::CloneChildren ( const ccHObject sourceEntity,
ccHObject destEntity,
std::vector< int > *  newPointOrTriangleIndex = nullptr,
const ccHObject sourceEntityProxy = nullptr,
ccHObject destEntityProxy = nullptr 
)
static

Helper: clones the children of sourceEntity and set the resulting entities as children of destEntity

Warning
: Not all children can be cloned this way. Only simple ones for now (labels, sensors, images, etc.).
Parameters
sourceEntitysource entity
destEntitydestination entity (can be the same as the source entity)
newPointOrTriangleIndexoptional: provides a mapping of the entity elements (points or triangles) between the source and the destination (-1 means no correspondance)
sourceEntityProxyfor internal use
destEntityProxyfor internal use
    \return success

Definition at line 334 of file ecvHObjectCaster.cpp.

References ccHObject::addChild(), cc2DLabel::addPickedPoint(), CV_TYPES::CAMERA_SENSOR, cc2DLabel::PickedPoint::cloud, cc2DLabel::PickedPoint::entity(), CV_TYPES::GBL_SENSOR, ccHObject::getChild(), ccHObject::getChildrenNumber(), ccHObject::getClassID(), cc2DLabel::getName(), cc2DLabel::getPickedPoint(), CV_TYPES::HIERARCHY_OBJECT, CV_TYPES::IMAGE, image, cc2DLabel::PickedPoint::index, ccObject::isKindOf(), CV_TYPES::LABEL_2D, CV_TYPES::MESH, cc2DLabel::PickedPoint::mesh, CV_TYPES::POINT_CLOUD, ccImage::setAssociatedSensor(), ccObject::setName(), size, cc2DLabel::size(), CV_TYPES::VIEWPORT_2D_LABEL, CV_TYPES::VIEWPORT_2D_OBJECT, and CVLog::Warning().

Referenced by ccMesh::createNewMeshFromSelection(), and ccPointCloud::partialClone().

◆ To2DLabel()

◆ To2DViewportLabel()

cc2DViewportLabel * ccHObjectCaster::To2DViewportLabel ( ccHObject obj)
static

◆ To2DViewportObject()

cc2DViewportObject * ccHObjectCaster::To2DViewportObject ( ccHObject obj)
static

Converts current object to cc2DViewportObject (if possible)

Definition at line 273 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::VIEWPORT_2D_OBJECT.

Referenced by ccPropertiesTreeDelegate::fillModel().

◆ ToBBox()

ccBBox * ccHObjectCaster::ToBBox ( ccHObject obj)
static

Definition at line 317 of file ecvHObjectCaster.cpp.

References CV_TYPES::BBOX, and ccObject::isKindOf().

◆ ToBox()

ccBox * ccHObjectCaster::ToBox ( ccHObject obj)
static

Converts current object to ccBox (if possible)

Definition at line 194 of file ecvHObjectCaster.cpp.

References CV_TYPES::BOX, and ccObject::isKindOf().

◆ ToCameraSensor()

ccCameraSensor * ccHObjectCaster::ToCameraSensor ( ccHObject obj)
static

◆ ToCircle()

ccCircle * ccHObjectCaster::ToCircle ( ccHObject obj)
static

Converts current object to ccCircle (if possible)

Definition at line 146 of file ecvHObjectCaster.cpp.

References CV_TYPES::CIRCLE, and ccObject::isKindOf().

Referenced by ccPropertiesTreeDelegate::setEditorData().

◆ ToCone()

ccCone * ccHObjectCaster::ToCone ( ccHObject obj)
static

Converts current object to ccCone (if possible)

Definition at line 183 of file ecvHObjectCaster.cpp.

References CV_TYPES::CONE, and ccObject::isKindOf().

Referenced by ccPropertiesTreeDelegate::setEditorData().

◆ ToCoordinateSystem()

ccCoordinateSystem * ccHObjectCaster::ToCoordinateSystem ( ccHObject obj)
static

Converts current object to ccCoordinateSystem (if possible)

Definition at line 328 of file ecvHObjectCaster.cpp.

References CV_TYPES::COORDINATESYSTEM, and ccObject::isKindOf().

Referenced by ccPropertiesTreeDelegate::createEditor(), and ccPropertiesTreeDelegate::fillModel().

◆ ToCylinder()

ccCylinder * ccHObjectCaster::ToCylinder ( ccHObject obj)
static

Converts current object to ccCylinder (if possible)

Definition at line 178 of file ecvHObjectCaster.cpp.

References CV_TYPES::CYLINDER, and ccObject::isA().

◆ ToDisc()

ccDisc * ccHObjectCaster::ToDisc ( ccHObject obj)
static

Converts current object to ccDisc (if possible)

Definition at line 204 of file ecvHObjectCaster.cpp.

References CV_TYPES::DISC, and ccObject::isA().

Referenced by ccPropertiesTreeDelegate::setEditorData().

◆ ToDish()

ccDish * ccHObjectCaster::ToDish ( ccHObject obj)
static

Converts current object to ccDish (if possible)

Definition at line 209 of file ecvHObjectCaster.cpp.

References CV_TYPES::DISH, and ccObject::isA().

◆ ToExtru()

ccExtru * ccHObjectCaster::ToExtru ( ccHObject obj)
static

Converts current object to ccExtru (if possible)

Definition at line 214 of file ecvHObjectCaster.cpp.

References CV_TYPES::EXTRU, and ccObject::isA().

◆ ToFacet()

ccFacet * ccHObjectCaster::ToFacet ( ccHObject obj)
static

Converts current object to ccFacet (if possible)

Definition at line 151 of file ecvHObjectCaster.cpp.

References CV_TYPES::FACET, and ccObject::isA().

Referenced by ccPropertiesTreeDelegate::fillModel(), and ccEntityAction::setColor().

◆ ToGBLSensor()

◆ ToGenericMesh()

◆ ToGenericPointCloud()

ccGenericPointCloud * ccHObjectCaster::ToGenericPointCloud ( ccHObject obj,
bool *  isLockedVertices = nullptr 
)
static

Converts current object to 'equivalent' ccGenericPointCloud.

Warning: if a mesh is passed, this method returns its vertices.

Definition at line 81 of file ecvHObjectCaster.cpp.

References ccObject::isA(), ccObject::isKindOf(), ccObject::isLocked(), CV_TYPES::MESH, and CV_TYPES::POINT_CLOUD.

Referenced by ccPointPairRegistrationDlg::addAlignedPoint(), ccGraphicalSegmentationTool::addEntity(), ccPointPairRegistrationDlg::addReferencePoint(), MainWindow::addToDB(), ccPointPairRegistrationDlg::apply(), ccLibAlgorithms::ApplyCCLibAlgorithm(), ccLibAlgorithms::ApplyScaleMatchingAlgorithm(), ccGraphicalSegmentationTool::applySegmentation(), ccEntityAction::clearProperty(), ccLibAlgorithms::ComputeGeomCharacteristic(), ccEntityAction::computeOctree(), ccEntityAction::convertNormalsTo(), qPCV::doAction(), cc2DLabel::drawMeOnly3D(), ccPropertiesTreeDelegate::fillModel(), ccDBRoot::getSelectedEntities(), ccRegistrationTools::ICP(), ccEntityAction::interpolateColors(), PcdFilter::loadFile(), PovFilter::loadFile(), ccTracePolylineTool::onItemPicked(), ccComparisonDlg::prepareEntitiesForComparison(), ccGraphicalSegmentationTool::prepareEntityForRemoval(), ecvDisplayTools::ProcessPickingResult(), ccGraphicalSegmentationTool::reset(), ccEntityAction::rgbToGreyScale(), AsciiFilter::saveToFile(), VTKFilter::saveToFile(), PNFilter::saveToFile(), PovFilter::saveToFile(), PVFilter::saveToFile(), LASFilter::saveToFile(), DepthMapFileFilter::saveToFile(), ccGraphicalSegmentationTool::segment(), ccEntityAction::setColorGradient(), ccPropertiesTreeDelegate::setEditorData(), ecvFilterByLabelDlg::setInputEntity(), ccHObject::setPointSizeRecursive(), ccEntityAction::sfSetAsCoord(), ecvDisplayTools::StartCPUBasedPointPicking(), ecvDisplayTools::StartOpenGLPicking(), ToShifted(), and VtkUtils::TableModel::updateData().

◆ ToImage()

◆ ToImage2()

geometry::Image * ccHObjectCaster::ToImage2 ( ccHObject obj)
static

Definition at line 287 of file ecvHObjectCaster.cpp.

References CV_TYPES::IMAGE2, and ccObject::isKindOf().

◆ ToKdTree()

ccKdTree * ccHObjectCaster::ToKdTree ( ccHObject obj)
static

Converts current object to ccKdTree (if possible)

Definition at line 235 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::POINT_KDTREE.

Referenced by ccPropertiesTreeDelegate::fillModel(), and ccHObject::getTypeID_recursive().

◆ ToLineSet()

geometry::LineSet * ccHObjectCaster::ToLineSet ( ccHObject obj)
static

Definition at line 305 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::LINESET.

Referenced by PCLDisplayTools::draw().

◆ ToMesh()

◆ ToOctree()

ccOctree * ccHObjectCaster::ToOctree ( ccHObject obj)
static

◆ ToOctree2()

geometry::Octree * ccHObjectCaster::ToOctree2 ( ccHObject obj)
static

Definition at line 311 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::POINT_OCTREE2.

◆ ToOctreeProxy()

ccOctreeProxy * ccHObjectCaster::ToOctreeProxy ( ccHObject obj)
static

Converts current object to ccOctreeProxy (if possible)

Definition at line 224 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::POINT_OCTREE.

Referenced by ToOctree().

◆ ToOrientedBBox()

ecvOrientedBBox * ccHObjectCaster::ToOrientedBBox ( ccHObject obj)
static

Definition at line 322 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::ORIENTED_BBOX.

◆ ToPlanarEntity()

ccPlanarEntityInterface * ccHObjectCaster::ToPlanarEntity ( ccHObject obj)
static

Converts current object to ccPlanarEntityInterface (if possible)

Definition at line 156 of file ecvHObjectCaster.cpp.

References CV_TYPES::FACET, ccObject::isA(), and CV_TYPES::PLANE.

Referenced by ccHObject::getTypeID_recursive(), and ccHObject::removeFromRenderScreen().

◆ ToPlane()

ccPlane * ccHObjectCaster::ToPlane ( ccHObject obj)
static

Converts current object to ccPlane (if possible)

Definition at line 199 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::PLANE.

◆ ToPointCloud()

ccPointCloud * ccHObjectCaster::ToPointCloud ( ccHObject obj,
bool *  isLockedVertices = nullptr 
)
static

Converts current object to 'equivalent' ccPointCloud.

Warning: if a mesh is passed, this method returns its vertices.

Parameters
objccHObject to dynamically cast to a ccPointCloud object
isLockedVerticesthe caller can be warned if the returned cloud corresponds to locked vertices

Definition at line 54 of file ecvHObjectCaster.cpp.

References ccObject::isA(), ccObject::isKindOf(), ccObject::isLocked(), CV_TYPES::MESH, and CV_TYPES::POINT_CLOUD.

Referenced by ccMesh::addEigenVertices(), PclUtils::PCLVis::addTextureMeshFromCCMesh(), ccMesh::addVertexColor(), ccMesh::addVertexColors(), ccMesh::addVertexNormal(), ccMesh::addVertexNormals(), ccMesh::addVertice(), PclUtils::renders::MeshTextureApplier::ApplyTexturesFromCCMesh(), cloudViewer::io::AutoReadEntity(), ccMesh::ccMesh(), ccEntityAction::changeColorLevels(), PCLDisplayTools::checkEntityNeedUpdate(), ccMesh::clear(), ccEntityAction::computeStatParams(), vtk2cc::ConvertToPolyline(), ccEntityAction::ConvexHull(), G3Point::G3PointAction::createAction(), ccPropertiesTreeDelegate::createEditor(), ccMesh::Crop(), ccEntityAction::DBScanCluster(), qPCV::doAction(), PCLDisplayTools::draw(), ccEntityAction::enhanceRGBWithIntensities(), ccEntityAction::exportCoordToSF(), ccEntityAction::exportNormalToSF(), qFacets::extractFacets(), poisson::ExtractMesh(), cloudViewer::pipelines::integration::UniformTSDFVolume::ExtractTriangleMesh(), ccPropertiesTreeDelegate::fillSFWithPointCloud(), ccMesh::FilterSharpen(), ccMesh::FilterSmoothLaplacian(), ccMesh::FilterSmoothLaplacianHelper(), ccMesh::FilterSmoothSimple(), ccMesh::FilterSmoothTaubin(), ccMesh::GetCenter(), ccLibAlgorithms::GetDefaultCloudKernelSize(), ccMesh::getEigenVertices(), ccMesh::GetMaxBound(), ccMesh::GetMinBound(), cvIsoSurfaceFilter::getOutput(), cvSliceFilter::getOutput(), cvDistanceTool::getOutput(), cvProtractorTool::getOutput(), FastGlobalRegistrationFilter::getParametersFromDialog(), ccDBRoot::getSelectedEntities(), BasePclModule::getSelectedEntityAsCCPointCloud(), ccMesh::getVertexColor(), ccMesh::getVertexColors(), ccMesh::getVertexColorsPtr(), ccMesh::getVertexNormal(), ccMesh::getVertexNormals(), ccMesh::getVertice(), ccMesh::getVertices(), ccMesh::getVerticesPtr(), cc2smReader::getVtkPolyDataFromMeshCloud(), ccRegistrationTools::ICP(), ccEntityAction::importToSF(), ccEntityAction::interpolateSFs(), ccEntityAction::invertNormals(), ccMesh::MergeCloseVertices(), ccMesh::NormalizeNormals(), ccColorLevelsDlg::onApply(), ccMesh::operator=(), ccMesh::PaintUniformColor(), BasePclModule::performAction(), CommandExtractVertices::process(), CommandColorBanding::process(), CommandSFArithmetic::process(), CommandSFOperation::process(), CommandSFRename::process(), CommandICP::process(), CommandM3C2::process(), CommandRANSAC::process(), PCVCommand::Process(), ccEntityAction::RansacSegmentation(), cloudViewer::io::ReadTriangleMeshFromOBJ(), cloudViewer::io::ReadTriangleMeshFromPLY(), ccMesh::RemoveDuplicatedVertices(), ccMesh::RemoveUnreferencedVertices(), ccMesh::RemoveVerticesByMask(), ccMesh::reserveAssociatedCloud(), ccMesh::resizeAssociatedCloud(), ccEntityAction::rgbGaussianFilter(), ccMesh::Rotate(), PcdFilter::saveToFile(), SimpleBinFilter::saveToFile(), LASFWFFilter::saveToFile(), ccMesh::Scale(), ccPropertiesTreeDelegate::setEditorData(), ccMesh::setEigenVertices(), cloudViewer::pipelines::color_map::SetGeometryColorAverage(), cloudViewer::io::rpc::SetTriangleMesh(), ccMesh::setVertexColor(), ccMesh::setVertexColors(), ccMesh::setVertexNormal(), ccMesh::setVertexNormals(), ccMesh::setVertice(), ccEntityAction::sfAddIdField(), ccEntityAction::sfArithmetic(), ccEntityAction::sfConvertToRandomRGB(), ccEntityAction::sfConvertToRGB(), ccEntityAction::sfFromColor(), ccEntityAction::sfGaussianFilter(), ccEntityAction::sfRename(), ccMesh::shrinkVertexToFit(), ccMesh::SimplifyQuadricDecimation(), ccMesh::SimplifyVertexClustering(), ecvPoissonReconDlg::start(), ecvAnnotationsTool::start(), ccEntityAction::statisticalTest(), ccMesh::SubdivideLoop(), ccMesh::SubdivideMidpoint(), colmap::mvs::MvsTexturing::TextureMesh(), ccMesh::Transform(), ccMesh::Translate(), cloudViewer::visualization::VisualizerWithVertexSelection::UpdateGeometry(), and ccEntityAction::VoxelSampling().

◆ ToPolyline()

◆ ToPrimitive()

◆ ToQuadric()

ccQuadric * ccHObjectCaster::ToQuadric ( ccHObject obj)
static

Converts current object to ccQuadric (if possible)

Definition at line 188 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::QUADRIC.

◆ ToRGBDImage()

geometry::RGBDImage * ccHObjectCaster::ToRGBDImage ( ccHObject obj)
static

Definition at line 293 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::RGBD_IMAGE.

◆ ToSensor()

◆ ToShifted()

ccShiftedObject * ccHObjectCaster::ToShifted ( ccHObject obj,
bool *  isLockedVertices = nullptr 
)
static

◆ ToSphere()

ccSphere * ccHObjectCaster::ToSphere ( ccHObject obj)
static

Converts current object to ccSphere (if possible)

Definition at line 173 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::SPHERE.

Referenced by ccPropertiesTreeDelegate::setEditorData().

◆ ToSubMesh()

ccSubMesh * ccHObjectCaster::ToSubMesh ( ccHObject obj)
static

Converts current object to ccSubMesh (if possible)

Definition at line 136 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::SUB_MESH.

Referenced by ecvFilterByLabelDlg::apply().

◆ ToTorus()

ccTorus * ccHObjectCaster::ToTorus ( ccHObject obj)
static

Converts current object to ccTorus (if possible)

Definition at line 219 of file ecvHObjectCaster.cpp.

References ccObject::isA(), and CV_TYPES::TORUS.

◆ ToTransBuffer()

ccIndexedTransformationBuffer * ccHObjectCaster::ToTransBuffer ( ccHObject obj)
static

Converts current object to ccIndexedTransformationBuffer (if possible)

Definition at line 279 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::TRANS_BUFFER.

Referenced by ccPropertiesTreeDelegate::setEditorData().

◆ ToVoxelGrid()

geometry::VoxelGrid * ccHObjectCaster::ToVoxelGrid ( ccHObject obj)
static

Definition at line 299 of file ecvHObjectCaster.cpp.

References ccObject::isKindOf(), and CV_TYPES::VOXEL_GRID.


The documentation for this class was generated from the following files: