added missing copy of the VF adjacency info contained inside the faces
This commit is contained in:
parent
cb13f92466
commit
d3b9aa83c1
|
|
@ -147,12 +147,37 @@ public:
|
||||||
for( int vi = 0; vi < fl.VN(); ++vi ){
|
for( int vi = 0; vi < fl.VN(); ++vi ){
|
||||||
size_t idx = remap.face[Index(mr,fr.cFFp(vi))];
|
size_t idx = remap.face[Index(mr,fr.cFFp(vi))];
|
||||||
if(idx!=Remap::InvalidIndex()){
|
if(idx!=Remap::InvalidIndex()){
|
||||||
|
assert(idx >= 0 && idx < ml.face.size());
|
||||||
fl.FFp(vi) = &ml.face[idx];
|
fl.FFp(vi) = &ml.face[idx];
|
||||||
fl.FFi(vi) = fr.cFFi(vi);
|
fl.FFi(vi) = fr.cFFi(vi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Vertex to Face Adj
|
||||||
|
if(HasPerFaceVFAdjacency(ml) && HasPerFaceVFAdjacency(mr))
|
||||||
|
{
|
||||||
|
assert(fl.VN() == fr.VN());
|
||||||
|
for (int vi = 0; vi < fl.VN(); ++vi)
|
||||||
|
{
|
||||||
|
const auto * fp = fr.cVFp(vi);
|
||||||
|
const auto vfindex = fr.cVFi(vi);
|
||||||
|
size_t fidx = (fp == nullptr) ? Remap::InvalidIndex() : remap.face[Index(mr,fp)];
|
||||||
|
|
||||||
|
if (fidx == Remap::InvalidIndex()) // end of VF chain (or not initialized)
|
||||||
|
{
|
||||||
|
fl.VFClear(vi);
|
||||||
|
assert(fl.cVFi(vi) == -1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assert(fidx >= 0 && fidx < ml.face.size());
|
||||||
|
fl.VFp(vi) = &ml.face[fidx];
|
||||||
|
fl.VFi(vi) = vfindex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Face to HEedge Adj
|
// Face to HEedge Adj
|
||||||
if(HasFHAdjacency(ml) && HasFHAdjacency(mr))
|
if(HasFHAdjacency(ml) && HasFHAdjacency(mr))
|
||||||
fl.FHp() = &ml.hedge[remap.hedge[Index(mr,fr.cFHp())]];
|
fl.FHp() = &ml.hedge[remap.hedge[Index(mr,fr.cFHp())]];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue