improve mesh repair functions
This commit is contained in:
@@ -1128,15 +1128,21 @@ void MeshObject::refine()
|
||||
this->_segments.clear();
|
||||
}
|
||||
|
||||
void MeshObject::removeSmallEdges(float length)
|
||||
void MeshObject::removeNeedles(float length)
|
||||
{
|
||||
unsigned long count = _kernel.CountFacets();
|
||||
MeshCore::MeshRemoveSmallEdges eval(_kernel, length);
|
||||
MeshCore::MeshRemoveNeedles eval(_kernel, length);
|
||||
eval.Fixup();
|
||||
if (_kernel.CountFacets() < count)
|
||||
this->_segments.clear();
|
||||
}
|
||||
|
||||
void MeshObject::validateCaps(float fMaxAngle, float fSplitFactor)
|
||||
{
|
||||
MeshCore::MeshFixCaps eval(_kernel, fMaxAngle, fSplitFactor);
|
||||
eval.Fixup();
|
||||
}
|
||||
|
||||
void MeshObject::optimizeTopology(float fMaxAngle)
|
||||
{
|
||||
MeshCore::MeshTopoAlgorithm topalg(_kernel);
|
||||
@@ -1385,6 +1391,15 @@ void MeshObject::removeInvalidPoints()
|
||||
deletePoints(nan.GetIndices());
|
||||
}
|
||||
|
||||
void MeshObject::mergeFacets()
|
||||
{
|
||||
unsigned long count = _kernel.CountFacets();
|
||||
MeshCore::MeshFixMergeFacets merge(_kernel);
|
||||
merge.Fixup();
|
||||
if (_kernel.CountFacets() < count)
|
||||
this->_segments.clear();
|
||||
}
|
||||
|
||||
void MeshObject::validateIndices()
|
||||
{
|
||||
unsigned long count = _kernel.CountFacets();
|
||||
|
||||
Reference in New Issue
Block a user