7fd59977 |
1 | -- File: IntPolyPolyGen.cdl |
2 | -- Created: Mon Oct 19 12:03:29 1992 |
3 | -- Author: Laurent BUCHARD |
7fd59977 |
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, |
9530af27 |
24 | TheCurveTool); |
7fd59977 |
25 | |
7fd59977 |
26 | class TheDistBetweenPCurves instantiates DistBetweenPCurvesGen |
27 | (TheCurve, |
9530af27 |
28 | TheCurveTool); |
7fd59977 |
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 | |