/////////////////////////////////////////////////////////////////////////////////////////// // GetNextIndex() // // Returns vertex of the input face which is "next" in the input index list // inline int NvStripifier::GetNextIndex(const WordVec &indices, NvFaceInfo *face){ int numIndices = indices.size(); assert(numIndices >= 2); int v0 = indices[numIndices-2]; int v1 = indices[numIndices-1]; int fv0 = face->m_v0; int fv1 = face->m_v1; int fv2 = face->m_v2; if (fv0 != v0 && fv0 != v1){ if ((fv1 != v0 && fv1 != v1) || (fv2 != v0 && fv2 != v1)){ printf("GetNextIndex: Triangle doesn't have all of its vertices\n"); printf("GetNextIndex: Duplicate triangle probably got us derailed\n"); } return fv0; } if (fv1 != v0 && fv1 != v1){ if ((fv0 != v0 && fv0 != v1) || (fv2 != v0 && fv2 != v1)){ printf("GetNextIndex: Triangle doesn't have all of its vertices\n"); printf("GetNextIndex: Duplicate triangle probably got us derailed\n"); } return fv1; } if (fv2 != v0 && fv2 != v1){ if ((fv0 != v0 && fv0 != v1) || (fv1 != v0 && fv1 != v1)){ printf("GetNextIndex: Triangle doesn't have all of its vertices\n"); printf("GetNextIndex: Duplicate triangle probably got us derailed\n"); } return fv2; } // shouldn't get here, but let's try and fail gracefully if( (fv0 == fv1) || (fv0 == fv2) ) return fv0; else if( (fv1 == fv0) || (fv1 == fv2) ) return fv1; else if( (fv2 == fv0) || (fv2 == fv1) ) return fv2; else return -1; }
/////////////////////////////////////////////////////////////////////////////////////////// // GetNextIndex() // // Returns vertex of the input face which is "next" in the input index list // IC int NvStripifier::GetNextIndex(const WordVec &indices, NvFaceInfo *face){ int numIndices = indices.size(); assert(numIndices >= 2); int v0 = indices[numIndices-2]; int v1 = indices[numIndices-1]; int fv0 = face->m_v0; int fv1 = face->m_v1; int fv2 = face->m_v2; if (fv0 != v0 && fv0 != v1){ if ((fv1 != v0 && fv1 != v1) || (fv2 != v0 && fv2 != v1)){ Msg("! WARNING: GetNextIndex: Triangle doesn't have all of its vertices"); Msg("! WARNING: GetNextIndex: Duplicate triangle probably got us derailed"); } return fv0; } if (fv1 != v0 && fv1 != v1){ if ((fv0 != v0 && fv0 != v1) || (fv2 != v0 && fv2 != v1)){ Msg("! WARNING: GetNextIndex: Triangle doesn't have all of its vertices"); Msg("! WARNING: GetNextIndex: Duplicate triangle probably got us derailed"); } return fv1; } if (fv2 != v0 && fv2 != v1){ if ((fv0 != v0 && fv0 != v1) || (fv1 != v0 && fv1 != v1)){ Msg("! WARNING: GetNextIndex: Triangle doesn't have all of its vertices"); Msg("! WARNING: GetNextIndex: Duplicate triangle probably got us derailed"); } return fv2; } // shouldn't get here Msg("! WARNING: GetNextIndex: Duplicate triangle sent"); return -1; }