![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
A generic mesh with index-based vertex access. More...
#include <GenericIndexedMesh.h>


Public Member Functions | |
| GenericIndexedMesh ()=default | |
| ~GenericIndexedMesh () override=default | |
| Default destructor. More... | |
| virtual GenericTriangle * | _getTriangle (unsigned triangleIndex)=0 |
| Returns the ith triangle. More... | |
| virtual VerticesIndexes * | getTriangleVertIndexes (unsigned triangleIndex)=0 |
| Returns the indexes of the vertices of a given triangle. More... | |
| virtual void | getTriangleVertices (unsigned triangleIndex, CCVector3 &A, CCVector3 &B, CCVector3 &C) const =0 |
| Returns the vertices of a given triangle. More... | |
| virtual void | getTriangleVertices (unsigned triangleIndex, double A[3], double B[3], double C[3]) const =0 |
| virtual VerticesIndexes * | getNextTriangleVertIndexes ()=0 |
| virtual bool | normalsAvailable () const |
| Returns whether normals are available. More... | |
| virtual bool | interpolateNormals (unsigned triIndex, const CCVector3 &P, CCVector3 &N) |
| Interpolates normal(s) inside a given triangle. More... | |
Public Member Functions inherited from cloudViewer::GenericMesh | |
| 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... | |
Additional Inherited Members | |
Public Types inherited from cloudViewer::GenericMesh | |
| 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... | |
A generic mesh with index-based vertex access.
Implements the GenericMehs interface.
Definition at line 37 of file GenericIndexedMesh.h.
|
default |
|
overridedefault |
Default destructor.
|
pure virtual |
Returns the ith triangle.
Virtual method to request a triangle with a specific index. The returned object can be temporary.
| triangleIndex | of the requested triangle (between 0 and the mesh size-1) |
Implemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccMesh, cloudViewer::SimpleMesh, cloudViewer::Delaunay2dMesh, ccSubMesh, and ccMeshGroup.
Referenced by define_GenericIndexedMesh().
|
pure virtual |
Returns the indexes of the vertices of the next triangle (relatively to the global iterator position)
Implemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccSubMesh, ccMeshGroup, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by cloudViewer::MeshSamplingTools::buildMeshEdgeUsageMap(), define_GenericIndexedMesh(), MAFilter::saveToFile(), and cloudViewer::ManualSegmentationTools::segmentMesh().
|
pure virtual |
Returns the vertices of a given triangle.
| [in] | triangleIndex | index of the triangle (between 0 and the size(mesh)-1) |
| [out] | A | first vertex |
| [out] | B | second vertex |
| [out] | C | third vertex |
Implemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccSubMesh, ccMeshGroup, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by ComparePointsAndTriangles().
|
pure virtual |
|
pure virtual |
Returns the indexes of the vertices of a given triangle.
| triangleIndex | index of the triangle (between 0 and size(mesh)-1) |
Implemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccSubMesh, ccMeshGroup, ccMesh, cloudViewer::SimpleMesh, and cloudViewer::Delaunay2dMesh.
Referenced by ccCropTool::Crop(), MergeOldTriangles(), cloudViewer::ManualSegmentationTools::segmentMeshWithAABox(), cloudViewer::ManualSegmentationTools::segmentMeshWithAAPlane(), and ToFbxMesh().
|
inlinevirtual |
Interpolates normal(s) inside a given triangle.
This method should be ideally overriden by the child class if normals are supported
| [in] | triIndex | triangle index |
| [in] | P | point where to interpolate (should be inside the triangle!) |
| [out] | N | interpolated normal |
Reimplemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccSubMesh, ccMeshGroup, ccMesh, and cloudViewer::SimpleMesh.
Definition at line 89 of file GenericIndexedMesh.h.
|
inlinevirtual |
Returns whether normals are available.
Reimplemented in PyGenericIndexedMesh< GenericIndexedMeshBase >, ccMesh, ccGenericMesh, and cloudViewer::SimpleMesh.
Definition at line 80 of file GenericIndexedMesh.h.