Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions
gp_Trsf2d Class Reference

Defines a non-persistent transformation in 2D space. <br>

The following transformations are implemented :
. Translation, Rotation, Scale
. Symmetry with respect to a point and a line.
Complex transformations can be obtained by combining the
previous elementary transformations using the method Multiply.
The transformations can be represented as follow :

V1 V2 T XY XY
| a11 a12 a13 | | x | | x'|
| a21 a22 a23 | | y | | y'|
| 0 0 1 | | 1 | | 1 |

where {V1, V2} defines the vectorial part of the transformation
and T defines the translation part of the transformation.
More...

#include <gp_Trsf2d.hxx>

Public Member Functions

 gp_Trsf2d ()
 Returns identity transformation.
More...
 
 gp_Trsf2d (const gp_Trsf &T)
 Creates a 2d transformation in the XY plane from a
3d transformation .
More...
 
void SetMirror (const gp_Pnt2d &P)
 Changes the transformation into a symmetrical transformation.
P is the center of the symmetry.
More...
 
void SetMirror (const gp_Ax2d &A)
 Changes the transformation into a symmetrical transformation.
A is the center of the axial symmetry.
More...
 
void SetRotation (const gp_Pnt2d &P, const Standard_Real Ang)
 Changes the transformation into a rotation.
P is the rotation's center and Ang is the angular value of the
rotation in radian.
More...
 
void SetScale (const gp_Pnt2d &P, const Standard_Real S)
 Changes the transformation into a scale.
P is the center of the scale and S is the scaling value.
More...
 
void SetTransformation (const gp_Ax2d &FromSystem1, const gp_Ax2d &ToSystem2)
 Changes a transformation allowing passage from the coordinate
system "FromSystem1" to the coordinate system "ToSystem2".
More...
 
void SetTransformation (const gp_Ax2d &ToSystem)
 Changes the transformation allowing passage from the basic
coordinate system
{P(0.,0.,0.), VX (1.,0.,0.), VY (0.,1.,0.)}
to the local coordinate system defined with the Ax2d ToSystem.
More...
 
void SetTranslation (const gp_Vec2d &V)
 Changes the transformation into a translation.
V is the vector of the translation.
More...
 
void SetTranslation (const gp_Pnt2d &P1, const gp_Pnt2d &P2)
 Makes the transformation into a translation from
the point P1 to the point P2.
More...
 
void SetTranslationPart (const gp_Vec2d &V)
 Replaces the translation vector with V.
More...
 
void SetScaleFactor (const Standard_Real S)
 Modifies the scale factor.
More...
 
Standard_Boolean IsNegative () const
 
 Returns true if the determinant of the vectorial part of <br>

this transformation is negative..
More...

 
gp_TrsfForm Form () const
 
Returns the nature of the transformation. It can be  an <br>

identity transformation, a rotation, a translation, a mirror
(relative to a point or an axis), a scaling transformation,
or a compound transformation.
More...

 
Standard_Real ScaleFactor () const
 Returns the scale factor.
More...
 
const gp_XYTranslationPart () const
 Returns the translation part of the transformation's matrix
More...
 
gp_Mat2d VectorialPart () const
 Returns the vectorial part of the transformation. It is a
2*2 matrix which includes the scale factor.
More...
 
const gp_Mat2dHVectorialPart () const
 Returns the homogeneous vectorial part of the transformation.
It is a 2*2 matrix which doesn't include the scale factor.
The coefficients of this matrix must be multiplied by the
scale factor to obtain the coefficients of the transformation.
More...
 
Standard_Real RotationPart () const
 Returns the angle corresponding to the rotational component
of the transformation matrix (operation opposite to SetRotation()).
More...
 
Standard_Real Value (const Standard_Integer Row, const Standard_Integer Col) const
 
Returns the coefficients of the transformation's matrix. <br>

It is a 2 rows * 3 columns matrix.
Raises OutOfRange if Row < 1 or Row > 2 or Col < 1 or Col > 3
More...

 
void Invert ()
 
gp_Trsf2d Inverted () const
 Computes the reverse transformation.
Raises an exception if the matrix of the transformation
is not inversible, it means that the scale factor is lower
or equal to Resolution from package gp.
More...
 
gp_Trsf2d Multiplied (const gp_Trsf2d &T) const
 
gp_Trsf2d operator* (const gp_Trsf2d &T) const
 
void Multiply (const gp_Trsf2d &T)
 Computes the transformation composed from <T> and <me>.
In a C++ implementation you can also write Tcomposed = <me> * T.
Example :
Trsf2d T1, T2, Tcomp; ...............
//composition :
Tcomp = T2.Multiplied(T1); // or (Tcomp = T2 * T1)
// transformation of a point
Pnt2d P1(10.,3.,4.);
Pnt2d P2 = P1.Transformed(Tcomp); //using Tcomp
Pnt2d P3 = P1.Transformed(T1); //using T1 then T2
P3.Transform(T2); // P3 = P2 !!!
More...
 
void operator*= (const gp_Trsf2d &T)
 
void PreMultiply (const gp_Trsf2d &T)
 Computes the transformation composed from <me> and T.
<me> = T * <me>
More...
 
void Power (const Standard_Integer N)
 
gp_Trsf2d Powered (const Standard_Integer N)
 
Computes the following composition of transformations <br>

<me> * <me> * .......* <me>, N time.
if N = 0 <me> = Identity
if N < 0 <me> = <me>.Inverse() *...........* <me>.Inverse().

Raises if N < 0 and if the matrix of the transformation not
inversible.
More...

 
void Transforms (Standard_Real &X, Standard_Real &Y) const
 
void Transforms (gp_XY &Coord) const
 Transforms a doublet XY with a Trsf2d
More...
 
Standard_Real _CSFDB_Getgp_Trsf2dscale () const
 
void _CSFDB_Setgp_Trsf2dscale (const Standard_Real p)
 
gp_TrsfForm _CSFDB_Getgp_Trsf2dshape () const
 
void _CSFDB_Setgp_Trsf2dshape (const gp_TrsfForm p)
 
const gp_Mat2d_CSFDB_Getgp_Trsf2dmatrix () const
 
const gp_XY_CSFDB_Getgp_Trsf2dloc () const
 

Detailed Description

Defines a non-persistent transformation in 2D space. <br>

The following transformations are implemented :
. Translation, Rotation, Scale
. Symmetry with respect to a point and a line.
Complex transformations can be obtained by combining the
previous elementary transformations using the method Multiply.
The transformations can be represented as follow :

V1 V2 T XY XY
| a11 a12 a13 | | x | | x'|
| a21 a22 a23 | | y | | y'|
| 0 0 1 | | 1 | | 1 |

where {V1, V2} defines the vectorial part of the transformation
and T defines the translation part of the transformation.

Constructor & Destructor Documentation

gp_Trsf2d::gp_Trsf2d ( )

Returns identity transformation.

gp_Trsf2d::gp_Trsf2d ( const gp_Trsf T)

Creates a 2d transformation in the XY plane from a
3d transformation .

Member Function Documentation

const gp_XY& gp_Trsf2d::_CSFDB_Getgp_Trsf2dloc ( ) const
inline
const gp_Mat2d& gp_Trsf2d::_CSFDB_Getgp_Trsf2dmatrix ( ) const
inline
Standard_Real gp_Trsf2d::_CSFDB_Getgp_Trsf2dscale ( ) const
inline
gp_TrsfForm gp_Trsf2d::_CSFDB_Getgp_Trsf2dshape ( ) const
inline
void gp_Trsf2d::_CSFDB_Setgp_Trsf2dscale ( const Standard_Real  p)
inline
void gp_Trsf2d::_CSFDB_Setgp_Trsf2dshape ( const gp_TrsfForm  p)
inline
gp_TrsfForm gp_Trsf2d::Form ( ) const

Returns the nature of the transformation. It can be  an <br>

identity transformation, a rotation, a translation, a mirror
(relative to a point or an axis), a scaling transformation,
or a compound transformation.

const gp_Mat2d& gp_Trsf2d::HVectorialPart ( ) const

Returns the homogeneous vectorial part of the transformation.
It is a 2*2 matrix which doesn't include the scale factor.
The coefficients of this matrix must be multiplied by the
scale factor to obtain the coefficients of the transformation.

void gp_Trsf2d::Invert ( )
gp_Trsf2d gp_Trsf2d::Inverted ( ) const

Computes the reverse transformation.
Raises an exception if the matrix of the transformation
is not inversible, it means that the scale factor is lower
or equal to Resolution from package gp.

Standard_Boolean gp_Trsf2d::IsNegative ( ) const

 Returns true if the determinant of the vectorial part of <br>

this transformation is negative..

gp_Trsf2d gp_Trsf2d::Multiplied ( const gp_Trsf2d T) const
void gp_Trsf2d::Multiply ( const gp_Trsf2d T)

Computes the transformation composed from <T> and <me>.
In a C++ implementation you can also write Tcomposed = <me> * T.
Example :
Trsf2d T1, T2, Tcomp; ...............
//composition :
Tcomp = T2.Multiplied(T1); // or (Tcomp = T2 * T1)
// transformation of a point
Pnt2d P1(10.,3.,4.);
Pnt2d P2 = P1.Transformed(Tcomp); //using Tcomp
Pnt2d P3 = P1.Transformed(T1); //using T1 then T2
P3.Transform(T2); // P3 = P2 !!!

gp_Trsf2d gp_Trsf2d::operator* ( const gp_Trsf2d T) const
inline
void gp_Trsf2d::operator*= ( const gp_Trsf2d T)
inline
void gp_Trsf2d::Power ( const Standard_Integer  N)
gp_Trsf2d gp_Trsf2d::Powered ( const Standard_Integer  N)

Computes the following composition of transformations <br>

<me> * <me> * .......* <me>, N time.
if N = 0 <me> = Identity
if N < 0 <me> = <me>.Inverse() *...........* <me>.Inverse().

Raises if N < 0 and if the matrix of the transformation not
inversible.

void gp_Trsf2d::PreMultiply ( const gp_Trsf2d T)

Computes the transformation composed from <me> and T.
<me> = T * <me>

Standard_Real gp_Trsf2d::RotationPart ( ) const

Returns the angle corresponding to the rotational component
of the transformation matrix (operation opposite to SetRotation()).

Standard_Real gp_Trsf2d::ScaleFactor ( ) const

Returns the scale factor.

void gp_Trsf2d::SetMirror ( const gp_Pnt2d P)

Changes the transformation into a symmetrical transformation.
P is the center of the symmetry.

void gp_Trsf2d::SetMirror ( const gp_Ax2d A)

Changes the transformation into a symmetrical transformation.
A is the center of the axial symmetry.

void gp_Trsf2d::SetRotation ( const gp_Pnt2d P,
const Standard_Real  Ang 
)

Changes the transformation into a rotation.
P is the rotation's center and Ang is the angular value of the
rotation in radian.

void gp_Trsf2d::SetScale ( const gp_Pnt2d P,
const Standard_Real  S 
)

Changes the transformation into a scale.
P is the center of the scale and S is the scaling value.

void gp_Trsf2d::SetScaleFactor ( const Standard_Real  S)

Modifies the scale factor.

void gp_Trsf2d::SetTransformation ( const gp_Ax2d FromSystem1,
const gp_Ax2d ToSystem2 
)

Changes a transformation allowing passage from the coordinate
system "FromSystem1" to the coordinate system "ToSystem2".

void gp_Trsf2d::SetTransformation ( const gp_Ax2d ToSystem)

Changes the transformation allowing passage from the basic
coordinate system
{P(0.,0.,0.), VX (1.,0.,0.), VY (0.,1.,0.)}
to the local coordinate system defined with the Ax2d ToSystem.

void gp_Trsf2d::SetTranslation ( const gp_Vec2d V)

Changes the transformation into a translation.
V is the vector of the translation.

void gp_Trsf2d::SetTranslation ( const gp_Pnt2d P1,
const gp_Pnt2d P2 
)

Makes the transformation into a translation from
the point P1 to the point P2.

void gp_Trsf2d::SetTranslationPart ( const gp_Vec2d V)

Replaces the translation vector with V.

void gp_Trsf2d::Transforms ( Standard_Real X,
Standard_Real Y 
) const
void gp_Trsf2d::Transforms ( gp_XY Coord) const

Transforms a doublet XY with a Trsf2d

const gp_XY& gp_Trsf2d::TranslationPart ( ) const

Returns the translation part of the transformation's matrix

Standard_Real gp_Trsf2d::Value ( const Standard_Integer  Row,
const Standard_Integer  Col 
) const

Returns the coefficients of the transformation's matrix. <br>

It is a 2 rows * 3 columns matrix.
Raises OutOfRange if Row < 1 or Row > 2 or Col < 1 or Col > 3

gp_Mat2d gp_Trsf2d::VectorialPart ( ) const

Returns the vectorial part of the transformation. It is a
2*2 matrix which includes the scale factor.


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