From 9abbbd2b552cadb5567af12e01d7cc9ac42482c0 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Sat, 5 Dec 2020 06:02:30 +0100 Subject: [PATCH] Sketcher: SketchGeometryExtension refactor GeometryMode type from string ======================================================================== getGeometryModeFromName --- .../Sketcher/App/SketchGeometryExtension.cpp | 19 +++++++++++++++++++ .../Sketcher/App/SketchGeometryExtension.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/src/Mod/Sketcher/App/SketchGeometryExtension.cpp b/src/Mod/Sketcher/App/SketchGeometryExtension.cpp index 3ee98a66c9..f75be5983d 100644 --- a/src/Mod/Sketcher/App/SketchGeometryExtension.cpp +++ b/src/Mod/Sketcher/App/SketchGeometryExtension.cpp @@ -34,6 +34,7 @@ using namespace Sketcher; //---------- Geometry Extension constexpr std::array SketchGeometryExtension::internaltype2str; +constexpr std::array SketchGeometryExtension::geometrymode2str; TYPESYSTEM_SOURCE(Sketcher::SketchGeometryExtension,Part::GeometryExtension) @@ -121,3 +122,21 @@ bool SketchGeometryExtension::getInternalTypeFromName(std::string str, InternalT return false; } +bool SketchGeometryExtension::getGeometryModeFromName(std::string str, GeometryMode::GeometryMode &type) +{ + auto pos = std::find_if( SketchGeometryExtension::geometrymode2str.begin(), + SketchGeometryExtension::geometrymode2str.end(), + [str](const char * val) { + return strcmp(val,str.c_str())==0;} + ); + + if( pos != SketchGeometryExtension::geometrymode2str.end()) { + int index = std::distance( SketchGeometryExtension::geometrymode2str.begin(), pos ); + + type = static_cast(index); + return true; + } + + return false; +} + diff --git a/src/Mod/Sketcher/App/SketchGeometryExtension.h b/src/Mod/Sketcher/App/SketchGeometryExtension.h index b4896be63f..51571d5813 100644 --- a/src/Mod/Sketcher/App/SketchGeometryExtension.h +++ b/src/Mod/Sketcher/App/SketchGeometryExtension.h @@ -103,6 +103,8 @@ public: static bool getInternalTypeFromName(std::string str, InternalType::InternalType &type); + static bool getGeometryModeFromName(std::string str, GeometryMode::GeometryMode &type); + private: SketchGeometryExtension(const SketchGeometryExtension&) = default;