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>
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()
|
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()
|
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()
|
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()
|
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()
|
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