chrono::geometry::ChBox Class Reference

Description

A box geometric object for collisions and visualization.

#include <ChBox.h>

Inheritance diagram for chrono::geometry::ChBox:
Collaboration diagram for chrono::geometry::ChBox:

Public Member Functions

 ChBox (const ChVector<> &mpos, const ChMatrix33<> &mrot, const ChVector<> &mlengths)
 
 ChBox (const ChVector<> &mC0, const ChVector<> &mC1, const ChVector<> &mC2, const ChVector<> &mC3)
 
 ChBox (const ChBox &source)
 
virtual ChBoxClone () const override
 "Virtual" copy constructor (covariant return type).
 
virtual ChGeometry::GeometryType GetClassType () const override
 Get the class type as unique numerical ID (faster than using ChronoRTTI mechanism). More...
 
virtual void GetBoundingBox (double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax, ChMatrix33<> *bbRot=NULL) const override
 Compute bounding box. More...
 
virtual ChVector Baricenter () const override
 Computes the baricenter of the box.
 
virtual void CovarianceMatrix (ChMatrix33<> &C) const override
 Computes the covariance matrix for the box.
 
virtual void Evaluate (ChVector<> &pos, const double parU, const double parV, const double parW) const override
 Evaluate position in cube volume.
 
virtual int GetManifoldDimension () const override
 This is a solid.
 
ChMatrix33GetRotm ()
 Access the rotation of the box.
 
ChVectorGetPos ()
 Access the position of the barycenter of the box.
 
ChVectorGetSize ()
 Get the box half-lengths.
 
ChVector GetLengths ()
 Get the x y z lengths of this box (that is, double the Size values)
 
void SetLengths (const ChVector<> &mlen)
 Set the x y z lengths of this box (that is, double the Size values)
 
ChVector GetP1 () const
 
ChVector GetP2 () const
 
ChVector GetP3 () const
 
ChVector GetP4 () const
 
ChVector GetP5 () const
 
ChVector GetP6 () const
 
ChVector GetP7 () const
 
ChVector GetP8 () const
 
ChVector GetPn (int ipoint) const
 Get the n-th corner point, with ipoint = 1...8.
 
double GetVolume () const
 Get the volume (assuming no scaling in Rot matrix)
 
virtual void ArchiveOUT (ChArchiveOut &marchive) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive) override
 Method to allow de-serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::geometry::ChVolume
 ChVolume (const ChVolume &source)
 
virtual bool Get_closed_U () const
 Tell if the volume is closed (periodic) in parametric coordinate.
 
virtual bool Get_closed_V () const
 Tell if the volume is closed (periodic) in parametric coordinate.
 
virtual bool Get_closed_W () const
 Tell if the volume is closed (periodic) in parametric coordinate.
 
- Public Member Functions inherited from chrono::geometry::ChGeometry
 ChGeometry (const ChGeometry &source)
 
virtual void InflateBoundingBox (double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax, ChMatrix33<> *Rot=NULL) const
 Enlarge a previous existing bounding box. More...
 
virtual double Size () const
 Returns the radius of the sphere which can enclose the geometry.
 
virtual void Update ()
 Generic update of internal data. More...
 

Public Attributes

ChMatrix33 Rot
 box rotation
 
ChVector Pos
 position of box center
 
ChVector Size
 box halflengths
 

Additional Inherited Members

- Public Types inherited from chrono::geometry::ChGeometry
enum  GeometryType {
  NONE, SPHERE, BOX, CYLINDER,
  TRIANGLE, CAPSULE, CONE, LINE,
  LINE_ARC, LINE_BEZIER, LINE_CAM, LINE_PATH,
  LINE_POLY, LINE_SEGMENT, ROUNDED_BOX, ROUNDED_CYLINDER,
  ROUNDED_CONE, TRIANGLEMESH, TRIANGLEMESH_CONNECTED, TRIANGLEMESH_SOUP
}
 Enumeration of geometric objects.
 

Member Function Documentation

◆ GetBoundingBox()

void chrono::geometry::ChBox::GetBoundingBox ( double &  xmin,
double &  xmax,
double &  ymin,
double &  ymax,
double &  zmin,
double &  zmax,
ChMatrix33<> *  Rot = NULL 
) const
overridevirtual

Compute bounding box.

If a matrix Rot is not null, it should compute bounding box along the rotated directions represented by that transformation matrix Rot. It must be overridden by inherited classes.

Reimplemented from chrono::geometry::ChGeometry.

◆ GetClassType()

virtual ChGeometry::GeometryType chrono::geometry::ChBox::GetClassType ( ) const
inlineoverridevirtual

Get the class type as unique numerical ID (faster than using ChronoRTTI mechanism).

Each inherited class must return an unique ID.

Reimplemented from chrono::geometry::ChGeometry.


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