C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
Mass-Inertial Properties
Collaboration diagram for Mass-Inertial Properties:

## Classes

class  MIProperties
Mass-inertial properties of curve. More...

class  MI3DProperties
Volume mass-inertial properties. More...

struct  FormDefinition
Contour shape description. More...

class  InertiaProperties
Inertial properties of solid. More...

class  SolidMIAttire
Solid, its properties and transformation matrices of solid duplicates. More...

class  AssemblyMIAttire
Assembly. More...

## Functions

void MassInertiaProperties (const MbCurve *curve, MIProperties &mp, double deviateAngle=Math::deviateSag)
Determination of mass-inertial properties. More...

void MassInertiaProperties (const RPArray< const MbCurve > &curves, const c3d::BoolVector &bodies, MIProperties &mp, double deviateAngle=Math::deviateSag)
Determination of mass-inertial properties. More...

void MassInertia3DProperties (bool revolution, const RPArray< MbCurve > &curves, const SArray< FormDefinition > &formes, MI3DProperties &mp, double deviateAngle=Math::deviateSag)
Calculate volume mass-inertial properties. More...

double CalculateArea (const MbSurface &surface, double angle=Math::deviateSag)
Determine area. More...

double CalculateVolume (const MbSolid &solid, double angle)
Determine volume. More...

double CalculateVolume (const MbMesh &mesh)
Determine volume. More...

double CalculateAreaCentre (const MbFaceShell &shell, double angle, MbCartPoint3D &centre)
Determine area and center of mass. More...

double CalculateAreaCentre (const MbFace &face, double angle, bool byOuter, VERSION version, MbCartPoint3D &centre)
Determine area and center of mass. More...

double CalculateArea (const RPArray< MbFace > &faces, double deviateAngle)
Determination of faces area. More...

double CalculateArea (const MbFace &face, double deviateAngle)
Determination of area. More...

void MassInertiaProperties (const MbSolid *solid, double density, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=nullptr)
Calculation of mass-inertial properties. More...

void MassInertiaProperties (const RPArray< MbSolid > &solids, const SArray< double > &densities, const SArray< MbMatrix3D > &matrs, const RPArray< InertiaProperties > &mpSolids, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=nullptr)
Calculation of mass-inertial properties. More...

void MassInertiaProperties (const AssemblyMIAttire &assembly, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=nullptr)
Calculation of mass-inertial properties. More...

void MassInertiaProperties (const MbMesh *mesh, double density, InertiaProperties &mp)
Calculation of mass-inertial properties. More...

void MassInertiaProperties (const std::vector< const MbMesh * > &meshes, const std::vector< double > &densities, const std::vector< MbMatrix3D > &matrices, InertiaProperties &mp)
Calculation of mass-inertial properties. More...

## ◆ MassInertiaProperties() [1/7]

 void MassInertiaProperties ( const MbCurve * curve, MIProperties & mp, double deviateAngle = `Math::deviateSag` )

Determination of mass-inertial properties.

Determination of mass-inertial properties of curve.
x0, y0 - center of gravity coordinates,
f - area,
mxx, myy - moments of inertia relative axes parallel to x and y axes and passes through center of gravity,
mxy - product of inertia relative to axes parallel to x and y axes and passes through center of gravity,
mxx0, myy0 - principal central moments of inertia,
a - angle between first principal axis and x-axis.

Parameters
 [in] curve - Curve. [out]

## ◆ MassInertiaProperties() [2/7]

 void MassInertiaProperties ( const RPArray< const MbCurve > & curves, const c3d::BoolVector & bodies, MIProperties & mp, double deviateAngle = `Math::deviateSag` )

Determination of mass-inertial properties.

Determine mass-inertial properties of curves.

Parameters
 [in] curves - A set of curves. [in] bodies - Set of flags for each curve: if true then mass-inertial properties of curve are added to total result, if false then mass-inertial properties of curve are subtracted from total result. Count of flags must be equal to count of curves. [out] mp - Total mass-inertial properties as result. [in] deviateAngle - The angular deviation of the curve in the neighboring points on the region of numerical integration.

## ◆ MassInertia3DProperties()

 void MassInertia3DProperties ( bool revolution, const RPArray< MbCurve > & curves, const SArray< FormDefinition > & formes, MI3DProperties & mp, double deviateAngle = `Math::deviateSag` )

Calculate volume mass-inertial properties.

Calculate volume mass-inertial properties.

Parameters
 [in] revolution - If true then shape description parameter treats as angle, If false then treats as thickness. [in] curves - Set of curves. [in] formes - Each curve shape description. Count of elements must be equal to count of curves. [out] mp - Mass-inertial properties as result. [in] deviateAngle - The angular deviation of the curve in the neighboring points on the region of numerical integration.

## ◆ CalculateArea() [1/3]

 double CalculateArea ( const MbSurface & surface, double angle = `Math::deviateSag` )

Determine area.

Determine surface area.

Parameters
 [in] surface - The surface. [in] angle - Bounding of angular deviation during shell approximation by triangular plates.
Returns
Surface area.

## ◆ CalculateVolume() [1/2]

 double CalculateVolume ( const MbSolid & solid, double angle )

Determine volume.

Determine volume of solid.

Parameters
 [in] solid - A solid. [in] angle - Bounding of angular deviation during shell approximation by triangular plates.
Returns
Value of solid volume.

## ◆ CalculateVolume() [2/2]

 double CalculateVolume ( const MbMesh & mesh )

Determine volume.

Determine volume of polygonal object.

Parameters
 [in] mesh - A polygonal object.
Returns
Value of polygonal object volume.

## ◆ CalculateAreaCentre() [1/2]

 double CalculateAreaCentre ( const MbFaceShell & shell, double angle, MbCartPoint3D & centre )

Determine area and center of mass.

Determine area of shell surface and its center of mass.
Center of mass of volumetric object doesn't coincide with center of mass of its surface.

Parameters
 [in] shell - A shell. [in] angle - Bounding of angular deviation during shell approximation by triangular plates. [out] centre - Center of mass of shell area.
Returns
Area of shell surface.

## ◆ CalculateAreaCentre() [2/2]

 double CalculateAreaCentre ( const MbFace & face, double angle, bool byOuter, VERSION version, MbCartPoint3D & centre )

Determine area and center of mass.

Determine area of face surface and its center of mass.
Center of mass of volumetric object doesn't coincide with center of mass of its surface.

Parameters
 [in] face - A face. [in] angle - Bounding of angular deviation during face approximation by triangular plates. [in] byOuter - If true calculation is performed only on external boundary without taking internal cuts of face into account. [in] version - Version, last by default. [out] centre - Center of mass of face area.
Returns
Face surface area.

## ◆ CalculateArea() [2/3]

 double CalculateArea ( const RPArray< MbFace > & faces, double deviateAngle )

Determination of faces area.

Determination of area of set of faces.

Note
In multithreaded mode m_Items runs in parallel.
Parameters
 [in] faces - A set of faces. [in] deviateAngle - Tolerance - the angular deviation of surface or curve in the neighboring points on the region of numerical integration.
Returns
Faces area.

## ◆ CalculateArea() [3/3]

 double CalculateArea ( const MbFace & face, double deviateAngle )

Determination of area.

Determination of face surface area.

Parameters
 [in] face - A face. [in] deviateAngle - Tolerance - the angular deviation of surface or curve in the neighboring points on the region of numerical integration.
Returns
Face area.

## ◆ MassInertiaProperties() [3/7]

 void MassInertiaProperties ( const MbSolid * solid, double density, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `nullptr` )

Calculation of mass-inertial properties.

Calculation of solid mass-inertial properties.

Note
In multithreaded mode mtm_Items runs in parallel.
Parameters
 [in] solid - A solid. [in] density - Density (solid->IsClosed()) or mass per unit square (!solid->IsClosed()). [in] deviateAngle - Tolerance - the angular deviation of surface or curve in the neighboring points on the region of numerical integration. [out] mp - Calculated inertial properties. [in] progress - A run progress indicator.

## ◆ MassInertiaProperties() [4/7]

 void MassInertiaProperties ( const RPArray< MbSolid > & solids, const SArray< double > & densities, const SArray< MbMatrix3D > & matrs, const RPArray< InertiaProperties > & mpSolids, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `nullptr` )

Calculation of mass-inertial properties.

Calculation of mass-inertial properties of solids.

Note
In multithreaded mode runs in parallel.
Parameters
 [in] solids - Solids. [in] densities - Density of solids or mass per unit square of solids. Count of elements in array must be equal to count of solids. [in] matrs - Matrices of solids transformation to global coordinate system. Count of elements in array must be equal to count of solids. [in] mpSolids - Calculated properties of solids. Can contain nullptr. Count of elements in array must be equal to count of solids. [in] deviateAngle - Tolerance - the angular deviation of surface or curve in the neighboring points on the region of numerical integration. [out] mp - Calculated inertial properties. [in] progress - A run progress indicator.

## ◆ MassInertiaProperties() [5/7]

 void MassInertiaProperties ( const AssemblyMIAttire & assembly, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `nullptr` )

Calculation of mass-inertial properties.

Calculation of mass-inertial properties of assembly.

Note
In multithreaded mode m_Items runs in parallel.
Parameters
 [in] assembly - Assembly. [in] deviateAngle - Tolerance - the angular deviation of surface or curve in the neighboring points on the region of numerical integration. [out] mp - Calculated inertial properties. [in] progress - A run progress indicator.

## ◆ MassInertiaProperties() [6/7]

 void MassInertiaProperties ( const MbMesh * mesh, double density, InertiaProperties & mp )

Calculation of mass-inertial properties.

Calculation mass-inertial properties of polygonal object.

Note
In multithreaded mode runs in parallel.
Parameters
 [in] mesh - A polygonal object. [in] density - Density or mass per unit square. [out] mp - Calculated inertial properties.

## ◆ MassInertiaProperties() [7/7]

 void MassInertiaProperties ( const std::vector< const MbMesh * > & meshes, const std::vector< double > & densities, const std::vector< MbMatrix3D > & matrices, InertiaProperties & mp )

Calculation of mass-inertial properties.

Calculation of mass-inertial properties of polygonal objects.

Note
In multithreaded mode runs in parallel.
Parameters
 [in] meshes - Set of polygonal objects. [in] densities - Density of solids or mass per unit square of polygonal objects. Count of elements in array must be equal to count of polygonal objects. [in] matrices - Matrices of solids transformation to global coordinate system. Count of elements in array must be equal to count of polygonal objects. [out] mp - Calculated inertial properties.