Inertial Body Characteristics
The function
void MassInertiaProperties( const MbSolid * solid,
double density,
double deviateAngle,
InertiaProperties & properties,
IfProgressIndicator * progress = 0 );
calculates the surface area, volume, mass, center of gravity, and moments of inertia of a body.
The input parameters of the function are:
solid – body,
density – density or specific mass per unit area,
deviateAngle – parameter that controls calculation accuracy.
The output parameters of the function are:
properties – calculated inertial characteristics,
progress – calculation progress indicator.
The function does not return a value.
The function is declared in the mip_solid_mass_inertia.h file.
For a closed solid body, the density parameter defines the body density. For an open solid body, the density parameter defines the specific mass per unit area of the body. In the general case, the calculation is performed numerically and uses triangulation of the domain of definition of face surface parameters. Triangulation of the parametric domain of faces is performed by the CalculateGrid() method described in the Constructing Polygons for an Object paragraph, with stepData.stepType = ist_MipStep and stepData.angle = deviateAngle. The deviateAngle parameter defines the maximum allowable angle between normals of neighboring triangles and quadrilaterals of the surface triangulation. The deviateAngle parameter controls calculation accuracy, and the calculation time depends on its value. The deviateAngle parameter must be within the range 0.01 <= deviateAngle <= 0.35 radians. Note that for small deviateAngle values, complex models require a long calculation time.
The properties inertial characteristics are described in the Constructing Polygons for an Object paragraph. The progress parameter provides information about execution during the calculation and can be used to stop the computation.