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.

553 lines
18 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/hull.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 Arc;
  37. struct Backend;
  38. typedef float REAL ;
  39. typedef void (*Pfvv )(void );
  40. typedef void (*Pfvf )(float *);
  41. typedef int (*cmpfunc )(void *, void *);
  42. typedef REAL Knot ;
  43. typedef REAL *Knot_ptr ;
  44. struct TrimVertex;
  45. struct TrimVertex {
  46. REAL param__10TrimVertex [2];
  47. long nuid__10TrimVertex ;
  48. };
  49. typedef struct TrimVertex *TrimVertex_p ;
  50. struct Buffer;
  51. struct Buffer {
  52. struct Buffer *next__6Buffer ;
  53. };
  54. struct Pool;
  55. enum __Q2_4Pool5Magic { is_allocated__Q2_4Pool5Magic = 62369, is_free__Q2_4Pool5Magic = 61858} ;
  56. struct Pool {
  57. struct Buffer *freelist__4Pool ;
  58. char *blocklist__4Pool [32];
  59. int nextblock__4Pool ;
  60. char *curblock__4Pool ;
  61. int buffersize__4Pool ;
  62. int nextsize__4Pool ;
  63. int nextfree__4Pool ;
  64. int initsize__4Pool ;
  65. char *name__4Pool ;
  66. int magic__4Pool ;
  67. };
  68. void __glgrow__4PoolFv (struct Pool *);
  69. struct PooledObj;
  70. struct PooledObj {
  71. char __W3__9PooledObj ;
  72. };
  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 GridVertex;
  161. struct GridVertex {
  162. long gparam__10GridVertex [2];
  163. };
  164. struct GridTrimVertex;
  165. struct GridTrimVertex {
  166. char __W3__9PooledObj ;
  167. struct TrimVertex dummyt__14GridTrimVertex ;
  168. struct GridVertex dummyg__14GridTrimVertex ;
  169. struct TrimVertex *t__14GridTrimVertex ;
  170. struct GridVertex *g__14GridTrimVertex ;
  171. };
  172. typedef struct GridTrimVertex *GridTrimVertex_p ;
  173. struct TrimRegion *__gl__ct__10TrimRegionFv (struct TrimRegion *);
  174. extern struct __mptr* __ptbl_vec_____core_hull_c_____ct_[];
  175. struct Trimline *__gl__ct__8TrimlineFv (struct Trimline *);
  176. struct Hull *__gl__ct__4HullFv (struct Hull *__0this , struct TrimRegion *__0TrimRegion )
  177. {
  178. void *__1__Xp00uzigaiaa ;
  179. if (__0this || (__0this = (struct Hull *)( (__1__Xp00uzigaiaa = malloc ( (sizeof (struct Hull))) ), (__1__Xp00uzigaiaa ?(((void *)__1__Xp00uzigaiaa )):(((void *)__1__Xp00uzigaiaa )))) ))(
  180. ( (__0this -> PTrimRegion= ((__0TrimRegion == 0 )?( (__0TrimRegion = (((struct TrimRegion *)((((char *)__0this ))+ 156)))), __gl__ct__10TrimRegionFv ( ((struct TrimRegion *)((((char *)__0this ))+
  181. 156))) ) :__0TrimRegion )), __gl__ct__8TrimlineFv ( (struct Trimline *)(& __0this -> fakeleft__4Hull )) ) , __gl__ct__8TrimlineFv ( (struct Trimline *)(& __0this ->
  182. fakeright__4Hull )) ) ;
  183. return __0this ;
  184. }
  185. void __gl__dt__4HullFv (struct Hull *__0this ,
  186. int __0__free )
  187. { if (__0this )if (__0this ){ __gl__dt__8TrimlineFv ( (struct Trimline *)(& __0this -> fakeright__4Hull ), 2)
  188. ;
  189. __gl__dt__8TrimlineFv ( (struct Trimline *)(& __0this -> fakeleft__4Hull ), 2) ;
  190. (__0__free & 2)?( (((void )( ((((struct TrimRegion *)((((char *)__0this ))+ 156)))?( ((((struct TrimRegion *)((((char *)__0this ))+ 156)))?( ( __gl__dt__6UarrayFv (
  191. (struct Uarray *)(& (((struct TrimRegion *)((((char *)__0this ))+ 156)))-> uarray__10TrimRegion ), 2) , ( __gl__dt__8TrimlineFv ( (struct Trimline *)(& (((struct
  192. TrimRegion *)((((char *)__0this ))+ 156)))-> right__10TrimRegion ), 2) , ( __gl__dt__8TrimlineFv ( (struct Trimline *)(& (((struct TrimRegion *)((((char *)__0this ))+ 156)))->
  193. left__10TrimRegion ), 2) , (( 0 ) )) ) ) , 0 ) :( 0 ) ), 0 )
  194. :( 0 ) )) )), 0 ) :0 ;
  195. if (__0__free & 1)( (((void *)__0this )?( free ( ((void *)__0this )) , 0 ) :( 0 ) )) ;
  196. } }
  197. void __glinit__8TrimlineFP10TrimVer0 (struct Trimline *, struct TrimVertex *);
  198. void __glinit__4HullFv (struct Hull *__0this )
  199. {
  200. struct TrimVertex *__1lfirst ;
  201. struct TrimVertex *__1llast ;
  202. struct Trimline *__0__X6 ;
  203. struct Trimline *__0__X7 ;
  204. __1lfirst = ( (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline = 0 ), (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))->
  205. pts__8Trimline [((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline ])) ;
  206. __1llast = ( (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline = ((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> numverts__8Trimline ),
  207. (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> pts__8Trimline [(-- ((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline )])) ;
  208. if ((__1lfirst -> param__10TrimVertex [0 ])<= (__1llast -> param__10TrimVertex [0 ])){
  209. __glinit__8TrimlineFP10TrimVer0 ( (struct Trimline *)(& __0this -> fakeleft__4Hull ), ( (((struct Trimline *)(& __0this ->
  210. PTrimRegion-> left__10TrimRegion ))-> i__8Trimline = 0 ), (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> pts__8Trimline [((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))->
  211. i__8Trimline ])) ) ;
  212. __0this -> upper__4Hull . left__Q2_4Hull4Side = (& __0this -> fakeleft__4Hull );
  213. __0this -> lower__4Hull . left__Q2_4Hull4Side = (& __0this -> PTrimRegion-> left__10TrimRegion );
  214. }
  215. else
  216. {
  217. __glinit__8TrimlineFP10TrimVer0 ( (struct Trimline *)(& __0this -> fakeleft__4Hull ), ( (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline =
  218. ((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> numverts__8Trimline ), (((struct Trimline *)(& __0this -> PTrimRegion-> left__10TrimRegion ))-> pts__8Trimline [(-- ((struct Trimline *)(&
  219. __0this -> PTrimRegion-> left__10TrimRegion ))-> i__8Trimline )])) ) ;
  220. __0this -> lower__4Hull . left__Q2_4Hull4Side = (& __0this -> fakeleft__4Hull );
  221. __0this -> upper__4Hull . left__Q2_4Hull4Side = (& __0this -> PTrimRegion-> left__10TrimRegion );
  222. }
  223. ( (__0__X6 = (struct Trimline *)__0this -> upper__4Hull . left__Q2_4Hull4Side ), ( (__0__X6 -> i__8Trimline = __0__X6 -> numverts__8Trimline ), (__0__X6 -> pts__8Trimline [(-- __0__X6 ->
  224. i__8Trimline )])) ) ;
  225. ( (__0__X7 = (struct Trimline *)__0this -> lower__4Hull . left__Q2_4Hull4Side ), ( (__0__X7 -> i__8Trimline = 0 ), (__0__X7 -> pts__8Trimline [__0__X7 -> i__8Trimline ])) )
  226. ;
  227. if (__0this -> PTrimRegion-> top__10TrimRegion . ustart__8Gridline <= __0this -> PTrimRegion-> top__10TrimRegion . uend__8Gridline ){
  228. __0this -> upper__4Hull . line__Q2_4Hull4Side = (& __0this ->
  229. PTrimRegion-> top__10TrimRegion );
  230. __0this -> upper__4Hull . index__Q2_4Hull4Side = __0this -> PTrimRegion-> top__10TrimRegion . ustart__8Gridline ;
  231. }
  232. else __0this -> upper__4Hull . line__Q2_4Hull4Side = 0 ;
  233. if (__0this -> PTrimRegion-> bot__10TrimRegion . ustart__8Gridline <= __0this -> PTrimRegion-> bot__10TrimRegion . uend__8Gridline ){
  234. __0this -> lower__4Hull . line__Q2_4Hull4Side = (& __0this ->
  235. PTrimRegion-> bot__10TrimRegion );
  236. __0this -> lower__4Hull . index__Q2_4Hull4Side = __0this -> PTrimRegion-> bot__10TrimRegion . ustart__8Gridline ;
  237. }
  238. else __0this -> lower__4Hull . line__Q2_4Hull4Side = 0 ;
  239. { struct TrimVertex *__1rfirst ;
  240. struct TrimVertex *__1rlast ;
  241. struct Trimline *__0__X8 ;
  242. struct Trimline *__0__X9 ;
  243. __1rfirst = ( (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline = 0 ), (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))->
  244. pts__8Trimline [((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline ])) ;
  245. __1rlast = ( (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline = ((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> numverts__8Trimline ),
  246. (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> pts__8Trimline [(-- ((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline )])) ;
  247. if ((__1rfirst -> param__10TrimVertex [0 ])<= (__1rlast -> param__10TrimVertex [0 ])){
  248. __glinit__8TrimlineFP10TrimVer0 ( (struct Trimline *)(& __0this -> fakeright__4Hull ), ( (((struct Trimline *)(& __0this ->
  249. PTrimRegion-> right__10TrimRegion ))-> i__8Trimline = ((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> numverts__8Trimline ), (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))->
  250. pts__8Trimline [(-- ((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline )])) ) ;
  251. __0this -> lower__4Hull . right__Q2_4Hull4Side = (& __0this -> fakeright__4Hull );
  252. __0this -> upper__4Hull . right__Q2_4Hull4Side = (& __0this -> PTrimRegion-> right__10TrimRegion );
  253. }
  254. else
  255. {
  256. __glinit__8TrimlineFP10TrimVer0 ( (struct Trimline *)(& __0this -> fakeright__4Hull ), ( (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline =
  257. 0 ), (((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> pts__8Trimline [((struct Trimline *)(& __0this -> PTrimRegion-> right__10TrimRegion ))-> i__8Trimline ])) ) ;
  258. __0this -> upper__4Hull . right__Q2_4Hull4Side = (& __0this -> fakeright__4Hull );
  259. __0this -> lower__4Hull . right__Q2_4Hull4Side = (& __0this -> PTrimRegion-> right__10TrimRegion );
  260. }
  261. ( (__0__X8 = (struct Trimline *)__0this -> upper__4Hull . right__Q2_4Hull4Side ), ( (__0__X8 -> i__8Trimline = 0 ), (__0__X8 -> pts__8Trimline [__0__X8 -> i__8Trimline ])) )
  262. ;
  263. ( (__0__X9 = (struct Trimline *)__0this -> lower__4Hull . right__Q2_4Hull4Side ), ( (__0__X9 -> i__8Trimline = __0__X9 -> numverts__8Trimline ), (__0__X9 -> pts__8Trimline [(-- __0__X9 ->
  264. i__8Trimline )])) ) ;
  265. }
  266. }
  267. struct GridTrimVertex *__glnextupper__4HullFP14GridTr0 (struct Hull *__0this , struct GridTrimVertex *__1gv )
  268. {
  269. if (__0this -> upper__4Hull . left__Q2_4Hull4Side ){
  270. struct Trimline *__0__X10 ;
  271. struct TrimVertex *__1__X11 ;
  272. ( (__1__X11 = ( (__0__X10 = (struct Trimline *)__0this -> upper__4Hull . left__Q2_4Hull4Side ), ( ((__0__X10 -> i__8Trimline >= 0 )?(__0__X10 -> pts__8Trimline [(__0__X10 -> i__8Trimline --
  273. )]):(((struct TrimVertex *)0 )))) ) ), ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = __1__X11 )) )
  274. ;
  275. if (( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex ?1 :0 )) )return __1gv ;
  276. __0this -> upper__4Hull . left__Q2_4Hull4Side = 0 ;
  277. }
  278. if (__0this -> upper__4Hull . line__Q2_4Hull4Side ){
  279. ((void )0 );
  280. ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), ( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = (& ((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex )), (
  281. ((((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex . param__10TrimVertex [0 ])= (__0this -> PTrimRegion-> uarray__10TrimRegion . uarray__6Uarray [__0this -> upper__4Hull . index__Q2_4Hull4Side ])), ( ((((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex .
  282. param__10TrimVertex [1 ])= __0this -> upper__4Hull . line__Q2_4Hull4Side -> vval__8Gridline ), (((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex . nuid__10TrimVertex = 0 )) ) ) ) ;
  283. ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = (& ((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex )), ( ((((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex . gparam__10GridVertex [0 ])= __0this ->
  284. upper__4Hull . index__Q2_4Hull4Side ), ((((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex . gparam__10GridVertex [1 ])= __0this -> upper__4Hull . line__Q2_4Hull4Side -> vindex__8Gridline )) ) ;
  285. if ((__0this -> upper__4Hull . index__Q2_4Hull4Side ++ )== __0this -> upper__4Hull . line__Q2_4Hull4Side -> uend__8Gridline )__0this -> upper__4Hull . line__Q2_4Hull4Side = 0 ;
  286. return __1gv ;
  287. }
  288. if (__0this -> upper__4Hull . right__Q2_4Hull4Side ){
  289. struct Trimline *__0__X12 ;
  290. struct TrimVertex *__1__X13 ;
  291. ( (__1__X13 = ( (__0__X12 = (struct Trimline *)__0this -> upper__4Hull . right__Q2_4Hull4Side ), ( ((__0__X12 -> i__8Trimline < __0__X12 -> numverts__8Trimline )?(__0__X12 -> pts__8Trimline [(__0__X12 ->
  292. i__8Trimline ++ )]):(((struct TrimVertex *)0 )))) ) ), ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = __1__X13 ))
  293. ) ;
  294. if (( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex ?1 :0 )) )return __1gv ;
  295. __0this -> upper__4Hull . right__Q2_4Hull4Side = 0 ;
  296. }
  297. return (struct GridTrimVertex *)0 ;
  298. }
  299. struct GridTrimVertex *__glnextlower__4HullFP14GridTr0 (struct Hull *__0this , register struct GridTrimVertex *__1gv )
  300. {
  301. if (__0this -> lower__4Hull . left__Q2_4Hull4Side ){
  302. struct Trimline *__0__X14 ;
  303. struct TrimVertex *__1__X15 ;
  304. ( (__1__X15 = ( (__0__X14 = (struct Trimline *)__0this -> lower__4Hull . left__Q2_4Hull4Side ), ( ((__0__X14 -> i__8Trimline < __0__X14 -> numverts__8Trimline )?(__0__X14 -> pts__8Trimline [(__0__X14 ->
  305. i__8Trimline ++ )]):(((struct TrimVertex *)0 )))) ) ), ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = __1__X15 ))
  306. ) ;
  307. if (( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex ?1 :0 )) )return __1gv ;
  308. __0this -> lower__4Hull . left__Q2_4Hull4Side = 0 ;
  309. }
  310. if (__0this -> lower__4Hull . line__Q2_4Hull4Side ){
  311. ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), ( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = (&
  312. ((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex )), ( ((((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex . param__10TrimVertex [0 ])= (__0this -> PTrimRegion-> uarray__10TrimRegion . uarray__6Uarray [__0this -> lower__4Hull . index__Q2_4Hull4Side ])),
  313. ( ((((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex . param__10TrimVertex [1 ])= __0this -> lower__4Hull . line__Q2_4Hull4Side -> vval__8Gridline ), (((struct GridTrimVertex *)__1gv )-> dummyt__14GridTrimVertex . nuid__10TrimVertex = 0 ))
  314. ) ) ) ;
  315. ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = (& ((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex )), ( ((((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex . gparam__10GridVertex [0 ])= __0this ->
  316. lower__4Hull . index__Q2_4Hull4Side ), ((((struct GridTrimVertex *)__1gv )-> dummyg__14GridTrimVertex . gparam__10GridVertex [1 ])= __0this -> lower__4Hull . line__Q2_4Hull4Side -> vindex__8Gridline )) ) ;
  317. if ((__0this -> lower__4Hull . index__Q2_4Hull4Side ++ )== __0this -> lower__4Hull . line__Q2_4Hull4Side -> uend__8Gridline )__0this -> lower__4Hull . line__Q2_4Hull4Side = 0 ;
  318. return __1gv ;
  319. }
  320. if (__0this -> lower__4Hull . right__Q2_4Hull4Side ){
  321. struct Trimline *__0__X16 ;
  322. struct TrimVertex *__1__X17 ;
  323. ( (__1__X17 = ( (__0__X16 = (struct Trimline *)__0this -> lower__4Hull . right__Q2_4Hull4Side ), ( ((__0__X16 -> i__8Trimline >= 0 )?(__0__X16 -> pts__8Trimline [(__0__X16 -> i__8Trimline --
  324. )]):(((struct TrimVertex *)0 )))) ) ), ( (((struct GridTrimVertex *)__1gv )-> g__14GridTrimVertex = 0 ), (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex = __1__X17 )) )
  325. ;
  326. if (( (((struct GridTrimVertex *)__1gv )-> t__14GridTrimVertex ?1 :0 )) )return __1gv ;
  327. __0this -> lower__4Hull . right__Q2_4Hull4Side = 0 ;
  328. }
  329. return (struct GridTrimVertex *)0 ;
  330. }
  331. /* the end */