Toponaming/Part: Clean up code

This commit is contained in:
bgbsww
2024-02-08 13:57:16 -05:00
parent 60cea34b85
commit d815ac9341

View File

@@ -31,11 +31,14 @@
#endif
#include <App/Application.h>
#include <Base/Console.h>
#include <Base/Parameter.h>
#include "FeaturePartFuse.h"
#include "TopoShapeOpCode.h"
#include "modelRefine.h"
FC_LOG_LEVEL_INIT("Part",true,true);
using namespace Part;
@@ -194,37 +197,44 @@ App::DocumentObjectExecReturn *MultiFuse::execute()
return App::DocumentObject::StdReturn;
#else
std::vector<TopoShape> shapes;
for(auto obj : Shapes.getValues()) {
for (auto obj : Shapes.getValues()) {
TopoShape sh = Feature::getTopoShape(obj);
if(sh.isNull())
if (sh.isNull()) {
return new App::DocumentObjectExecReturn("Input shape is null");
if(!sh.hasSubShape(TopAbs_SOLID)) {
if(FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG))
}
if (!sh.hasSubShape(TopAbs_SOLID)) {
if (FC_LOG_INSTANCE.isEnabled(FC_LOGLEVEL_LOG)) {
FC_WARN("fusion of non solid: " << obj->getFullName());
else
}
else {
FC_MSG("fusion of non solid: " << obj->getFullName());
}
}
shapes.push_back(sh);
}
TopoShape res(0,getDocument()->getStringHasher());
res.makEBoolean(Part::OpCodes::Fuse,shapes);
if (res.isNull())
TopoShape res(0);
res.makeElementBoolean(Part::OpCodes::Fuse, shapes);
if (res.isNull()) {
throw Base::RuntimeError("Resulting shape is null");
}
Base::Reference<ParameterGrp> hGrp = App::GetApplication().GetUserParameter()
.GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Part/Boolean");
Base::Reference<ParameterGrp> hGrp = App::GetApplication()
.GetUserParameter()
.GetGroup("BaseApp")
->GetGroup("Preferences")
->GetGroup("Mod/Part/Boolean");
if (hGrp->GetBool("CheckModel", false)) {
BRepCheck_Analyzer aChecker(res.getShape());
if (! aChecker.IsValid() ) {
if (!aChecker.IsValid()) {
return new App::DocumentObjectExecReturn("Resulting shape is invalid");
}
}
if (this->Refine.getValue())
res = res.makERefine();
if (this->Refine.getValue()) {
res = res.makeElementRefine();
}
this->Shape.setValue(res);
return Part::Feature::execute();
#endif