0026431: Can't cut a sphere from a cylinder
[occt.git] / src / TopOpeBRepTool / TopOpeBRepTool_GeomTool.cxx
1 // Created on: 1993-06-24
2 // Created by: Jean Yves LEBEY
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
18 #include <Precision.hxx>
19 #include <TopOpeBRepTool_GeomTool.hxx>
20
21 //=======================================================================
22 //function : TopOpeBRepTool_GeomTool
23 //purpose  : 
24 //=======================================================================
25 TopOpeBRepTool_GeomTool::TopOpeBRepTool_GeomTool
26    (const TopOpeBRepTool_OutCurveType TypeC3D, 
27    const Standard_Boolean CompC3D,
28    const Standard_Boolean CompPC1, 
29    const Standard_Boolean CompPC2) :
30    myTypeC3D(TypeC3D),
31    myCompC3D(CompC3D), 
32    myCompPC1(CompPC1), 
33    myCompPC2(CompPC2),
34    myTol3d(Precision::Approximation()),
35    myTol2d(Precision::PApproximation()),
36    myNbPntMax(30)
37 {
38 }
39
40 //=======================================================================
41 //function : Define
42 //purpose  : 
43 //=======================================================================
44
45 void TopOpeBRepTool_GeomTool::Define
46   (const TopOpeBRepTool_OutCurveType TypeC3D, 
47    const Standard_Boolean CompC3D,
48    const Standard_Boolean CompPC1, 
49    const Standard_Boolean CompPC2)
50 {
51   myTypeC3D = TypeC3D;
52   myCompC3D = CompC3D;
53   myCompPC1 = CompPC1;
54   myCompPC2 = CompPC2;
55 }
56
57 //=======================================================================
58 //function : Define
59 //purpose  : 
60 //=======================================================================
61
62 void TopOpeBRepTool_GeomTool::Define
63   (const TopOpeBRepTool_OutCurveType TypeC3D)
64 {
65   myTypeC3D = TypeC3D;
66 }
67
68 //=======================================================================
69 //function : DefineCurves
70 //purpose  : 
71 //=======================================================================
72
73 void TopOpeBRepTool_GeomTool::DefineCurves
74   (const Standard_Boolean CompC3D)
75 {
76   myCompC3D = CompC3D;
77 }
78
79 //=======================================================================
80 //function : DefinePCurves1
81 //purpose  : 
82 //=======================================================================
83
84 void TopOpeBRepTool_GeomTool::DefinePCurves1
85   (const Standard_Boolean CompPC1)
86 {
87   myCompPC1 = CompPC1;
88 }
89
90 //=======================================================================
91 //function : DefinePCurves2
92 //purpose  : 
93 //=======================================================================
94
95 void TopOpeBRepTool_GeomTool::DefinePCurves2
96   (const Standard_Boolean CompPC2)
97 {
98   myCompPC2 = CompPC2;
99 }
100
101 //=======================================================================
102 //function : Define
103 //purpose  : 
104 //=======================================================================
105
106 void TopOpeBRepTool_GeomTool::Define
107   (const TopOpeBRepTool_GeomTool& GT)
108 {
109   *this = GT;
110 }
111
112 //=======================================================================
113 //function : GetTolerances
114 //purpose  : 
115 //=======================================================================
116
117 void TopOpeBRepTool_GeomTool::GetTolerances
118   (Standard_Real& tol3d, Standard_Real& tol2d) const
119 {
120   tol3d = myTol3d;
121   tol2d = myTol2d;
122 }
123
124
125 //=======================================================================
126 //function : SetTolerances
127 //purpose  : 
128 //=======================================================================
129
130 void TopOpeBRepTool_GeomTool::SetTolerances
131   (const Standard_Real tol3d, const Standard_Real tol2d)
132 {
133   myTol3d = tol3d;
134   myTol2d = tol2d;
135 }
136
137 //=======================================================================
138 //function : NbPntMax
139 //purpose  : 
140 //=======================================================================
141
142 Standard_Integer TopOpeBRepTool_GeomTool::NbPntMax()const
143 {
144   return myNbPntMax;
145 }
146
147 //=======================================================================
148 //function : SetNbPntMax
149 //purpose  : 
150 //=======================================================================
151
152 void TopOpeBRepTool_GeomTool::SetNbPntMax (const Standard_Integer NbPntMax)
153 {
154   myNbPntMax = NbPntMax ;
155 }
156
157 //=======================================================================
158 //function : CompC3D
159 //purpose  : 
160 //=======================================================================
161
162 Standard_Boolean TopOpeBRepTool_GeomTool::CompC3D()const
163 {
164   return myCompC3D;
165 }
166
167 //=======================================================================
168 //function : TypeC3D
169 //purpose  : 
170 //=======================================================================
171
172 TopOpeBRepTool_OutCurveType TopOpeBRepTool_GeomTool::TypeC3D()const
173 {
174   return myTypeC3D;
175 }
176
177 //=======================================================================
178 //function : CompPC1
179 //purpose  : 
180 //=======================================================================
181
182 Standard_Boolean TopOpeBRepTool_GeomTool::CompPC1()const
183 {
184   return myCompPC1;
185 }
186
187
188 //=======================================================================
189 //function : CompPC2
190 //purpose  : 
191 //=======================================================================
192
193 Standard_Boolean TopOpeBRepTool_GeomTool::CompPC2()const
194 {
195   return myCompPC2;
196 }
197