chrono::fea::ChBeamSectionShape Class Referenceabstract

Description

Base class for drawing tesselated profiles of beams in 3D views, if needed.

This cross section visualization shape is independent from physical properties (area, inertia, etc.) that you can define with other components of the ChBeamSection, such as for example ChBeamSectionCosseratElasticity, etc. Used as a component of ChBeamSection.

#include <ChBeamSectionShape.h>

Inheritance diagram for chrono::fea::ChBeamSectionShape:

Public Member Functions

virtual unsigned int GetNumLines () const =0
 Get the number of lines making the profile of the section, for meshing purposes. More...
 
virtual unsigned int GetNumPoints (unsigned int i_line) const =0
 Get the number of points to be allocated per each section, for the i-th line in the section. More...
 
virtual void GetPoints (unsigned int i_line, std::vector< ChVector3d > &mpoints) const =0
 Compute the points (in the reference of the section), for the i-th line in the section. More...
 
virtual void GetNormals (unsigned int i_line, std::vector< ChVector3d > &mnormals) const =0
 Compute the normals (in the reference of the section) at each point, for the i-th line in the section. More...
 
virtual void GetAABB (double &ymin, double &ymax, double &zmin, double &zmax) const
 Returns the axis-aligned bounding box (assuming axes of local reference of the section) This functions has many uses, ex.for drawing, optimizations, collisions. More...
 

Member Function Documentation

◆ GetAABB()

void chrono::fea::ChBeamSectionShape::GetAABB ( double &  ymin,
double &  ymax,
double &  zmin,
double &  zmax 
) const
virtual

Returns the axis-aligned bounding box (assuming axes of local reference of the section) This functions has many uses, ex.for drawing, optimizations, collisions.

We provide a fallback default implementation that iterates over all points thanks to GetPoints(), but one could override this if a more efficient implementaiton is possible (ex for circular beams, etc.)

Reimplemented in chrono::fea::ChBeamSectionShapeRectangular, and chrono::fea::ChBeamSectionShapeCircular.

◆ GetNormals()

virtual void chrono::fea::ChBeamSectionShape::GetNormals ( unsigned int  i_line,
std::vector< ChVector3d > &  mnormals 
) const
pure virtual

Compute the normals (in the reference of the section) at each point, for the i-th line in the section.

Note: mnormals must already have the proper size.

Implemented in chrono::fea::ChBeamSectionShapePolyline, chrono::fea::ChBeamSectionShapeRectangular, and chrono::fea::ChBeamSectionShapeCircular.

◆ GetNumLines()

virtual unsigned int chrono::fea::ChBeamSectionShape::GetNumLines ( ) const
pure virtual

Get the number of lines making the profile of the section, for meshing purposes.

C0 continuity is required between lines, C1 also required within each line. Ex. a circle has 1 line, a cube 4 lines, etc. Sharp corners can be done mith multiple lines.

Implemented in chrono::fea::ChBeamSectionShapePolyline, chrono::fea::ChBeamSectionShapeRectangular, and chrono::fea::ChBeamSectionShapeCircular.

◆ GetNumPoints()

virtual unsigned int chrono::fea::ChBeamSectionShape::GetNumPoints ( unsigned int  i_line) const
pure virtual

Get the number of points to be allocated per each section, for the i-th line in the section.

We assume one also allocates same number of 3d normalss.

Implemented in chrono::fea::ChBeamSectionShapePolyline, chrono::fea::ChBeamSectionShapeRectangular, and chrono::fea::ChBeamSectionShapeCircular.

◆ GetPoints()

virtual void chrono::fea::ChBeamSectionShape::GetPoints ( unsigned int  i_line,
std::vector< ChVector3d > &  mpoints 
) const
pure virtual

Compute the points (in the reference of the section), for the i-th line in the section.

Note: mpoints must already have the proper size.

Implemented in chrono::fea::ChBeamSectionShapePolyline, chrono::fea::ChBeamSectionShapeRectangular, and chrono::fea::ChBeamSectionShapeCircular.


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