Home | History | Annotate | Download | only in libtess

Lines Matching refs:Org

68  * - for each e, e->Dst has been processed, but not e->Org
69 * - each edge e satisfies VertLeq(e->Dst,event) && VertLeq(event,e->Org)
133 if( VertLeq( e1->Org, e2->Org )) {
134 return EdgeSign( e2->Dst, e1->Org, e2->Org ) <= 0;
136 return EdgeSign( e1->Dst, e2->Org, e1->Org ) >= 0;
138 return EdgeSign( e2->Dst, event, e2->Org ) <= 0;
141 return EdgeSign( e1->Dst, event, e1->Org ) >= 0;
145 t1 = EdgeEval( e1->Dst, event, e1->Org );
146 t2 = EdgeEval( e2->Dst, event, e2->Org );
182 GLUvertex *org = reg->eUp->Org;
188 } while( reg->eUp->Org == org );
308 if( e->Org != ePrev->Org ) {
361 assert( VertLeq( e->Org, e->Dst ));
366 /* Walk *all* right-going edges from e->Org, in the dictionary order,
378 if( e->Org != ePrev->Org ) break;
442 * e1->Org is kept, while e2->Org is discarded.
448 data[0] = e1->Org->data;
449 data[1] = e2->Org->data;
450 CallCombine( tess, e1->Org, data, weights, FALSE );
454 static void VertexWeights( GLUvertex *isect, GLUvertex *org, GLUvertex *dst,
458 * a linear combination of "org" and "dest". Each of the two edges
460 * splits the weight between its org and dst according to the
464 GLdouble t1 = VertL1dist( org, isect );
469 isect->coords[0] += weights[0]*org->coords[0] + weights[1]*dst->coords[0];
470 isect->coords[1] += weights[0]*org->coords[1] + weights[1]*dst->coords[1];
471 isect->coords[2] += weights[0]*org->coords[2] + weights[1]*dst->coords[2];
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.
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 */
540 } else if( eUp->Org != eLo->Org ) {
541 /* merge the two vertices, discarding eUp->Org */
542 pqDelete( tess->pq, eUp->Org->pqHandle ); /* __gl_pqSortDelete */
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 */
586 if( EdgeSign( eUp->Dst, eLo->Dst, eUp->Org ) < 0 ) return FALSE;
597 if( EdgeSign( eLo->Dst, eUp->Dst, eLo->Org ) > 0 ) return FALSE;
624 GLUvertex *orgUp = eUp->Org;
625 GLUvertex *orgLo = eLo->Org;
729 eUp->Org->s = tess->event->s;
730 eUp->Org->t = tess->event->t;
735 eLo->Org->s = tess->event->s;
736 eLo->Org->t = tess->event->t;
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 );
820 if( eUp->Org != eLo->Org ) {
838 /* Even though we can't use CheckForIntersect(), the Org vertices
844 if( eUp->Org == eLo->Org && eUp->Dst == eLo->Dst ) {
903 if( VertEq( eUp->Org, tess->event )) {
911 if( VertEq( eLo->Org, tess->event )) {
922 * Connect to the closer of eLo->Org, eUp->Org.
924 if( VertLeq( eLo->Org, eUp->Org )) {
961 if( VertEq( e->Org, vEvent )) {
962 /* e->Org is an unprocessed vertex - just combine them, and wait
963 * for e->Org to be pulled from the queue
1041 if( EdgeSign( eUp->Dst, vEvent, eUp->Org ) == 0 ) {
1149 e->Org->s = SENTINEL_COORD;
1150 e->Org->t = t;
1220 if( VertEq( e->Org, e->Dst ) && e->Lnext->Lnext != e ) {
1223 SpliceMergeVertices( tess, eLnext, e ); /* deletes e->Org */
1360 tess->event = ((ActiveRegion *) dictKey( dictMin( tess->dict )))->eUp->Org;