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