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