0024023: Revamp the OCCT Handle -- StepToGeom
[occt.git] / src / StepToGeom / StepToGeom.hxx
1 // Created on: 1993-06-11
2 // Created by: Martine LANGLOIS
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
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.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _StepToGeom_HeaderFile
18 #define _StepToGeom_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 class Geom_Axis1Placement;
25 class Geom_Axis2Placement;
26 class Geom_BoundedCurve;
27 class Geom_BoundedSurface;
28 class Geom_BSplineCurve;
29 class Geom_BSplineSurface;
30 class Geom_CartesianPoint;
31 class Geom_Circle;
32 class Geom_Conic;
33 class Geom_ConicalSurface;
34 class Geom_Curve;
35 class Geom_CylindricalSurface;
36 class Geom_Direction;
37 class Geom_ElementarySurface;
38 class Geom_Ellipse;
39 class Geom_Hyperbola;
40 class Geom_Line;
41 class Geom_Parabola;
42 class Geom_Plane;
43 class Geom_RectangularTrimmedSurface;
44 class Geom_SphericalSurface;
45 class Geom_Surface;
46 class Geom_SurfaceOfLinearExtrusion;
47 class Geom_SurfaceOfRevolution;
48 class Geom_SweptSurface;
49 class Geom_ToroidalSurface;
50 class Geom_TrimmedCurve;
51 class Geom_VectorWithMagnitude;
52
53 class Geom2d_AxisPlacement;
54 class Geom2d_BoundedCurve;
55 class Geom2d_BSplineCurve;
56 class Geom2d_CartesianPoint;
57 class Geom2d_Circle;
58 class Geom2d_Conic;
59 class Geom2d_Curve;
60 class Geom2d_Direction;
61 class Geom2d_Ellipse;
62 class Geom2d_Hyperbola;
63 class Geom2d_Line;
64 class Geom2d_Parabola;
65 class Geom2d_VectorWithMagnitude;
66
67 class gp_Trsf;
68 class gp_Trsf2d;
69
70 class StepGeom_Axis1Placement;
71 class StepGeom_Axis2Placement2d;
72 class StepGeom_Axis2Placement3d;
73 class StepGeom_BoundedCurve;
74 class StepGeom_BoundedSurface;
75 class StepGeom_BSplineCurve;
76 class StepGeom_CartesianPoint;
77 class StepGeom_Direction;
78
79 class StepGeom_BSplineSurface;
80 class StepGeom_Circle;
81 class StepGeom_Conic;
82 class StepGeom_ConicalSurface;
83 class StepGeom_Curve;
84 class StepGeom_CylindricalSurface;
85 class StepGeom_ElementarySurface;
86 class StepGeom_Ellipse;
87 class StepGeom_Hyperbola;
88 class StepGeom_Line;
89 class StepGeom_Parabola;
90 class StepGeom_Plane;
91 class StepGeom_Polyline;
92 class StepGeom_RectangularTrimmedSurface;
93 class StepGeom_SphericalSurface;
94 class StepGeom_Surface;
95 class StepGeom_SurfaceOfLinearExtrusion;
96 class StepGeom_SurfaceOfRevolution;
97 class StepGeom_SweptSurface;
98 class StepGeom_ToroidalSurface;
99 class StepGeom_CartesianTransformationOperator2d;
100 class StepGeom_CartesianTransformationOperator3d;
101 class StepGeom_TrimmedCurve;
102 class StepGeom_Vector;
103
104 //! This class provides static methods to convert STEP geometric entities to OCCT.
105 //! The methods returning handles will return null handle in case of error.
106 //! The methods returning boolean will return True if succeeded and False if error.
107
108 class StepToGeom
109 {
110 public:
111
112   Standard_EXPORT static Handle(Geom_Axis1Placement) MakeAxis1Placement (const Handle(StepGeom_Axis1Placement)& SA);
113   Standard_EXPORT static Handle(Geom_Axis2Placement) MakeAxis2Placement (const Handle(StepGeom_Axis2Placement3d)& SA);
114   Standard_EXPORT static Handle(Geom2d_AxisPlacement) MakeAxisPlacement (const Handle(StepGeom_Axis2Placement2d)& SA);
115   Standard_EXPORT static Handle(Geom_BoundedCurve) MakeBoundedCurve (const Handle(StepGeom_BoundedCurve)& SC);
116   Standard_EXPORT static Handle(Geom2d_BoundedCurve) MakeBoundedCurve2d (const Handle(StepGeom_BoundedCurve)& SC);
117   Standard_EXPORT static Handle(Geom_BoundedSurface) MakeBoundedSurface (const Handle(StepGeom_BoundedSurface)& SS);
118   Standard_EXPORT static Handle(Geom_BSplineCurve) MakeBSplineCurve (const Handle(StepGeom_BSplineCurve)& SC);
119   Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeBSplineCurve2d (const Handle(StepGeom_BSplineCurve)& SC);
120   Standard_EXPORT static Handle(Geom_BSplineSurface) MakeBSplineSurface (const Handle(StepGeom_BSplineSurface)& SS);
121   Standard_EXPORT static Handle(Geom_CartesianPoint) MakeCartesianPoint (const Handle(StepGeom_CartesianPoint)& SP);
122   Standard_EXPORT static Handle(Geom2d_CartesianPoint) MakeCartesianPoint2d (const Handle(StepGeom_CartesianPoint)& SP);
123   Standard_EXPORT static Handle(Geom_Circle) MakeCircle (const Handle(StepGeom_Circle)& SC);
124   Standard_EXPORT static Handle(Geom2d_Circle) MakeCircle2d (const Handle(StepGeom_Circle)& SC);
125   Standard_EXPORT static Handle(Geom_Conic) MakeConic (const Handle(StepGeom_Conic)& SC);
126   Standard_EXPORT static Handle(Geom2d_Conic) MakeConic2d (const Handle(StepGeom_Conic)& SC);
127   Standard_EXPORT static Handle(Geom_ConicalSurface) MakeConicalSurface (const Handle(StepGeom_ConicalSurface)& SS);
128   Standard_EXPORT static Handle(Geom_Curve) MakeCurve (const Handle(StepGeom_Curve)& SC);
129   Standard_EXPORT static Handle(Geom2d_Curve) MakeCurve2d (const Handle(StepGeom_Curve)& SC);
130   Standard_EXPORT static Handle(Geom_CylindricalSurface) MakeCylindricalSurface (const Handle(StepGeom_CylindricalSurface)& SS);
131   Standard_EXPORT static Handle(Geom_Direction) MakeDirection (const Handle(StepGeom_Direction)& SD);
132   Standard_EXPORT static Handle(Geom2d_Direction) MakeDirection2d (const Handle(StepGeom_Direction)& SD);
133   Standard_EXPORT static Handle(Geom_ElementarySurface) MakeElementarySurface (const Handle(StepGeom_ElementarySurface)& SS);
134   Standard_EXPORT static Handle(Geom_Ellipse) MakeEllipse (const Handle(StepGeom_Ellipse)& SC);
135   Standard_EXPORT static Handle(Geom2d_Ellipse) MakeEllipse2d (const Handle(StepGeom_Ellipse)& SC);
136   Standard_EXPORT static Handle(Geom_Hyperbola) MakeHyperbola (const Handle(StepGeom_Hyperbola)& SC);
137   Standard_EXPORT static Handle(Geom2d_Hyperbola) MakeHyperbola2d (const Handle(StepGeom_Hyperbola)& SC);
138   Standard_EXPORT static Handle(Geom_Line) MakeLine (const Handle(StepGeom_Line)& SC);
139   Standard_EXPORT static Handle(Geom2d_Line) MakeLine2d (const Handle(StepGeom_Line)& SC);
140   Standard_EXPORT static Handle(Geom_Parabola) MakeParabola (const Handle(StepGeom_Parabola)& SC);
141   Standard_EXPORT static Handle(Geom2d_Parabola) MakeParabola2d (const Handle(StepGeom_Parabola)& SC);
142   Standard_EXPORT static Handle(Geom_Plane) MakePlane (const Handle(StepGeom_Plane)& SP);
143   Standard_EXPORT static Handle(Geom_BSplineCurve) MakePolyline (const Handle(StepGeom_Polyline)& SPL);
144   Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakePolyline2d (const Handle(StepGeom_Polyline)& SPL);
145   Standard_EXPORT static Handle(Geom_RectangularTrimmedSurface) MakeRectangularTrimmedSurface (const Handle(StepGeom_RectangularTrimmedSurface)& SS);
146   Standard_EXPORT static Handle(Geom_SphericalSurface) MakeSphericalSurface (const Handle(StepGeom_SphericalSurface)& SS);
147   Standard_EXPORT static Handle(Geom_Surface) MakeSurface (const Handle(StepGeom_Surface)& SS);
148   Standard_EXPORT static Handle(Geom_SurfaceOfLinearExtrusion) MakeSurfaceOfLinearExtrusion (const Handle(StepGeom_SurfaceOfLinearExtrusion)& SS);
149   Standard_EXPORT static Handle(Geom_SurfaceOfRevolution) MakeSurfaceOfRevolution (const Handle(StepGeom_SurfaceOfRevolution)& SS);
150   Standard_EXPORT static Handle(Geom_SweptSurface) MakeSweptSurface (const Handle(StepGeom_SweptSurface)& SS);
151   Standard_EXPORT static Handle(Geom_ToroidalSurface) MakeToroidalSurface (const Handle(StepGeom_ToroidalSurface)& SS);
152   Standard_EXPORT static Standard_Boolean MakeTransformation2d (const Handle(StepGeom_CartesianTransformationOperator2d)& SCTO, gp_Trsf2d& CT);
153   Standard_EXPORT static Standard_Boolean MakeTransformation3d (const Handle(StepGeom_CartesianTransformationOperator3d)& SCTO, gp_Trsf& CT);
154   Standard_EXPORT static Handle(Geom_TrimmedCurve) MakeTrimmedCurve (const Handle(StepGeom_TrimmedCurve)& SC);
155   Standard_EXPORT static Handle(Geom2d_BSplineCurve) MakeTrimmedCurve2d (const Handle(StepGeom_TrimmedCurve)& SC);
156   Standard_EXPORT static Handle(Geom_VectorWithMagnitude) MakeVectorWithMagnitude (const Handle(StepGeom_Vector)& SV);
157   Standard_EXPORT static Handle(Geom2d_VectorWithMagnitude) MakeVectorWithMagnitude2d (const Handle(StepGeom_Vector)& SV);
158 };
159
160 #endif // _StepToGeom_HeaderFile