1 // Created on: 1993-03-09
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 #ifndef _Geom_Axis1Placement_HeaderFile
18 #define _Geom_Axis1Placement_HeaderFile
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
23 #include <Geom_AxisPlacement.hxx>
31 class Geom_Axis1Placement;
32 DEFINE_STANDARD_HANDLE(Geom_Axis1Placement, Geom_AxisPlacement)
34 //! Describes an axis in 3D space.
35 //! An axis is defined by:
36 //! - its origin, also termed the "Location point" of the axis,
37 //! - its unit vector, termed the "Direction" of the axis.
38 //! Note: Geom_Axis1Placement axes provide the
39 //! same kind of "geometric" services as gp_Ax1 axes
40 //! but have more complex data structures. The
41 //! geometric objects provided by the Geom package
42 //! use gp_Ax1 objects to include axes in their data
43 //! structures, or to define an axis of symmetry or axis of rotation.
44 //! Geom_Axis1Placement axes are used in a context
45 //! where they can be shared by several objects
46 //! contained inside a common data structure.
47 class Geom_Axis1Placement : public Geom_AxisPlacement
53 //! Returns a transient copy of A1.
54 Standard_EXPORT Geom_Axis1Placement(const gp_Ax1& A1);
57 //! P is the origin of the axis placement and V is the direction
58 //! of the axis placement.
59 Standard_EXPORT Geom_Axis1Placement(const gp_Pnt& P, const gp_Dir& V);
61 //! Returns a non transient copy of <me>.
62 Standard_EXPORT const gp_Ax1& Ax1() const;
64 //! Reverses the direction of the axis placement.
65 Standard_EXPORT void Reverse();
67 //! Returns a copy of <me> reversed.
68 Standard_EXPORT Standard_NODISCARD Handle(Geom_Axis1Placement) Reversed() const;
70 //! Assigns V to the unit vector of this axis.
71 Standard_EXPORT void SetDirection (const gp_Dir& V) Standard_OVERRIDE;
73 //! Applies the transformation T to this axis.
74 Standard_EXPORT void Transform (const gp_Trsf& T) Standard_OVERRIDE;
76 //! Creates a new object, which is a copy of this axis.
77 Standard_EXPORT Handle(Geom_Geometry) Copy() const Standard_OVERRIDE;
82 DEFINE_STANDARD_RTTIEXT(Geom_Axis1Placement,Geom_AxisPlacement)
102 #endif // _Geom_Axis1Placement_HeaderFile