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

FoundationClasses
TKMath
gp


gp_GTrsf Class Reference

Defines a non-persistent transformation in 3D space.
This transformation is a general transformation.
It can be a Trsf from gp, an affinity, or you can define
your own transformation giving the matrix of transformation.

With a Gtrsf you can transform only a triplet of coordinates
XYZ. It is not possible to transform other geometric objects
because these transformations can change the nature of non-
elementary geometric objects.
The transformation GTrsf can be represented as follow :

V1 V2 V3 T XYZ XYZ
| a11 a12 a13 a14 | | x | | x'|
| a21 a22 a23 a24 | | y | | y'|
| a31 a32 a33 a34 | | z | = | z'|
| 0 0 0 1 | | 1 | | 1 |
.

#include <gp_GTrsf.hxx>


Public Member Functions

void * operator new (size_t, void *anAddress)
void * operator new (size_t size)
void operator delete (void *anAddress)
 gp_GTrsf ()
 Returns the Identity transformation.
.
 gp_GTrsf (const gp_Trsf &T)
 Converts the gp_Trsf transformation T into a
general transformation, i.e. Returns a GTrsf with
the same matrix of coefficients as the Trsf T.
.
 gp_GTrsf (const gp_Mat &M, const gp_XYZ &V)
 Creates a transformation based on the matrix M and the
vector V where M defines the vectorial part of
the transformation, and V the translation part, or
.
void SetAffinity (const gp_Ax1 &A1, const Standard_Real Ratio)
 Changes this transformation into an affinity of ratio Ratio
with respect to the axis A1.
Note: an affinity is a point-by-point transformation that
transforms any point P into a point P' such that if H is
the orthogonal projection of P on the axis A1 or the
plane A2, the vectors HP and HP' satisfy:
HP' = Ratio * HP.
.
void SetAffinity (const gp_Ax2 &A2, const Standard_Real Ratio)
 Changes this transformation into an affinity of ratio Ratio
with respect to the plane defined by the origin, the "X Direction" and
the "Y Direction" of coordinate system A2.
Note: an affinity is a point-by-point transformation that
transforms any point P into a point P' such that if H is
the orthogonal projection of P on the axis A1 or the
plane A2, the vectors HP and HP' satisfy:
HP' = Ratio * HP.
.
void SetValue (const Standard_Integer Row, const Standard_Integer Col, const Standard_Real Value)
 Replaces the coefficient (Row, Col) of the matrix representing
this transformation by Value. Raises OutOfRange
if Row < 1 or Row > 3 or Col < 1 or Col > 4
.
void SetVectorialPart (const gp_Mat &Matrix)
 Replaces the vectorial part of this transformation by Matrix.
.
Standard_EXPORT void SetTranslationPart (const gp_XYZ &Coord)
 Replaces the translation part of
this transformation by the coordinates of the number triple Coord.
.
void SetTrsf (const gp_Trsf &T)
 Assigns the vectorial and translation parts of T to this transformation.
.
Standard_Boolean IsNegative () const
 Returns true if the determinant of the vectorial part of
this transformation is negative.
.
Standard_Boolean IsSingular () const
 Returns true if this transformation is singular (and
therefore, cannot be inverted).
Note: The Gauss LU decomposition is used to invert the
transformation matrix. Consequently, the transformation
is considered as singular if the largest pivot found is less
than or equal to gp::Resolution().
Warning
If this transformation is singular, it cannot be inverted.
.
Standard_EXPORT gp_TrsfForm Form () const
 Returns the nature of the transformation. It can be an
identity transformation, a rotation, a translation, a mirror
transformation (relative to a point, an axis or a plane), a
scaling transformation, a compound transformation or
some other type of transformation.
.
Standard_EXPORT void SetForm ()
 verify and set the shape of the GTrsf Other or CompoundTrsf
Ex :
myGTrsf.SetValue(row1,col1,val1);
myGTrsf.SetValue(row2,col2,val2);
...
myGTrsf.SetForm();

const gp_XYZTranslationPart () const
 Returns the translation part of the GTrsf.
.
const gp_MatVectorialPart () const
 Computes the vectorial part of the GTrsf. The returned Matrix
is a 3*3 matrix.
.
Standard_Real Value (const Standard_Integer Row, const Standard_Integer Col) const
 Returns the coefficients of the global matrix of transformation.
Raises OutOfRange if Row < 1 or Row > 3 or Col < 1 or Col > 4
.
Standard_Real operator() (const Standard_Integer Row, const Standard_Integer Col) const
Standard_EXPORT void Invert ()
gp_GTrsf Inverted () const
 Computes the reverse transformation.
Raises an exception if the matrix of the transformation
is not inversible.
.
Standard_EXPORT void Multiply (const gp_GTrsf &T)
 Computes the transformation composed from T and <me>.
In a C++ implementation you can also write Tcomposed = <me> * T.
Example :
GTrsf T1, T2, Tcomp; ...............
//composition :
Tcomp = T2.Multiplied(T1); // or (Tcomp = T2 * T1)
// transformation of a point
XYZ P(10.,3.,4.);
XYZ P1(P);
Tcomp.Transforms(P1); //using Tcomp
XYZ P2(P);
T1.Transforms(P2); //using T1 then T2
T2.Transforms(P2); // P1 = P2 !!!
C++: alias operator *=
.
gp_GTrsf Multiplied (const gp_GTrsf &T) const
 Computes the transformation composed with <me> and T.
<me> = T * <me>
.
Standard_EXPORT void PreMultiply (const gp_GTrsf &T)
 Computes the product of the transformation T and this
transformation and assigns the result to this transformation.
this = T * this
.
Standard_EXPORT void Power (const Standard_Integer N)
gp_GTrsf Powered (const Standard_Integer N) const
 Computes:
- the product of this transformation multiplied by itself
N times, if N is positive, or
- the product of the inverse of this transformation
multiplied by itself |N| times, if N is negative.
If N equals zero, the result is equal to the Identity
transformation.
I.e.: <me> * <me> * .......* <me>, N time.
if N =0 <me> = Identity
if N < 0 <me> = <me>.Inverse() *...........* <me>.Inverse().
.
void Transforms (gp_XYZ &Coord) const
void Transforms (Standard_Real &X, Standard_Real &Y, Standard_Real &Z) const
 Transforms a triplet XYZ with a GTrsf.
.
gp_Trsf Trsf () const
const gp_Mat_CSFDB_Getgp_GTrsfmatrix () const
const gp_XYZ_CSFDB_Getgp_GTrsfloc () const
gp_TrsfForm _CSFDB_Getgp_GTrsfshape () const
void _CSFDB_Setgp_GTrsfshape (const gp_TrsfForm p)
Standard_Real _CSFDB_Getgp_GTrsfscale () const
void _CSFDB_Setgp_GTrsfscale (const Standard_Real p)

Private Attributes

gp_Mat matrix
gp_XYZ loc
gp_TrsfForm shape
Standard_Real scale

Friends

Standard_EXPORT friend Handle_Standard_Type & gp_GTrsf_Type_ ()


Constructor & Destructor Documentation

gp_GTrsf::gp_GTrsf  )  [inline]
 

gp_GTrsf::gp_GTrsf const gp_Trsf T  )  [inline]
 

gp_GTrsf::gp_GTrsf const gp_Mat M,
const gp_XYZ V
[inline]
 


Member Function Documentation

const gp_XYZ& gp_GTrsf::_CSFDB_Getgp_GTrsfloc  )  const [inline]
 

const gp_Mat& gp_GTrsf::_CSFDB_Getgp_GTrsfmatrix  )  const [inline]
 

Standard_Real gp_GTrsf::_CSFDB_Getgp_GTrsfscale  )  const [inline]
 

gp_TrsfForm gp_GTrsf::_CSFDB_Getgp_GTrsfshape  )  const [inline]
 

void gp_GTrsf::_CSFDB_Setgp_GTrsfscale const Standard_Real  p  )  [inline]
 

void gp_GTrsf::_CSFDB_Setgp_GTrsfshape const gp_TrsfForm  p  )  [inline]
 

gp_TrsfForm gp_GTrsf::Form  )  const [inline]
 

Standard_EXPORT void gp_GTrsf::Invert  ) 
 

gp_GTrsf gp_GTrsf::Inverted  )  const [inline]
 

Standard_Boolean gp_GTrsf::IsNegative  )  const [inline]
 

Standard_Boolean gp_GTrsf::IsSingular  )  const [inline]
 

gp_GTrsf gp_GTrsf::Multiplied const gp_GTrsf T  )  const [inline]
 

Standard_EXPORT void gp_GTrsf::Multiply const gp_GTrsf T  ) 
 

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

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

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

Standard_Real gp_GTrsf::operator() const Standard_Integer  Row,
const Standard_Integer  Col
const [inline]
 

Standard_EXPORT void gp_GTrsf::Power const Standard_Integer  N  ) 
 

gp_GTrsf gp_GTrsf::Powered const Standard_Integer  N  )  const [inline]
 

Standard_EXPORT void gp_GTrsf::PreMultiply const gp_GTrsf T  ) 
 

void gp_GTrsf::SetAffinity const gp_Ax2 A2,
const Standard_Real  Ratio
[inline]
 

void gp_GTrsf::SetAffinity const gp_Ax1 A1,
const Standard_Real  Ratio
[inline]
 

Standard_EXPORT void gp_GTrsf::SetForm  ) 
 

Standard_EXPORT void gp_GTrsf::SetTranslationPart const gp_XYZ Coord  ) 
 

void gp_GTrsf::SetTrsf const gp_Trsf T  )  [inline]
 

void gp_GTrsf::SetValue const Standard_Integer  Row,
const Standard_Integer  Col,
const Standard_Real  Value
[inline]
 

void gp_GTrsf::SetVectorialPart const gp_Mat Matrix  )  [inline]
 

void gp_GTrsf::Transforms Standard_Real X,
Standard_Real Y,
Standard_Real Z
const [inline]
 

void gp_GTrsf::Transforms gp_XYZ Coord  )  const [inline]
 

const gp_XYZ & gp_GTrsf::TranslationPart  )  const [inline]
 

gp_Trsf gp_GTrsf::Trsf  )  const [inline]
 

Standard_Real gp_GTrsf::Value const Standard_Integer  Row,
const Standard_Integer  Col
const [inline]
 

const gp_Mat & gp_GTrsf::VectorialPart  )  const [inline]
 


Friends And Related Function Documentation

Standard_EXPORT friend Handle_Standard_Type& gp_GTrsf_Type_  )  [friend]
 


Field Documentation

gp_XYZ gp_GTrsf::loc [private]
 

gp_Mat gp_GTrsf::matrix [private]
 

Standard_Real gp_GTrsf::scale [private]
 

gp_TrsfForm gp_GTrsf::shape [private]
 


The documentation for this class was generated from the following files:
Generated on Mon Aug 25 13:12:40 2008 for OpenCASCADE by  doxygen 1.4.1