Home | History | Annotate | Download | only in libtess

Lines Matching refs:isect

413 static void CallCombine( GLUtesselator *tess, GLUvertex *isect,
419 coords[0] = isect->coords[0];
420 coords[1] = isect->coords[1];
421 coords[2] = isect->coords[2];
423 isect->data = NULL;
424 CALL_COMBINE_OR_COMBINE_DATA( coords, data, weights, &isect->data );
425 if( isect->data == NULL ) {
427 isect->data = data[0];
455 static void VertexWeights( GLUvertex *isect, GLUvertex *org, GLUvertex *dst,
460 * which generated "isect" is allocated 50% of the weight; each edge
462 * relative distance to "isect".
465 GLdouble t1 = VertL1dist( org, isect );
466 GLdouble t2 = VertL1dist( dst, isect );
470 isect->coords[0] += weights[0]*org->coords[0] + weights[1]*dst->coords[0];
471 isect->coords[1] += weights[0]*org->coords[1] + weights[1]*dst->coords[1];
472 isect->coords[2] += weights[0]*org->coords[2] + weights[1]*dst->coords[2];
476 static void GetIntersectData( GLUtesselator *tess, GLUvertex *isect,
493 isect->coords[0] = isect->coords[1] = isect->coords[2] = 0;
494 VertexWeights( isect, orgUp, dstUp, &weights[0] );
495 VertexWeights( isect, orgLo, dstLo, &weights[2] );
497 CallCombine( tess, isect, data, weights, TRUE );
626 GLUvertex isect, *orgMin;
650 __gl_edgeIntersect( dstUp, orgUp, dstLo, orgLo, &isect );
652 assert( MIN( orgUp->t, dstUp->t ) <= isect.t );
653 assert( isect.t <= MAX( orgLo->t, dstLo->t ));
654 assert( MIN( dstLo->s, dstUp->s ) <= isect.s );
655 assert( isect.s <= MAX( orgLo->s, orgUp->s ));
657 if( VertLeq( &isect, tess->event )) {
664 isect.s = tess->event->s;
665 isect.t = tess->event->t;
674 if( VertLeq( orgMin, &isect )) {
675 isect.s = orgMin->s;
676 isect.t = orgMin->t;
679 if( VertEq( &isect, orgUp ) || VertEq( &isect, orgLo )) {
686 && EdgeSign( dstUp, tess->event, &isect ) >= 0)
688 && EdgeSign( dstLo, tess->event, &isect ) <= 0 ))
721 if( EdgeSign( dstUp, tess->event, &isect ) >= 0 ) {
727 if( EdgeSign( dstLo, tess->event, &isect ) <= 0 ) {
748 eUp->Org->s = isect.s;
749 eUp->Org->t = isect.t;