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 int GetNofLines () const =0
 Get the n. More...
 
virtual int GetNofPoints (const int i_line) const =0
 Get the n. More...
 
virtual void GetPoints (const int i_line, std::vector< ChVector<>> &mpoints) const =0
 Compute the points (in the reference of the section), for the i-th line in the section. More...
 
virtual void GetNormals (const int i_line, std::vector< ChVector<>> &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.

◆ GetNofLines()

virtual int chrono::fea::ChBeamSectionShape::GetNofLines ( ) const
pure virtual

Get the n.

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.

◆ GetNofPoints()

virtual int chrono::fea::ChBeamSectionShape::GetNofPoints ( const int  i_line) const
pure virtual

Get the n.

of points to be allocated per each section, for the i-th line in the section. We assume one also allocates a n. of 3d normals equal to n of points.

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

◆ GetNormals()

virtual void chrono::fea::ChBeamSectionShape::GetNormals ( const int  i_line,
std::vector< ChVector<>> &  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.

◆ GetPoints()

virtual void chrono::fea::ChBeamSectionShape::GetPoints ( const int  i_line,
std::vector< ChVector<>> &  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