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 (that will be copied, not referenced). 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 unsigned 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 hull_index, ChTriangleMesh &convextrimesh)=0
 Get the n-th computed convex hull, by filling a ChTriangleMesh object that is passed as a parameter.
 
virtual bool GetConvexHullResult (unsigned int hull_index, std::vector< ChVector3d > &convexhull)=0
 Get the n-th computed convex hull, by filling a vector with related vertices.
 
virtual bool WriteConvexHullsAsChullsFile (std::ostream &stream)
 Write the convex decomposition to a '.chulls' file, where each hull is a sequence of non-repeated vertices.
 
virtual void WriteConvexHullsAsWavefrontObj (std::ostream &stream)=0
 Write the convex decomposition to a Wavefront '.obj' file, where each hull is 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 have proper winding (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 (that will be copied, not referenced).

Note: the vertices must have proper winding (oriented triangle, normal pointing outside).

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

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


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