Ejemplo n.º 1
0
// ----------------------------------------------------------------------------
uint Vertex::RemoveDegeneratedFaces()
{
	FaceListType facesToDelete;

	FaceListType::const_iterator curFace = incidentFaces_.begin();
	FaceListType::const_iterator faceEnd = incidentFaces_.end();
	for (; curFace != faceEnd; ++curFace)
		if ((*curFace)->IsDegenerated())
			facesToDelete.push_back(*curFace);

	curFace = facesToDelete.begin();
	faceEnd = facesToDelete.end();
	for (; curFace != faceEnd; ++curFace)
	{
		(*curFace)->RemoveOnRelatedVertex();
		RemoveIncidentFace(*curFace);
	}

#ifdef _DEBUG
	curFace = incidentFaces_.begin();
	faceEnd = incidentFaces_.end();
	for (; curFace != faceEnd; ++curFace)
		if ((*curFace)->IsDegenerated())
			break;
	assert(curFace == faceEnd);
#endif

	return facesToDelete.size();
}