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

ModelingData
TKG2d
GProp


GProp_GProps Class Reference

Implements a general mechanism to compute the global properties of
a "compound geometric system" in 3d space by composition of the
global properties of "elementary geometric entities" such as
(curve, surface, solid, set of points). It is possible to compose
the properties of several "compound geometric systems" too.

To computes the global properties of a compound geometric
system you should :
. declare the GProps using a constructor which initializes the
GProps and defines the location point used to compute the inertia
. compose the global properties of your geometric components with
the properties of your system using the method Add.

To compute the global properties of the geometric components of
the system you should use the services of the following classes :
- class PGProps for a set of points,
- class CGProps for a curve,
- class SGProps for a surface,
- class VGProps for a "solid".
The classes CGProps, SGProps, VGProps are generic classes and
must be instantiated for your application.


The global properties computed are :
- the dimension (length, area or volume)
- the mass,
- the centre of mass,
- the moments of inertia (static moments and quadratic moments),
- the moment about an axis,
- the radius of gyration about an axis,
- the principal properties of inertia :
(sea also class PrincipalProps)
. the principal moments,
. the principal axis of inertia,
. the principal radius of gyration,
.

#include <GProp_GProps.hxx>

Inheritance diagram for GProp_GProps:

Inheritance graph
[legend]

Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
Standard_EXPORT GProp_GProps ()
 The origin (0, 0, 0) of the absolute cartesian coordinate system
is used to compute the global properties.
.
Standard_EXPORT GProp_GProps (const gp_Pnt &SystemLocation)
 The point SystemLocation is used to compute the gobal properties
of the system. For more accuracy it is better to define this
point closed to the location of the system. For example it could
be a point around the centre of mass of the system.
This point is referred to as the reference point for
this framework. For greater accuracy it is better for
the reference point to be close to the location of the
system. It can, for example, be a point near the
center of mass of the system.
At initialization, the framework is empty; i.e. it
retains no dimensional information such as mass, or
inertia. However, it is now able to bring together
global properties of various other systems, whose
global properties have already been computed
using another framework. To do this, use the
function Add to define the components of the
system. Use it once per component of the system,
and then use the interrogation functions available to
access the computed values.
.
Standard_EXPORT void Add (const GProp_GProps &Item, const Standard_Real Density=1.0)
 Either
- initializes the global properties retained by this
framework from those retained by the framework Item, or
- brings together the global properties still retained by
this framework with those retained by the framework Item.
The value Density, which is 1.0 by default, is used as
the density of the system analysed by Item.
Sometimes the density will have already been given at
the time of construction of the framework Item. This
may be the case for example, if Item is a
GProp_PGProps framework built to compute the
global properties of a set of points ; or another
GProp_GProps object which already retains
composite global properties. In these cases the real
density was perhaps already taken into account at the
time of construction of Item. Note that this is not
checked: if the density of parts of the system is taken
into account two or more times, results of the
computation will be false.
Notes :
- The point relative to which the inertia of Item is
computed (i.e. the reference point of Item) may be
different from the reference point in this
framework. Huygens' theorem is applied
automatically to transfer inertia values to the
reference point in this framework.
- The function Add is used once per component of
the system. After that, you use the interrogation
functions available to access values computed for the system.
- The system whose global properties are already
brought together by this framework is referred to
as the current system. However, the current system
is not retained by this framework, which maintains
only its global properties.
Exceptions
Standard_DomainError if Density is less than or
equal to gp::Resolution().
.
Standard_EXPORT Standard_Real Mass () const
 Returns the mass of the current system.
If no density is attached to the components of the
current system the returned value corresponds to :
- the total length of the edges of the current
system if this framework retains only linear
properties, as is the case for example, when
using only the LinearProperties function to
combine properties of lines from shapes, or
- the total area of the faces of the current system if
this framework retains only surface properties,
as is the case for example, when using only the
SurfaceProperties function to combine
properties of surfaces from shapes, or
- the total volume of the solids of the current
system if this framework retains only volume
properties, as is the case for example, when
using only the VolumeProperties function to
combine properties of volumes from solids.
Warning
A length, an area, or a volume is computed in the
current data unit system. The mass of a single
object is obtained by multiplying its length, its area
or its volume by the given density. You must be
consistent with respect to the units used.
.
Standard_EXPORT gp_Pnt CentreOfMass () const
 Returns the center of mass of the current system. If
the gravitational field is uniform, it is the center of gravity.
The coordinates returned for the center of mass are
expressed in the absolute Cartesian coordinate system.
.
Standard_EXPORT gp_Mat MatrixOfInertia () const
 returns the matrix of inertia. It is a symmetrical matrix.
The coefficients of the matrix are the quadratic moments of
inertia.

| Ixx Ixy Ixz |
matrix = | Ixy Iyy Iyz |
| Ixz Iyz Izz |

The moments of inertia are denoted by Ixx, Iyy, Izz.
The products of inertia are denoted by Ixy, Ixz, Iyz.
The matrix of inertia is returned in the central coordinate
system (G, Gx, Gy, Gz) where G is the centre of mass of the
system and Gx, Gy, Gz the directions parallel to the X(1,0,0)
Y(0,1,0) Z(0,0,1) directions of the absolute cartesian
coordinate system. It is possible to compute the matrix of
inertia at another location point using the Huyghens theorem
(you can use the method of package GProp : HOperator).

Standard_EXPORT void StaticMoments (Standard_Real &Ix, Standard_Real &Iy, Standard_Real &Iz) const
 Returns Ix, Iy, Iz, the static moments of inertia of the
current system; i.e. the moments of inertia about the
three axes of the Cartesian coordinate system.
.
Standard_EXPORT Standard_Real MomentOfInertia (const gp_Ax1 &A) const
 computes the moment of inertia of the material system about the
axis A.

Standard_EXPORT GProp_PrincipalProps 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.
.
Standard_EXPORT Standard_Real RadiusOfGyration (const gp_Ax1 &A) const
 Returns the radius of gyration of the current system about the axis A.
.

Protected Attributes

gp_Pnt g
gp_Pnt loc
Standard_Real dim
gp_Mat inertia

Constructor & Destructor Documentation

Standard_EXPORT GProp_GProps::GProp_GProps  ) 
 

Standard_EXPORT GProp_GProps::GProp_GProps const gp_Pnt &  SystemLocation  ) 
 


Member Function Documentation

Standard_EXPORT void GProp_GProps::Add const GProp_GProps Item,
const Standard_Real  Density = 1.0
 

Standard_EXPORT gp_Pnt GProp_GProps::CentreOfMass  )  const
 

Standard_EXPORT Standard_Real GProp_GProps::Mass  )  const
 

Standard_EXPORT gp_Mat GProp_GProps::MatrixOfInertia  )  const
 

Standard_EXPORT Standard_Real GProp_GProps::MomentOfInertia const gp_Ax1 &  A  )  const
 

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

Reimplemented in GProp_CelGProps, GProp_PGProps, GProp_SelGProps, and GProp_VelGProps.

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

Reimplemented in GProp_CelGProps, GProp_PGProps, GProp_SelGProps, and GProp_VelGProps.

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

Reimplemented in GProp_CelGProps, GProp_PGProps, GProp_SelGProps, and GProp_VelGProps.

Standard_EXPORT GProp_PrincipalProps GProp_GProps::PrincipalProperties  )  const
 

Standard_EXPORT Standard_Real GProp_GProps::RadiusOfGyration const gp_Ax1 &  A  )  const
 

Standard_EXPORT void GProp_GProps::StaticMoments Standard_Real &  Ix,
Standard_Real &  Iy,
Standard_Real &  Iz
const
 


Field Documentation

Standard_Real GProp_GProps::dim [protected]
 

gp_Pnt GProp_GProps::g [protected]
 

gp_Mat GProp_GProps::inertia [protected]
 

gp_Pnt GProp_GProps::loc [protected]
 


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