b405d4df6dc0b627b9e03b1ff74c102453bbee0b
[occt.git] / src / GccEnt / GccEnt.hxx
1 // Created on: 1991-03-05
2 // Created by: Remy GILET
3 // Copyright (c) 1991-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 _GccEnt_HeaderFile
18 #define _GccEnt_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 class GccEnt_QualifiedLin;
25 class gp_Lin2d;
26 class GccEnt_QualifiedCirc;
27 class gp_Circ2d;
28 class GccEnt_QualifiedLin;
29 class GccEnt_QualifiedCirc;
30
31
32 //! This package provides an implementation of the qualified
33 //! entities useful to create 2d entities with geometric
34 //! constraints. The qualifier explains which subfamily of
35 //! solutions we want to obtain. It uses the following law: the
36 //! matter/the interior side is at the left of the line, if we go
37 //! from the beginning to the end.
38 //! The qualifiers are:
39 //! Enclosing   : the solution(s) must enclose the argument.
40 //! Enclosed    : the solution(s) must be enclosed in the
41 //! argument.
42 //! Outside     : both the solution(s) and the argument must be
43 //! outside to each other.
44 //! Unqualified : the position is undefined, so give all the
45 //! solutions.
46 //! The use of a qualifier is always required if such
47 //! subfamilies exist. For example, it is not used for a point.
48 //! Note:    the interior of a curve is defined as the left-hand
49 //! side of the curve in relation to its orientation.
50 class GccEnt 
51 {
52 public:
53
54   DEFINE_STANDARD_ALLOC
55
56   
57   //! Constructs a qualified line,
58   //! so that the relative position to the circle or line of the
59   //! solution computed by a construction algorithm using the
60   //! qualified circle or line is not qualified, i.e. all solutions apply.
61   Standard_EXPORT static GccEnt_QualifiedLin Unqualified (const gp_Lin2d& Obj);
62   
63   //! Constructs a qualified circle
64   //! so that the relative position to the circle or line of the
65   //! solution computed by a construction algorithm using the
66   //! qualified circle or line is not qualified, i.e. all solutions apply.
67   Standard_EXPORT static GccEnt_QualifiedCirc Unqualified (const gp_Circ2d& Obj);
68   
69
70   //! Constructs such a qualified circle that the solution
71   //! computed by a construction algorithm using the qualified
72   //! circle encloses the circle.
73   Standard_EXPORT static GccEnt_QualifiedCirc Enclosing (const gp_Circ2d& Obj);
74   
75   //! Constructs a qualified line,
76   //! so that the solution computed by a construction
77   //! algorithm using the qualified circle or line is enclosed by
78   //! the circle or line.
79   Standard_EXPORT static GccEnt_QualifiedLin Enclosed (const gp_Lin2d& Obj);
80   
81   //! Constructs a qualified circle
82   //! so that the solution computed by a construction
83   //! algorithm using the qualified circle or line is enclosed by
84   //! the circle or line.
85   Standard_EXPORT static GccEnt_QualifiedCirc Enclosed (const gp_Circ2d& Obj);
86   
87   //! Constructs a qualified line,
88   //! so that the solution computed by a construction
89   //! algorithm using the qualified circle or line and the circle
90   //! or line are external to one another.
91   Standard_EXPORT static GccEnt_QualifiedLin Outside (const gp_Lin2d& Obj);
92   
93   //! Constructs a qualified circle
94   //! so that the solution computed by a construction
95   //! algorithm using the qualified circle or line and the circle
96   //! or line are external to one another.
97   Standard_EXPORT static GccEnt_QualifiedCirc Outside (const gp_Circ2d& Obj);
98
99
100
101
102 protected:
103
104
105
106
107
108 private:
109
110
111
112
113 friend class GccEnt_QualifiedLin;
114 friend class GccEnt_QualifiedCirc;
115
116 };
117
118
119
120
121
122
123
124 #endif // _GccEnt_HeaderFile