Toponaming: Fuse call makeElementRefine; remove deprecated refineSha… (#15897)

* Toponaming:  Fuse call makeElementRefine; remove deprecated refineShapeIfActive
* Part/Toponaming: import code for MultiFuse::execute() from LS3
* added expected values of testRefine

Co-authored-by: Zheng, Lei <realthunder.dev@gmail.com>
Co-authored-by: CalligaroV <vincenzo.calligaro@gmail.com>
Co-authored-by: Chris Hennes <chennes@pioneerlibrarysystem.org>
This commit is contained in:
bgbsww
2024-08-18 12:49:05 -04:00
committed by GitHub
parent 5addf9d91b
commit cb3df1d59c
3 changed files with 13 additions and 28 deletions

View File

@@ -276,14 +276,7 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
}
if (this->Refine.getValue()) {
try {
TopoDS_Shape oldShape = res.getShape();
BRepBuilderAPI_RefineModel mkRefine(oldShape);
res.setShape(mkRefine.Shape());
ShapeHistory hist =
buildHistory(mkRefine, TopAbs_FACE, res.getShape(), oldShape);
for (auto& jt : history) {
jt = joinHistory(jt, hist);
}
res = res.makeElementRefine();
}
catch (Standard_Failure&) {
// do nothing

View File

@@ -374,26 +374,6 @@ TopoShape Transformed::refineShapeIfActive(const TopoShape& oldShape) const
return oldShape;
}
// Deprecated, prefer the TopoShape method
TopoDS_Shape Transformed::refineShapeIfActive(const TopoDS_Shape& oldShape) const
{
if (this->Refine.getValue()) {
try {
Part::BRepBuilderAPI_RefineModel mkRefine(oldShape);
TopoDS_Shape resShape = mkRefine.Shape();
if (!TopoShape(resShape).isClosed()) {
return oldShape;
}
return resShape;
}
catch (Standard_Failure&) {
return oldShape;
}
}
return oldShape;
}
TopoDS_Shape Transformed::getRemainingSolids(const TopoDS_Shape& shape)
{
BRep_Builder builder;

View File

@@ -187,6 +187,12 @@ TEST_F(FeaturePartFuseTest, testRefine)
ts.getSubTopoShapes(TopAbs_FACE); // TopAbs_WIRE alternate approach
// Assert two boxes, plus redundant faces at the joint.
EXPECT_EQ(subs.size(), 14);
// 14 Faces
// 28 Edges
// 16 Vertices
// -----------
// 58 Elements
EXPECT_EQ(_fuse->Shape.getShape().getElementMapSize(), 58);
// Act
_fuse->Refine.setValue(true);
_fuse->execute();
@@ -194,6 +200,12 @@ TEST_F(FeaturePartFuseTest, testRefine)
subs = ts.getSubTopoShapes(TopAbs_FACE);
// Assert we now just have one big box
EXPECT_EQ(subs.size(), 6);
// 6 Faces
// 12 Edges
// 8 Vertices
// -----------
// 58 Elements
EXPECT_EQ(_fuse->Shape.getShape().getElementMapSize(), 26);
}
// See FeaturePartCommon.cpp for a history test. It would be exactly the same and redundant here.