0022550: Fixing data races
[occt.git] / src / Intf / Intf_InterferencePolygonPolyhedron.cdl
CommitLineData
7fd59977 1-- File: InterferencePolygonPolyhedron.cdl
2-- Created: Tue Sep 29 12:00:14 1992
3-- Author: Didier PIFFAULT
4-- <dpf@phylox>
5---Copyright: Matra Datavision 1992
6
7
8generic class InterferencePolygonPolyhedron from Intf
9 (Polygon3d as any;
10 ToolPolygon3d as any; -- as ToolPolygon(Pnt,Polygon3d,Box)
11 Polyhedron as any;
12 ToolPolyh as any) -- as ToolPolyhedron(Polyhedron)
13 inherits Interference from Intf
14
15 ---Purpose: Computes the interference between a polygon and a
16 -- Polyhedron.
17
18uses Pnt from gp,
19 Lin from gp,
20 XYZ from gp,
21 Array1OfLin from Intf,
22 SectionPoint from Intf,
23 SeqOfSectionPoint from Intf,
24 TangentZone from Intf,
25 SeqOfTangentZone from Intf,
26 BoundSortBox from Bnd
27
28is
29
30-- Interface :
31
32 Create returns InterferencePolygonPolyhedron from Intf;
33 ---Purpose: Constructs an empty interference between Polygon and
34 -- Polyhedron.
35
36 Create (thePolyg : in Polygon3d;
37 thePolyh : in Polyhedron)
38 returns InterferencePolygonPolyhedron from Intf;
39 ---Purpose: Constructs and computes an interference between the Polygon
40 -- and the Polyhedron.
41
42 Create (theLin : in Lin from gp;
43 thePolyh : in Polyhedron)
44 returns InterferencePolygonPolyhedron from Intf;
45 ---Purpose: Constructs and computes an interference between the
46 -- Straight Line and the Polyhedron.
47
48 Create (theLins : in Array1OfLin from Intf;
49 thePolyh : in Polyhedron)
50 returns InterferencePolygonPolyhedron from Intf;
51 ---Purpose: Constructs and computes an interference between the
52 -- Straight Lines and the Polyhedron.
53
54 Perform (me : in out;
55 thePolyg : in Polygon3d;
56 thePolyh : in Polyhedron)
57 ---Purpose: Computes an interference between the Polygon and the
58 -- Polyhedron.
59 is static;
60
61 Perform (me : in out;
62 theLin : in Lin from gp;
63 thePolyh : Polyhedron)
64 ---Purpose: Computes an interference between the Straight Line and the
65 -- Polyhedron.
66 is static;
67
68 Perform (me : in out;
69 theLins : in Array1OfLin from Intf;
70 thePolyh : in Polyhedron)
71 ---Purpose: Computes an interference between the Straight Lines and
72 -- the Polyhedron.
73 is static;
74
75
76
77
78 --------------- Optimisation : On Passe le Bnd_BoundSortBox
79
80
81 Create (thePolyg : in Polygon3d;
82 thePolyh : in Polyhedron;
83 theBoundSB : in out BoundSortBox from Bnd)
84 returns InterferencePolygonPolyhedron from Intf;
85 ---Purpose: Constructs and computes an interference between the Polygon
86 -- and the Polyhedron.
87
88 Create (theLin : in Lin from gp;
89 thePolyh : in Polyhedron;
90 theBoundSB : in out BoundSortBox from Bnd)
91 returns InterferencePolygonPolyhedron from Intf;
92 ---Purpose: Constructs and computes an interference between the
93 -- Straight Line and the Polyhedron.
94
95 Create (theLins : in Array1OfLin from Intf;
96 thePolyh : in Polyhedron;
97 theBoundSB : in out BoundSortBox from Bnd)
98 returns InterferencePolygonPolyhedron from Intf;
99 ---Purpose: Constructs and computes an interference between the
100 -- Straight Lines and the Polyhedron.
101
102 Perform (me : in out;
103 thePolyg : in Polygon3d;
104 thePolyh : in Polyhedron;
105 theBoundSB : in out BoundSortBox from Bnd)
106 ---Purpose: Computes an interference between the Polygon and the
107 -- Polyhedron.
108 is static;
109
110 Perform (me : in out;
111 theLin : in Lin from gp;
112 thePolyh : Polyhedron;
113 theBoundSB : in out BoundSortBox from Bnd)
114 ---Purpose: Computes an interference between the Straight Line and the
115 -- Polyhedron.
116 is static;
117
118 Perform (me : in out;
119 theLins : in Array1OfLin from Intf;
120 thePolyh : in Polyhedron;
121 theBoundSB : in out BoundSortBox from Bnd)
122 ---Purpose: Computes an interference between the Straight Lines and
123 -- the Polyhedron.
124 is static;
125
126
127
128 Interference (me : in out;
129 thePolyg : in Polygon3d;
130 thePolyh : in Polyhedron;
131 theBoundSB : in out BoundSortBox from Bnd)
132 is static;
133 ---Purpose: Compares the boundings between the segment of <thePolyg> and
134 -- the facets of <thePolyh>.
135
136
137
138
139-- Implementation :
140
141 Interference (me : in out;
142 thePolyg : in Polygon3d;
143 thePolyh : in Polyhedron)
144 is static;
145 ---Purpose: Compares the boundings between the segment of <thePolyg> and
146 -- the facets of <thePolyh>.
147
148
149 Intersect (me : in out;
150 BegO : in Pnt from gp;
151 EndO : in Pnt from gp;
152 Infinite : Boolean from Standard;
153 TTri : in Integer from Standard;
154 thePolyh : in Polyhedron)
155 is static private;
156 ---Purpose: Computes the intersection between the segment <BegO><EndO>
157 -- and the triangle <TTri> of <thePolyh>.
158
159 Intersect (me : in out;
160 BegO : in Pnt from gp;
161 EndO : in Pnt from gp;
162 Infinite : Boolean from Standard;
163 TTri : in Integer from Standard;
164 thePolyh : in Polyhedron;
165 TriNormal: in XYZ from gp;
166 TriDp : in Real from Standard;
167 dBegTri : in Real from Standard;
168 dEndTri : in Real from Standard)
169 is static private;
170 ---Purpose: Computes the intersection between the segment <BegO><EndO>
171 -- and the triangle <TTri> of <thePolyh>.
172
41194117
K
173fields
174 BeginOfClosedPolygon: Boolean from Standard;
175 iLin : Integer from Standard;
176
7fd59977 177end InterferencePolygonPolyhedron;