chrono::ChConvexDecomposition Class Referenceabstract

Description

Base interface class for convex decomposition.

#include <ChConvexDecomposition.h>

Inheritance diagram for chrono::ChConvexDecomposition:

Public Member Functions

 ChConvexDecomposition ()
 Basic constructor.
 
virtual ~ChConvexDecomposition ()
 Destructor.
 
virtual void Reset ()=0
 Reset the input mesh data.
 
virtual bool AddTriangle (const ChVector3d &v1, const ChVector3d &v2, const ChVector3d &v3)=0
 Add a triangle, by passing three points for vertices. More...
 
virtual bool AddTriangle (const ChTriangle &t1)
 Add a triangle, by passing a ChTriangle object (that will be copied, not referenced). More...
 
virtual bool AddTriangleMesh (const ChTriangleMesh &tm)
 Add a triangle mesh, by passing an entire ChTriangleMesh object. More...
 
virtual int ComputeConvexDecomposition ()=0
 Perform the convex decomposition.
 
virtual unsigned int GetHullCount ()=0
 Get the number of computed hulls after the convex decomposition.
 
virtual bool GetConvexHullResult (unsigned int hullIndex, ChTriangleMesh &convextrimesh)=0
 Get the n-th computed convex hull, by filling a ChTriangleMesh object that is passed as a parameter. More...
 
virtual bool GetConvexHullResult (unsigned int hullIndex, std::vector< ChVector3d > &convexhull)=0
 Get the n-th computed convex hull, by filling a vector of points of the vertices of the n-th hull that is passed as a parameter. More...
 
virtual bool WriteConvexHullsAsChullsFile (std::ostream &mstream)
 Write the convex decomposition to a ".chulls" file, where each hull is a sequence of x y z coords.
 
virtual void WriteConvexHullsAsWavefrontObj (std::ostream &mstream)=0
 Save the computed convex hulls as a Wavefront file using the '.obj' file format, with each hull as a separate group.
 

Member Function Documentation

◆ AddTriangle() [1/2]

bool chrono::ChConvexDecomposition::AddTriangle ( const ChTriangle t1)
virtual

Add a triangle, by passing a ChTriangle object (that will be copied, not referenced).

Note: the vertices must be properly ordered (oriented triangle, normal pointing outside).

◆ AddTriangle() [2/2]

virtual bool chrono::ChConvexDecomposition::AddTriangle ( const ChVector3d v1,
const ChVector3d v2,
const ChVector3d v3 
)
pure virtual

Add a triangle, by passing three points for vertices.

Note: the vertices must be properly ordered (oriented triangle, normal pointing outside).

Implemented in chrono::ChConvexDecompositionHACDv2, and chrono::ChConvexDecompositionHACD.

◆ AddTriangleMesh()

bool chrono::ChConvexDecomposition::AddTriangleMesh ( const ChTriangleMesh tm)
virtual

Add a triangle mesh, by passing an entire ChTriangleMesh object.

Note: the triangles must define closed volumes (holes, gaps in edges, etc. may trouble the decomposition).

Reimplemented in chrono::ChConvexDecompositionHACDv2, and chrono::ChConvexDecompositionHACD.

◆ GetConvexHullResult() [1/2]

virtual bool chrono::ChConvexDecomposition::GetConvexHullResult ( unsigned int  hullIndex,
ChTriangleMesh convextrimesh 
)
pure virtual

Get the n-th computed convex hull, by filling a ChTriangleMesh object that is passed as a parameter.

Note: passed ChTriangleMesh is cleared before populating it.

Implemented in chrono::ChConvexDecompositionHACDv2, and chrono::ChConvexDecompositionHACD.

◆ GetConvexHullResult() [2/2]

virtual bool chrono::ChConvexDecomposition::GetConvexHullResult ( unsigned int  hullIndex,
std::vector< ChVector3d > &  convexhull 
)
pure virtual

Get the n-th computed convex hull, by filling a vector of points of the vertices of the n-th hull that is passed as a parameter.

Note: passed vector of points is cleared before populating it.

Implemented in chrono::ChConvexDecompositionHACDv2, and chrono::ChConvexDecompositionHACD.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/collision/ChConvexDecomposition.h
  • /builds/uwsbel/chrono/src/chrono/collision/ChConvexDecomposition.cpp