---Copyright: Matra Datavision 1991
class Ax2d from gp inherits Storable
---Purpose:
-- Describes an axis in the plane (2D space).
-- An axis is defined by:
-- - its origin (also referred to as its "Location point"), and
-- - its unit vector (referred to as its "Direction").
-- An axis implicitly defines a direct, right-handed
-- coordinate system in 2D space by:
-- - its origin,
-- - its "Direction" (giving the "X Direction" of the coordinate system), and
-- - the unit vector normal to "Direction" (positive angle
-- measured in the trigonometric sense).
-- An axis is used:
-- - to describe 2D geometric entities (for example, the
-- axis which defines angular coordinates on a circle).
-- It serves for the same purpose as the STEP function
-- "axis placement one axis", or
-- - to define geometric transformations (axis of
-- symmetry, axis of rotation, and so on).
-- Note: to define a left-handed 2D coordinate system, use gp_Ax22d.
uses Dir2d, Pnt2d, Trsf2d, Vec2d
is
Create returns Ax2d;
---C++:inline
--- Purpose : Creates an axis object representing X axis of
-- the reference co-ordinate system.
Create (P : Pnt2d; V : Dir2d) returns Ax2d;
---C++:inline
--- Purpose :
-- Creates an Ax2d.
is the "Location" point of
-- the axis placement and V is the "Direction" of
-- the axis placement.
SetLocation (me : out; Locat : Pnt2d) is static;
---C++:inline
--- Purpose : Changes the "Location" point (origin) of .
SetDirection (me : out; V : Dir2d) is static;
---C++:inline
--- Purpose : Changes the direction of .
Location (me) returns Pnt2d is static;
---C++:inline
--- Purpose : Returns the origin of .
---C++: return const&
Direction (me) returns Dir2d is static;
---C++:inline
--- Purpose : Returns the direction of .
---C++: return const&
IsCoaxial (me; Other : Ax2d; AngularTolerance, LinearTolerance : Real)
returns Boolean
is static;
--- Purpose :
-- Returns True if :
-- . the angle between and is lower or equal
-- to and
-- . the distance between .Location() and is lower
-- or equal to and
-- . the distance between .Location() and is lower
-- or equal to LinearTolerance.
IsNormal (me; Other : Ax2d; AngularTolerance : Real) returns Boolean
is static;
---C++:inline
--- Purpose : Returns true if this axis and the axis Other are normal to
-- each other. That is, if the angle between the two axes is equal to Pi/2 or -Pi/2.
-- Note: the tolerance criterion is given by AngularTolerance.
IsOpposite (me; Other : Ax2d; AngularTolerance : Real) returns Boolean
is static;
---C++:inline
--- Purpose : Returns true if this axis and the axis Other are parallel,
-- and have opposite orientations. That is, if the angle
-- between the two axes is equal to Pi or -Pi.
-- Note: the tolerance criterion is given by AngularTolerance.
IsParallel (me; Other : Ax2d; AngularTolerance : Real) returns Boolean
is static;
---C++:inline
--- Purpose : Returns true if this axis and the axis Other are parallel,
-- and have either the same or opposite orientations. That
-- is, if the angle between the two axes is equal to 0, Pi or -Pi.
-- Note: the tolerance criterion is given by AngularTolerance.
Angle (me; Other : Ax2d) returns Real is static;
---C++:inline
--- Purpose :
-- Computes the angle, in radians, between this axis and
-- the axis Other. The value of the angle is between -Pi and Pi.
Reverse (me : in out) is static;
---C++:inline
--- Purpose : Reverses the direction of and assigns the result to this axis.
Reversed (me) returns Ax2d is static;
---C++:inline
--- Purpose :
-- Computes a new axis placement with a direction opposite to
-- the direction of .
Mirror (me : in out; P : Pnt2d) is static;
Mirrored (me; P : Pnt2d) returns Ax2d is static;
--- Purpose :
-- Performs the symmetrical transformation of an axis
-- placement with respect to the point P which is the
-- center of the symmetry.
Mirror (me : in out; A : Ax2d) is static;
Mirrored (me; A : Ax2d) returns Ax2d is static;
--- Purpose :
-- Performs the symmetrical transformation of an axis
-- placement with respect to an axis placement which
-- is the axis of the symmetry.
Rotate (me : in out; P : Pnt2d; Ang : Real) is static;
---C++:inline
Rotated (me; P : Pnt2d; Ang : Real) returns Ax2d is static;
---C++:inline
--- Purpose :
-- Rotates an axis placement. is the center of the
-- rotation . Ang is the angular value of the rotation
-- in radians.
Scale (me : in out; P : Pnt2d; S : Real) is static;
Scaled (me; P : Pnt2d; S : Real) returns Ax2d is static;
---C++:inline
--- Purpose :
-- Applies a scaling transformation on the axis placement.
-- The "Location" point of the axisplacement is modified.
-- The "Direction" is reversed if the scale is negative.
Transform (me : in out; T : Trsf2d) is static;
---C++:inline
Transformed(me; T : Trsf2d) returns Ax2d is static;
---C++:inline
--- Purpose : Transforms an axis placement with a Trsf.
Translate (me : in out; V : Vec2d) is static;
---C++:inline
Translated (me; V : Vec2d) returns Ax2d is static;
---C++:inline
--- Purpose :
-- Translates an axis placement in the direction of the vector
-- . The magnitude of the translation is the vector's magnitude.
Translate (me : in out; P1, P2 : Pnt2d) is static;
---C++:inline
Translated (me; P1, P2 : Pnt2d) returns Ax2d is static;
---C++:inline
--- Purpose :
-- Translates an axis placement from the point to the
-- point .
fields
loc : Pnt2d;
vdir : Dir2d;
end;