ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::GenericMesh Class Referenceabstract

#include <GenericMesh.h>

Inheritance diagram for cloudViewer::GenericMesh:

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...
 

Detailed Description

A generic mesh interface for data communication between library and client applications

Definition at line 21 of file GenericMesh.h.

Member Typedef Documentation

◆ genericTriangleAction

Generic function to apply to a triangle (used by foreach)

Definition at line 53 of file GenericMesh.h.

Member Enumeration Documentation

◆ DeformAsRigidAsPossibleEnergy

Energy model that is minimized in the DeformAsRigidAsPossible method.

Parameters
Spokesis the original energy as formulated in Sorkine and Alexa, "As-Rigid-As-Possible Surface Modeling", 2007.
Smoothedadds a rotation smoothing term to the rotations.
Enumerator
Spokes 
Smoothed 

Definition at line 50 of file GenericMesh.h.

◆ FilterScope

Indicates the scope of filter operations.

Parameters
Allindicates that all properties (color, normal, vertex position) are filtered.
Colorindicates that only the colors are filtered.
Normalindicates that only the normals are filtered.
Vertexindicates that only the vertex positions are filtered.
Enumerator
All 
Color 
Normal 
Vertex 

Definition at line 44 of file GenericMesh.h.

◆ SimplificationContraction

Indicates the method that is used for mesh simplification if multiple vertices are combined to a single one.

Parameters
Averageindicates that the average position is computed as output.
Quadricindicates 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.

Constructor & Destructor Documentation

◆ GenericMesh()

cloudViewer::GenericMesh::GenericMesh ( )
default

◆ ~GenericMesh()

virtual cloudViewer::GenericMesh::~GenericMesh ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ _getNextTriangle()

virtual GenericTriangle* cloudViewer::GenericMesh::_getNextTriangle ( )
pure virtual

◆ forEach()

virtual void cloudViewer::GenericMesh::forEach ( genericTriangleAction  action)
pure virtual

Fast iteration mechanism.

Virtual method to apply a function to the whole mesh

Parameters
actionfunction to apply (see GenericMesh::genericTriangleAction)

Implemented in ccSubMesh, ccMeshGroup, cloudViewer::geometry::ecvMeshBase, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.

Referenced by define_GenericMesh().

◆ getBoundingBox()

virtual void cloudViewer::GenericMesh::getBoundingBox ( CCVector3 bbMin,
CCVector3 bbMax 
)
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.

Parameters
bbMinlower bounding-box limits (Xmin,Ymin,Zmin)
bbMaxhigher 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().

◆ hasTriangles()

◆ placeIteratorAtBeginning()

◆ size()


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