![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <GenericMesh.h>

Public Types | |
| enum class | SimplificationContraction { Average , Quadric } |
| Indicates the method that is used for mesh simplification if multiple vertices are combined to a single one. More... | |
| enum class | FilterScope { All , Color , Normal , Vertex } |
| Indicates the scope of filter operations. More... | |
| enum class | DeformAsRigidAsPossibleEnergy { Spokes , Smoothed } |
| using | genericTriangleAction = std::function< void(GenericTriangle &)> |
| Generic function to apply to a triangle (used by foreach) More... | |
Public Member Functions | |
| GenericMesh ()=default | |
| virtual | ~GenericMesh ()=default |
| Default destructor. More... | |
| virtual unsigned | size () const =0 |
| Returns the number of triangles. More... | |
| virtual bool | hasTriangles () const |
| virtual void | forEach (genericTriangleAction action)=0 |
| Fast iteration mechanism. More... | |
| virtual void | getBoundingBox (CCVector3 &bbMin, CCVector3 &bbMax)=0 |
| Returns the mesh bounding-box. More... | |
| virtual void | placeIteratorAtBeginning ()=0 |
| Places the mesh iterator at the beginning. More... | |
| virtual GenericTriangle * | _getNextTriangle ()=0 |
| Returns the next triangle (relatively to the global iterator position) More... | |
A generic mesh interface for data communication between library and client applications
Definition at line 21 of file GenericMesh.h.
| using cloudViewer::GenericMesh::genericTriangleAction = std::function<void(GenericTriangle&)> |
Generic function to apply to a triangle (used by foreach)
Definition at line 53 of file GenericMesh.h.
Energy model that is minimized in the DeformAsRigidAsPossible method.
| Spokes | is the original energy as formulated in Sorkine and Alexa, "As-Rigid-As-Possible Surface Modeling", 2007. |
| Smoothed | adds a rotation smoothing term to the rotations. |
| Enumerator | |
|---|---|
| Spokes | |
| Smoothed | |
Definition at line 50 of file GenericMesh.h.
|
strong |
Indicates the scope of filter operations.
| All | indicates that all properties (color, normal, vertex position) are filtered. |
| Color | indicates that only the colors are filtered. |
| Normal | indicates that only the normals are filtered. |
| Vertex | indicates that only the vertex positions are filtered. |
| Enumerator | |
|---|---|
| All | |
| Color | |
| Normal | |
| Vertex | |
Definition at line 44 of file GenericMesh.h.
Indicates the method that is used for mesh simplification if multiple vertices are combined to a single one.
| Average | indicates that the average position is computed as output. |
| Quadric | indicates that the distance to the adjacent triangle planes is minimized. Cf. "Simplifying Surfaces with Color and Texture using Quadric Error Metrics" by Garland and Heckbert. |
| Enumerator | |
|---|---|
| Average | |
| Quadric | |
Definition at line 35 of file GenericMesh.h.
|
default |
|
virtualdefault |
Default destructor.
|
pure virtual |
Returns the next triangle (relatively to the global iterator position)
Virtual method to handle the mesh global iterator. Global iterator position should be increased each time this method is called. The returned object can be temporary.
Implemented in PyGenericMesh< GenericMeshBase >, PyGenericMesh< cloudViewer::GenericIndexedMesh >, ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by cloudViewer::MeshSamplingTools::computeMeshArea(), cloudViewer::MeshSamplingTools::computeMeshVolume(), define_GenericMesh(), cloudViewer::DistanceComputationTools::intersectMeshWithOctree(), cloudViewer::Grid3D< Type >::intersectWith(), cloudViewer::geometry::pybind_meshbase(), and cloudViewer::MeshSamplingTools::samplePointsOnMesh().
|
pure virtual |
Fast iteration mechanism.
Virtual method to apply a function to the whole mesh
| action | function to apply (see GenericMesh::genericTriangleAction) |
Implemented in ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by define_GenericMesh().
|
pure virtual |
Returns the mesh bounding-box.
Virtual method to request the mesh bounding-box limits. It is equivalent to the bounding-box of the cloud composed of the mesh vertexes.
| bbMin | lower bounding-box limits (Xmin,Ymin,Zmin) |
| bbMax | higher bounding-box limits (Xmax,Ymax,Zmax) |
Implemented in PyGenericMesh< GenericMeshBase >, PyGenericMesh< cloudViewer::GenericIndexedMesh >, ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by cloudViewer::DistanceComputationTools::computeCloud2MeshDistances(), cloudViewer::MeshSamplingTools::computeMeshVolume(), define_GenericMesh(), and cloudViewer::geometry::pybind_meshbase().
|
inlinevirtual |
Reimplemented in cloudViewer::geometry::HalfEdgeTriangleMesh.
Definition at line 60 of file GenericMesh.h.
References size.
Referenced by ccMesh::hasTriangleMaterialIds(), ccMesh::hasTriangleUvs(), ccMesh::IsEmpty(), cloudViewer::geometry::pybind_meshbase(), cloudViewer::geometry::pybind_trianglemesh(), cloudViewer::io::ReadTriangleMesh(), and cloudViewer::io::rpc::SetTriangleMesh().
|
pure virtual |
Places the mesh iterator at the beginning.
Virtual method to handle the mesh global iterator
Implemented in PyGenericMesh< GenericMeshBase >, PyGenericMesh< cloudViewer::GenericIndexedMesh >, ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by cloudViewer::MeshSamplingTools::buildMeshEdgeUsageMap(), cloudViewer::MeshSamplingTools::computeMeshArea(), cloudViewer::MeshSamplingTools::computeMeshVolume(), define_GenericMesh(), cloudViewer::DistanceComputationTools::intersectMeshWithOctree(), cloudViewer::Grid3D< Type >::intersectWith(), cloudViewer::geometry::pybind_meshbase(), cloudViewer::MeshSamplingTools::samplePointsOnMesh(), MAFilter::saveToFile(), and cloudViewer::ManualSegmentationTools::segmentMesh().
|
pure virtual |
Returns the number of triangles.
Virtual method to request the mesh size
Implemented in PyGenericMesh< GenericMeshBase >, PyGenericMesh< cloudViewer::GenericIndexedMesh >, ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by ccGraphicalSegmentationTool::applySegmentation(), cloudViewer::MeshSamplingTools::buildMeshEdgeUsageMap(), cloudViewer::DistanceComputationTools::computeCloud2MeshDistances(), cloudViewer::DistanceComputationTools::computeCloud2MeshDistanceWithOctree(), cloudViewer::MeshSamplingTools::computeMeshArea(), cloudViewer::MeshSamplingTools::computeMeshVolume(), define_GenericMesh(), ccComparisonDlg::determineBestOctreeLevel(), ccPropertiesTreeDelegate::fillWithMesh(), ccSubMesh::getCurrentTriGlobalIndex(), ccMesh::hasTriangleMaterialIds(), ccMesh::hasTriangleUvs(), ccCommandLineParser::importFile(), cloudViewer::DistanceComputationTools::intersectMeshWithOctree(), cloudViewer::Grid3D< Type >::intersectWith(), cloudViewer::geometry::pybind_meshbase(), cloudViewer::MeshSamplingTools::samplePointsOnMesh(), MAFilter::saveToFile(), cloudViewer::ManualSegmentationTools::segmentMesh(), cloudViewer::ManualSegmentationTools::segmentMeshWithAABox(), cloudViewer::ManualSegmentationTools::segmentMeshWithAAPlane(), ccMesh::shrinkToFit(), ToFbxMesh(), and TrianglesToTest::TrianglesToTest().