7fd59977 |
1 | -- File: Intersector.cdl |
2 | -- Created: Mon Mar 2 10:41:48 1992 |
3 | -- Author: Laurent BUCHARD |
4 | -- <lbr@phobox> |
5 | ---Copyright: Matra Datavision 1992 |
6 | |
7 | |
8 | generic class Intersector from IntImpParGen ( |
9 | ImpTool as any; -- as ImpTool from IntImpParGen |
10 | ParCurve as any; |
11 | ParTool as any; -- as ParTool from IntImpParGen(ParCurve) |
12 | ProjectOnPCurveTool as any) -- as ProjectOnPCurveToolGen from IntCurve |
13 | |
14 | inherits Intersection from IntRes2d |
15 | |
16 | ---Purpose: Calculates all the IntersectionPoints |
17 | -- and IntersectionSegments between an implicit curve |
18 | -- (see class ImpTool) and a parametrised curve (see class |
19 | -- ParTool) on their domains. |
20 | -- The results of the intersection are stored in the |
21 | -- Intersection class from IntRes2d. |
22 | -- The parametrised curve has to be bounded (the domain |
23 | -- of this curve must verify HasFirstPoint returns True |
24 | -- and HasLastPoint returns True). |
25 | |
26 | |
27 | |
28 | uses IntersectionPoint from IntRes2d, |
29 | IntersectionSegment from IntRes2d, |
30 | SequenceOfIntersectionPoint from IntRes2d, |
31 | SequenceOfIntersectionSegment from IntRes2d, |
32 | Domain from IntRes2d, |
33 | Pnt2d from gp, |
34 | Array1OfReal from TColStd |
35 | |
36 | |
37 | raises ConstructionError from Standard |
38 | |
39 | |
40 | class MyImpParTool instantiates ImpParTool from IntImpParGen( |
41 | ImpTool, |
42 | ParCurve, |
43 | ParTool); |
44 | |
45 | |
46 | |
47 | is |
48 | |
49 | Create |
50 | |
51 | ---Purpose: Empty constructor. |
52 | |
53 | returns Intersector from IntImpParGen; |
54 | |
55 | |
56 | Create ( ITool : ImpTool; |
57 | Dom1 : Domain from IntRes2d; |
58 | PCurve : ParCurve; |
59 | Dom2 : Domain from IntRes2d; |
60 | TolConf,Tol: Real from Standard) |
61 | |
62 | ---Purpose: Intersection between an implicit curve and |
63 | -- a parametrised curve. |
64 | -- The exception ConstructionError is raised if the domain |
65 | -- of the parametrised curve does not verify HasFirstPoint |
66 | -- and HasLastPoint return True. |
67 | |
68 | returns Intersector from IntImpParGen |
69 | raises ConstructionError from Standard; |
70 | |
71 | |
72 | Perform (me: in out; |
73 | ITool : ImpTool; |
74 | Dom1 : Domain from IntRes2d; |
75 | PCurve : ParCurve; |
76 | Dom2 : Domain from IntRes2d; |
77 | TolConf,Tol: Real from Standard) |
78 | |
79 | ---Purpose: Intersection between an implicit curve and |
80 | -- a parametrised curve. |
81 | -- The exception ConstructionError is raised if the domain |
82 | -- of the parametrised curve does not verify HasFirstPoint |
83 | -- and HasLastPoint return True. |
84 | |
85 | |
86 | raises ConstructionError from Standard |
87 | is static; |
88 | |
89 | FindU ( me ; |
90 | parameter : Real from Standard ; |
91 | point : in out Pnt2d from gp; |
92 | TheParCurev : ParCurve; |
93 | TheImpTool : ImpTool) |
94 | returns Real from Standard |
95 | is static ; |
96 | |
97 | |
98 | FindV ( me ; |
99 | parameter : Real from Standard ; |
100 | point : in out Pnt2d from gp ; |
101 | TheImpTool : ImpTool ; |
102 | ParCurve : ParCurve ; |
103 | TheParCurveDomain : Domain from IntRes2d ; |
104 | V0 : Real from Standard ; |
105 | V1 : Real from Standard ; |
106 | Tolerance : Real from Standard ) |
107 | returns Real from Standard |
108 | is static; |
109 | |
110 | And_Domaine_Objet1_Intersections ( me ; |
111 | TheImpTool : ImpTool ; |
112 | TheParCurve : ParCurve ; |
113 | TheImpCurveDomain : Domain from IntRes2d ; |
114 | TheParCurveDomain : Domain from IntRes2d ; |
115 | NbResultats : in out Integer from Standard ; |
116 | Inter2_And_Domain2 : in out Array1OfReal from TColStd ; |
117 | Inter1 : in out Array1OfReal from TColStd ; |
118 | Resultat1 : in out Array1OfReal from TColStd ; |
119 | Resultat2 : in out Array1OfReal from TColStd ; |
120 | EpsNul : Real from Standard ) |
121 | is static; |
122 | |
123 | |
124 | end Intersector; |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |