Sketcher: PythonConverter: Replace useLastGeoIdVar bool by enum class

This commit is contained in:
Paddle
2024-01-20 06:49:32 +01:00
parent 7654c4446b
commit 85b5a343f0
3 changed files with 19 additions and 12 deletions

View File

@@ -59,11 +59,11 @@ std::string PythonConverter::convert(const Part::Geometry* geo, Mode mode)
return command;
}
std::string PythonConverter::convert(const Sketcher::Constraint* constraint, bool useLastGeoIdVar)
std::string PythonConverter::convert(const Sketcher::Constraint* constraint, GeoIdMode geoIdMode)
{
// addConstraint(Sketcher.Constraint('Distance',%d,%f))
std::string command;
auto cg = process(constraint, useLastGeoIdVar);
auto cg = process(constraint, geoIdMode);
command = boost::str(boost::format("addConstraint(%s)\n") % cg);
@@ -166,7 +166,7 @@ std::string PythonConverter::convert(const std::string& doc,
std::string PythonConverter::convert(const std::string& doc,
const std::vector<Sketcher::Constraint*>& constraints,
bool useLastGeoIdVar)
GeoIdMode geoIdMode)
{
if (constraints.size() == 1) {
auto cg = convert(constraints[0]);
@@ -177,7 +177,7 @@ std::string PythonConverter::convert(const std::string& doc,
std::string constraintlist = "constraintList = []";
for (auto constraint : constraints) {
auto cg = process(constraint, useLastGeoIdVar);
auto cg = process(constraint, geoIdMode);
constraintlist =
boost::str(boost::format("%s\nconstraintList.append(%s)") % constraintlist % cg);
@@ -344,11 +344,12 @@ PythonConverter::SingleGeometry PythonConverter::process(const Part::Geometry* g
return creator(geo);
}
std::string PythonConverter::process(const Sketcher::Constraint* constraint, bool useLastIdVar)
std::string PythonConverter::process(const Sketcher::Constraint* constraint, GeoIdMode geoIdMode)
{
std::string geoId1 = (useLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->First);
std::string geoId2 = (useLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Second);
std::string geoId3 = (useLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Third);
bool addLastIdVar = geoIdMode == GeoIdMode::AddLastGeoIdToGeoIds;
std::string geoId1 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->First);
std::string geoId2 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Second);
std::string geoId3 = (addLastIdVar ? "lastGeoId + " : "") + std::to_string(constraint->Third);
static std::map<
const Sketcher::ConstraintType,

View File

@@ -60,6 +60,12 @@ public:
OmitInternalGeometry
};
enum class GeoIdMode
{
DoNotChangeGeoIds,
AddLastGeoIdToGeoIds,
};
PythonConverter() = delete;
~PythonConverter() = delete;
@@ -72,11 +78,11 @@ public:
Mode mode = Mode::CreateInternalGeometry);
static std::string convert(const Sketcher::Constraint* constraint,
bool useLastGeoIdVar = false);
GeoIdMode geoIdMode = GeoIdMode::DoNotChangeGeoIds);
static std::string convert(const std::string& doc,
const std::vector<Sketcher::Constraint*>& constraints,
bool useLastGeoIdVar = false);
GeoIdMode geoIdMode = GeoIdMode::DoNotChangeGeoIds);
static std::vector<std::string> multiLine(std::string&& singlestring);
@@ -84,7 +90,7 @@ private:
static SingleGeometry process(const Part::Geometry* geo);
static std::string process(const Sketcher::Constraint* constraint,
bool useLastGeoIdVar = false);
GeoIdMode geoIdMode = GeoIdMode::DoNotChangeGeoIds);
};
} // namespace Sketcher

View File

@@ -192,7 +192,7 @@ bool copySelectionToClipboard(Sketcher::SketchObject* obj) {
}
shapeConstraints.push_back(temp);
}
std::string cstrAsStr = Sketcher::PythonConverter::convert("objectStr", shapeConstraints, true);
std::string cstrAsStr = Sketcher::PythonConverter::convert("objectStr", shapeConstraints, Sketcher::PythonConverter::GeoIdMode::AddLastGeoIdToGeoIds);
std::string exportedData = "# Copied from sketcher. From:\n#objectStr = " + Gui::Command::getObjectCmd(obj) + "\n"
+ geosAsStr + "\n" + cstrAsStr;