Corrected a wrong call to GetAreaAndFrontier that I forgot to update after the api change...

This commit is contained in:
Paolo Cignoni 2013-10-07 08:07:16 +00:00
parent 97a8cb9238
commit 2a552f8976
1 changed files with 24 additions and 4 deletions

View File

@ -142,9 +142,7 @@ static void VoronoiColoring(MeshType &m, std::vector<VertexType *> &seedVec, boo
std::pair<float,VertexPointer> zz(0.0f,static_cast<VertexPointer>(NULL)); std::pair<float,VertexPointer> zz(0.0f,static_cast<VertexPointer>(NULL));
std::vector< std::pair<float,VertexPointer> > regionArea(m.vert.size(),zz); std::vector< std::pair<float,VertexPointer> > regionArea(m.vert.size(),zz);
std::vector<VertexPointer> borderVec; std::vector<VertexPointer> borderVec;
std::vector<FacePointer> cornerVec; GetAreaAndFrontier(m, sources, regionArea, borderVec);
std::vector<FacePointer> borderCornerVec;
GetAreaAndFrontier(m, sources, regionArea, borderVec, cornerVec, borderCornerVec);
tri::Geodesic<MeshType>::Compute(m,borderVec); tri::Geodesic<MeshType>::Compute(m,borderVec);
} }
@ -499,7 +497,24 @@ static void ConvertVoronoiDiagramToMesh(MeshType &m,
tri::UpdateTopology<MeshType>::FaceFace(outMesh); tri::UpdateTopology<MeshType>::FaceFace(outMesh);
tri::UpdateFlags<MeshType>::FaceBorderFromFF(outMesh); tri::UpdateFlags<MeshType>::FaceBorderFromFF(outMesh);
// 2) set up faux bits // 2) Remove Flips
tri::UpdateNormal<MeshType>::PerFaceNormalized(outMesh);
tri::UpdateFlags<MeshType>::FaceClearV(outMesh);
for(FaceIterator fi=outMesh.face.begin();fi!=outMesh.face.end();++fi)
{
int badDiedralCnt=0;
for(int i=0;i<3;++i)
if(fi->N() * fi->FFp(i)->N() <0 ) badDiedralCnt++;
if(badDiedralCnt == 2) fi->SetV();
}
for(FaceIterator fi=outMesh.face.begin();fi!=outMesh.face.end();++fi)
if(fi->IsV()) Allocator<MeshType>::DeleteFace(outMesh,*fi);
tri::Allocator<MeshType>::CompactEveryVector(outMesh);
tri::UpdateTopology<MeshType>::FaceFace(outMesh);
tri::UpdateFlags<MeshType>::FaceBorderFromFF(outMesh);
// 3) set up faux bits
for(FaceIterator fi=outMesh.face.begin();fi!=outMesh.face.end();++fi) for(FaceIterator fi=outMesh.face.begin();fi!=outMesh.face.end();++fi)
for(int i=0;i<3;++i) for(int i=0;i<3;++i)
{ {
@ -511,6 +526,11 @@ static void ConvertVoronoiDiagramToMesh(MeshType &m,
//******************** END OF CLEANING **************** //******************** END OF CLEANING ****************
// ******************* star to tri conversion *********
// Now a plain conversion of the non faux edges into a polygonal mesh // Now a plain conversion of the non faux edges into a polygonal mesh
std::vector< typename tri::UpdateTopology<MeshType>::PEdge> EdgeVec; std::vector< typename tri::UpdateTopology<MeshType>::PEdge> EdgeVec;
tri::UpdateTopology<MeshType>::FillUniqueEdgeVector(outMesh,EdgeVec,false); tri::UpdateTopology<MeshType>::FillUniqueEdgeVector(outMesh,EdgeVec,false);