ceb38a1d83396b92a176d96ebbc1a85f181636b7
[occt.git] / src / IntCurve / IntCurve_IntPolyPolyGen.cdl
1 -- File:        IntPolyPolyGen.cdl
2 -- Created:     Mon Oct 19 12:03:29 1992
3 -- Author:      Laurent BUCHARD
4 --              <lbr@sdsun2>
5 ---Copyright:    Matra Datavision 1992
6
7
8
9 generic class IntPolyPolyGen from IntCurve (
10     TheCurve       as any;
11     TheCurveTool   as any; -- as CurveTool from IntCurve (TheCurve)
12     TheProjPCur    as any) -- as ProjPCurGen from IntCurve
13     
14 inherits Intersection from IntRes2d
15
16
17
18     ---Level: Internal
19
20 uses Domain       from IntRes2d  
21
22
23     class ThePolygon2d instantiates Polygon2dGen from IntCurve
24                                    (TheCurve,
25                                     TheCurveTool);
26                                     
27     class ThePolygon2dTool instantiates ToolPolygon from IntCurve
28                                    (Pnt2d from gp,
29                                     ThePolygon2d,
30                                     Box2d from Bnd);
31
32     class InterferencePoly2d instantiates InterferencePolygon2d from Intf 
33                                    (ThePolygon2d,
34                                     ThePolygon2dTool,
35                                     ThePolygon2d,
36                                     ThePolygon2dTool);
37
38     class TheDistBetweenPCurves instantiates DistBetweenPCurvesGen
39                                    (TheCurve,
40                                     TheCurveTool);
41
42
43     class  ExactIntersectionPoint 
44
45         uses  Vector        from  math , 
46               ThePolygon2d  from  IntCurve  
47         is  
48             Create  ( C1  :  TheCurve; 
49                       C2  :  TheCurve;  
50                       Tol :   Real  from  Standard ) 
51                 returns  ExactIntersectionPoint from  IntCurve    ; 
52             
53             Perform ( me: in out ;
54                       Poly1       :  ThePolygon2d  from  IntCurve  ; 
55                       Poly2       :  ThePolygon2d  from  IntCurve  ;  
56                       NumSegOn1   :  out  Integer  from  Standard  ; 
57                       NumSegOn2   :  out  Integer  from  Standard  ; 
58                       ParamOnSeg1 :  out  Real     from  Standard  ; 
59                       ParamOnSeg2 :  out  Real     from  Standard );
60
61             Perform (  me: in out ;
62                        Uo  :  Real  from  Standard  ; 
63                        Vo  :  Real  from  Standard  ; 
64                        UInf  :  Real  from  Standard  ; 
65                        VInf  :  Real  from  Standard  ;  
66                        USup  :  Real  from  Standard  ;   
67                        VSup  :  Real  from  Standard  );
68                        
69             NbRoots  ( me )  
70                 returns  Integer  from  Standard  ;
71
72             Roots  (  me  : in out ; 
73                       U   : out  Real from  Standard  ; 
74                       V   : out  Real from  Standard  ) ;
75         
76             MathPerform  ( me : in out )  is  private ; 
77             
78             AnErrorOccurred  (  me  ) 
79                 returns  Boolean                from  Standard  ;
80                 
81             fields 
82              
83                 done             :  Boolean                from  Standard  ; 
84                 nbroots          :  Integer                from  Standard  ;  
85                 myTol            :  Real                   from  Standard  ;  
86                 FctDist          :  TheDistBetweenPCurves  from  IntCurve  ; 
87                 ToleranceVector  :  Vector                 from  math  ; 
88                 BInfVector       :  Vector                 from  math  ;  
89                 BSupVector       :  Vector                 from  math  ; 
90                 StartingPoint    :  Vector                 from  math  ;  
91                 Root             :  Vector                 from  math  ;  
92                 anErrorOccurred  :  Boolean                from  Standard  ;
93              end ExactIntersectionPoint from  IntCurve;         
94
95
96 is
97
98     Create  
99         returns IntPolyPolyGen from IntCurve;
100     
101     
102     Perform(me: in out;
103            Curve1 :    TheCurve;
104            Domain1:    Domain      from IntRes2d;
105            Curve2 :    TheCurve;
106            Domain2:    Domain      from IntRes2d;
107            TolConf:    Real        from Standard;
108            Tol    :    Real        from Standard)
109            
110            is static; 
111
112     Perform(me: in out;
113            Curve1 :    TheCurve;
114            Domain1:    Domain      from IntRes2d;
115            TolConf:    Real        from Standard;
116            Tol    :    Real        from Standard)
117            
118            is static; 
119
120
121     Perform(me: in out;
122            Curve1 :    TheCurve;
123            Domain1:    Domain      from IntRes2d;
124            Curve2 :    TheCurve;
125            Domain2:    Domain      from IntRes2d;
126            TolConf:    Real        from Standard;
127            Tol    :    Real        from Standard;
128            NbIter :    Integer     from Standard;
129            DeltaU :    Real        from Standard;
130            DeltaV :    Real        from Standard)
131            
132            is static protected;    
133
134
135     Perform(me: in out;
136            Curve1 :    TheCurve;
137            Domain1:    Domain      from IntRes2d;
138            TolConf:    Real        from Standard;
139            Tol    :    Real        from Standard;
140            NbIter :    Integer     from Standard;
141            DeltaU :    Real        from Standard;
142            DeltaV :    Real        from Standard)
143            
144            is static protected;    
145     
146 fields    
147
148      DomainOnCurve1 : Domain from IntRes2d;      
149      DomainOnCurve2 : Domain from IntRes2d;      
150           
151 end IntPolyPolyGen;
152
153
154
155
156