Toponaming/Part: Fix hashing, hasher mismatches, and adjust test results to match

This commit is contained in:
bgbsww
2024-04-15 18:23:00 -04:00
committed by Chris Hennes
parent 41bce2eaf4
commit a4dd600ec6
9 changed files with 670 additions and 188 deletions

View File

@@ -650,7 +650,7 @@ static TopoShape _getTopoShape(const App::DocumentObject* obj,
shape.resetElementMap();
shape.Tag = 0;
if ( shape.Hasher ) {
shape.Hasher->clear();
shape.Hasher = nullptr;
}
}
}
@@ -702,7 +702,7 @@ static TopoShape _getTopoShape(const App::DocumentObject* obj,
shape.resetElementMap();
shape.Tag = 0;
if ( shape.Hasher ) {
shape.Hasher->clear();
shape.Hasher = nullptr;
}
}
Py_DECREF(pyobj);
@@ -794,7 +794,7 @@ static TopoShape _getTopoShape(const App::DocumentObject* obj,
shape.resetElementMap();
shape.Tag = 0;
if ( shape.Hasher) {
shape.Hasher->clear();
shape.Hasher = nullptr;
}
}
return shape;
@@ -945,7 +945,7 @@ static TopoShape _getTopoShape(const App::DocumentObject* obj,
shape.resetElementMap();
shape.Tag = 0;
if ( shape.Hasher ) {
shape.Hasher->clear();
shape.Hasher = nullptr;
}
}
return shape;

View File

@@ -1403,7 +1403,7 @@ TopoShape& TopoShape::makeShapeWithElementMap(const TopoDS_Shape& shape,
ShapeInfo vertexInfo(_Shape, TopAbs_VERTEX, _cache->getAncestry(TopAbs_VERTEX));
ShapeInfo edgeInfo(_Shape, TopAbs_EDGE, _cache->getAncestry(TopAbs_EDGE));
ShapeInfo faceInfo(_Shape, TopAbs_FACE, _cache->getAncestry(TopAbs_FACE));
mapSubElement(shapes, op);
mapSubElement(shapes); // Intentionally leave the op off here
std::array<ShapeInfo*, 3> infos = {&vertexInfo, &edgeInfo, &faceInfo};

View File

@@ -601,7 +601,7 @@ App::DocumentObjectExecReturn* FeatureExtrude::buildExtrusion(ExtrudeOptions opt
// And the really expensive way to get the SubShape...
try {
TopoShape result(0);
TopoShape result(0, getDocument()->getStringHasher());
if (base.isNull()) {
result = prism;
}