C3D Kernel  104598
Mass-Inertial Properties
Geometric Computations Methods
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.
void MassInertiaProperties (const RPArray< MbCurve > &curves, const SArray< bool > &bodies, MIProperties &mp, double deviateAngle=Math::deviateSag)
Determination of mass-inertial properties.
void MassInertia3DProperties (bool revolution, const RPArray< MbCurve > &curves, const SArray< FormDefinition > &formes, MI3DProperties &mp, double deviateAngle=Math::deviateSag)
Calculate volume mass-inertial properties.
double CalculateArea (const MbSurface &surface, double angle=Math::deviateSag)
Determine area.
double CalculateVolume (const MbSolid &solid, double angle)
Determine volume.
double CalculateAreaCentre (const MbFaceShell &shell, double angle, MbCartPoint3D &centre)
Determine area and center of mass.
double CalculateAreaCentre (const MbFace &face, double angle, bool byOuter, VERSION version, MbCartPoint3D &centre)
Determine area and center of mass.
double CalculateArea (const RPArray< MbFace > &faces, double deviateAngle)
Determination of faces area.
double CalculateArea (const MbFace &face, double deviateAngle)
Determination of area.
void MassInertiaProperties (const MbSolid *solid, double density, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=NULL)
Calculation of mass-inertial properties.
void MassInertiaProperties (const RPArray< MbSolid > &solids, const SArray< double > &densities, const SArray< MbMatrix3D > &matrs, const PArray< InertiaProperties > &mpSolids, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=NULL)
Calculation of mass-inertial properties.
void MassInertiaProperties (const AssemblyMIAttire &assembly, double deviateAngle, InertiaProperties &mp, IfProgressIndicator *progress=NULL)
Calculation of mass-inertial properties.

Function Documentation

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

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] - Mass-inertial properties of curve as result. [in] deviateAngle - The angular deviation of the curve in the neighboring points on the region of numerical integration.
 void MassInertiaProperties ( const RPArray< MbCurve > & curves, const SArray< bool > & bodies, MIProperties & mp, double deviateAngle = `Math::deviateSag` )

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.
 void MassInertia3DProperties ( bool revolution, const RPArray< MbCurve > & curves, const SArray< FormDefinition > & formes, MI3DProperties & mp, double deviateAngle = `Math::deviateSag` )

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.
 double CalculateArea ( const MbSurface & surface, double angle = `Math::deviateSag` )

Determine surface area.

Parameters:
 [in] surface - The surface. [in] angle - Bounding of angular deviation during shell approximation by triangular plates.
Returns:
Surface area.
 double CalculateVolume ( const MbSolid & solid, double angle )

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.
 double CalculateAreaCentre ( const MbFaceShell & shell, double angle, MbCartPoint3D & centre )

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.
 double CalculateAreaCentre ( const MbFace & face, double angle, bool byOuter, VERSION version, MbCartPoint3D & centre )

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.
 double CalculateArea ( const RPArray< MbFace > & faces, double deviateAngle )

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.
 double CalculateArea ( const MbFace & face, double deviateAngle )

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.
 void MassInertiaProperties ( const MbSolid * solid, double density, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `NULL` )

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.
 void MassInertiaProperties ( const RPArray< MbSolid > & solids, const SArray< double > & densities, const SArray< MbMatrix3D > & matrs, const PArray< InertiaProperties > & mpSolids, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `NULL` )

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. Count of elements in array must be equal to count of solids. [in] mpSolids - Calculated properties of solids. Can contain NULL. 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.
 void MassInertiaProperties ( const AssemblyMIAttire & assembly, double deviateAngle, InertiaProperties & mp, IfProgressIndicator * progress = `NULL` )

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.