Open CASCADE Technology  7.4.0
Data Structures

BRepGProp_Gauss Class Reference

Class performs computing of the global inertia properties of geometric object in 3D space by adaptive and non-adaptive 2D Gauss integration algorithms. More...

#include <BRepGProp_Gauss.hxx>

public API

enum  BRepGProp_GaussType { Vinert = 0, Sinert }
 Describes types of geometric objects. More...
 
 BRepGProp_Gauss (const BRepGProp_GaussType theType)
 Constructor. More...
 
void Compute (const BRepGProp_Face &theSurface, const gp_Pnt &theLocation, const Standard_Real theCoeff[], const Standard_Boolean theIsByPoint, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of a solid region of 3D space which can be delimited by the surface and point or surface and plane. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated. More...
 
void Compute (const BRepGProp_Face &theSurface, const gp_Pnt &theLocation, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of a surface. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated. More...
 
void Compute (BRepGProp_Face &theSurface, BRepGProp_Domain &theDomain, const gp_Pnt &theLocation, const Standard_Real theCoeff[], const Standard_Boolean theIsByPoint, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of a region of 3D space which can be delimited by the surface and point or surface and plane. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated. More...
 
void Compute (BRepGProp_Face &theSurface, BRepGProp_Domain &theDomain, const gp_Pnt &theLocation, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of a surface. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated. More...
 
Standard_Real Compute (BRepGProp_Face &theSurface, BRepGProp_Domain &theDomain, const gp_Pnt &theLocation, const Standard_Real theEps, const Standard_Real theCoeff[], const Standard_Boolean theByPoint, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of the region of 3D space which can be delimited by the surface and point or surface and plane. Adaptive 2D Gauss integration is used. If Epsilon more than 0.001 then algorithm performs non-adaptive integration. More...
 
Standard_Real Compute (BRepGProp_Face &theSurface, BRepGProp_Domain &theDomain, const gp_Pnt &theLocation, const Standard_Real theEps, Standard_Real &theOutMass, gp_Pnt &theOutGravityCenter, gp_Mat &theOutInertia)
 Computes the global properties of the face. Adaptive 2D Gauss integration is used. If Epsilon more than 0.001 then algorithm performs non-adaptive integration. More...
 

Detailed Description

Class performs computing of the global inertia properties of geometric object in 3D space by adaptive and non-adaptive 2D Gauss integration algorithms.

Member Enumeration Documentation

◆ BRepGProp_GaussType

Describes types of geometric objects.

  • Vinert is 3D closed region of space delimited with: – Surface; – Point and Surface; – Plane and Surface.
  • Sinert is face in 3D space.
Enumerator
Vinert 
Sinert 

Constructor & Destructor Documentation

◆ BRepGProp_Gauss()

BRepGProp_Gauss::BRepGProp_Gauss ( const BRepGProp_GaussType  theType)
explicit

Constructor.

Member Function Documentation

◆ Compute() [1/6]

void BRepGProp_Gauss::Compute ( const BRepGProp_Face theSurface,
const gp_Pnt theLocation,
const Standard_Real  theCoeff[],
const Standard_Boolean  theIsByPoint,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of a solid region of 3D space which can be delimited by the surface and point or surface and plane. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated.

Parameters
theSurface- bounding surface of the region;
theLocation- location of the point or the plane;
theCoeff- plane coefficients;
theIsByPoint- flag of restricition (point/plane);
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;

◆ Compute() [2/6]

void BRepGProp_Gauss::Compute ( const BRepGProp_Face theSurface,
const gp_Pnt theLocation,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of a surface. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated.

Parameters
theSurface- bounding surface of the region;
theLocation- surface location;
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;

◆ Compute() [3/6]

void BRepGProp_Gauss::Compute ( BRepGProp_Face theSurface,
BRepGProp_Domain theDomain,
const gp_Pnt theLocation,
const Standard_Real  theCoeff[],
const Standard_Boolean  theIsByPoint,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of a region of 3D space which can be delimited by the surface and point or surface and plane. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated.

Parameters
theSurface- bounding surface of the region;
theDomain- surface boundings;
theLocation- location of the point or the plane;
theCoeff- plane coefficients;
theIsByPoint- flag of restricition (point/plane);
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;

◆ Compute() [4/6]

void BRepGProp_Gauss::Compute ( BRepGProp_Face theSurface,
BRepGProp_Domain theDomain,
const gp_Pnt theLocation,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of a surface. Surface can be closed. The method is quick and its precision is enough for many cases of analytical surfaces. Non-adaptive 2D Gauss integration with predefined numbers of Gauss points is used. Numbers of points depend on types of surfaces and curves. Error of the computation is not calculated.

Parameters
theSurface- bounding surface of the region;
theDomain- surface boundings;
theLocation- surface location;
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;

◆ Compute() [5/6]

Standard_Real BRepGProp_Gauss::Compute ( BRepGProp_Face theSurface,
BRepGProp_Domain theDomain,
const gp_Pnt theLocation,
const Standard_Real  theEps,
const Standard_Real  theCoeff[],
const Standard_Boolean  theByPoint,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of the region of 3D space which can be delimited by the surface and point or surface and plane. Adaptive 2D Gauss integration is used. If Epsilon more than 0.001 then algorithm performs non-adaptive integration.

Parameters
theSurface- bounding surface of the region;
theDomain- surface boundings;
theLocation- location of the point or the plane;
theEps- maximal relative error of computed mass (volume) for face;
theCoeff- plane coefficients;
theIsByPoint- flag of restricition (point/plane);
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;
Returns
value of error which is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values for two successive steps of adaptive integration.

◆ Compute() [6/6]

Standard_Real BRepGProp_Gauss::Compute ( BRepGProp_Face theSurface,
BRepGProp_Domain theDomain,
const gp_Pnt theLocation,
const Standard_Real  theEps,
Standard_Real theOutMass,
gp_Pnt theOutGravityCenter,
gp_Mat theOutInertia 
)

Computes the global properties of the face. Adaptive 2D Gauss integration is used. If Epsilon more than 0.001 then algorithm performs non-adaptive integration.

Parameters
theSurface- bounding surface of the region;
theDomain- surface boundings;
theLocation- surface location;
theEps- maximal relative error of computed mass (square) for face;
theOutMass[out]- mass (volume) of region;
theOutGravityCenter[out]- garvity center of region;
theOutInertia[out]- matrix of inertia;
Returns
value of error which is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values for two successive steps of adaptive integration.

The documentation for this class was generated from the following file: