Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

697 lines
17 KiB

  1. /*
  2. ** Copyright 1992, Silicon Graphics, Inc.
  3. ** All Rights Reserved.
  4. **
  5. ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6. ** the contents of this file may not be disclosed to third parties, copied or
  7. ** duplicated in any form, in whole or in part, without the prior written
  8. ** permission of Silicon Graphics, Inc.
  9. **
  10. ** RESTRICTED RIGHTS LEGEND:
  11. ** Use, duplication or disclosure by the Government is subject to restrictions
  12. ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13. ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14. ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15. ** rights reserved under the Copyright Laws of the United States.
  16. **
  17. */
  18. #include <stdlib.h>
  19. #include <setjmp.h>
  20. struct JumpBuffer {
  21. jmp_buf buf;
  22. };
  23. #define mysetjmp(x) setjmp((x)->buf)
  24. #define mylongjmp(x,y) longjmp((x)->buf, y)
  25. /* <<AT&T USL C++ Language System <3.0.1> 02/03/92>> */
  26. /* < ../core/slicer.c++ > */
  27. void *__vec_new (void *, int , int , void *);
  28. void __vec_ct (void *, int , int , void *);
  29. void __vec_dt (void *, int , int , void *);
  30. void __vec_delete (void *, int , int , void *, int , int );
  31. typedef int (*__vptp)(void);
  32. struct __mptr {short d; short i; __vptp f; };
  33. typedef unsigned int size_t ;
  34. // extern void *malloc (size_t );
  35. // extern void free (void *);
  36. struct Buffer;
  37. struct Buffer {
  38. struct Buffer *next__6Buffer ;
  39. };
  40. struct Pool;
  41. enum __Q2_4Pool5Magic { is_allocated__Q2_4Pool5Magic = 62369, is_free__Q2_4Pool5Magic = 61858} ;
  42. struct Pool {
  43. struct Buffer *freelist__4Pool ;
  44. char *blocklist__4Pool [32];
  45. int nextblock__4Pool ;
  46. char *curblock__4Pool ;
  47. int buffersize__4Pool ;
  48. int nextsize__4Pool ;
  49. int nextfree__4Pool ;
  50. int initsize__4Pool ;
  51. char *name__4Pool ;
  52. int magic__4Pool ;
  53. };
  54. void __glgrow__4PoolFv (struct Pool *);
  55. struct PooledObj;
  56. struct PooledObj {
  57. char __W3__9PooledObj ;
  58. };
  59. struct Arc;
  60. struct Backend;
  61. typedef float REAL ;
  62. typedef void (*Pfvv )(void );
  63. typedef void (*Pfvf )(float *);
  64. typedef int (*cmpfunc )(void *, void *);
  65. typedef REAL Knot ;
  66. typedef REAL *Knot_ptr ;
  67. struct TrimVertex;
  68. struct TrimVertex {
  69. REAL param__10TrimVertex [2];
  70. long nuid__10TrimVertex ;
  71. };
  72. typedef struct TrimVertex *TrimVertex_p ;
  73. struct PwlArc;
  74. struct PwlArc {
  75. char __W3__9PooledObj ;
  76. struct TrimVertex *pts__6PwlArc ;
  77. int npts__6PwlArc ;
  78. long type__6PwlArc ;
  79. };
  80. struct Bin;
  81. struct Arc;
  82. struct BezierArc;
  83. typedef struct Arc *Arc_ptr ;
  84. enum arc_side { arc_none = 0, arc_right = 1, arc_top = 2, arc_left = 3, arc_bottom = 4} ;
  85. struct Arc;
  86. struct Arc {
  87. char __W3__9PooledObj ;
  88. Arc_ptr prev__3Arc ;
  89. Arc_ptr next__3Arc ;
  90. Arc_ptr link__3Arc ;
  91. struct BezierArc *bezierArc__3Arc ;
  92. struct PwlArc *pwlArc__3Arc ;
  93. long type__3Arc ;
  94. long nuid__3Arc ;
  95. };
  96. extern int __glbezier_tag__3Arc ;
  97. extern int __glarc_tag__3Arc ;
  98. extern int __gltail_tag__3Arc ;
  99. struct Jarcloc;
  100. struct Jarcloc {
  101. struct Arc *arc__7Jarcloc ;
  102. struct TrimVertex *p__7Jarcloc ;
  103. struct TrimVertex *plast__7Jarcloc ;
  104. };
  105. struct Trimline;
  106. struct Trimline {
  107. struct TrimVertex **pts__8Trimline ;
  108. long numverts__8Trimline ;
  109. long i__8Trimline ;
  110. long size__8Trimline ;
  111. struct Jarcloc jarcl__8Trimline ;
  112. struct TrimVertex t__8Trimline ;
  113. struct TrimVertex b__8Trimline ;
  114. struct TrimVertex *tinterp__8Trimline ;
  115. struct TrimVertex *binterp__8Trimline ;
  116. };
  117. struct Gridline;
  118. struct Gridline {
  119. long v__8Gridline ;
  120. REAL vval__8Gridline ;
  121. long vindex__8Gridline ;
  122. long ustart__8Gridline ;
  123. long uend__8Gridline ;
  124. };
  125. struct Uarray;
  126. struct Uarray {
  127. long size__6Uarray ;
  128. long ulines__6Uarray ;
  129. REAL *uarray__6Uarray ;
  130. };
  131. struct Backend;
  132. struct TrimRegion;
  133. void __gl__dt__8TrimlineFv (struct Trimline *, int );
  134. void __gl__dt__6UarrayFv (struct Uarray *, int );
  135. struct TrimRegion {
  136. struct Trimline left__10TrimRegion ;
  137. struct Trimline right__10TrimRegion ;
  138. struct Gridline top__10TrimRegion ;
  139. struct Gridline bot__10TrimRegion ;
  140. struct Uarray uarray__10TrimRegion ;
  141. REAL oneOverDu__10TrimRegion ;
  142. };
  143. struct GridTrimVertex;
  144. struct __Q2_4Hull4Side;
  145. struct __Q2_4Hull4Side {
  146. struct Trimline *left__Q2_4Hull4Side ;
  147. struct Gridline *line__Q2_4Hull4Side ;
  148. struct Trimline *right__Q2_4Hull4Side ;
  149. long index__Q2_4Hull4Side ;
  150. };
  151. struct Hull;
  152. struct Hull {
  153. struct __Q2_4Hull4Side lower__4Hull ;
  154. struct __Q2_4Hull4Side upper__4Hull ;
  155. struct Trimline fakeleft__4Hull ;
  156. struct Trimline fakeright__4Hull ;
  157. struct TrimRegion *PTrimRegion;
  158. struct TrimRegion OTrimRegion;
  159. };
  160. struct Backend;
  161. struct GridTrimVertex;
  162. struct Mesher;
  163. struct Mesher {
  164. struct __Q2_4Hull4Side lower__4Hull ;
  165. struct __Q2_4Hull4Side upper__4Hull ;
  166. struct Trimline fakeleft__4Hull ;
  167. struct Trimline fakeright__4Hull ;
  168. struct TrimRegion *PTrimRegion;
  169. struct Backend *backend__6Mesher ;
  170. struct Pool p__6Mesher ;
  171. unsigned int stacksize__6Mesher ;
  172. struct GridTrimVertex **vdata__6Mesher ;
  173. struct GridTrimVertex *last__6Mesher [2];
  174. int itop__6Mesher ;
  175. int lastedge__6Mesher ;
  176. struct TrimRegion OTrimRegion;
  177. };
  178. extern float __glZERO__6Mesher ;
  179. struct Backend;
  180. struct GridVertex;
  181. struct GridTrimVertex;
  182. struct CoveAndTiler;
  183. struct CoveAndTiler {
  184. struct Backend *backend__12CoveAndTiler ;
  185. struct TrimRegion *PTrimRegion;
  186. struct TrimRegion OTrimRegion;
  187. };
  188. extern int __glMAXSTRIPSIZE__12CoveAndTil0 ;
  189. struct Backend;
  190. struct Slicer;
  191. struct Slicer {
  192. struct Backend *backend__12CoveAndTiler ;
  193. struct TrimRegion *PTrimRegion;
  194. struct Mesher OMesher;
  195. struct Backend *backend__6Slicer ;
  196. REAL oneOverDu__6Slicer ;
  197. REAL du__6Slicer ;
  198. REAL dv__6Slicer ;
  199. int isolines__6Slicer ;
  200. };
  201. struct GridVertex;
  202. struct GridVertex {
  203. long gparam__10GridVertex [2];
  204. };
  205. struct GridTrimVertex;
  206. struct GridTrimVertex {
  207. char __W3__9PooledObj ;
  208. struct TrimVertex dummyt__14GridTrimVertex ;
  209. struct GridVertex dummyg__14GridTrimVertex ;
  210. struct TrimVertex *t__14GridTrimVertex ;
  211. struct GridVertex *g__14GridTrimVertex ;
  212. };
  213. typedef struct GridTrimVertex *GridTrimVertex_p ;
  214. struct BasicCurveEvaluator;
  215. struct BasicSurfaceEvaluator;
  216. struct Backend;
  217. struct Backend {
  218. struct BasicCurveEvaluator *curveEvaluator__7Backend ;
  219. struct BasicSurfaceEvaluator *surfaceEvaluator__7Backend ;
  220. int wireframetris__7Backend ;
  221. int wireframequads__7Backend ;
  222. int npts__7Backend ;
  223. REAL mesh__7Backend [3][4];
  224. int meshindex__7Backend ;
  225. };
  226. struct Varray;
  227. struct Varray {
  228. REAL *varray__6Varray ;
  229. REAL vval__6Varray [1000];
  230. long voffset__6Varray [1000];
  231. long numquads__6Varray ;
  232. long size__6Varray ;
  233. };
  234. struct Mesher *__gl__ct__6MesherFR7Backend (struct Mesher *, struct TrimRegion *, struct Backend *);
  235. struct CoveAndTiler *__gl__ct__12CoveAndTilerFR7Bac0 (struct CoveAndTiler *, struct TrimRegion *, struct Backend *);
  236. struct TrimRegion *__gl__ct__10TrimRegionFv (struct TrimRegion *);
  237. extern struct __mptr* __ptbl_vec_____core_slicer_c_____ct_[];
  238. struct Slicer *__gl__ct__6SlicerFR7Backend (struct Slicer *__0this , struct TrimRegion *__0TrimRegion , struct Backend *__1b )
  239. {
  240. void *__1__Xp00uzigaiaa ;
  241. if (__0this || (__0this = (struct Slicer *)( (__1__Xp00uzigaiaa = malloc ( (sizeof (struct Slicer))) ), (__1__Xp00uzigaiaa ?(((void *)__1__Xp00uzigaiaa )):(((void *)__1__Xp00uzigaiaa )))) ))(
  242. ( ( ((__0TrimRegion == 0 )?( (__0TrimRegion = (((struct TrimRegion *)((((char *)__0this ))+ 356)))), __gl__ct__10TrimRegionFv ( ((struct TrimRegion *)((((char *)__0this ))+ 356)))
  243. ) :__0TrimRegion ), __gl__ct__12CoveAndTilerFR7Bac0 ( ((struct CoveAndTiler *)__0this ), __0TrimRegion , __1b ) ) , __gl__ct__6MesherFR7Backend ( ((struct Mesher *)((((char *)__0this ))+ 8)),
  244. __0TrimRegion , __1b ) ) , (__0this -> backend__6Slicer = __1b )) ;
  245. return __0this ;
  246. }
  247. void __gl__dt__12CoveAndTilerFv (struct CoveAndTiler *, int );
  248. void __gl__dt__6MesherFv (struct Mesher *, int );
  249. void __gl__dt__6SlicerFv (struct Slicer *__0this ,
  250. int __0__free )
  251. { if (__0this )
  252. if (__0this ){ ( __gl__dt__6MesherFv ( ((struct Mesher *)((((char *)__0this ))+ 8)),
  253. 0 ) , ( __gl__dt__12CoveAndTilerFv ( ((struct CoveAndTiler *)__0this ), 0 ) , ((__0__free & 2)?( (((void )( ((((struct TrimRegion *)((((char
  254. *)__0this ))+ 356)))?( ((((struct TrimRegion *)((((char *)__0this ))+ 356)))?( ( __gl__dt__6UarrayFv ( (struct Uarray *)(& (((struct TrimRegion *)((((char *)__0this ))+ 356)))->
  255. uarray__10TrimRegion ), 2) , ( __gl__dt__8TrimlineFv ( (struct Trimline *)(& (((struct TrimRegion *)((((char *)__0this ))+ 356)))-> right__10TrimRegion ), 2) ,
  256. ( __gl__dt__8TrimlineFv ( (struct Trimline *)(& (((struct TrimRegion *)((((char *)__0this ))+ 356)))-> left__10TrimRegion ), 2) , (( 0 ) ))
  257. ) ) , 0 ) :( 0 ) ), 0 ) :( 0 ) )) )), 0 ) :0 ))
  258. ) ;
  259. if (__0__free & 1)( (((void *)__0this )?( free ( ((void *)__0this )) , 0 ) :( 0 ) )) ;
  260. } }
  261. void __glsetisolines__6SlicerFi (struct Slicer *__0this , int __1x )
  262. {
  263. __0this -> isolines__6Slicer = __1x ;
  264. }
  265. void __glsetDu__10TrimRegionFf (struct TrimRegion *, REAL );
  266. void __glsetstriptessellation__6Sli0 (struct Slicer *__0this , REAL __1x , REAL __1y )
  267. {
  268. ((void )0 );
  269. __0this -> du__6Slicer = __1x ;
  270. __0this -> dv__6Slicer = __1y ;
  271. __glsetDu__10TrimRegionFf ( (struct TrimRegion *)__0this -> PTrimRegion, __0this -> du__6Slicer ) ;
  272. }
  273. void __glmarkverts__3ArcFv (struct Arc *);
  274. void __glgetextrema__3ArcFPP3Arc (struct Arc *, Arc_ptr *);
  275. int __glnumpts__3ArcFv (struct Arc *);
  276. void __glinit__6MesherFUi (struct Mesher *, unsigned int );
  277. void __glinit__4HullFv (struct Hull *);
  278. void __glinit__10TrimRegionFlP3Arc (struct TrimRegion *, long , struct Arc *);
  279. long __glinit__6UarrayFfP3ArcT2 (struct Uarray *, REAL , struct Arc *, struct Arc *);
  280. struct Varray *__gl__ct__6VarrayFv (struct Varray *);
  281. long __glinit__6VarrayFfP3ArcT2 (struct Varray *, REAL , struct Arc *, struct Arc *);
  282. void __glgetGridExtent__10TrimRegio1 (struct TrimRegion *, struct TrimVertex *, struct TrimVertex *);
  283. void __glsurfgrid__7BackendFfT1lN210 (struct Backend *, REAL , REAL , long , REAL , REAL , long );
  284. void __glgetPts__10TrimRegionFP3Arc (struct TrimRegion *, struct Arc *);
  285. void __glgetPts__10TrimRegionFR7Bac0 (struct TrimRegion *, struct Backend *);
  286. void __glgetGridExtent__10TrimRegio0 (struct TrimRegion *);
  287. void __gloutline__6SlicerFv (struct Slicer *);
  288. int __glcanTile__10TrimRegionFv (struct TrimRegion *);
  289. void __glcoveAndTile__12CoveAndTile0 (struct CoveAndTiler *);
  290. void __glmesh__6MesherFv (struct Mesher *);
  291. void __gl__dt__6VarrayFv (struct Varray *, int );
  292. void __glslice__6SlicerFP3Arc (struct Slicer *__0this , Arc_ptr __1loop )
  293. {
  294. __glmarkverts__3ArcFv ( (struct Arc *)__1loop ) ;
  295. { Arc_ptr __1extrema [4];
  296. __glgetextrema__3ArcFPP3Arc ( (struct Arc *)__1loop , (struct Arc **)__1extrema ) ;
  297. { unsigned int __1npts ;
  298. __1npts = __glnumpts__3ArcFv ( (struct Arc *)__1loop ) ;
  299. __glinit__10TrimRegionFlP3Arc ( (struct TrimRegion *)__0this -> PTrimRegion, (long )__1npts , __1extrema [0 ]) ;
  300. __glinit__6MesherFUi ( (struct Mesher *)(&(__0this -> OMesher)), __1npts ) ;
  301. { long __1ulines ;
  302. struct Varray __1varray ;
  303. long __1vlines ;
  304. long __1botv ;
  305. long __1topv ;
  306. __1ulines = __glinit__6UarrayFfP3ArcT2 ( (struct Uarray *)(& __0this -> PTrimRegion-> uarray__10TrimRegion ), __0this -> du__6Slicer , __1extrema [1 ], __1extrema [3 ]) ;
  307. __gl__ct__6VarrayFv ( (struct Varray *)(& __1varray )) ;
  308. __1vlines = __glinit__6VarrayFfP3ArcT2 ( (struct Varray *)(& __1varray ), __0this -> dv__6Slicer , __1extrema [0 ], __1extrema [2 ]) ;
  309. __1botv = 0 ;
  310. ( (((struct TrimRegion *)__0this -> PTrimRegion)-> bot__10TrimRegion . vval__8Gridline = (__1varray . varray__6Varray [__1botv ]))) ;
  311. __glgetGridExtent__10TrimRegio1 ( (struct TrimRegion *)__0this -> PTrimRegion, & ((__1extrema [0 ])-> pwlArc__3Arc -> pts__6PwlArc [0 ]), & ((__1extrema [0 ])-> pwlArc__3Arc -> pts__6PwlArc [0 ])) ;
  312. { { long __1quad ;
  313. __1quad = 0 ;
  314. for(;__1quad < __1varray . numquads__6Varray ;__1quad ++ ) {
  315. __glsurfgrid__7BackendFfT1lN210 ( (struct Backend *)__0this -> backend__6Slicer , __0this -> PTrimRegion-> uarray__10TrimRegion . uarray__6Uarray [0 ], __0this ->
  316. PTrimRegion-> uarray__10TrimRegion . uarray__6Uarray [(__1ulines - 1 )], __1ulines - 1 , __1varray . vval__6Varray [__1quad ], __1varray . vval__6Varray [(__1quad + 1 )], (__1varray . voffset__6Varray [(__1quad + 1 )])-
  317. (__1varray . voffset__6Varray [__1quad ])) ;
  318. { { long __2i ;
  319. __2i = ((__1varray . voffset__6Varray [__1quad ])+ 1 );
  320. for(;__2i <= (__1varray . voffset__6Varray [(__1quad + 1 )]);__2i ++ ) {
  321. __1topv = (__1botv ++ );
  322. ( (((struct TrimRegion *)__0this -> PTrimRegion)-> top__10TrimRegion . vindex__8Gridline = ((float )(__1topv - (__1varray . voffset__6Varray [__1quad ])))), ( (((struct TrimRegion *)__0this -> PTrimRegion)->
  323. bot__10TrimRegion . vindex__8Gridline = ((float )(__1botv - (__1varray . voffset__6Varray [__1quad ])))), ( (((struct TrimRegion *)__0this -> PTrimRegion)-> top__10TrimRegion . vval__8Gridline = ((struct TrimRegion *)__0this ->
  324. PTrimRegion)-> bot__10TrimRegion . vval__8Gridline ), ( (((struct TrimRegion *)__0this -> PTrimRegion)-> bot__10TrimRegion . vval__8Gridline = (__1varray . varray__6Varray [__1botv ])), ( (((struct TrimRegion *)__0this ->
  325. PTrimRegion)-> top__10TrimRegion . ustart__8Gridline = ((struct TrimRegion *)__0this -> PTrimRegion)-> bot__10TrimRegion . ustart__8Gridline ), (((struct TrimRegion *)__0this -> PTrimRegion)-> top__10TrimRegion . uend__8Gridline = ((struct
  326. TrimRegion *)__0this -> PTrimRegion)-> bot__10TrimRegion . uend__8Gridline )) ) ) ) ) ;
  327. if (__2i == __1vlines )
  328. __glgetPts__10TrimRegionFP3Arc ( (struct TrimRegion *)__0this -> PTrimRegion, __1extrema [2 ]) ;
  329. else
  330. __glgetPts__10TrimRegionFR7Bac0 ( (struct TrimRegion *)__0this -> PTrimRegion, __0this -> backend__6Slicer ) ;
  331. __glgetGridExtent__10TrimRegio0 ( (struct TrimRegion *)__0this -> PTrimRegion) ;
  332. if (__0this -> isolines__6Slicer ){
  333. __gloutline__6SlicerFv ( __0this ) ;
  334. }
  335. else
  336. {
  337. if (__glcanTile__10TrimRegionFv ( (struct TrimRegion *)__0this -> PTrimRegion) )
  338. __glcoveAndTile__12CoveAndTile0 ( (struct CoveAndTiler *)__0this ) ;
  339. else
  340. __glmesh__6MesherFv ( (struct Mesher *)(&(__0this -> OMesher))) ;
  341. }
  342. }
  343. }
  344. }
  345. }
  346. }
  347. }
  348. __gl__dt__6VarrayFv ( (struct Varray *)(& __1varray ), 2) ;
  349. }
  350. }
  351. }
  352. }
  353. void __glbgnoutline__7BackendFv (struct Backend *);
  354. struct GridTrimVertex *__glnextupper__4HullFP14GridTr0 (struct Hull *, struct GridTrimVertex *);
  355. void __gllinevert__7BackendFP10Grid0 (struct Backend *, struct GridVertex *);
  356. void __gllinevert__7BackendFP10Trim0 (struct Backend *, struct TrimVertex *);
  357. void __glendoutline__7BackendFv (struct Backend *);
  358. struct GridTrimVertex *__glnextlower__4HullFP14GridTr0 (struct Hull *, struct GridTrimVertex *);
  359. void __gloutline__6SlicerFv (struct Slicer *__0this )
  360. {
  361. struct GridTrimVertex __1upper ;
  362. struct GridTrimVertex __1lower ;
  363. void *__1__Xp00uzigaiaa ;
  364. ( ( (0 ), ((((struct GridVertex *)(& ((struct GridTrimVertex *)(& __1upper ))-> dummyg__14GridTrimVertex ))))) , ( (((struct GridTrimVertex *)(& __1upper ))->
  365. g__14GridTrimVertex = 0 ), ( (((struct GridTrimVertex *)(& __1upper ))-> t__14GridTrimVertex = 0 ), ((((struct GridTrimVertex *)(& __1upper ))))) ) ) ;
  366. ( ( (0 ), ((((struct GridVertex *)(& ((struct GridTrimVertex *)(& __1lower ))-> dummyg__14GridTrimVertex ))))) , ( (((struct GridTrimVertex *)(& __1lower ))->
  367. g__14GridTrimVertex = 0 ), ( (((struct GridTrimVertex *)(& __1lower ))-> t__14GridTrimVertex = 0 ), ((((struct GridTrimVertex *)(& __1lower ))))) ) ) ;
  368. __glinit__4HullFv ( (struct Hull *)(&(__0this -> OMesher))) ;
  369. __glbgnoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  370. while (__glnextupper__4HullFP14GridTr0 ( (struct Hull *)(&(__0this -> OMesher)), & __1upper ) ){
  371. if (( (((struct GridTrimVertex *)(& __1upper ))-> g__14GridTrimVertex ?1 :0 ))
  372. )
  373. __gllinevert__7BackendFP10Grid0 ( (struct Backend *)__0this -> backend__6Slicer , __1upper . g__14GridTrimVertex ) ;
  374. else
  375. __gllinevert__7BackendFP10Trim0 ( (struct Backend *)__0this -> backend__6Slicer , __1upper . t__14GridTrimVertex ) ;
  376. }
  377. __glendoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  378. __glbgnoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  379. while (__glnextlower__4HullFP14GridTr0 ( (struct Hull *)(&(__0this -> OMesher)), & __1lower ) ){
  380. if (( (((struct GridTrimVertex *)(& __1lower ))-> g__14GridTrimVertex ?1 :0 ))
  381. )
  382. __gllinevert__7BackendFP10Grid0 ( (struct Backend *)__0this -> backend__6Slicer , __1lower . g__14GridTrimVertex ) ;
  383. else
  384. __gllinevert__7BackendFP10Trim0 ( (struct Backend *)__0this -> backend__6Slicer , __1lower . t__14GridTrimVertex ) ;
  385. }
  386. __glendoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  387. ((void )( (( (( ( (((void )( ((((struct PooledObj *)((struct GridTrimVertex *)(& __1lower ))))?( ((((struct PooledObj *)((struct GridTrimVertex *)(&
  388. __1lower ))))?( (( 0 ) ), 0 ) :( 0 ) ), 0 ) :( 0 ) )) )), ((
  389. 0 ) )) , 0 ) ), 0 ) )) );
  390. ((void )( (( (( ( (((void )( ((((struct PooledObj *)((struct GridTrimVertex *)(& __1upper ))))?( ((((struct PooledObj *)((struct GridTrimVertex *)(&
  391. __1upper ))))?( (( 0 ) ), 0 ) :( 0 ) ), 0 ) :( 0 ) )) )), ((
  392. 0 ) )) , 0 ) ), 0 ) )) );
  393. }
  394. void __gloutline__6SlicerFP3Arc (struct Slicer *__0this , Arc_ptr __1jarc )
  395. {
  396. __glmarkverts__3ArcFv ( (struct Arc *)__1jarc ) ;
  397. if (__1jarc -> pwlArc__3Arc -> npts__6PwlArc >= 2 ){
  398. __glbgnoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  399. { { int __2j ;
  400. __2j = (__1jarc -> pwlArc__3Arc -> npts__6PwlArc - 1 );
  401. for(;__2j >= 0 ;__2j -- )
  402. __gllinevert__7BackendFP10Trim0 ( (struct Backend *)__0this -> backend__6Slicer , & (__1jarc -> pwlArc__3Arc -> pts__6PwlArc [__2j ])) ;
  403. __glendoutline__7BackendFv ( (struct Backend *)__0this -> backend__6Slicer ) ;
  404. }
  405. }
  406. }
  407. }
  408. /* the end */