Lines Matching refs:eUp
125 e1 = reg1->eUp;
126 e2 = reg2->eUp;
158 assert( reg->eUp->winding == 0 );
160 reg->eUp->activeRegion = NULL;
172 if ( !__gl_meshDelete( reg->eUp ) ) return 0;
174 reg->eUp = newEdge;
182 GLUvertex *org = reg->eUp->Org;
188 } while( reg->eUp->Org == org );
194 e = __gl_meshConnect( RegionBelow(reg)->eUp->Sym, reg->eUp->Lnext );
204 GLUvertex *dst = reg->eUp->Dst;
209 } while( reg->eUp->Dst == dst );
226 regNew->eUp = eNewUp;
261 reg->windingNumber = RegionAbove(reg)->windingNumber + reg->eUp->winding;
275 GLUhalfEdge *e = reg->eUp;
288 * edges should be in the edge dictionary. Starting at regFirst->eUp,
303 ePrev = regFirst->eUp;
307 e = reg->eUp;
332 FinishRegion( tess, regPrev ); /* may change reg->eUp */
333 ePrev = reg->eUp;
371 eTopLeft = RegionBelow( regUp )->eUp->Rprev;
377 e = reg->eUp->Sym;
502 * eUp->Org is above eLo, or eLo->Org is below eUp (depending on which
509 * point we checked eUp and eLo, and decided that eUp->Org is barely
512 * our test so that now eUp->Org is incident to eLo, or barely below it.
517 * CheckForIntersect requires that tess->event lies between eUp and eLo,
527 GLUhalfEdge *eUp = regUp->eUp;
528 GLUhalfEdge *eLo = regLo->eUp;
530 if( VertLeq( eUp->Org, eLo->Org )) {
531 if( EdgeSign( eLo->Dst, eUp->Org, eLo->Org ) > 0 ) return FALSE;
533 /* eUp->Org appears to be below eLo */
534 if( ! VertEq( eUp->Org, eLo->Org )) {
535 /* Splice eUp->Org into eLo */
537 if ( !__gl_meshSplice( eUp, eLo->Oprev ) ) longjmp(tess->env,1);
540 } else if( eUp->Org != eLo->Org ) {
541 /* merge the two vertices, discarding eUp->Org */
542 pqDelete( tess->pq, eUp->Org->pqHandle ); /* __gl_pqSortDelete */
543 SpliceMergeVertices( tess, eLo->Oprev, eUp );
546 if( EdgeSign( eUp->Dst, eLo->Org, eUp->Org ) < 0 ) return FALSE;
548 /* eLo->Org appears to be above eUp, so splice eLo->Org into eUp */
552 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
553 if ( !__gl_meshSplice( eLo->Oprev, eUp ) ) longjmp(tess->env,1);
561 * eUp->Dst is above eLo, or eLo->Dst is below eUp (depending on which
566 * suppose at one point we checked eUp and eLo, and decided that eUp->Dst
569 * the test so that now eUp->Dst is incident to eLo, or barely below it.
579 GLUhalfEdge *eUp = regUp->eUp;
580 GLUhalfEdge *eLo = regLo->eUp;
583 assert( ! VertEq( eUp->Dst, eLo->Dst ));
585 if( VertLeq( eUp->Dst, eLo->Dst )) {
586 if( EdgeSign( eUp->Dst, eLo->Dst, eUp->Org ) < 0 ) return FALSE;
588 /* eLo->Dst is above eUp, so splice eLo->Dst into eUp */
592 e = __gl_meshSplitEdge( eUp );
597 if( EdgeSign( eLo->Dst, eUp->Dst, eLo->Org ) > 0 ) return FALSE;
599 /* eUp->Dst is below eLo, so splice eUp->Dst into eLo */
603 if ( !__gl_meshSplice( eUp->Lnext, eLo->Sym ) ) longjmp(tess->env,1);
622 GLUhalfEdge *eUp = regUp->eUp;
623 GLUhalfEdge *eLo = regLo->eUp;
624 GLUvertex *orgUp = eUp->Org;
626 GLUvertex *dstUp = eUp->Dst;
698 /* Splice dstLo into eUp, and process the new region(s) */
699 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
700 if ( !__gl_meshSplice( eLo->Sym, eUp ) ) longjmp(tess->env,1);
703 eUp = RegionBelow(regUp)->eUp;
705 AddRightEdges( tess, regUp, eUp->Oprev, eUp, eUp, TRUE );
711 if ( !__gl_meshSplice( eUp->Lnext, eLo->Oprev ) ) longjmp(tess->env,1);
714 e = RegionBelow(regUp)->eUp->Rprev;
715 regLo->eUp = eLo->Oprev;
717 AddRightEdges( tess, regUp, eLo->Onext, eUp->Rprev, e, TRUE );
728 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
729 eUp->Org->s = tess->event->s;
730 eUp->Org->t = tess->event->t;
747 * the mesh (ie. eUp->Lface) to be smaller than the faces in the
750 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
752 if ( !__gl_meshSplice( eLo->Oprev, eUp ) ) longjmp(tess->env,1);
753 eUp->Org->s = isect.s;
754 eUp->Org->t = isect.t;
755 eUp->Org->pqHandle = pqInsert( tess->pq, eUp->Org ); /* __gl_pqSortInsert */
756 if (eUp->Org->pqHandle == LONG_MAX) {
761 GetIntersectData( tess, eUp->Org, orgUp, dstUp, orgLo, dstLo );
779 GLUhalfEdge *eUp, *eLo;
796 eUp = regUp->eUp;
797 eLo = regLo->eUp;
799 if( eUp->Dst != eLo->Dst ) {
811 eLo = regLo->eUp;
814 if ( !__gl_meshDelete( eUp ) ) longjmp(tess->env,1);
816 eUp = regUp->eUp;
820 if( eUp->Org != eLo->Org ) {
821 if( eUp->Dst != eLo->Dst
823 && (eUp->Dst == tess->event || eLo->Dst == tess->event) )
844 if( eUp->Org == eLo->Org && eUp->Dst == eLo->Dst ) {
846 AddWinding( eLo, eUp );
848 if ( !__gl_meshDelete( eUp ) ) longjmp(tess->env,1);
892 GLUhalfEdge *eUp = regUp->eUp;
893 GLUhalfEdge *eLo = regLo->eUp;
896 if( eUp->Dst != eLo->Dst ) {
903 if( VertEq( eUp->Org, tess->event )) {
904 if ( !__gl_meshSplice( eTopLeft->Oprev, eUp ) ) longjmp(tess->env,1);
907 eTopLeft = RegionBelow( regUp )->eUp;
922 * Connect to the closer of eLo->Org, eUp->Org.
924 if( VertLeq( eLo->Org, eUp->Org )) {
927 eNew = eUp;
960 e = regUp->eUp;
989 eTopRight = reg->eUp->Sym;
1027 GLUhalfEdge *eUp, *eLo, *eNew;
1033 tmp.eUp = vEvent->anEdge->Sym;
1037 eUp = regUp->eUp;
1038 eLo = regLo->eUp;
1041 if( EdgeSign( eUp->Dst, vEvent, eUp->Org ) == 0 ) {
1049 reg = VertLeq( eLo->Dst, eUp->Dst ) ? regUp : regLo;
1053 eNew = __gl_meshConnect( vEvent->anEdge->Sym, eUp->Lnext );
1112 eTopLeft = reg->eUp;
1155 reg->eUp = e;
1201 /* __gl_meshDelete( reg->eUp );*/
1360 tess->event = ((ActiveRegion *) dictKey( dictMin( tess->dict )))->eUp->Org;