Sketcher: SketchGeometryExtension refactor GeometryMode type from string
======================================================================== getGeometryModeFromName
This commit is contained in:
committed by
abdullahtahiriyo
parent
e230e60d5f
commit
9abbbd2b55
@@ -34,6 +34,7 @@ using namespace Sketcher;
|
||||
|
||||
//---------- Geometry Extension
|
||||
constexpr std::array<const char *, InternalType::NumInternalGeometryType> SketchGeometryExtension::internaltype2str;
|
||||
constexpr std::array<const char *,GeometryMode::NumGeometryMode> 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<GeometryMode::GeometryMode>(index);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user