2 // Created: Tue Sep 12 17:05:53 1995
3 // Author: Christophe MARION
8 static Standard_Real cosu0 = cos(0*PI/14);
9 static Standard_Real sinu0 = sin(0*PI/14);
10 static Standard_Real cosu1 = cos(1*PI/14);
11 static Standard_Real sinu1 = sin(1*PI/14);
12 static Standard_Real cosu2 = cos(2*PI/14);
13 static Standard_Real sinu2 = sin(2*PI/14);
14 static Standard_Real cosu3 = cos(3*PI/14);
15 static Standard_Real sinu3 = sin(3*PI/14);
16 static Standard_Real cosu4 = cos(4*PI/14);
17 static Standard_Real sinu4 = sin(4*PI/14);
18 static Standard_Real cosu5 = cos(5*PI/14);
19 static Standard_Real sinu5 = sin(5*PI/14);
20 static Standard_Real cosu6 = cos(6*PI/14);
21 static Standard_Real sinu6 = sin(6*PI/14);
23 //=======================================================================
24 //function : UpdateMinMax
26 //=======================================================================
28 void HLRAlgo::UpdateMinMax (const Standard_Real x,
29 const Standard_Real y,
30 const Standard_Real z,
31 const Standard_Address Min,
32 const Standard_Address Max)
34 Standard_Real d00,d01,d02,d03,d04,d05,d06,d07;
35 Standard_Real d08,d09,d10,d11,d12,d13,d14,d15;
36 d00 = cosu0 * x + sinu0 * y;
37 d01 = sinu0 * x - cosu0 * y;
38 d02 = cosu1 * x + sinu1 * y;
39 d03 = sinu1 * x - cosu1 * y;
40 d04 = cosu2 * x + sinu2 * y;
41 d05 = sinu2 * x - cosu2 * y;
42 d06 = cosu3 * x + sinu3 * y;
43 d07 = sinu3 * x - cosu3 * y;
44 d08 = cosu4 * x + sinu4 * y;
45 d09 = sinu4 * x - cosu4 * y;
46 d10 = cosu5 * x + sinu5 * y;
47 d11 = sinu5 * x - cosu5 * y;
48 d12 = cosu6 * x + sinu6 * y;
49 d13 = sinu6 * x - cosu6 * y;
53 if (((Standard_Real*)Min)[ 0] > d00) ((Standard_Real*)Min) [ 0] = d00;
54 if (((Standard_Real*)Max)[ 0] < d00) ((Standard_Real*)Max) [ 0] = d00;
55 if (((Standard_Real*)Min)[ 1] > d01) ((Standard_Real*)Min) [ 1] = d01;
56 if (((Standard_Real*)Max)[ 1] < d01) ((Standard_Real*)Max) [ 1] = d01;
57 if (((Standard_Real*)Min)[ 2] > d02) ((Standard_Real*)Min) [ 2] = d02;
58 if (((Standard_Real*)Max)[ 2] < d02) ((Standard_Real*)Max) [ 2] = d02;
59 if (((Standard_Real*)Min)[ 3] > d03) ((Standard_Real*)Min) [ 3] = d03;
60 if (((Standard_Real*)Max)[ 3] < d03) ((Standard_Real*)Max) [ 3] = d03;
61 if (((Standard_Real*)Min)[ 4] > d04) ((Standard_Real*)Min) [ 4] = d04;
62 if (((Standard_Real*)Max)[ 4] < d04) ((Standard_Real*)Max) [ 4] = d04;
63 if (((Standard_Real*)Min)[ 5] > d05) ((Standard_Real*)Min) [ 5] = d05;
64 if (((Standard_Real*)Max)[ 5] < d05) ((Standard_Real*)Max) [ 5] = d05;
65 if (((Standard_Real*)Min)[ 6] > d06) ((Standard_Real*)Min) [ 6] = d06;
66 if (((Standard_Real*)Max)[ 6] < d06) ((Standard_Real*)Max) [ 6] = d06;
67 if (((Standard_Real*)Min)[ 7] > d07) ((Standard_Real*)Min) [ 7] = d07;
68 if (((Standard_Real*)Max)[ 7] < d07) ((Standard_Real*)Max) [ 7] = d07;
69 if (((Standard_Real*)Min)[ 8] > d08) ((Standard_Real*)Min) [ 8] = d08;
70 if (((Standard_Real*)Max)[ 8] < d08) ((Standard_Real*)Max) [ 8] = d08;
71 if (((Standard_Real*)Min)[ 9] > d09) ((Standard_Real*)Min) [ 9] = d09;
72 if (((Standard_Real*)Max)[ 9] < d09) ((Standard_Real*)Max) [ 9] = d09;
73 if (((Standard_Real*)Min)[10] > d10) ((Standard_Real*)Min) [10] = d10;
74 if (((Standard_Real*)Max)[10] < d10) ((Standard_Real*)Max) [10] = d10;
75 if (((Standard_Real*)Min)[11] > d11) ((Standard_Real*)Min) [11] = d11;
76 if (((Standard_Real*)Max)[11] < d11) ((Standard_Real*)Max) [11] = d11;
77 if (((Standard_Real*)Min)[12] > d12) ((Standard_Real*)Min) [12] = d12;
78 if (((Standard_Real*)Max)[12] < d12) ((Standard_Real*)Max) [12] = d12;
79 if (((Standard_Real*)Min)[13] > d13) ((Standard_Real*)Min) [13] = d13;
80 if (((Standard_Real*)Max)[13] < d13) ((Standard_Real*)Max) [13] = d13;
81 if (((Standard_Real*)Min)[14] > d14) ((Standard_Real*)Min) [14] = d14;
82 if (((Standard_Real*)Max)[14] < d14) ((Standard_Real*)Max) [14] = d14;
83 if (((Standard_Real*)Min)[15] > d15) ((Standard_Real*)Min) [15] = d15;
84 if (((Standard_Real*)Max)[15] < d15) ((Standard_Real*)Max) [15] = d15;
87 //=======================================================================
88 //function : EnlargeMinMax
90 //=======================================================================
92 void HLRAlgo::EnlargeMinMax (const Standard_Real tol,
93 const Standard_Address Min,
94 const Standard_Address Max)
96 ((Standard_Real*)Min)[ 0] -= tol;
97 ((Standard_Real*)Max)[ 0] += tol;
98 ((Standard_Real*)Min)[ 1] -= tol;
99 ((Standard_Real*)Max)[ 1] += tol;
100 ((Standard_Real*)Min)[ 2] -= tol;
101 ((Standard_Real*)Max)[ 2] += tol;
102 ((Standard_Real*)Min)[ 3] -= tol;
103 ((Standard_Real*)Max)[ 3] += tol;
104 ((Standard_Real*)Min)[ 4] -= tol;
105 ((Standard_Real*)Max)[ 4] += tol;
106 ((Standard_Real*)Min)[ 5] -= tol;
107 ((Standard_Real*)Max)[ 5] += tol;
108 ((Standard_Real*)Min)[ 6] -= tol;
109 ((Standard_Real*)Max)[ 6] += tol;
110 ((Standard_Real*)Min)[ 7] -= tol;
111 ((Standard_Real*)Max)[ 7] += tol;
112 ((Standard_Real*)Min)[ 8] -= tol;
113 ((Standard_Real*)Max)[ 8] += tol;
114 ((Standard_Real*)Min)[ 9] -= tol;
115 ((Standard_Real*)Max)[ 9] += tol;
116 ((Standard_Real*)Min)[10] -= tol;
117 ((Standard_Real*)Max)[10] += tol;
118 ((Standard_Real*)Min)[11] -= tol;
119 ((Standard_Real*)Max)[11] += tol;
120 ((Standard_Real*)Min)[12] -= tol;
121 ((Standard_Real*)Max)[12] += tol;
122 ((Standard_Real*)Min)[13] -= tol;
123 ((Standard_Real*)Max)[13] += tol;
124 ((Standard_Real*)Min)[14] -= tol;
125 ((Standard_Real*)Max)[14] += tol;
126 ((Standard_Real*)Min)[15] -= tol;
127 ((Standard_Real*)Max)[15] += tol;
130 //=======================================================================
131 //function :InitMinMax
133 //=======================================================================
135 void HLRAlgo::InitMinMax (const Standard_Real Big,
136 const Standard_Address Min,
137 const Standard_Address Max)
139 ((Standard_Real*)Min)[ 0] =
140 ((Standard_Real*)Min)[ 1] =
141 ((Standard_Real*)Min)[ 2] =
142 ((Standard_Real*)Min)[ 3] =
143 ((Standard_Real*)Min)[ 4] =
144 ((Standard_Real*)Min)[ 5] =
145 ((Standard_Real*)Min)[ 6] =
146 ((Standard_Real*)Min)[ 7] =
147 ((Standard_Real*)Min)[ 8] =
148 ((Standard_Real*)Min)[ 9] =
149 ((Standard_Real*)Min)[10] =
150 ((Standard_Real*)Min)[11] =
151 ((Standard_Real*)Min)[12] =
152 ((Standard_Real*)Min)[13] =
153 ((Standard_Real*)Min)[14] =
154 ((Standard_Real*)Min)[15] = Big;
155 ((Standard_Real*)Max)[ 0] =
156 ((Standard_Real*)Max)[ 1] =
157 ((Standard_Real*)Max)[ 2] =
158 ((Standard_Real*)Max)[ 3] =
159 ((Standard_Real*)Max)[ 4] =
160 ((Standard_Real*)Max)[ 5] =
161 ((Standard_Real*)Max)[ 6] =
162 ((Standard_Real*)Max)[ 7] =
163 ((Standard_Real*)Max)[ 8] =
164 ((Standard_Real*)Max)[ 9] =
165 ((Standard_Real*)Max)[10] =
166 ((Standard_Real*)Max)[11] =
167 ((Standard_Real*)Max)[12] =
168 ((Standard_Real*)Max)[13] =
169 ((Standard_Real*)Max)[14] =
170 ((Standard_Real*)Max)[15] = -Big;
173 //=======================================================================
174 //function : EncodeMinMax
176 //=======================================================================
178 void HLRAlgo::EncodeMinMax (const Standard_Address Min,
179 const Standard_Address Max,
180 const Standard_Address MM)
182 ((Standard_Integer*)MM)[ 0] = ((Standard_Integer*)Min)[ 1]&0x00007fff;
183 ((Standard_Integer*)MM)[ 8] = ((Standard_Integer*)Max)[ 1]&0x00007fff;
184 ((Standard_Integer*)MM)[ 0]+=(((Standard_Integer*)Min)[ 0]&0x00007fff)<<16;
185 ((Standard_Integer*)MM)[ 8]+=(((Standard_Integer*)Max)[ 0]&0x00007fff)<<16;
186 ((Standard_Integer*)MM)[ 1] = ((Standard_Integer*)Min)[ 3]&0x00007fff;
187 ((Standard_Integer*)MM)[ 9] = ((Standard_Integer*)Max)[ 3]&0x00007fff;
188 ((Standard_Integer*)MM)[ 1]+=(((Standard_Integer*)Min)[ 2]&0x00007fff)<<16;
189 ((Standard_Integer*)MM)[ 9]+=(((Standard_Integer*)Max)[ 2]&0x00007fff)<<16;
190 ((Standard_Integer*)MM)[ 2] = ((Standard_Integer*)Min)[ 5]&0x00007fff;
191 ((Standard_Integer*)MM)[10] = ((Standard_Integer*)Max)[ 5]&0x00007fff;
192 ((Standard_Integer*)MM)[ 2]+=(((Standard_Integer*)Min)[ 4]&0x00007fff)<<16;
193 ((Standard_Integer*)MM)[10]+=(((Standard_Integer*)Max)[ 4]&0x00007fff)<<16;
194 ((Standard_Integer*)MM)[ 3] = ((Standard_Integer*)Min)[ 7]&0x00007fff;
195 ((Standard_Integer*)MM)[11] = ((Standard_Integer*)Max)[ 7]&0x00007fff;
196 ((Standard_Integer*)MM)[ 3]+=(((Standard_Integer*)Min)[ 6]&0x00007fff)<<16;
197 ((Standard_Integer*)MM)[11]+=(((Standard_Integer*)Max)[ 6]&0x00007fff)<<16;
198 ((Standard_Integer*)MM)[ 4] = ((Standard_Integer*)Min)[ 9]&0x00007fff;
199 ((Standard_Integer*)MM)[12] = ((Standard_Integer*)Max)[ 9]&0x00007fff;
200 ((Standard_Integer*)MM)[ 4]+=(((Standard_Integer*)Min)[ 8]&0x00007fff)<<16;
201 ((Standard_Integer*)MM)[12]+=(((Standard_Integer*)Max)[ 8]&0x00007fff)<<16;
202 ((Standard_Integer*)MM)[ 5] = ((Standard_Integer*)Min)[11]&0x00007fff;
203 ((Standard_Integer*)MM)[13] = ((Standard_Integer*)Max)[11]&0x00007fff;
204 ((Standard_Integer*)MM)[ 5]+=(((Standard_Integer*)Min)[10]&0x00007fff)<<16;
205 ((Standard_Integer*)MM)[13]+=(((Standard_Integer*)Max)[10]&0x00007fff)<<16;
206 ((Standard_Integer*)MM)[ 6] = ((Standard_Integer*)Min)[13]&0x00007fff;
207 ((Standard_Integer*)MM)[14] = ((Standard_Integer*)Max)[13]&0x00007fff;
208 ((Standard_Integer*)MM)[ 6]+=(((Standard_Integer*)Min)[12]&0x00007fff)<<16;
209 ((Standard_Integer*)MM)[14]+=(((Standard_Integer*)Max)[12]&0x00007fff)<<16;
210 ((Standard_Integer*)MM)[ 7] = ((Standard_Integer*)Min)[15]&0x00007fff;
211 ((Standard_Integer*)MM)[15] = ((Standard_Integer*)Max)[15]&0x00007fff;
212 ((Standard_Integer*)MM)[ 7]+=(((Standard_Integer*)Min)[14]&0x00007fff)<<16;
213 ((Standard_Integer*)MM)[15]+=(((Standard_Integer*)Max)[14]&0x00007fff)<<16;
216 //=======================================================================
219 //=======================================================================
221 Standard_Real HLRAlgo::SizeBox(const Standard_Address Min,
222 const Standard_Address Max)
225 s = ((Standard_Integer *)Max)[ 0] - ((Standard_Integer *)Min)[ 0];
226 s *= ((Standard_Integer *)Max)[ 1] - ((Standard_Integer *)Min)[ 1];
227 s *= ((Standard_Integer *)Max)[ 2] - ((Standard_Integer *)Min)[ 2];
228 s *= ((Standard_Integer *)Max)[ 3] - ((Standard_Integer *)Min)[ 3];
229 s *= ((Standard_Integer *)Max)[ 4] - ((Standard_Integer *)Min)[ 4];
230 s *= ((Standard_Integer *)Max)[ 5] - ((Standard_Integer *)Min)[ 5];
231 s *= ((Standard_Integer *)Max)[ 6] - ((Standard_Integer *)Min)[ 6];
232 s *= ((Standard_Integer *)Max)[ 7] - ((Standard_Integer *)Min)[ 7];
233 s *= ((Standard_Integer *)Max)[ 8] - ((Standard_Integer *)Min)[ 8];
234 s *= ((Standard_Integer *)Max)[ 9] - ((Standard_Integer *)Min)[ 9];
235 s *= ((Standard_Integer *)Max)[10] - ((Standard_Integer *)Min)[10];
236 s *= ((Standard_Integer *)Max)[11] - ((Standard_Integer *)Min)[11];
237 s *= ((Standard_Integer *)Max)[12] - ((Standard_Integer *)Min)[12];
238 s *= ((Standard_Integer *)Max)[13] - ((Standard_Integer *)Min)[13];
242 //=======================================================================
243 //function : DecodeMinMax
245 //=======================================================================
247 void HLRAlgo::DecodeMinMax (const Standard_Address MM,
248 const Standard_Address Min,
249 const Standard_Address Max)
251 ((Standard_Integer*)Min)[ 0]=(((Standard_Integer*)MM)[ 0]&0x7fff0000)>>16;
252 ((Standard_Integer*)Max)[ 0]=(((Standard_Integer*)MM)[ 8]&0x7fff0000)>>16;
253 ((Standard_Integer*)Min)[ 1]= ((Standard_Integer*)MM)[ 0]&0x00007fff;
254 ((Standard_Integer*)Max)[ 1]= ((Standard_Integer*)MM)[ 8]&0x00007fff;
255 ((Standard_Integer*)Min)[ 2]=(((Standard_Integer*)MM)[ 1]&0x7fff0000)>>16;
256 ((Standard_Integer*)Max)[ 2]=(((Standard_Integer*)MM)[ 9]&0x7fff0000)>>16;
257 ((Standard_Integer*)Min)[ 3]= ((Standard_Integer*)MM)[ 1]&0x00007fff;
258 ((Standard_Integer*)Max)[ 3]= ((Standard_Integer*)MM)[ 9]&0x00007fff;
259 ((Standard_Integer*)Min)[ 4]=(((Standard_Integer*)MM)[ 2]&0x7fff0000)>>16;
260 ((Standard_Integer*)Max)[ 4]=(((Standard_Integer*)MM)[10]&0x7fff0000)>>16;
261 ((Standard_Integer*)Min)[ 5]= ((Standard_Integer*)MM)[ 2]&0x00007fff;
262 ((Standard_Integer*)Max)[ 5]= ((Standard_Integer*)MM)[10]&0x00007fff;
263 ((Standard_Integer*)Min)[ 6]=(((Standard_Integer*)MM)[ 3]&0x7fff0000)>>16;
264 ((Standard_Integer*)Max)[ 6]=(((Standard_Integer*)MM)[11]&0x7fff0000)>>16;
265 ((Standard_Integer*)Min)[ 7]= ((Standard_Integer*)MM)[ 3]&0x00007fff;
266 ((Standard_Integer*)Max)[ 7]= ((Standard_Integer*)MM)[11]&0x00007fff;
267 ((Standard_Integer*)Min)[ 8]=(((Standard_Integer*)MM)[ 4]&0x7fff0000)>>16;
268 ((Standard_Integer*)Max)[ 8]=(((Standard_Integer*)MM)[12]&0x7fff0000)>>16;
269 ((Standard_Integer*)Min)[ 9]= ((Standard_Integer*)MM)[ 4]&0x00007fff;
270 ((Standard_Integer*)Max)[ 9]= ((Standard_Integer*)MM)[12]&0x00007fff;
271 ((Standard_Integer*)Min)[10]=(((Standard_Integer*)MM)[ 5]&0x7fff0000)>>16;
272 ((Standard_Integer*)Max)[10]=(((Standard_Integer*)MM)[13]&0x7fff0000)>>16;
273 ((Standard_Integer*)Min)[11]= ((Standard_Integer*)MM)[ 5]&0x00007fff;
274 ((Standard_Integer*)Max)[11]= ((Standard_Integer*)MM)[13]&0x00007fff;
275 ((Standard_Integer*)Min)[12]=(((Standard_Integer*)MM)[ 6]&0x7fff0000)>>16;
276 ((Standard_Integer*)Max)[12]=(((Standard_Integer*)MM)[14]&0x7fff0000)>>16;
277 ((Standard_Integer*)Min)[13]= ((Standard_Integer*)MM)[ 6]&0x00007fff;
278 ((Standard_Integer*)Max)[13]= ((Standard_Integer*)MM)[14]&0x00007fff;
279 ((Standard_Integer*)Min)[14]=(((Standard_Integer*)MM)[ 7]&0x7fff0000)>>16;
280 ((Standard_Integer*)Max)[14]=(((Standard_Integer*)MM)[15]&0x7fff0000)>>16;
281 ((Standard_Integer*)Min)[15]= ((Standard_Integer*)MM)[ 7]&0x00007fff;
282 ((Standard_Integer*)Max)[15]= ((Standard_Integer*)MM)[15]&0x00007fff;
285 //=======================================================================
286 //function :CopyMinMax
288 //=======================================================================
290 void HLRAlgo::CopyMinMax (const Standard_Address IMin,
291 const Standard_Address IMax,
292 const Standard_Address OMin,
293 const Standard_Address OMax)
295 ((Standard_Integer*)OMin)[ 0]=((Standard_Integer*)IMin)[ 0];
296 ((Standard_Integer*)OMax)[ 0]=((Standard_Integer*)IMax)[ 0];
297 ((Standard_Integer*)OMin)[ 1]=((Standard_Integer*)IMin)[ 1];
298 ((Standard_Integer*)OMax)[ 1]=((Standard_Integer*)IMax)[ 1];
299 ((Standard_Integer*)OMin)[ 2]=((Standard_Integer*)IMin)[ 2];
300 ((Standard_Integer*)OMax)[ 2]=((Standard_Integer*)IMax)[ 2];
301 ((Standard_Integer*)OMin)[ 3]=((Standard_Integer*)IMin)[ 3];
302 ((Standard_Integer*)OMax)[ 3]=((Standard_Integer*)IMax)[ 3];
303 ((Standard_Integer*)OMin)[ 4]=((Standard_Integer*)IMin)[ 4];
304 ((Standard_Integer*)OMax)[ 4]=((Standard_Integer*)IMax)[ 4];
305 ((Standard_Integer*)OMin)[ 5]=((Standard_Integer*)IMin)[ 5];
306 ((Standard_Integer*)OMax)[ 5]=((Standard_Integer*)IMax)[ 5];
307 ((Standard_Integer*)OMin)[ 6]=((Standard_Integer*)IMin)[ 6];
308 ((Standard_Integer*)OMax)[ 6]=((Standard_Integer*)IMax)[ 6];
309 ((Standard_Integer*)OMin)[ 7]=((Standard_Integer*)IMin)[ 7];
310 ((Standard_Integer*)OMax)[ 7]=((Standard_Integer*)IMax)[ 7];
311 ((Standard_Integer*)OMin)[ 8]=((Standard_Integer*)IMin)[ 8];
312 ((Standard_Integer*)OMax)[ 8]=((Standard_Integer*)IMax)[ 8];
313 ((Standard_Integer*)OMin)[ 9]=((Standard_Integer*)IMin)[ 9];
314 ((Standard_Integer*)OMax)[ 9]=((Standard_Integer*)IMax)[ 9];
315 ((Standard_Integer*)OMin)[10]=((Standard_Integer*)IMin)[10];
316 ((Standard_Integer*)OMax)[10]=((Standard_Integer*)IMax)[10];
317 ((Standard_Integer*)OMin)[11]=((Standard_Integer*)IMin)[11];
318 ((Standard_Integer*)OMax)[11]=((Standard_Integer*)IMax)[11];
319 ((Standard_Integer*)OMin)[12]=((Standard_Integer*)IMin)[12];
320 ((Standard_Integer*)OMax)[12]=((Standard_Integer*)IMax)[12];
321 ((Standard_Integer*)OMin)[13]=((Standard_Integer*)IMin)[13];
322 ((Standard_Integer*)OMax)[13]=((Standard_Integer*)IMax)[13];
323 ((Standard_Integer*)OMin)[14]=((Standard_Integer*)IMin)[14];
324 ((Standard_Integer*)OMax)[14]=((Standard_Integer*)IMax)[14];
325 ((Standard_Integer*)OMin)[15]=((Standard_Integer*)IMin)[15];
326 ((Standard_Integer*)OMax)[15]=((Standard_Integer*)IMax)[15];
329 //=======================================================================
330 //function :AddMinMax
332 //=======================================================================
334 void HLRAlgo::AddMinMax (const Standard_Address IMin,
335 const Standard_Address IMax,
336 const Standard_Address OMin,
337 const Standard_Address OMax)
339 if (((Standard_Integer*)OMin)[ 0] > ((Standard_Integer*)IMin)[ 0])
340 ((Standard_Integer*)OMin)[ 0]=((Standard_Integer*)IMin)[ 0];
341 if (((Standard_Integer*)OMax)[ 0] < ((Standard_Integer*)IMax)[ 0])
342 ((Standard_Integer*)OMax)[ 0]=((Standard_Integer*)IMax)[ 0];
343 if (((Standard_Integer*)OMin)[ 1] > ((Standard_Integer*)IMin)[ 1])
344 ((Standard_Integer*)OMin)[ 1]=((Standard_Integer*)IMin)[ 1];
345 if (((Standard_Integer*)OMax)[ 1] < ((Standard_Integer*)IMax)[ 1])
346 ((Standard_Integer*)OMax)[ 1]=((Standard_Integer*)IMax)[ 1];
347 if (((Standard_Integer*)OMin)[ 2] > ((Standard_Integer*)IMin)[ 2])
348 ((Standard_Integer*)OMin)[ 2]=((Standard_Integer*)IMin)[ 2];
349 if (((Standard_Integer*)OMax)[ 2] < ((Standard_Integer*)IMax)[ 2])
350 ((Standard_Integer*)OMax)[ 2]=((Standard_Integer*)IMax)[ 2];
351 if (((Standard_Integer*)OMin)[ 3] > ((Standard_Integer*)IMin)[ 3])
352 ((Standard_Integer*)OMin)[ 3]=((Standard_Integer*)IMin)[ 3];
353 if (((Standard_Integer*)OMax)[ 3] < ((Standard_Integer*)IMax)[ 3])
354 ((Standard_Integer*)OMax)[ 3]=((Standard_Integer*)IMax)[ 3];
355 if (((Standard_Integer*)OMin)[ 4] > ((Standard_Integer*)IMin)[ 4])
356 ((Standard_Integer*)OMin)[ 4]=((Standard_Integer*)IMin)[ 4];
357 if (((Standard_Integer*)OMax)[ 4] < ((Standard_Integer*)IMax)[ 4])
358 ((Standard_Integer*)OMax)[ 4]=((Standard_Integer*)IMax)[ 4];
359 if (((Standard_Integer*)OMin)[ 5] > ((Standard_Integer*)IMin)[ 5])
360 ((Standard_Integer*)OMin)[ 5]=((Standard_Integer*)IMin)[ 5];
361 if (((Standard_Integer*)OMax)[ 5] < ((Standard_Integer*)IMax)[ 5])
362 ((Standard_Integer*)OMax)[ 5]=((Standard_Integer*)IMax)[ 5];
363 if (((Standard_Integer*)OMin)[ 6] > ((Standard_Integer*)IMin)[ 6])
364 ((Standard_Integer*)OMin)[ 6]=((Standard_Integer*)IMin)[ 6];
365 if (((Standard_Integer*)OMax)[ 6] < ((Standard_Integer*)IMax)[ 6])
366 ((Standard_Integer*)OMax)[ 6]=((Standard_Integer*)IMax)[ 6];
367 if (((Standard_Integer*)OMin)[ 7] > ((Standard_Integer*)IMin)[ 7])
368 ((Standard_Integer*)OMin)[ 7]=((Standard_Integer*)IMin)[ 7];
369 if (((Standard_Integer*)OMax)[ 7] < ((Standard_Integer*)IMax)[ 7])
370 ((Standard_Integer*)OMax)[ 7]=((Standard_Integer*)IMax)[ 7];
371 if (((Standard_Integer*)OMin)[ 8] > ((Standard_Integer*)IMin)[ 8])
372 ((Standard_Integer*)OMin)[ 8]=((Standard_Integer*)IMin)[ 8];
373 if (((Standard_Integer*)OMax)[ 8] < ((Standard_Integer*)IMax)[ 8])
374 ((Standard_Integer*)OMax)[ 8]=((Standard_Integer*)IMax)[ 8];
375 if (((Standard_Integer*)OMin)[ 9] > ((Standard_Integer*)IMin)[ 9])
376 ((Standard_Integer*)OMin)[ 9]=((Standard_Integer*)IMin)[ 9];
377 if (((Standard_Integer*)OMax)[ 9] < ((Standard_Integer*)IMax)[ 9])
378 ((Standard_Integer*)OMax)[ 9]=((Standard_Integer*)IMax)[ 9];
379 if (((Standard_Integer*)OMin)[10] > ((Standard_Integer*)IMin)[10])
380 ((Standard_Integer*)OMin)[10]=((Standard_Integer*)IMin)[10];
381 if (((Standard_Integer*)OMax)[10] < ((Standard_Integer*)IMax)[10])
382 ((Standard_Integer*)OMax)[10]=((Standard_Integer*)IMax)[10];
383 if (((Standard_Integer*)OMin)[11] > ((Standard_Integer*)IMin)[11])
384 ((Standard_Integer*)OMin)[11]=((Standard_Integer*)IMin)[11];
385 if (((Standard_Integer*)OMax)[11] < ((Standard_Integer*)IMax)[11])
386 ((Standard_Integer*)OMax)[11]=((Standard_Integer*)IMax)[11];
387 if (((Standard_Integer*)OMin)[12] > ((Standard_Integer*)IMin)[12])
388 ((Standard_Integer*)OMin)[12]=((Standard_Integer*)IMin)[12];
389 if (((Standard_Integer*)OMax)[12] < ((Standard_Integer*)IMax)[12])
390 ((Standard_Integer*)OMax)[12]=((Standard_Integer*)IMax)[12];
391 if (((Standard_Integer*)OMin)[13] > ((Standard_Integer*)IMin)[13])
392 ((Standard_Integer*)OMin)[13]=((Standard_Integer*)IMin)[13];
393 if (((Standard_Integer*)OMax)[13] < ((Standard_Integer*)IMax)[13])
394 ((Standard_Integer*)OMax)[13]=((Standard_Integer*)IMax)[13];
395 if (((Standard_Integer*)OMin)[14] > ((Standard_Integer*)IMin)[14])
396 ((Standard_Integer*)OMin)[14]=((Standard_Integer*)IMin)[14];
397 if (((Standard_Integer*)OMax)[14] < ((Standard_Integer*)IMax)[14])
398 ((Standard_Integer*)OMax)[14]=((Standard_Integer*)IMax)[14];
399 if (((Standard_Integer*)OMin)[15] > ((Standard_Integer*)IMin)[15])
400 ((Standard_Integer*)OMin)[15]=((Standard_Integer*)IMin)[15];
401 if (((Standard_Integer*)OMax)[15] < ((Standard_Integer*)IMax)[15])
402 ((Standard_Integer*)OMax)[15]=((Standard_Integer*)IMax)[15];