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
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 _Geom2dGcc_HeaderFile
18 #define _Geom2dGcc_HeaderFile
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
24 class Geom2dGcc_QualifiedCurve;
25 class Geom2dAdaptor_Curve;
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.
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.
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 = ...
59 //! Geom2dAdaptor_Curve Obj ( mycurve )
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);
66 //! Constructs such a qualified curve that the solution
67 //! computed by a construction algorithm using the qualified
68 //! curve encloses the curve.
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 = ...
76 //! Geom2dAdaptor_Curve Obj ( mycurve )
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);
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.
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 = ...
93 //! Geom2dAdaptor_Curve Obj ( mycurve )
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);
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.
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 = ...
110 //! Geom2dAdaptor_Curve Obj ( mycurve )
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);
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;
165 #endif // _Geom2dGcc_HeaderFile