# 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_XYZ & | TranslationPart () const
| Returns the translation part of the GTrsf. .
const gp_Mat & | VectorialPart () 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:

- gp_GTrsf.hxx
- gp_GTrsf.lxx