0024915: Wrong intersection curves between two cylinders
[occt.git] / src / IntPatch / IntPatch_ImpImpIntersection.cdl
1 -- Created on: 1992-05-07
2 -- Created by: Jacques GOUSSARD
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 class ImpImpIntersection from IntPatch
18              
19         ---Purpose: Implementation of the intersection between two
20         --          quadric patches : Plane, Cone, Cylinder or Sphere.
21
22
23 uses HSurface from Adaptor3d,
24      TopolTool from Adaptor3d,
25      Point from IntPatch,
26      SequenceOfPoint from IntPatch,
27      TheSOnBounds from IntPatch,
28      SequenceOfLine from IntPatch,
29      Line           from IntPatch
30
31
32 raises NotDone           from StdFail,
33        OutOfRange        from Standard,
34        DomainError       from Standard,
35        ConstructionError from Standard
36
37 is
38
39
40     Create
41     
42         returns ImpImpIntersection from IntPatch;
43
44
45     Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
46             S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
47             TolArc,TolTang: Real from Standard)
48             
49         returns ImpImpIntersection from IntPatch
50         
51         raises ConstructionError from Standard;
52
53
54     Perform (me: in out;
55              S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
56              S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
57              TolArc,TolTang: Real from Standard;
58              isTheTrimmed: Boolean from Standard = Standard_False)
59
60         raises ConstructionError from Standard    
61
62         is static;
63
64
65     IsDone(me)
66     
67         ---Purpose: Returns True if the calculus was succesfull.
68
69         returns Boolean from Standard
70         ---C++: inline
71         
72         is static;
73
74
75     IsEmpty(me)
76     
77         ---Purpose: Returns true if the is no intersection.
78
79         returns Boolean from Standard
80         ---C++: inline
81
82         raises NotDone from StdFail
83
84         is static;
85
86
87     TangentFaces(me)
88     
89         ---Purpose: Returns True if the two patches are considered as
90         --          entierly tangent, i-e every restriction arc of one
91         --          patch is inside the geometric base of the otehr patch.
92
93         returns Boolean from Standard
94         ---C++: inline
95         
96         raises NotDone from StdFail
97         
98         is static;
99
100
101     OppositeFaces(me)
102     
103         ---Purpose: Returns True when the TangentFaces returns True and the
104         --          normal vectors evaluated at a point on the first and the
105         --          second surface are opposite. 
106         --          The exception DomainError is raised if TangentFaces
107         --          returns False.
108
109         returns Boolean from Standard
110         ---C++: inline
111         
112         raises NotDone     from StdFail,
113                DomainError from Standard
114         
115         is static;
116
117
118     NbPnts(me)
119     
120         ---Purpose: Returns the number of "single" points.
121
122         returns Integer from Standard
123         ---C++: inline
124
125         raises NotDone from StdFail
126         
127         is static;
128
129
130     Point(me; Index: Integer from Standard)
131     
132         ---Purpose: Returns the point of range Index.
133         --          An exception is raised if Index<=0 or Index>NbPnt.
134
135         returns Point from IntPatch
136         ---C++: return const&
137         ---C++: inline
138
139         raises NotDone    from StdFail,
140                OutOfRange from Standard
141
142         is static;
143
144
145     NbLines(me)
146     
147         ---Purpose: Returns the number of intersection lines.
148
149         returns Integer from Standard
150         ---C++: inline
151
152         raises NotDone from StdFail
153
154         is static;
155
156
157     Line(me; Index: Integer from Standard)
158     
159         ---Purpose: Returns the line of range Index.
160         --          An exception is raised if Index<=0 or Index>NbLine.
161
162         returns Line from IntPatch
163         ---C++: inline
164         ---C++: return const&
165
166         raises NotDone    from StdFail,
167                OutOfRange from Standard
168         
169         is static;
170
171
172 fields
173
174     done   : Boolean         from Standard;
175     empt   : Boolean         from Standard;
176     tgte   : Boolean         from Standard;
177     oppo   : Boolean         from Standard;
178     spnt   : SequenceOfPoint from IntPatch;
179     slin   : SequenceOfLine  from IntPatch;
180     solrst : TheSOnBounds    from IntPatch;
181
182 end ImpImpIntersection;