Home | History | Annotate | Download | only in libtess

Lines Matching refs:eUp

126   e1 = reg1->eUp;
127 e2 = reg2->eUp;
159 assert( reg->eUp->winding == 0 );
161 reg->eUp->activeRegion = NULL;
173 if ( !__gl_meshDelete( reg->eUp ) ) return 0;
175 reg->eUp = newEdge;
183 GLUvertex *org = reg->eUp->Org;
189 } while( reg->eUp->Org == org );
195 e = __gl_meshConnect( RegionBelow(reg)->eUp->Sym, reg->eUp->Lnext );
205 GLUvertex *dst = reg->eUp->Dst;
210 } while( reg->eUp->Dst == dst );
227 regNew->eUp = eNewUp;
262 reg->windingNumber = RegionAbove(reg)->windingNumber + reg->eUp->winding;
276 GLUhalfEdge *e = reg->eUp;
289 * edges should be in the edge dictionary. Starting at regFirst->eUp,
304 ePrev = regFirst->eUp;
308 e = reg->eUp;
333 FinishRegion( tess, regPrev ); /* may change reg->eUp */
334 ePrev = reg->eUp;
372 eTopLeft = RegionBelow( regUp )->eUp->Rprev;
378 e = reg->eUp->Sym;
503 * eUp->Org is above eLo, or eLo->Org is below eUp (depending on which
510 * point we checked eUp and eLo, and decided that eUp->Org is barely
513 * our test so that now eUp->Org is incident to eLo, or barely below it.
518 * CheckForIntersect requires that tess->event lies between eUp and eLo,
528 GLUhalfEdge *eUp = regUp->eUp;
529 GLUhalfEdge *eLo = regLo->eUp;
531 if( VertLeq( eUp->Org, eLo->Org )) {
532 if( EdgeSign( eLo->Dst, eUp->Org, eLo->Org ) > 0 ) return FALSE;
534 /* eUp->Org appears to be below eLo */
535 if( ! VertEq( eUp->Org, eLo->Org )) {
536 /* Splice eUp->Org into eLo */
538 if ( !__gl_meshSplice( eUp, eLo->Oprev ) ) longjmp(tess->env,1);
541 } else if( eUp->Org != eLo->Org ) {
542 /* merge the two vertices, discarding eUp->Org */
543 pqDelete( tess->pq, eUp->Org->pqHandle ); /* __gl_pqSortDelete */
544 SpliceMergeVertices( tess, eLo->Oprev, eUp );
547 if( EdgeSign( eUp->Dst, eLo->Org, eUp->Org ) < 0 ) return FALSE;
549 /* eLo->Org appears to be above eUp, so splice eLo->Org into eUp */
551 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
552 if ( !__gl_meshSplice( eLo->Oprev, eUp ) ) longjmp(tess->env,1);
560 * eUp->Dst is above eLo, or eLo->Dst is below eUp (depending on which
565 * suppose at one point we checked eUp and eLo, and decided that eUp->Dst
568 * the test so that now eUp->Dst is incident to eLo, or barely below it.
578 GLUhalfEdge *eUp = regUp->eUp;
579 GLUhalfEdge *eLo = regLo->eUp;
582 assert( ! VertEq( eUp->Dst, eLo->Dst ));
584 if( VertLeq( eUp->Dst, eLo->Dst )) {
585 if( EdgeSign( eUp->Dst, eLo->Dst, eUp->Org ) < 0 ) return FALSE;
587 /* eLo->Dst is above eUp, so splice eLo->Dst into eUp */
589 e = __gl_meshSplitEdge( eUp );
594 if( EdgeSign( eLo->Dst, eUp->Dst, eLo->Org ) > 0 ) return FALSE;
596 /* eUp->Dst is below eLo, so splice eUp->Dst into eLo */
600 if ( !__gl_meshSplice( eUp->Lnext, eLo->Sym ) ) longjmp(tess->env,1);
619 GLUhalfEdge *eUp = regUp->eUp;
620 GLUhalfEdge *eLo = regLo->eUp;
621 GLUvertex *orgUp = eUp->Org;
623 GLUvertex *dstUp = eUp->Dst;
695 /* Splice dstLo into eUp, and process the new region(s) */
696 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
697 if ( !__gl_meshSplice( eLo->Sym, eUp ) ) longjmp(tess->env,1);
700 eUp = RegionBelow(regUp)->eUp;
702 AddRightEdges( tess, regUp, eUp->Oprev, eUp, eUp, TRUE );
708 if ( !__gl_meshSplice( eUp->Lnext, eLo->Oprev ) ) longjmp(tess->env,1);
711 e = RegionBelow(regUp)->eUp->Rprev;
712 regLo->eUp = eLo->Oprev;
714 AddRightEdges( tess, regUp, eLo->Onext, eUp->Rprev, e, TRUE );
723 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
724 eUp->Org->s = tess->event->s;
725 eUp->Org->t = tess->event->t;
742 * the mesh (ie. eUp->Lface) to be smaller than the faces in the
745 if (__gl_meshSplitEdge( eUp->Sym ) == NULL) longjmp(tess->env,1);
747 if ( !__gl_meshSplice( eLo->Oprev, eUp ) ) longjmp(tess->env,1);
748 eUp->Org->s = isect.s;
749 eUp->Org->t = isect.t;
750 eUp->Org->pqHandle = pqInsert( tess->pq, eUp->Org ); /* __gl_pqSortInsert */
751 if (eUp->Org->pqHandle == LONG_MAX) {
756 GetIntersectData( tess, eUp->Org, orgUp, dstUp, orgLo, dstLo );
772 GLUhalfEdge *eUp, *eLo;
789 eUp = regUp->eUp;
790 eLo = regLo->eUp;
792 if( eUp->Dst != eLo->Dst ) {
804 eLo = regLo->eUp;
807 if ( !__gl_meshDelete( eUp ) ) longjmp(tess->env,1);
809 eUp = regUp->eUp;
813 if( eUp->Org != eLo->Org ) {
814 if( eUp->Dst != eLo->Dst
816 && (eUp->Dst == tess->event || eLo->Dst == tess->event) )
837 if( eUp->Org == eLo->Org && eUp->Dst == eLo->Dst ) {
839 AddWinding( eLo, eUp );
841 if ( !__gl_meshDelete( eUp ) ) longjmp(tess->env,1);
885 GLUhalfEdge *eUp = regUp->eUp;
886 GLUhalfEdge *eLo = regLo->eUp;
889 if( eUp->Dst != eLo->Dst ) {
896 if( VertEq( eUp->Org, tess->event )) {
897 if ( !__gl_meshSplice( eTopLeft->Oprev, eUp ) ) longjmp(tess->env,1);
900 eTopLeft = RegionBelow( regUp )->eUp;
915 * Connect to the closer of eLo->Org, eUp->Org.
917 if( VertLeq( eLo->Org, eUp->Org )) {
920 eNew = eUp;
953 e = regUp->eUp;
982 eTopRight = reg->eUp->Sym;
1020 GLUhalfEdge *eUp, *eLo, *eNew;
1026 tmp.eUp = vEvent->anEdge->Sym;
1030 eUp = regUp->eUp;
1031 eLo = regLo->eUp;
1034 if( EdgeSign( eUp->Dst, vEvent, eUp->Org ) == 0 ) {
1042 reg = VertLeq( eLo->Dst, eUp->Dst ) ? regUp : regLo;
1046 eNew = __gl_meshConnect( vEvent->anEdge->Sym, eUp->Lnext );
1105 eTopLeft = reg->eUp;
1148 reg->eUp = e;
1194 /* __gl_meshDelete( reg->eUp );*/
1353 tess->event = ((ActiveRegion *) dictKey( dictMin( tess->dict )))->eUp->Org;