OCC Main Page | ModelingData | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ModelingData
TKG2d
GProp


GProp_PrincipalProps Class Reference

A framework to present the principal properties of
inertia of a system of which global properties are
computed by a GProp_GProps object.
There is always a set of axes for which the
products of inertia of a geometric system are equal
to 0; i.e. the matrix of inertia of the system is
diagonal. These axes are the principal axes of
inertia. Their origin is coincident with the center of
mass of the system. The associated moments are
called the principal moments of inertia.
This sort of presentation object is created, filled and
returned by the function PrincipalProperties for
any GProp_GProps object, and can be queried to access the result.
Note: The system whose principal properties of
inertia are returned by this framework is referred to
as the current system. The current system,
however, is retained neither by this presentation
framework nor by the GProp_GProps object which activates it.
.

#include <GProp_PrincipalProps.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT GProp_PrincipalProps ()
 creates an undefined PrincipalProps.

Standard_EXPORT Standard_Boolean HasSymmetryAxis () const
 returns true if the geometric system has an axis of symmetry.
For comparing moments relative tolerance 1.e-10 is used.
Usually it is enough for objects, restricted by faces with
analitycal geometry.

Standard_EXPORT Standard_Boolean HasSymmetryAxis (const Standard_Real aTol) const
 returns true if the geometric system has an axis of symmetry.
aTol is relative tolerance for cheking equality of moments
If aTol == 0, relative tolerance is ~ 1.e-16 (Epsilon(I))

Standard_EXPORT Standard_Boolean HasSymmetryPoint () const
 returns true if the geometric system has a point of symmetry.
For comparing moments relative tolerance 1.e-10 is used.
Usually it is enough for objects, restricted by faces with
analitycal geometry.

Standard_EXPORT Standard_Boolean HasSymmetryPoint (const Standard_Real aTol) const
 returns true if the geometric system has a point of symmetry.
aTol is relative tolerance for cheking equality of moments
If aTol == 0, relative tolerance is ~ 1.e-16 (Epsilon(I))

Standard_EXPORT void Moments (Standard_Real &Ixx, Standard_Real &Iyy, Standard_Real &Izz) const
 Ixx, Iyy and Izz return the principal moments of inertia
in the current system.
Notes :
- If the current system has an axis of symmetry, two
of the three values Ixx, Iyy and Izz are equal. They
indicate which eigen vectors define an infinity of
axes of principal inertia.
- If the current system has a center of symmetry, Ixx,
Iyy and Izz are equal.
.
Standard_EXPORT const gp_Vec & FirstAxisOfInertia () const
 returns the first axis of inertia.
if the system has a point of symmetry there is an infinity of
solutions. It is not possible to defines the three axis of
inertia.

Standard_EXPORT const gp_Vec & SecondAxisOfInertia () const
 returns the second axis of inertia.
if the system has a point of symmetry or an axis of symmetry the
second and the third axis of symmetry are undefined.

Standard_EXPORT const gp_Vec & ThirdAxisOfInertia () const
 returns the third axis of inertia.
This and the above functions return the first, second or third eigen vector of the
matrix of inertia of the current system.
The first, second and third principal axis of inertia
pass through the center of mass of the current
system. They are respectively parallel to these three eigen vectors.
Note that:
- If the current system has an axis of symmetry, any
axis is an axis of principal inertia if it passes
through the center of mass of the system, and runs
parallel to a linear combination of the two eigen
vectors of the matrix of inertia, corresponding to the
two eigen values which are equal. If the current
system has a center of symmetry, any axis passing
through the center of mass of the system is an axis
of principal inertia. Use the functions
HasSymmetryAxis and HasSymmetryPoint to
check these particular cases, where the returned
eigen vectors define an infinity of principal axis of inertia.
- The Moments function can be used to know which
of the three eigen vectors corresponds to the two
eigen values which are equal.
if the system has a point of symmetry or an axis of symmetry the
second and the third axis of symmetry are undefined.

Standard_EXPORT void RadiusOfGyration (Standard_Real &Rxx, Standard_Real &Ryy, Standard_Real &Rzz) const
 Returns the principal radii of gyration Rxx, Ryy
and Rzz are the radii of gyration of the current
system about its three principal axes of inertia.
Note that:
- If the current system has an axis of symmetry,
two of the three values Rxx, Ryy and Rzz are equal.
- If the current system has a center of symmetry,
Rxx, Ryy and Rzz are equal.
.

Private Member Functions

Standard_EXPORT GProp_PrincipalProps (const Standard_Real Ixx, const Standard_Real Iyy, const Standard_Real Izz, const Standard_Real Rxx, const Standard_Real Ryy, const Standard_Real Rzz, const gp_Vec &Vxx, const gp_Vec &Vyy, const gp_Vec &Vzz, const gp_Pnt &G)

Private Attributes

Standard_Real i1
Standard_Real i2
Standard_Real i3
Standard_Real r1
Standard_Real r2
Standard_Real r3
gp_Vec v1
gp_Vec v2
gp_Vec v3
gp_Pnt g

Friends

Standard_EXPORT GProp_PrincipalProps GProp_GProps::PrincipalProperties () const
 Computes the principal properties of inertia of the current system.
There is always a set of axes for which the products
of inertia of a geometric system are equal to 0; i.e. the
matrix of inertia of the system is diagonal. These axes
are the principal axes of inertia. Their origin is
coincident with the center of mass of the system. The
associated moments are called the principal moments of inertia.
This function computes the eigen values and the
eigen vectors of the matrix of inertia of the system.
Results are stored by using a presentation framework
of principal properties of inertia
(GProp_PrincipalProps object) which may be
queried to access the value sought.
.


Constructor & Destructor Documentation

Standard_EXPORT GProp_PrincipalProps::GProp_PrincipalProps  ) 
 

Standard_EXPORT GProp_PrincipalProps::GProp_PrincipalProps const Standard_Real  Ixx,
const Standard_Real  Iyy,
const Standard_Real  Izz,
const Standard_Real  Rxx,
const Standard_Real  Ryy,
const Standard_Real  Rzz,
const gp_Vec &  Vxx,
const gp_Vec &  Vyy,
const gp_Vec &  Vzz,
const gp_Pnt &  G
[private]
 


Member Function Documentation

Standard_EXPORT const gp_Vec& GProp_PrincipalProps::FirstAxisOfInertia  )  const
 

Standard_EXPORT Standard_Boolean GProp_PrincipalProps::HasSymmetryAxis const Standard_Real  aTol  )  const
 

Standard_EXPORT Standard_Boolean GProp_PrincipalProps::HasSymmetryAxis  )  const
 

Standard_EXPORT Standard_Boolean GProp_PrincipalProps::HasSymmetryPoint const Standard_Real  aTol  )  const
 

Standard_EXPORT Standard_Boolean GProp_PrincipalProps::HasSymmetryPoint  )  const
 

Standard_EXPORT void GProp_PrincipalProps::Moments Standard_Real &  Ixx,
Standard_Real &  Iyy,
Standard_Real &  Izz
const
 

void GProp_PrincipalProps::operator delete void *  anAddress  )  [inline]
 

void* GProp_PrincipalProps::operator new size_t  size  )  [inline]
 

void* GProp_PrincipalProps::operator new size_t  ,
void *  anAddress
[inline]
 

Standard_EXPORT void GProp_PrincipalProps::RadiusOfGyration Standard_Real &  Rxx,
Standard_Real &  Ryy,
Standard_Real &  Rzz
const
 

Standard_EXPORT const gp_Vec& GProp_PrincipalProps::SecondAxisOfInertia  )  const
 

Standard_EXPORT const gp_Vec& GProp_PrincipalProps::ThirdAxisOfInertia  )  const
 


Friends And Related Function Documentation

Standard_EXPORT GProp_PrincipalProps GProp_GProps::PrincipalProperties  )  const [friend]
 


Field Documentation

gp_Pnt GProp_PrincipalProps::g [private]
 

Standard_Real GProp_PrincipalProps::i1 [private]
 

Standard_Real GProp_PrincipalProps::i2 [private]
 

Standard_Real GProp_PrincipalProps::i3 [private]
 

Standard_Real GProp_PrincipalProps::r1 [private]
 

Standard_Real GProp_PrincipalProps::r2 [private]
 

Standard_Real GProp_PrincipalProps::r3 [private]
 

gp_Vec GProp_PrincipalProps::v1 [private]
 

gp_Vec GProp_PrincipalProps::v2 [private]
 

gp_Vec GProp_PrincipalProps::v3 [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 13:23:02 2008 for OpenCASCADE by  doxygen 1.4.1