Cleanup, format

This commit is contained in:
bgbsww
2024-07-21 22:28:59 -04:00
parent 38269241e6
commit 1eda66dfd8
6 changed files with 37 additions and 46 deletions

View File

@@ -201,9 +201,6 @@ void SketchObject::setupObject()
{
ParameterGrp::handle hGrpp = App::GetApplication().GetParameterGroupByPath(
"User parameter:BaseApp/Preferences/Mod/Sketcher");
// ArcFitTolerance.setValue(hGrpp->GetFloat("ArcFitTolerance", Precision::Confusion()*10.0));
// ExternalBSplineMaxDegree.setValue(hGrpp->GetInt("ExternalBSplineMaxDegree", 5));
// ExternalBSplineTolerance.setValue(hGrpp->GetFloat("ExternalBSplineTolerance", 1e-4));
MakeInternals.setValue(hGrpp->GetBool("MakeInternals", false));
inherited::setupObject();
}
@@ -402,42 +399,31 @@ const std::map<std::string,std::string> SketchObject::getInternalElementMap() co
return internalElementMap;
}
Part::TopoShape SketchObject::buildInternals(const Part::TopoShape &edges) const
{
Part::TopoShape SketchObject::buildInternals(const Part::TopoShape &edges) const {
if (!MakeInternals.getValue())
return Part::TopoShape();
try {
Part::WireJoiner joiner;
// joiner.setTolerance(InternalTolerance.getValue());
joiner.setTightBound(true);
joiner.setMergeEdges(true);
joiner.addShape(edges);
Part::TopoShape result(getID(), getDocument()->getStringHasher());
if (!joiner.Shape().IsNull()) {
joiner.getResultWires(result, "SKF");
// NOTE: we set minElementNames to 2 (i.e to use at least two
// unused edge name to construct face name) in order to reduce the
// chance of face jumping.
result = result.makeElementFace(result.getSubTopoShapes(TopAbs_WIRE),
/*op*/"",
/*maker*/"Part::FaceMakerRing",
/*pln*/nullptr
#if 1
// /*minElementNames (revert to 1 for now, see how it fares)*/1
#else
/*minElementNames*/2
#endif
);
/*op*/"",
/*maker*/"Part::FaceMakerRing",
/*pln*/nullptr
);
}
Part::TopoShape openWires(getID(), getDocument()->getStringHasher());
joiner.getOpenWires(openWires, "SKF");
if (openWires.isNull())
return result;
return result; // No open wires, return either face or empty toposhape
if (result.isNull())
return openWires;
return result.makeElementCompound({result, openWires});
return openWires; // No face, but we have open wires to return as a shape
return result.makeElementCompound({result, openWires}); // Compound and return both
} catch (Base::Exception &e) {
FC_WARN("Failed to make face for sketch: " << e.what());
} catch (Standard_Failure &e) {
@@ -9713,7 +9699,6 @@ std::vector<Data::IndexedName>
SketchObject::getHigherElements(const char *element, bool silent) const
{
std::vector<Data::IndexedName> res;
// if (testStatus(App::ObjEditing)) {
if (boost::istarts_with(element, "vertex")) {
int n = 0;
int index = atoi(element+6);
@@ -9730,7 +9715,6 @@ SketchObject::getHigherElements(const char *element, bool silent) const
}
}
return res;
// }
auto getNames = [&](const char *element) {
bool internal = boost::starts_with(element, internalPrefix());
@@ -9756,7 +9740,7 @@ SketchObject::getHigherElements(const char *element, bool silent) const
return res;
}
const std::vector<const char *>& SketchObject::getElementTypes(bool all) const
std::vector<const char *> SketchObject::getElementTypes(bool all) const
{
if (!all)
return Part::Part2DObject::getElementTypes();
@@ -9836,7 +9820,7 @@ App::ElementNamePair SketchObject::getElementName(
if (mapped)
mappedElement = InternalShape.getShape().getElementName(name);
else if (type == ElementNameType::Export)
ret.first = getExportElementName(InternalShape.getShape(), realName).first;
ret.newName = getExportElementName(InternalShape.getShape(), realName).newName;
else
mappedElement = InternalShape.getShape().getElementName(realName);
@@ -10002,12 +9986,11 @@ bool SketchObject::geoIdFromShapeType(const Data::IndexedName & indexedName,
return true;
}
std::string SketchObject::convertSubName(const char *subname, bool postfix) const
{
std::string SketchObject::convertSubName(const char *subname, bool postfix) const {
return convertSubName(checkSubName(subname), postfix);
}
std::string SketchObject::convertSubName(const Data::IndexedName & indexedName, bool postfix) const{
std::string SketchObject::convertSubName(const Data::IndexedName &indexedName, bool postfix) const {
std::ostringstream ss;
if (auto realType = convertInternalName(indexedName.getType())) {
auto mapped = InternalShape.getShape().getMappedName(
@@ -10023,40 +10006,40 @@ std::string SketchObject::convertSubName(const Data::IndexedName & indexedName,
}
int geoId;
PointPos posId;
if(!geoIdFromShapeType(indexedName,geoId,posId)) {
if (!geoIdFromShapeType(indexedName, geoId, posId)) {
ss << indexedName;
return ss.str();
}
if(geoId == Sketcher::GeoEnum::HAxis ||
geoId == Sketcher::GeoEnum::VAxis ||
geoId == Sketcher::GeoEnum::RtPnt) {
if (geoId == Sketcher::GeoEnum::HAxis ||
geoId == Sketcher::GeoEnum::VAxis ||
geoId == Sketcher::GeoEnum::RtPnt) {
if (postfix)
ss << Data::ELEMENT_MAP_PREFIX;
ss << indexedName;
if(postfix)
ss << '.' << indexedName;
if (postfix)
ss << '.' << indexedName;
return ss.str();
}
auto geo = getGeometry(geoId);
if(!geo) {
if (!geo) {
std::string res = indexedName.toString();
return res;
}
if (postfix)
ss << Data::ELEMENT_MAP_PREFIX;
ss << (geoId>=0?'g':'e') << GeometryFacade::getFacade(geo)->getId();
if(posId!=PointPos::none)
ss << (geoId >= 0 ? 'g' : 'e') << GeometryFacade::getFacade(geo)->getId();
if (posId != PointPos::none)
ss << 'v' << static_cast<int>(posId);
if(postfix) {
if (postfix) {
// rename Edge to edge, and Vertex to vertex to avoid ambiguous of
// element mapping of the public shape and internal geometry.
if (indexedName.getIndex() <= 0)
ss << '.' << indexedName;
else if(boost::starts_with(indexedName.getType(),"Edge"))
ss << ".e" << (indexedName.getType()+1) << indexedName.getIndex();
else if(boost::starts_with(indexedName.getType(),"Vertex"))
ss << ".v" << (indexedName.getType()+1) << indexedName.getIndex();
else if (boost::starts_with(indexedName.getType(), "Edge"))
ss << ".e" << (indexedName.getType() + 1) << indexedName.getIndex();
else if (boost::starts_with(indexedName.getType(), "Vertex"))
ss << ".v" << (indexedName.getType() + 1) << indexedName.getIndex();
else
ss << '.' << indexedName;
}