0032630: Coding - get rid of unsused forward declarations [BinMDF to IFSelect]
[occt.git] / src / Geom2dGcc / Geom2dGcc.hxx
1 // Created on: 1992-06-29
2 // Created by: Remi GILET
3 // Copyright (c) 1992-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 _Geom2dGcc_HeaderFile
18 #define _Geom2dGcc_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 class Geom2dGcc_QualifiedCurve;
25 class Geom2dAdaptor_Curve;
26
27
28 //! The Geom2dGcc package describes qualified 2D
29 //! curves used in the construction of constrained geometric
30 //! objects by an algorithm provided by the Geom2dGcc package.
31 //! A qualified 2D curve is a curve with a qualifier which
32 //! specifies whether the solution of a construction
33 //! algorithm using the qualified curve (as an argument):
34 //! -   encloses the curve, or
35 //! -   is enclosed by the curve, or
36 //! -   is built so that both the curve and this solution are external to one another, or
37 //! -   is undefined (all solutions apply).
38 //! These package methods provide simpler functions to construct a qualified curve.
39 //! Note: the interior of a curve is defined as the left-hand
40 //! side of the curve in relation to its orientation.
41 class Geom2dGcc 
42 {
43 public:
44
45   DEFINE_STANDARD_ALLOC
46
47   
48   //! Constructs such a qualified curve that the relative
49   //! position of the solution computed by a construction
50   //! algorithm using the qualified curve to the circle or line is
51   //! not qualified, i.e. all solutions apply.
52   //! Warning
53   //! Obj is an adapted curve, i.e. an object which is an interface between:
54   //! -   the services provided by a 2D curve from the package Geom2d,
55   //! -   and those required on the curve by a computation algorithm.
56   //! The adapted curve is created in the following way:
57   //! Handle(Geom2d_Curve) mycurve = ...
58   //! ;
59   //! Geom2dAdaptor_Curve Obj ( mycurve )
60   //! ;
61   //! The qualified curve is then constructed with this object:
62   //! Geom2dGcc_QualifiedCurve
63   //! myQCurve = Geom2dGcc::Unqualified(Obj);
64   Standard_EXPORT static Geom2dGcc_QualifiedCurve Unqualified (const Geom2dAdaptor_Curve& Obj);
65   
66   //! Constructs such a qualified curve that the solution
67   //! computed by a construction algorithm using the qualified
68   //! curve encloses the curve.
69   //! Warning
70   //! Obj is an adapted curve, i.e. an object which is an interface between:
71   //! -   the services provided by a 2D curve from the package Geom2d,
72   //! -   and those required on the curve by a computation algorithm.
73   //! The adapted curve is created in the following way:
74   //! Handle(Geom2d_Curve) mycurve = ...
75   //! ;
76   //! Geom2dAdaptor_Curve Obj ( mycurve )
77   //! ;
78   //! The qualified curve is then constructed with this object:
79   //! Geom2dGcc_QualifiedCurve
80   //! myQCurve = Geom2dGcc::Enclosing(Obj);
81   Standard_EXPORT static Geom2dGcc_QualifiedCurve Enclosing (const Geom2dAdaptor_Curve& Obj);
82   
83   //! Constructs such a qualified curve that the solution
84   //! computed by a construction algorithm using the qualified
85   //! curve is enclosed by the curve.
86   //! Warning
87   //! Obj is an adapted curve, i.e. an object which is an interface between:
88   //! -   the services provided by a 2D curve from the package Geom2d,
89   //! -   and those required on the curve by a computation algorithm.
90   //! The adapted curve is created in the following way:
91   //! Handle(Geom2d_Curve) mycurve = ...
92   //! ;
93   //! Geom2dAdaptor_Curve Obj ( mycurve )
94   //! ;
95   //! The qualified curve is then constructed with this object:
96   //! Geom2dGcc_QualifiedCurve
97   //! myQCurve = Geom2dGcc::Enclosed(Obj);
98   Standard_EXPORT static Geom2dGcc_QualifiedCurve Enclosed (const Geom2dAdaptor_Curve& Obj);
99   
100   //! Constructs such a qualified curve that the solution
101   //! computed by a construction algorithm using the qualified
102   //! curve and the curve are external to one another.
103   //! Warning
104   //! Obj is an adapted curve, i.e. an object which is an interface between:
105   //! -   the services provided by a 2D curve from the package Geom2d,
106   //! -   and those required on the curve by a computation algorithm.
107   //! The adapted curve is created in the following way:
108   //! Handle(Geom2d_Curve) mycurve = ...
109   //! ;
110   //! Geom2dAdaptor_Curve Obj ( mycurve )
111   //! ;
112   //! The qualified curve is then constructed with this object:
113   //! Geom2dGcc_QualifiedCurve
114   //! myQCurve = Geom2dGcc::Outside(Obj);
115   Standard_EXPORT static Geom2dGcc_QualifiedCurve Outside (const Geom2dAdaptor_Curve& Obj);
116
117
118
119
120 protected:
121
122
123
124
125
126 private:
127
128
129
130
131 friend class Geom2dGcc_CurveTool;
132 friend class Geom2dGcc_QualifiedCurve;
133 friend class Geom2dGcc_Circ2d3Tan;
134 friend class Geom2dGcc_Circ2d2TanRad;
135 friend class Geom2dGcc_Circ2d2TanOn;
136 friend class Geom2dGcc_Circ2dTanOnRad;
137 friend class Geom2dGcc_Circ2dTanCen;
138 friend class Geom2dGcc_Lin2d2Tan;
139 friend class Geom2dGcc_Lin2dTanObl;
140 friend class Geom2dGcc_QCurve;
141 friend class Geom2dGcc_CurveToolGeo;
142 friend class Geom2dGcc_Circ2d2TanOnGeo;
143 friend class Geom2dGcc_Circ2d2TanRadGeo;
144 friend class Geom2dGcc_Circ2dTanCenGeo;
145 friend class Geom2dGcc_Circ2dTanOnRadGeo;
146 friend class Geom2dGcc_Circ2d3TanIter;
147 friend class Geom2dGcc_FunctionTanCuCuCu;
148 friend class Geom2dGcc_Circ2d2TanOnIter;
149 friend class Geom2dGcc_FunctionTanCuCuOnCu;
150 friend class Geom2dGcc_Lin2dTanOblIter;
151 friend class Geom2dGcc_FunctionTanObl;
152 friend class Geom2dGcc_Lin2d2TanIter;
153 friend class Geom2dGcc_FunctionTanCuCu;
154 friend class Geom2dGcc_FunctionTanCuPnt;
155 friend class Geom2dGcc_FunctionTanCirCu;
156
157 };
158
159
160
161
162
163
164
165 #endif // _Geom2dGcc_HeaderFile