CAD Exchanger SDK
cadex::ModelData_Axis3Placement Class Reference

Defines a right-handed or left-handed axis placement in 3D. More...

Public Member Functions

 ModelData_Axis3Placement ()
 Constructor.
 
 ModelData_Axis3Placement (const ModelData_Point &theLocation, const ModelData_Direction &theAxis, const ModelData_Direction &theRefDirection)
 Constructor.
 
 ModelData_Axis3Placement (const ModelData_Axis2Placement &theOther)
 Constructor.
 
 ModelData_Axis3Placement (const gp_Ax3 &)
 Constructor.
 
 operator const gp_Ax3 & () const
 
 operator gp_Ax3 & ()
 
const ModelData_PointLocation () const
 Returns a location point of the axis placement.
 
const ModelData_DirectionAxis () const
 Returns a Z-direction of the axis placement. More...
 
const ModelData_DirectionXDirection () const
 Returns a X-direction of the axis placement. More...
 
const ModelData_DirectionYDirection () const
 Returns a Y-direction of the axis placement. More...
 
bool IsRightHanded () const
 Returns true if the axis placement is right-handed. More...
 
void Transform (const ModelData_Transformation &theTransformation)
 Transforms the axis with a transformation matrix.
 
ModelData_Axis3Placement Transformed (const ModelData_Transformation &theTransformation) const
 Returns an axis which is transformed with a transformation matrix. More...
 
void Mirror (const ModelData_Point &theAxis)
 
void Mirror (const ModelData_Axis1Placement &theAxis)
 
void Mirror (const ModelData_Axis2Placement &theAxis)
 
template<typename T >
ModelData_Axis3Placement Mirrored (const T &theRef) const
 
void Rotate (const ModelData_Axis1Placement &theAxis, double theAngle)
 
ModelData_Axis3Placement Rotated (const ModelData_Axis1Placement &theAxis, double theAngle)
 
void Translate (const ModelData_Vector &theVector)
 
ModelData_Axis3Placement Translated (const ModelData_Vector &theVector)
 

Detailed Description

Defines a right-handed or left-handed axis placement in 3D.

An axis placement is defined similar to ModelData_Axis2Placement, however its directions can be reversed independently.

The following images depict examples of right- and left-handed axis placements:

axis2.png
Axis3Placement (right-handed)
axis3.png
Axis3Placement (left-handed)
See also
ModelData_Axis2Placement.
Examples:
brepmodeling/main.cxx.

Member Function Documentation

◆ Axis()

const ModelData_Direction & cadex::ModelData_Axis3Placement::Axis ( ) const

Returns a Z-direction of the axis placement.

See also
XDirection(), YDirection().

◆ IsRightHanded()

bool cadex::ModelData_Axis3Placement::IsRightHanded ( ) const

Returns true if the axis placement is right-handed.

Returns true if (XDirection() ^ YDirection()) dot Axis() > 0.

◆ Transformed()

ModelData_Axis3Placement cadex::ModelData_Axis3Placement::Transformed ( const ModelData_Transformation theTransformation) const
inline

Returns an axis which is transformed with a transformation matrix.

See also
Transform().

◆ XDirection()

const ModelData_Direction & cadex::ModelData_Axis3Placement::XDirection ( ) const

Returns a X-direction of the axis placement.

See also
Axis(), YDirection().

◆ YDirection()

const ModelData_Direction & cadex::ModelData_Axis3Placement::YDirection ( ) const

Returns a Y-direction of the axis placement.

See also
Axis(), XDirection().