From 222e9b6b463b22db3e8e739a730f82e654706326 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 23 Oct 2016 13:44:26 +0200 Subject: [PATCH] replace hard coded numbers with static constants --- src/Mod/Sketcher/App/SketchObject.cpp | 22 +++---- src/Mod/Sketcher/App/SketchObject.h | 8 +++ src/Mod/Sketcher/Gui/Command.cpp | 18 +++--- src/Mod/Sketcher/Gui/CommandConstraints.cpp | 62 +++++++++---------- src/Mod/Sketcher/Gui/CommandSketcherTools.cpp | 6 +- src/Mod/Sketcher/Gui/DrawSketchHandler.cpp | 8 +-- src/Mod/Sketcher/Gui/SketchMirrorDialog.cpp | 7 ++- src/Mod/Sketcher/Gui/ViewProviderSketch.cpp | 26 ++++---- 8 files changed, 83 insertions(+), 74 deletions(-) diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 81286bae5..4f0c5f0dd 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -52,7 +52,7 @@ # include # include # include -#endif // #ifndef _PreComp_ +#endif #include @@ -72,8 +72,8 @@ #include #include "SketchObject.h" -#include "SketchObjectPy.h" #include "Sketch.h" +#include using namespace Sketcher; using namespace Base; @@ -760,8 +760,8 @@ int SketchObject::delConstraintOnPoint(int VertexId, bool onlyCoincident) { int GeoId; PointPos PosId; - if (VertexId == -1) { // RootPoint - GeoId = -1; + if (VertexId == GeoEnum::RtPnt) { // RootPoint + GeoId = Sketcher::GeoEnum::RtPnt; PosId = start; } else getGeoVertexIndex(VertexId, GeoId, PosId); @@ -2839,7 +2839,7 @@ int SketchObject::delExternal(int ExtGeoId) const std::vector< Constraint * > &constraints = Constraints.getValues(); std::vector< Constraint * > newConstraints(0); - int GeoId = -3 - ExtGeoId; + int GeoId = GeoEnum::RefExt - ExtGeoId; for (std::vector::const_iterator it = constraints.begin(); it != constraints.end(); ++it) { if ((*it)->First != GeoId && (*it)->Second != GeoId && (*it)->Third != GeoId) { @@ -2893,9 +2893,9 @@ int SketchObject::delAllExternal() std::vector< Constraint * > newConstraints(0); for (std::vector::const_iterator it = constraints.begin(); it != constraints.end(); ++it) { - if ((*it)->First > -3 && - ((*it)->Second > -3 || (*it)->Second == Constraint::GeoUndef ) && - ((*it)->Third > -3 || (*it)->Third == Constraint::GeoUndef) ) { + if ((*it)->First > GeoEnum::RefExt && + ((*it)->Second > GeoEnum::RefExt || (*it)->Second == Constraint::GeoUndef ) && + ((*it)->Third > GeoEnum::RefExt || (*it)->Third == Constraint::GeoUndef) ) { Constraint *copiedConstr = (*it)->clone(); newConstraints.push_back(copiedConstr); @@ -2924,7 +2924,7 @@ int SketchObject::delConstraintsToExternal() { const std::vector< Constraint * > &constraints = Constraints.getValuesForce(); std::vector< Constraint * > newConstraints(0); - int GeoId = -3, NullId = -2000; + int GeoId = GeoEnum::RefExt, NullId = Constraint::GeoUndef; for (std::vector::const_iterator it = constraints.begin(); it != constraints.end(); ++it) { if ( (*it)->First > GeoId @@ -3042,7 +3042,7 @@ void SketchObject::validateExternalLinks(void) const std::vector< Constraint * > &constraints = Constraints.getValues(); std::vector< Constraint * > newConstraints(0); - int GeoId = -3 - i; + int GeoId = GeoEnum::RefExt - i; for (std::vector::const_iterator it = constraints.begin(); it != constraints.end(); ++it) { if ((*it)->First != GeoId && (*it)->Second != GeoId && (*it)->Third != GeoId) { @@ -4085,7 +4085,7 @@ int SketchObject::port_reversedExternalArcs(bool justAnalyze) case 3: geoId=newVals[ic]->Third; posId = newVals[ic]->ThirdPos; break; } - if ( geoId <= -3 && + if ( geoId <= GeoEnum::RefExt && (posId==Sketcher::start || posId==Sketcher::end)){ //we are dealing with a link to an endpoint of external geom Part::Geometry* g = this->ExternalGeo[-geoId-1]; diff --git a/src/Mod/Sketcher/App/SketchObject.h b/src/Mod/Sketcher/App/SketchObject.h index 263c022b2..eee4c7d8e 100644 --- a/src/Mod/Sketcher/App/SketchObject.h +++ b/src/Mod/Sketcher/App/SketchObject.h @@ -38,6 +38,14 @@ namespace Sketcher { +struct GeoEnum +{ + static const int RtPnt = -1; + static const int HAxis = -1; + static const int VAxis = -2; + static const int RefExt = -3; +}; + class SketcherExport SketchObject : public Part::Part2DObject { PROPERTY_HEADER(Sketcher::SketchObject); diff --git a/src/Mod/Sketcher/Gui/Command.cpp b/src/Mod/Sketcher/Gui/Command.cpp index e0e26f5d9..8cf9365a3 100644 --- a/src/Mod/Sketcher/Gui/Command.cpp +++ b/src/Mod/Sketcher/Gui/Command.cpp @@ -747,14 +747,14 @@ void CmdSketcherMirrorSketch::activated(int iMsg) std::vector mirrorgeo (tempgeo.begin()+addedGeometries+1,tempgeo.end()); std::vector mirrorconstr (tempconstr.begin()+addedConstraints+1,tempconstr.end()); - - for(std::vector::const_iterator itc=mirrorconstr.begin(); itc != mirrorconstr.end(); ++itc) { + + for (std::vector::const_iterator itc=mirrorconstr.begin(); itc != mirrorconstr.end(); ++itc) { - if((*itc)->First!=Sketcher::Constraint::GeoUndef || (*itc)->First==-1 || (*itc)->First==-2) // not x, y axes or origin + if ((*itc)->First!=Sketcher::Constraint::GeoUndef || (*itc)->First==Sketcher::GeoEnum::HAxis || (*itc)->First==Sketcher::GeoEnum::VAxis) // not x, y axes or origin (*itc)->First-=(addedGeometries+1); - if((*itc)->Second!=Sketcher::Constraint::GeoUndef || (*itc)->Second==-1 || (*itc)->Second==-2) // not x, y axes or origin + if ((*itc)->Second!=Sketcher::Constraint::GeoUndef || (*itc)->Second==Sketcher::GeoEnum::HAxis || (*itc)->Second==Sketcher::GeoEnum::VAxis) // not x, y axes or origin (*itc)->Second-=(addedGeometries+1); - if((*itc)->Third!=Sketcher::Constraint::GeoUndef || (*itc)->Third==-1 || (*itc)->Third==-2) // not x, y axes or origin + if ((*itc)->Third!=Sketcher::Constraint::GeoUndef || (*itc)->Third==Sketcher::GeoEnum::HAxis || (*itc)->Third==Sketcher::GeoEnum::VAxis) // not x, y axes or origin (*itc)->Third-=(addedGeometries+1); } @@ -818,14 +818,14 @@ void CmdSketcherMergeSketches::activated(int iMsg) int addedConstraints=mergesketch->addConstraints(Obj->Constraints.getValues()); - for(int i=0; i<=(addedConstraints-baseConstraints); i++){ + for (int i=0; i<=(addedConstraints-baseConstraints); i++){ Sketcher::Constraint * constraint= mergesketch->Constraints.getValues()[i+baseConstraints]; - if(constraint->First!=Sketcher::Constraint::GeoUndef || constraint->First==-1 || constraint->First==-2) // not x, y axes or origin + if (constraint->First!=Sketcher::Constraint::GeoUndef || constraint->First==Sketcher::GeoEnum::HAxis || constraint->First==Sketcher::GeoEnum::VAxis) // not x, y axes or origin constraint->First+=baseGeometry; - if(constraint->Second!=Sketcher::Constraint::GeoUndef || constraint->Second==-1 || constraint->Second==-2) // not x, y axes or origin + if (constraint->Second!=Sketcher::Constraint::GeoUndef || constraint->Second==Sketcher::GeoEnum::HAxis || constraint->Second==Sketcher::GeoEnum::VAxis) // not x, y axes or origin constraint->Second+=baseGeometry; - if(constraint->Third!=Sketcher::Constraint::GeoUndef || constraint->Third==-1 || constraint->Third==-2) // not x, y axes or origin + if (constraint->Third!=Sketcher::Constraint::GeoUndef || constraint->Third==Sketcher::GeoEnum::HAxis || constraint->Third==Sketcher::GeoEnum::VAxis) // not x, y axes or origin constraint->Third+=baseGeometry; } diff --git a/src/Mod/Sketcher/Gui/CommandConstraints.cpp b/src/Mod/Sketcher/Gui/CommandConstraints.cpp index 89b173d54..0e05d8929 100644 --- a/src/Mod/Sketcher/Gui/CommandConstraints.cpp +++ b/src/Mod/Sketcher/Gui/CommandConstraints.cpp @@ -259,15 +259,15 @@ void getIdsFromName(const std::string &name, const Sketcher::SketchObject* Obj, GeoId = std::atoi(name.substr(4,4000).c_str()) - 1; } else if (name.size() == 9 && name.substr(0,9) == "RootPoint") { - GeoId = -1; + GeoId = Sketcher::GeoEnum::RtPnt; PosId = Sketcher::start; } else if (name.size() == 6 && name.substr(0,6) == "H_Axis") - GeoId = -1; + GeoId = Sketcher::GeoEnum::HAxis; else if (name.size() == 6 && name.substr(0,6) == "V_Axis") - GeoId = -2; + GeoId = Sketcher::GeoEnum::VAxis; else if (name.size() > 12 && name.substr(0,12) == "ExternalEdge") - GeoId = -2 - std::atoi(name.substr(12,4000).c_str()); + GeoId = Sketcher::GeoEnum::RefExt + 1 - std::atoi(name.substr(12,4000).c_str()); else if (name.size() > 6 && name.substr(0,6) == "Vertex") { int VtId = std::atoi(name.substr(6,4000).c_str()) - 1; Obj->getGeoVertexIndex(VtId,GeoId,PosId); @@ -286,7 +286,7 @@ bool inline isEdge(int GeoId, PointPos PosId) bool isSimpleVertex(const Sketcher::SketchObject* Obj, int GeoId, PointPos PosId) { - if (PosId == Sketcher::start && (GeoId == -1 || GeoId == -2)) + if (PosId == Sketcher::start && (GeoId == Sketcher::GeoEnum::HAxis || GeoId == Sketcher::GeoEnum::VAxis)) return true; const Part::Geometry *geo = Obj->getGeometry(GeoId); if (geo->getTypeId() == Part::GeomPoint::getClassTypeId()) @@ -781,7 +781,7 @@ void CmdSketcherConstrainLock::activated(int iMsg) Sketcher::PointPos PosId; getIdsFromName(SubNames[0], Obj, GeoId, PosId); - if (isEdge(GeoId,PosId) || (GeoId < 0 && GeoId >= -2)) { + if (isEdge(GeoId,PosId) || (GeoId < 0 && GeoId >= Sketcher::GeoEnum::VAxis)) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Select one vertex from the sketch other than the origin.")); return; @@ -798,7 +798,7 @@ void CmdSketcherConstrainLock::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('DistanceY',%d,%d,%f)) ", selection[0].getFeatName(),GeoId,PosId,pnt.y); - if (GeoId < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -981,24 +981,24 @@ void CmdSketcherConstrainDistance::activated(int iMsg) bool bothexternal=checkBothExternal(GeoId1, GeoId2); - if (isVertex(GeoId1,PosId1) && (GeoId2 == -2 || GeoId2 == -1)) { + if (isVertex(GeoId1,PosId1) && (GeoId2 == Sketcher::GeoEnum::VAxis || GeoId2 == Sketcher::GeoEnum::HAxis)) { std::swap(GeoId1,GeoId2); std::swap(PosId1,PosId2); } - if ((isVertex(GeoId1,PosId1) || GeoId1 == -2 || GeoId1 == -1) && + if ((isVertex(GeoId1,PosId1) || GeoId1 == Sketcher::GeoEnum::VAxis || GeoId1 == Sketcher::GeoEnum::HAxis) && isVertex(GeoId2,PosId2)) { // point to point distance Base::Vector3d pnt2 = Obj->getPoint(GeoId2,PosId2); - if (GeoId1 == -1 && PosId1 == Sketcher::none) { + if (GeoId1 == Sketcher::GeoEnum::HAxis && PosId1 == Sketcher::none) { PosId1 = Sketcher::start; openCommand("add distance from horizontal axis constraint"); Gui::Command::doCommand( Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('DistanceY',%d,%d,%d,%d,%f)) ", selection[0].getFeatName(),GeoId1,PosId1,GeoId2,PosId2,pnt2.y); } - else if (GeoId1 == -2 && PosId1 == Sketcher::none) { + else if (GeoId1 == Sketcher::GeoEnum::VAxis && PosId1 == Sketcher::none) { PosId1 = Sketcher::start; openCommand("add distance from vertical axis constraint"); Gui::Command::doCommand( @@ -1060,7 +1060,7 @@ void CmdSketcherConstrainDistance::activated(int iMsg) } } else if (isEdge(GeoId1,PosId1)) { // line length - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add a length constraint on an axis!")); return; @@ -1077,7 +1077,7 @@ void CmdSketcherConstrainDistance::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Distance',%d,%f)) ", selection[0].getFeatName(),GeoId1,ActLength); - if (GeoId1 < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId1 <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -1250,20 +1250,20 @@ void CmdSketcherConstrainDistanceX::activated(int iMsg) bool bothexternal=checkBothExternal(GeoId1, GeoId2); - if (GeoId2 == -1 || GeoId2 == -2) { + if (GeoId2 == Sketcher::GeoEnum::HAxis || GeoId2 == Sketcher::GeoEnum::VAxis) { std::swap(GeoId1,GeoId2); std::swap(PosId1,PosId2); } - if (GeoId1 == -1 && PosId1 == Sketcher::none) // reject horizontal axis from selection + if (GeoId1 == Sketcher::GeoEnum::HAxis && PosId1 == Sketcher::none) // reject horizontal axis from selection GeoId1 = Constraint::GeoUndef; - else if (GeoId1 == -2 && PosId1 == Sketcher::none) { - GeoId1 = -1; + else if (GeoId1 == Sketcher::GeoEnum::VAxis && PosId1 == Sketcher::none) { + GeoId1 = Sketcher::GeoEnum::HAxis; PosId1 = Sketcher::start; } if (isEdge(GeoId1,PosId1) && GeoId2 == Constraint::GeoUndef) { // horizontal length of a line - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add a horizontal length constraint on an axis!")); return; @@ -1310,7 +1310,7 @@ void CmdSketcherConstrainDistanceX::activated(int iMsg) } else if (isVertex(GeoId1,PosId1) && GeoId2 == Constraint::GeoUndef) { // point on fixed x-coordinate - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add a fixed x-coordinate constraint on the root point!")); return; @@ -1324,7 +1324,7 @@ void CmdSketcherConstrainDistanceX::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('DistanceX',%d,%d,%f)) ", selection[0].getFeatName(),GeoId1,PosId1,ActX); - if (GeoId1 < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId1 <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -1409,18 +1409,18 @@ void CmdSketcherConstrainDistanceY::activated(int iMsg) bool bothexternal=checkBothExternal(GeoId1, GeoId2); - if (GeoId2 == -1 || GeoId2 == -2) { + if (GeoId2 == Sketcher::GeoEnum::HAxis || GeoId2 == Sketcher::GeoEnum::VAxis) { std::swap(GeoId1,GeoId2); std::swap(PosId1,PosId2); } - if (GeoId1 == -2 && PosId1 == Sketcher::none) // reject vertical axis from selection + if (GeoId1 == Sketcher::GeoEnum::VAxis && PosId1 == Sketcher::none) // reject vertical axis from selection GeoId1 = Constraint::GeoUndef; - else if (GeoId1 == -1 && PosId1 == Sketcher::none) + else if (GeoId1 == Sketcher::GeoEnum::HAxis && PosId1 == Sketcher::none) PosId1 = Sketcher::start; if (isEdge(GeoId1,PosId1) && GeoId2 == Constraint::GeoUndef) { // vertical length of a line - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add a vertical length constraint on an axis!")); return; @@ -1468,7 +1468,7 @@ void CmdSketcherConstrainDistanceY::activated(int iMsg) } else if (isVertex(GeoId1,PosId1) && GeoId2 == Constraint::GeoUndef) { // point on fixed y-coordinate - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add a fixed y-coordinate constraint on the root point!")); return; @@ -1482,7 +1482,7 @@ void CmdSketcherConstrainDistanceY::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('DistanceY',%d,%d,%f)) ", selection[0].getFeatName(),GeoId1,PosId1,ActY); - if (GeoId1 < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId1 <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -2715,7 +2715,7 @@ void CmdSketcherConstrainAngle::activated(int iMsg) return; } } else if (isEdge(GeoId1,PosId1)) { // line angle - if (GeoId1 < 0 && GeoId1 >= -2) { + if (GeoId1 < 0 && GeoId1 >= Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Cannot add an angle constraint on an axis!")); return; @@ -2733,7 +2733,7 @@ void CmdSketcherConstrainAngle::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Angle',%d,%f)) ", selection[0].getFeatName(),GeoId1,ActAngle); - if (GeoId1 < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId1 <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -2757,7 +2757,7 @@ void CmdSketcherConstrainAngle::activated(int iMsg) Doc,"App.ActiveDocument.%s.addConstraint(Sketcher.Constraint('Angle',%d,%f)) ", selection[0].getFeatName(),GeoId1,angle); - if (GeoId1 < -2 || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving + if (GeoId1 <= Sketcher::GeoEnum::RefExt || constraintCreationMode==Reference) { // it is a constraint on a external line, make it non-driving const std::vector &ConStr = Obj->Constraints.getValues(); Gui::Command::doCommand(Doc,"App.ActiveDocument.%s.setDriving(%i,%s)", @@ -2852,7 +2852,7 @@ void CmdSketcherConstrainEqual::activated(int iMsg) return; } else if (GeoId < 0) { - if (GeoId == -1 || GeoId == -2) { + if (GeoId == Sketcher::GeoEnum::HAxis || GeoId == Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Sketch axes cannot be used in equality constraints")); return; @@ -3290,7 +3290,7 @@ void CmdSketcherConstrainInternalAlignment::activated(int iMsg) getIdsFromName(*it, Obj, GeoId, PosId); if (GeoId < 0) { - if (GeoId == -1 || GeoId == -2) { + if (GeoId == Sketcher::GeoEnum::HAxis || GeoId == Sketcher::GeoEnum::VAxis) { QMessageBox::warning(Gui::getMainWindow(), QObject::tr("Wrong selection"), QObject::tr("Sketch axes cannot be used in internal alignment constraint")); return; diff --git a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp index e7c90c9f1..22d033d94 100644 --- a/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp +++ b/src/Mod/Sketcher/Gui/CommandSketcherTools.cpp @@ -1101,21 +1101,21 @@ void CmdSketcherSymmetry::activated(int iMsg) } // check if last selected element is horizontal axis else if(SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "H_Axis"){ - LastGeoId = -1; + LastGeoId = Sketcher::GeoEnum::HAxis; LastPointPos = Sketcher::none; lastgeotype = line; lastvertexoraxis=true; } // check if last selected element is vertical axis else if(SubNames.rbegin()->size() == 6 && SubNames.rbegin()->substr(0,6) == "V_Axis"){ - LastGeoId = -2; + LastGeoId = Sketcher::GeoEnum::VAxis; LastPointPos = Sketcher::none; lastgeotype = line; lastvertexoraxis=true; } // check if last selected element is the root point else if(SubNames.rbegin()->size() == 9 && SubNames.rbegin()->substr(0,9) == "RootPoint"){ - LastGeoId = -1; + LastGeoId = Sketcher::GeoEnum::RtPnt; LastPointPos = Sketcher::start; lastgeotype = point; lastvertexoraxis=true; diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp index 29f1f374b..54f5aa3c8 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp +++ b/src/Mod/Sketcher/Gui/DrawSketchHandler.cpp @@ -162,16 +162,16 @@ int DrawSketchHandler::seekAutoConstraint(std::vector &suggested } else if (preSelCrs == 0) { // root point - GeoId = -1; + GeoId = Sketcher::GeoEnum::RtPnt; PosId = Sketcher::start; } else if (preSelCrs == 1){ // x axis - GeoId = -1; + GeoId = Sketcher::GeoEnum::HAxis; hitShapeDir = Base::Vector3d(1,0,0); } else if (preSelCrs == 2){ // y axis - GeoId = -2; + GeoId = Sketcher::GeoEnum::VAxis; hitShapeDir = Base::Vector3d(0,1,0); } @@ -196,7 +196,7 @@ int DrawSketchHandler::seekAutoConstraint(std::vector &suggested // the angle between the line and the hitting direction are over around 6 degrees (it is substantially parallel) // or if it is an sketch axis (that can not move to accomodate to the shape), then only if it is around 6 degrees with the normal (around 84 degrees) - if (fabs(cosangle) < 0.995f || ((GeoId==-1 || GeoId==-2) && fabs(cosangle) < 0.1)) + if (fabs(cosangle) < 0.995f || ((GeoId==Sketcher::GeoEnum::HAxis || GeoId==Sketcher::GeoEnum::VAxis) && fabs(cosangle) < 0.1)) suggestedConstraints.push_back(constr); diff --git a/src/Mod/Sketcher/Gui/SketchMirrorDialog.cpp b/src/Mod/Sketcher/Gui/SketchMirrorDialog.cpp index 3467c783f..86013e096 100644 --- a/src/Mod/Sketcher/Gui/SketchMirrorDialog.cpp +++ b/src/Mod/Sketcher/Gui/SketchMirrorDialog.cpp @@ -34,6 +34,7 @@ #include "ui_SketchMirrorDialog.h" #include "SketchMirrorDialog.h" +#include using namespace SketcherGui; @@ -54,15 +55,15 @@ SketchMirrorDialog::~SketchMirrorDialog() void SketchMirrorDialog::accept() { if (ui->XAxisRadioButton->isChecked()) { - RefGeoid=-1; + RefGeoid=Sketcher::GeoEnum::HAxis; RefPosid=Sketcher::none; } else if (ui->YAxisRadioButton->isChecked()) { - RefGeoid=-2; + RefGeoid=Sketcher::GeoEnum::VAxis; RefPosid=Sketcher::none; } else if (ui->OriginRadioButton->isChecked()) { - RefGeoid=-1; + RefGeoid=Sketcher::GeoEnum::RtPnt; RefPosid=Sketcher::start; } diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 15d0cd230..9a6a95889 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -1446,15 +1446,15 @@ void ViewProviderSketch::onSelectionChanged(const Gui::SelectionChanges& msg) this->updateColor(); } else if (shapetype == "RootPoint") { - addSelectPoint(-1); + addSelectPoint(Sketcher::GeoEnum::RtPnt); this->updateColor(); } else if (shapetype == "H_Axis") { - edit->SelCurvSet.insert(-1); + edit->SelCurvSet.insert(Sketcher::GeoEnum::HAxis); this->updateColor(); } else if (shapetype == "V_Axis") { - edit->SelCurvSet.insert(-2); + edit->SelCurvSet.insert(Sketcher::GeoEnum::VAxis); this->updateColor(); } else if (shapetype.size() > 10 && shapetype.substr(0,10) == "Constraint") { @@ -1491,15 +1491,15 @@ void ViewProviderSketch::onSelectionChanged(const Gui::SelectionChanges& msg) this->updateColor(); } else if (shapetype == "RootPoint") { - removeSelectPoint(-1); + removeSelectPoint(Sketcher::GeoEnum::RtPnt); this->updateColor(); } else if (shapetype == "H_Axis") { - edit->SelCurvSet.erase(-1); + edit->SelCurvSet.erase(Sketcher::GeoEnum::HAxis); this->updateColor(); } else if (shapetype == "V_Axis") { - edit->SelCurvSet.erase(-2); + edit->SelCurvSet.erase(Sketcher::GeoEnum::VAxis); this->updateColor(); } else if (shapetype.size() > 10 && shapetype.substr(0,10) == "Constraint") { @@ -1658,7 +1658,7 @@ bool ViewProviderSketch::detectPreselection(const SoPickedPoint *Point, // get the index PtIndex = static_cast(point_detail)->getCoordinateIndex(); PtIndex -= 1; // shift corresponding to RootPoint - if (PtIndex == -1) + if (PtIndex == Sketcher::GeoEnum::RtPnt) CrossIndex = 0; // RootPoint was hit } } else { @@ -1709,7 +1709,7 @@ bool ViewProviderSketch::detectPreselection(const SoPickedPoint *Point, if (GeoIndex >= 0) ss << "Edge" << GeoIndex + 1; else // external geometry - ss << "ExternalEdge" << -GeoIndex - 2; // convert index start from -3 to 1 + ss << "ExternalEdge" << -GeoIndex + Sketcher::GeoEnum::RefExt + 1; // convert index start from -3 to 1 bool accepted = Gui::Selection().setPreselect(getSketchObject()->getDocument()->getName() ,getSketchObject()->getNameInDocument() @@ -2262,7 +2262,7 @@ void ViewProviderSketch::updateColor(void) verts[j] = SbVec3f(x,y,zHighLine); } } - else if (GeoId < -2) { // external Geometry + else if (GeoId <= Sketcher::GeoEnum::RefExt) { // external Geometry color[i] = CurveExternalColor; for (int k=j; jSelCurvSet.find(-2) != edit->SelCurvSet.end()) + if (edit->SelCurvSet.find(Sketcher::GeoEnum::VAxis) != edit->SelCurvSet.end()) crosscolor[1] = SelectColor; else if (edit->PreselectCross == 2) crosscolor[1] = PreselectColor; @@ -4874,7 +4874,7 @@ bool ViewProviderSketch::onDelete(const std::vector &subList) if( GeoId >= 0 ) delInternalGeometries.insert(GeoId); else - delExternalGeometries.insert(-3-GeoId); + delExternalGeometries.insert(Sketcher::GeoEnum::RefExt - GeoId); } else if (it->size() > 12 && it->substr(0,12) == "ExternalEdge") { int GeoId = std::atoi(it->substr(12,4000).c_str()) - 1; delExternalGeometries.insert(GeoId); @@ -4888,12 +4888,12 @@ bool ViewProviderSketch::onDelete(const std::vector &subList) if(GeoId>=0) delInternalGeometries.insert(GeoId); else - delExternalGeometries.insert(-3-GeoId); + delExternalGeometries.insert(Sketcher::GeoEnum::RefExt - GeoId); } else delCoincidents.insert(VtId); } else if (*it == "RootPoint") { - delCoincidents.insert(-1); + delCoincidents.insert(Sketcher::GeoEnum::RtPnt); } else if (it->size() > 10 && it->substr(0,10) == "Constraint") { int ConstrId = Sketcher::PropertyConstraintList::getIndexFromConstraintName(*it); delConstraints.insert(ConstrId);