Esempio n. 1
0
void EdgeMesh::Face::Bridge(Edge& e0, Edge& e1)
{
	assert(IsValid());
	assert(e0.face == this && e1.face != this);

	AdoptEdgeLoop(e1);
	
	e0.BridgeTo(e1);

	assert(IsValid());
}
Esempio n. 2
0
EdgeMesh::FacePtr EdgeMesh::Face::Split(Edge& e0, Edge& e1)
{
	assert(IsValid());
	assert(e0.face == this && e1.face == this);

	FacePtr newFace = std::make_unique<Face>();

	e0.BridgeTo(e1); // e0 loop now separate. 

	newFace->AdoptEdgeLoop(e0);

	assert(IsValid());
	assert(newFace->IsValid());

	return newFace;
}