.. role:: blue :class: blue Inertial Body Characteristics ============================= .. _Inertial_Body_Characteristics_: .. kernel version: The function .. code-block:: cpp 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 :ref:`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 :ref:`Constructing Polygons for an Object ` paragraph. The progress parameter provides information about execution during the calculation and can be used to stop the computation.