# FoundationClasses
TKMath
gp

# gp_Ax2 Class Reference

Describes a right-handed coordinate system in 3D space.
A coordinate system is defined by:
- its origin (also referred to as its "Location point"), and
- three orthogonal unit vectors, termed respectively the
"X Direction", the "Y Direction" and the "Direction" (also
referred to as the "main Direction").
The "Direction" of the coordinate system is called its
"main Direction" because whenever this unit vector is
modified, the "X Direction" and the "Y Direction" are
recomputed. However, when we modify either the "X <br> Direction" or the "Y Direction", "Direction" is not modified.
The "main Direction" is also the "Z Direction".
Since an Ax2 coordinate system is right-handed, its
"main Direction" is always equal to the cross product of
its "X Direction" and "Y Direction". (To define a
left-handed coordinate system, use gp_Ax3.)
A coordinate system is used:
- to describe geometric entities, in particular to position
them. The local coordinate system of a geometric
entity serves the same purpose as the STEP function
"axis placement two axes", or
- to define geometric transformations.
Note: we refer to the "X Axis", "Y Axis" and "Z Axis",
respectively, as to axes having:
- the origin of the coordinate system as their origin, and
- the unit vectors "X Direction", "Y Direction" and "main <br> Direction", respectively, as their unit vectors.
The "Z Axis" is also the "main Axis".
.

`#include <gp_Ax2.hxx>`

## Public Member Functions

void * | operator new (size_t, void *anAddress)
void * | operator new (size_t size)
void | operator delete (void *anAddress)
| gp_Ax2 ()
| Creates an indefinite coordinate system. .
| gp_Ax2 (const gp_Pnt &P, const gp_Dir &N, const gp_Dir &Vx)
| Creates an axis placement with an origin P such that: - N is the Direction, and - the "X Direction" is normal to N, in the plane defined by the vectors (N, Vx): "X <br> Direction" = (N ^ Vx) ^ N, Exception: raises ConstructionError if N and Vx are parallel (same or opposite orientation). .
Standard_EXPORT | gp_Ax2 (const gp_Pnt &P, const gp_Dir &V)
| Creates - a coordinate system with an origin P, where V gives the "main Direction" (here, "X Direction" and "Y <br> Direction" are defined automatically). .
Standard_EXPORT void | SetAxis (const gp_Ax1 &A1)
| Assigns the origin and "main Direction" of the axis A1 to this coordinate system, then recomputes its "X Direction" and "Y Direction". Note: The new "X Direction" is computed as follows: new "X Direction" = V1 ^(previous "X Direction" ^ V) where V is the "Direction" of A1. Exceptions Standard_ConstructionError if A1 is parallel to the "X <br> Direction" of this coordinate system. .
Standard_EXPORT void | SetDirection (const gp_Dir &V)
| Changes the "main Direction" of this coordinate system, then recomputes its "X Direction" and "Y Direction". Note: the new "X Direction" is computed as follows: new "X Direction" = V ^ (previous "X Direction" ^ V) Exceptions Standard_ConstructionError if V is parallel to the "X <br> Direction" of this coordinate system. .
Standard_EXPORT void | SetLocation (const gp_Pnt &P)
| Changes the "Location" point (origin) of <me>. .
Standard_EXPORT void | SetXDirection (const gp_Dir &Vx)
| Changes the "Xdirection" of <me>. The main direction "Direction" is not modified, the "Ydirection" is modified. If <vx> is not normal to the main direction then <xdirection> is computed as follows XDirection = Direction ^ (Vx ^ Direction). Exceptions Standard_ConstructionError if Vx or Vy is parallel to the "main Direction" of this coordinate system. .
Standard_EXPORT void | SetYDirection (const gp_Dir &Vy)
| Changes the "Ydirection" of <me>. The main direction is not modified but the "Xdirection" is changed. If <vy> is not normal to the main direction then "YDirection" is computed as follows YDirection = Direction ^ (<vy> ^ Direction). Exceptions Standard_ConstructionError if Vx or Vy is parallel to the "main Direction" of this coordinate system. .
Standard_EXPORT Standard_Real | Angle (const gp_Ax2 &Other) const
| Computes the angular value, in radians, between the main direction of <me> and the main direction of <other>. Returns the angle between 0 and PI in radians. .
const gp_Ax1 & | Axis () const
| Returns the main axis of <me>. It is the "Location" point and the main "Direction". .
const gp_Dir & | Direction () const
| Returns the main direction of <me>. .
const gp_Pnt & | Location () const
| Returns the "Location" point (origin) of <me>. .
const gp_Dir & | XDirection () const
| Returns the "XDirection" of <me>. .
const gp_Dir & | YDirection () const
| Returns the "YDirection" of <me>. .
Standard_EXPORT Standard_Boolean | IsCoplanar (const gp_Ax2 &Other, const Standard_Real LinearTolerance, const Standard_Real AngularTolerance) const
Standard_Boolean | IsCoplanar (const gp_Ax1 &A1, const Standard_Real LinearTolerance, const Standard_Real AngularTolerance) const
| Returns True if . the distance between <me> and the "Location" point of A1 is lower of equal to LinearTolerance and . the main direction of <me> and the direction of A1 are normal. Note: the tolerance criterion for angular equality is given by AngularTolerance. .
Standard_EXPORT void | Mirror (const gp_Pnt &P)

Performs a symmetrical transformation of this coordinate
system with respect to:
- the point P, and assigns the result to this coordinate system.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

Standard_EXPORT gp_Ax2 | Mirrored (const gp_Pnt &P) const

Performs a symmetrical transformation of this coordinate
system with respect to:
- the point P, and creates a new one.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

Standard_EXPORT void | Mirror (const gp_Ax1 &A1)

Performs a symmetrical transformation of this coordinate
system with respect to:
- the axis A1, and assigns the result to this coordinate systeme.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

Standard_EXPORT gp_Ax2 | Mirrored (const gp_Ax1 &A1) const

Performs a symmetrical transformation of this coordinate
system with respect to:
- the axis A1, and creates a new one.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

Standard_EXPORT void | Mirror (const gp_Ax2 &A2)

Performs a symmetrical transformation of this coordinate
system with respect to:
- the plane defined by the origin, "X Direction" and "Y <br> Direction" of coordinate system A2 and assigns the result to this coordinate systeme.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

Standard_EXPORT gp_Ax2 | Mirrored (const gp_Ax2 &A2) const

Performs a symmetrical transformation of this coordinate
system with respect to:
- the plane defined by the origin, "X Direction" and "Y <br> Direction" of coordinate system A2 and creates a new one.
Warning
This transformation is always performed on the origin.
In case of a reflection with respect to a point:
- the main direction of the coordinate system is not changed, and
- the "X Direction" and the "Y Direction" are simply reversed
In case of a reflection with respect to an axis or a plane:
- the transformation is applied to the "X Direction"
and the "Y Direction", then
- the "main Direction" is recomputed as the cross
product "X Direction" ^ "Y Direction".
This maintains the right-handed property of the
coordinate system.
.

void | Rotate (const gp_Ax1 &A1, const Standard_Real Ang)
gp_Ax2 | Rotated (const gp_Ax1 &A1, const Standard_Real Ang) const
| Rotates an axis placement. <a1> is the axis of the rotation . Ang is the angular value of the rotation in radians. .
void | Scale (const gp_Pnt &P, const Standard_Real S)
gp_Ax2 | Scaled (const gp_Pnt &P, const Standard_Real S) const
| Applies a scaling transformation on the axis placement. The "Location" point of the axisplacement is modified. Warnings : If the scale <s> is negative : . the main direction of the axis placement is not changed. . The "XDirection" and the "YDirection" are reversed. So the axis placement stay right handed. .
void | Transform (const gp_Trsf &T)
gp_Ax2 | Transformed (const gp_Trsf &T) const
| Transforms an axis placement with a Trsf. The "Location" point, the "XDirection" and the "YDirection" are transformed with T. The resulting main "Direction" of <me> is the cross product between the "XDirection" and the "YDirection" after transformation. .
void | Translate (const gp_Vec &V)
gp_Ax2 | Translated (const gp_Vec &V) const
| Translates an axis plaxement in the direction of the vector <v>. The magnitude of the translation is the vector's magnitude. .
void | Translate (const gp_Pnt &P1, const gp_Pnt &P2)
gp_Ax2 | Translated (const gp_Pnt &P1, const gp_Pnt &P2) const
| Translates an axis placement from the point <p1> to the point <p2>. .
const gp_Ax1 & | _CSFDB_Getgp_Ax2axis () const
const gp_Dir & | _CSFDB_Getgp_Ax2vydir () const
const gp_Dir & | _CSFDB_Getgp_Ax2vxdir () const

## Private Attributes

gp_Ax1 | axis
gp_Dir | vydir
gp_Dir | vxdir

## Friends

Standard_EXPORT friend Handle_Standard_Type & | gp_Ax2_Type_ ()

## Constructor & Destructor Documentation

gp_Ax2::gp_Ax2 | ( |  | ) | `[inline]`

gp_Ax2::gp_Ax2 | ( | const gp_Pnt & | P,
|  | const gp_Dir & | N,
|  | const gp_Dir & | Vx
| ) | `[inline]`

Standard_EXPORT gp_Ax2::gp_Ax2 | ( | const gp_Pnt & | P,
|  | const gp_Dir & | V
| ) |

## Member Function Documentation

const gp_Ax1& gp_Ax2::_CSFDB_Getgp_Ax2axis | ( |  | ) | const`[inline]`

const gp_Dir& gp_Ax2::_CSFDB_Getgp_Ax2vxdir | ( |  | ) | const`[inline]`

const gp_Dir& gp_Ax2::_CSFDB_Getgp_Ax2vydir | ( |  | ) | const`[inline]`

Standard_Real gp_Ax2::Angle | ( | const gp_Ax2 & | Other | ) | const`[inline]`

const gp_Ax1 & gp_Ax2::Axis | ( |  | ) | const`[inline]`

const gp_Dir & gp_Ax2::Direction | ( |  | ) | const`[inline]`

Standard_Boolean gp_Ax2::IsCoplanar | ( | const gp_Ax1 & | A1,
|  | const Standard_Real | LinearTolerance,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

Standard_Boolean gp_Ax2::IsCoplanar | ( | const gp_Ax2 & | Other,
|  | const Standard_Real | LinearTolerance,
|  | const Standard_Real | AngularTolerance
| ) | const`[inline]`

const gp_Pnt & gp_Ax2::Location | ( |  | ) | const`[inline]`

Standard_EXPORT void gp_Ax2::Mirror | ( | const gp_Ax2 & | A2 | ) |

Standard_EXPORT void gp_Ax2::Mirror | ( | const gp_Ax1 & | A1 | ) |

Standard_EXPORT void gp_Ax2::Mirror | ( | const gp_Pnt & | P | ) |

Standard_EXPORT gp_Ax2 gp_Ax2::Mirrored | ( | const gp_Ax2 & | A2 | ) | const

Standard_EXPORT gp_Ax2 gp_Ax2::Mirrored | ( | const gp_Ax1 & | A1 | ) | const

Standard_EXPORT gp_Ax2 gp_Ax2::Mirrored | ( | const gp_Pnt & | P | ) | const

void gp_Ax2::operator delete | ( | void * | anAddress | ) | `[inline]`

void* gp_Ax2::operator new | ( | size_t | size | ) | `[inline]`

void* gp_Ax2::operator new | ( | size_t | ,
|  | void * | anAddress
| ) | `[inline]`

void gp_Ax2::Rotate | ( | const gp_Ax1 & | A1,
|  | const Standard_Real | Ang
| ) | `[inline]`

gp_Ax2 gp_Ax2::Rotated | ( | const gp_Ax1 & | A1,
|  | const Standard_Real | Ang
| ) | const`[inline]`

void gp_Ax2::Scale | ( | const gp_Pnt & | P,
|  | const Standard_Real | S
| ) | `[inline]`

gp_Ax2 gp_Ax2::Scaled | ( | const gp_Pnt & | P,
|  | const Standard_Real | S
| ) | const`[inline]`

void gp_Ax2::SetAxis | ( | const gp_Ax1 & | A1 | ) | `[inline]`

void gp_Ax2::SetDirection | ( | const gp_Dir & | V | ) | `[inline]`

void gp_Ax2::SetLocation | ( | const gp_Pnt & | P | ) | `[inline]`

void gp_Ax2::SetXDirection | ( | const gp_Dir & | Vx | ) | `[inline]`

void gp_Ax2::SetYDirection | ( | const gp_Dir & | Vy | ) | `[inline]`

void gp_Ax2::Transform | ( | const gp_Trsf & | T | ) | `[inline]`

gp_Ax2 gp_Ax2::Transformed | ( | const gp_Trsf & | T | ) | const`[inline]`

void gp_Ax2::Translate | ( | const gp_Pnt & | P1,
|  | const gp_Pnt & | P2
| ) | `[inline]`

void gp_Ax2::Translate | ( | const gp_Vec & | V | ) | `[inline]`

gp_Ax2 gp_Ax2::Translated | ( | const gp_Pnt & | P1,
|  | const gp_Pnt & | P2
| ) | const`[inline]`

gp_Ax2 gp_Ax2::Translated | ( | const gp_Vec & | V | ) | const`[inline]`

const gp_Dir & gp_Ax2::XDirection | ( |  | ) | const`[inline]`

const gp_Dir & gp_Ax2::YDirection | ( |  | ) | const`[inline]`

## Friends And Related Function Documentation

Standard_EXPORT friend Handle_Standard_Type& gp_Ax2_Type_ | ( |  | ) | `[friend]`

## Field Documentation

gp_Ax1 gp_Ax2::axis `[private]`

gp_Dir gp_Ax2::vxdir `[private]`

gp_Dir gp_Ax2::vydir `[private]`

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

- gp_Ax2.hxx
- gp_Ax2.lxx