Lines Matching refs:pTri
202 CTri * const pTri)
204 _ASSERT(!pTri->bInStrip);
205 if(pTri->sNew.bWindFwd || !pTri->sNew.pFwd)
208 pTri->sNew.pFwd->sNew.pRev = NULL;
209 pTri->sNew.pFwd = NULL;
214 @Input pTri The triangle to take
215 @Input pRevNew The triangle that is before pTri in the new strip
221 CTri * const pTri,
227 _ASSERT(!pTri->bInStrip);
229 if(pTri->sNew.pFwd && pTri->sNew.pRev)
231 _ASSERT(pTri->sNew.pFwd->sNew.pRev == pTri);
232 pTri->sNew.pFwd->sNew.pRev = NULL;
233 _ASSERT(pTri->sNew.pRev->sNew.pFwd == pTri);
234 pTri->sNew.pRev->sNew.pFwd = NULL;
240 nRet += OrphanTri(pTri->sNew.pFwd);
242 else if(pTri->sNew.pFwd)
244 _ASSERT(pTri->sNew.pFwd->sNew.pRev == pTri);
245 pTri->sNew.pFwd->sNew.pRev = NULL;
251 nRet += OrphanTri(pTri->sNew.pFwd);
253 else if(pTri->sNew.pRev)
255 _ASSERT(pTri->sNew.pRev->sNew.pFwd == pTri);
256 pTri->sNew.pRev->sNew.pFwd = NULL;
267 pTri->sNew.pFwd = NULL;
268 pTri->sNew.pRev = pRevNew;
269 pTri->bInStrip = true;
270 pTri->sNew.bWindFwd = bFwd;
275 pRevNew->sNew.pFwd = pTri;
378 CTri *pTri, *pTriPrev, *pTmp;
382 pTri = &triFrom;
396 // Add pTri to the strip
397 _ASSERT(pTri);
398 nDiff += TakeTri(pTri, pTriPrev, bFwd);
400 m_psStrip[nStripLen++] = pTri;
403 pTriPrev = pTri;
404 pTri = pTri->pAdj[nEdge];
405 if(!pTri)
408 if(pTri->bInStrip)
412 nEdge = pTri->EdgeFromAdjTri(*pTriPrev);
444 pTri = m_psStrip[i];
445 _ASSERT(pTri->bInStrip);
448 pTmp = pTri->sOld.pFwd;
456 pTmp = pTri->sOld.pRev;
463 pTri->bInStrip = false;
464 pTri->Cement();
472 pTri = m_psStrip[i];
473 _ASSERT(pTri->bInStrip);
476 pTmp = pTri->sOld.pFwd;
484 pTmp = pTri->sOld.pRev;
491 pTri->bInStrip = false;
492 pTri->Undo();
531 CTri *pTri, *pTriPrev;
539 pTri = &m_pTri[i];
545 if(!pTri->pAdj[j])
561 while(StripGrow(*pTri, nEdge, -1)) {};
563 pTriPrev = pTri;
564 pTri = pTri->pAdj[nEdge];
565 if(!pTri)
569 nEdge = pTri->EdgeFromAdjTri(*pTriPrev);
575 pTriPrev = pTri;
576 pTri = pTri->pAdj[nEdge];
577 if(!pTri)
581 nEdge = pTri->EdgeFromAdjTri(*pTriPrev);
592 if(pTri->pAdj[nTest])
700 CTri *pTri;
711 pTri = &m_pTri[i];
713 if(pTri->sNew.pRev)
715 _ASSERT(!pTri->sNew.pFwd || pTri->sNew.bWindFwd);
716 _ASSERT(pTri->bOutput == false);
718 if(!pTri->sNew.pFwd)
720 pui32Strips[nIdx++] = pTri->pIdx[0];
721 pui32Strips[nIdx++] = pTri->pIdx[1];
722 pui32Strips[nIdx++] = pTri->pIdx[2];
724 pTri->bOutput = true;
728 if(pTri->sNew.pFwd == pTri->pAdj[0])
730 pui32Strips[nIdx++] = pTri->pIdx[2];
731 pui32Strips[nIdx++] = pTri->pIdx[0];
733 else if(pTri->sNew.pFwd == pTri->pAdj[1])
735 pui32Strips[nIdx++] = pTri->pIdx[0];
736 pui32Strips[nIdx++] = pTri->pIdx[1];
740 _ASSERT(pTri->sNew.pFwd == pTri->pAdj[2]);
741 pui32Strips[nIdx++] = pTri->pIdx[1];
742 pui32Strips[nIdx++] = pTri->pIdx[2];
748 _ASSERT(pTri->bOutput == false);
757 (pui32Strips[nIdx-2] != pTri->pIdx[j]) &&
758 (pui32Strips[nIdx-1] != pTri->pIdx[j]))
764 pui32Strips[nIdx++] = pTri->pIdx[j];
768 ((pui32Strips[nIdx-3] == pTri->pIdx[0]) && (pui32Strips[nIdx-2] == pTri->pIdx[1]) && (pui32Strips[nIdx-1] == pTri->pIdx[2])) ||
769 ((pui32Strips[nIdx-3] == pTri->pIdx[1]) && (pui32Strips[nIdx-2] == pTri->pIdx[2]) && (pui32Strips[nIdx-1] == pTri->pIdx[0])) ||
770 ((pui32Strips[nIdx-3] == pTri->pIdx[2]) && (pui32Strips[nIdx-2] == pTri->pIdx[0]) && (pui32Strips[nIdx-1] == pTri->pIdx[1])) ||
771 ((pui32Strips[nIdx-3] == pTri->pIdx[2]) && (pui32Strips[nIdx-2] == pTri->pIdx[1]) && (pui32Strips[nIdx-1] == pTri->pIdx[0])) ||
772 ((pui32Strips[nIdx-3] == pTri->pIdx[1]) && (pui32Strips[nIdx-2] == pTri->pIdx[0]) && (pui32Strips[nIdx-1] == pTri->pIdx[2])) ||
773 ((pui32Strips[nIdx-3] == pTri->pIdx[0]) && (pui32Strips[nIdx-2] == pTri->pIdx[2]) && (pui32Strips[nIdx-1] == pTri->pIdx[1])));
780 pTri->bOutput = true;
784 (pTri->sNew.pFwd == pTri->pAdj[0]) ||
785 (pTri->sNew.pFwd == pTri->pAdj[1]) ||
786 (pTri->sNew.pFwd == pTri->pAdj[2]) ||
787 (!pTri->sNew.pFwd));
790 (!pTri->sNew.pFwd) ||
791 (pTri == pTri->sNew.pFwd->pAdj[0]) ||
792 (pTri == pTri->sNew.pFwd->pAdj[1]) ||
793 (pTri == pTri->sNew.pFwd->pAdj[2]));
795 pTri = pTri->sNew.pFwd;
796 } while(pTri);