Description

Utility class defining geometry (visualization and collision) and contact materials for a rigid body.

Holds vectors of primitive shapes (any one of which may be empty) and a list of contact materials. Each shape defines its position and orientation relative to the parent body, geometric dimensions, and an index into the list of contact materials.

#include <ChBodyGeometry.h>

Collaboration diagram for chrono::utils::ChBodyGeometry:

Classes

struct  BoxShape
 Box shape for visualization and/or collision. More...
 
struct  ConvexHullsShape
 Convex hulls shape for collision. More...
 
struct  CylinderShape
 Cylinder shape for visualization and/or collision. More...
 
struct  LineShape
 Line shape for visualization. More...
 
struct  SphereShape
 Sphere shape for visualization and/or collision. More...
 
struct  TrimeshShape
 Tri-mesh shape for collision. More...
 

Public Member Functions

void CreateVisualizationAssets (std::shared_ptr< ChBody > body, VisualizationType vis=VisualizationType::MODEL_FILE)
 Create visualization assets for the specified body.
 
void CreateCollisionShapes (std::shared_ptr< ChBody > body, int collision_family, ChContactMethod contact_method)
 Create collision shapes for the specified body.
 
ChAABB CalculateAABB ()
 Calculate axis-aligned bounding box of all collision shapes.
 
bool HasCollision () const
 Indicate whether or not collision shapes are defined.
 
bool HasVisualizationPrimitives () const
 Indicate whether or not visualization primitives are defined.
 
bool HasVisualizationMesh () const
 Indicate whether or not a visualization mesh is defined.
 

Static Public Member Functions

static std::shared_ptr< ChVisualShapeAddVisualizationCylinder (std::shared_ptr< ChBody > body, const ChVector3d &p1, const ChVector3d &p2, double radius, ChVisualMaterialSharedPtr mat=nullptr)
 Utility function for adding a cylinder visualization shape defined by the end points and a radius. More...
 

Public Attributes

std::vector< ChContactMaterialDatamaterials
 list of contact materials
 
std::vector< BoxShapecoll_boxes
 list of collision boxes
 
std::vector< SphereShapecoll_spheres
 list of collision spheres
 
std::vector< CylinderShapecoll_cylinders
 list of collision cylinders
 
std::vector< ConvexHullsShapecoll_hulls
 list of collision convex hulls
 
std::vector< TrimeshShapecoll_meshes
 list of collision trimeshes
 
std::vector< BoxShapevis_boxes
 list of visualization boxes
 
std::vector< SphereShapevis_spheres
 list of visualization spheres
 
std::vector< CylinderShapevis_cylinders
 list of visualization cylinders
 
std::vector< LineShapevis_lines
 list of visualization lines
 
ChColor color_boxes
 visualization color
 
ChColor color_spheres
 visualization color
 
ChColor color_cylinders
 visualization color
 
std::string vis_mesh_file
 name of Wavefront OBJ file with visualization mesh
 

Member Function Documentation

◆ AddVisualizationCylinder()

std::shared_ptr< ChVisualShape > chrono::utils::ChBodyGeometry::AddVisualizationCylinder ( std::shared_ptr< ChBody body,
const ChVector3d p1,
const ChVector3d p2,
double  radius,
ChVisualMaterialSharedPtr  mat = nullptr 
)
static

Utility function for adding a cylinder visualization shape defined by the end points and a radius.

This function adds the visualization shape to the body's visual model and returns the shape.


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