0022887: Request to make Intf_InterferencePolygon2d class thread-safe.
[occt.git] / src / IntPatch / IntPatch.cdl
1 -- File:      IntPatch.cdl
2 -- Created:   Wed May  6 13:58:00 1992
3 -- Author:    Jacques GOUSSARD
4 ---Copyright: OPEN CASCADE 1992
5
6    
7 package IntPatch 
8
9         ---Purpose: Intersection between two patches.
10         --          The class PatchIntersection implements the algorithmes
11         --          of intersection.
12         --          The classes IntPoint, PointOnDomain, Line, ILin, a.s.o...
13         --          describe the results of the algorithmes.
14
15         ---Level: Internal
16         --
17         -- All the methods of the classes of this package are Internal.
18         --
19
20 uses Standard, MMgt, StdFail, GeomAbs, TopAbs, TCollection, TColStd, math, 
21      gp, TColgp, IntAna,IntSurf, IntImp, IntStart, IntWalk, Bnd, Intf,  
22      Adaptor2d,Adaptor3d, Geom2d, Geom, Precision
23
24 is
25
26     class ALineToWLine;
27
28     class Point;
29
30     deferred class Line;
31     
32         class GLine;      -- inherits Line from IntPatch
33
34         class ALine;      -- inherits Line from IntPatch
35     
36         class WLine;      -- inherits Line from IntPatch
37     
38         class RLine;      -- inherits Line from IntPatch
39
40     class ArcFunction;
41
42 -- implicite/implicite
43
44     class ImpImpIntersection;
45
46
47 -- commun implicite/parametree et parametree/parametree
48
49     deferred class Polygo;
50       
51         class PolyLine;    -- inherits Polygo from IntPatch
52
53         class PolyArc;     -- inherits Polygo from IntPatch
54
55     class RstInt;
56
57
58 -- implicite/parametre
59
60     class ImpPrmIntersection;
61
62
63 -- parametre/parametre
64
65     class Polyhedron;
66
67     class PolyhedronTool;
68     
69     class PrmPrmIntersection_T3Bits;
70
71     class PrmPrmIntersection;
72
73
74 -- algorithme general
75
76     enumeration IType is
77     -- type of the line of intersection
78
79         Lin,       -- pour conflit avec deferred class Line
80         Circle,
81         Ellipse,
82         Parabola,
83         Hyperbola,
84         Analytic,
85         Walking,
86         Restriction
87     end IType;
88
89     class HInterTool;
90
91     class HCurve2dTool;
92
93     class LineConstructor;
94
95     class Intersection;
96
97
98     class SequenceOfPoint instantiates Sequence from TCollection (Point from IntPatch);
99
100     class SequenceOfLine instantiates Sequence from TCollection (Line from IntPatch);
101
102     class TheSurfFunction instantiates ZerImpFunc from IntImp
103         (HSurface     from Adaptor3d,
104          HSurfaceTool from Adaptor3d,
105          Quadric      from IntSurf,
106          QuadricTool  from IntSurf);
107
108     class TheIWalking instantiates IWalking from IntWalk
109         (PathPoint               from IntSurf, 
110          PathPointTool           from IntSurf,
111          SequenceOfPathPoint     from IntSurf,
112          InteriorPoint           from IntSurf,
113          InteriorPointTool       from IntSurf,
114          SequenceOfInteriorPoint from IntSurf,
115          HSurface                from Adaptor3d,
116          HSurfaceTool            from Adaptor3d,
117          TheSurfFunction         from IntPatch);
118
119     class TheSearchInside instantiates SearchInside from IntStart
120         (HSurface        from Adaptor3d,
121          HSurfaceTool    from Adaptor3d,
122          TopolTool       from Adaptor3d,
123          HInterTool      from IntPatch,
124          TheSurfFunction from IntPatch);
125
126     class TheSOnBounds instantiates SearchOnBoundaries from IntStart(
127          HVertex from Adaptor3d,
128          HCurve2d from Adaptor2d,
129          HCurve2dTool from IntPatch,
130          HInterTool from IntPatch,
131          TopolTool from Adaptor3d,
132          ArcFunction from IntPatch);
133
134     class TheInterfPolyhedron instantiates InterferencePolyhedron from Intf(
135               Polyhedron from IntPatch,
136               PolyhedronTool from IntPatch,
137               Polyhedron from IntPatch,
138               PolyhedronTool from IntPatch);
139
140     class ThePWalkingInter instantiates PWalking from IntWalk(
141               HSurface     from Adaptor3d,
142               HSurfaceTool from Adaptor3d);
143
144     alias SearchPnt is InterferencePolygon2d from Intf;
145
146     class CSFunction instantiates ZerCOnSSParFunc from IntImp
147         (HSurface from Adaptor3d,
148          HSurfaceTool from Adaptor3d,
149          HCurve2d from Adaptor2d,
150          HCurve2dTool from IntPatch);
151
152     class CurvIntSurf instantiates IntCS from IntImp
153         (HSurface from Adaptor3d,
154          HSurfaceTool from Adaptor3d,
155          HCurve2d from Adaptor2d,
156          HCurve2dTool from IntPatch,
157          CSFunction from IntPatch);
158
159 end IntPatch;