chrono::ChCollisionShapeMeshTriangle Class Reference

Description

Collision shape representing a triangle in a connected mesh.

Unlike a ChCollisionShapeTriangle, this collision shape also maintains information on neighboring vertices and edges in the containing mesh. This allows a collision system to implement mesh collision without double-counting node and edge interactions. For efficiency, this object uses pointers to the vertices in the containing mesh.

#include <ChCollisionShapeMeshTriangle.h>

Inheritance diagram for chrono::ChCollisionShapeMeshTriangle:
Collaboration diagram for chrono::ChCollisionShapeMeshTriangle:

Public Member Functions

 ChCollisionShapeMeshTriangle (std::shared_ptr< ChContactMaterial > material, const ChVector3d *V1, const ChVector3d *V2, const ChVector3d *V3, const ChVector3d *eP1, const ChVector3d *eP2, const ChVector3d *eP3, bool ownsV1, bool ownsV2, bool ownsV3, bool ownsE1, bool ownsE2, bool ownsE3, double sphere_radius)
 
virtual ChAABB GetBoundingBox () const override
 Get the shape bounding box.
 
virtual void ArchiveOut (ChArchiveOut &archive_out) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIn (ChArchiveIn &archive_in) override
 Method to allow de-serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::ChCollisionShape
 ChCollisionShape (Type type=Type::UNKNOWN_SHAPE)
 
 ChCollisionShape (Type type, std::shared_ptr< ChContactMaterial > material)
 
Type GetType () const
 
std::shared_ptr< ChContactMaterialGetMaterial () const
 
ChContactMethod GetContactMethod () const
 

Public Attributes

const ChVector3dV1
 
const ChVector3dV2
 
const ChVector3dV3
 
const ChVector3deP1
 
const ChVector3deP2
 
const ChVector3deP3
 
bool ownsV1
 
bool ownsV2
 
bool ownsV3
 
bool ownsE1
 
bool ownsE2
 
bool ownsE3
 
double sradius
 

Additional Inherited Members

- Public Types inherited from chrono::ChCollisionShape
enum  Type {
  SPHERE, ELLIPSOID, BOX, CYLINDER,
  CYLSHELL, CONVEXHULL, TRIANGLEMESH, BARREL,
  POINT, SEGMENT, TRIANGLE, MESHTRIANGLE,
  CAPSULE, CONE, ROUNDEDBOX, ROUNDEDCYL,
  TETRAHEDRON, PATH2D, SEGMENT2D, ARC2D,
  UNKNOWN_SHAPE
}
 Supported collision shape types.
 
- Protected Attributes inherited from chrono::ChCollisionShape
Type m_type
 type of collision shape
 
std::shared_ptr< ChContactMaterialm_material
 surface contact material
 

Constructor & Destructor Documentation

◆ ChCollisionShapeMeshTriangle()

chrono::ChCollisionShapeMeshTriangle::ChCollisionShapeMeshTriangle ( std::shared_ptr< ChContactMaterial material,
const ChVector3d V1,
const ChVector3d V2,
const ChVector3d V3,
const ChVector3d eP1,
const ChVector3d eP2,
const ChVector3d eP3,
bool  ownsV1,
bool  ownsV2,
bool  ownsV3,
bool  ownsE1,
bool  ownsE2,
bool  ownsE3,
double  sphere_radius 
)
Parameters
materialcontact material
V1vertex1 coords
V2vertex2 coords
V3vertex3 coords
eP1neighboring vertex at edge1 if any
eP2neighboring vertex at edge2 if any
eP3neighboring vertex at edge3 if any
ownsV1vertex1 owned by this triangle (otherwise, owned by neighbor)
ownsV2vertex2 owned by this triangle (otherwise, owned by neighbor)
ownsV3vertex3 owned by this triangle (otherwise, owned by neighbor)
ownsE1edge1 owned by this triangle (otherwise, owned by neighbor)
ownsE2edge2 owned by this triangle (otherwise, owned by neighbor)
ownsE3edge3 owned by this triangle (otherwise, owned by neighbor)
sphere_radiusradius of swept sphere

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