Salome HOME
refs #80 - Sketch base GUI: create/draw point, circle and arc
[modules/shaper.git] / src / XGUI / XGUI_Tools.cpp
index 8ce0a36ac0bcb25349a31bd518513a43d995496f..5cf560636b93be6c263d9eea048d6b664f0c32b6 100644 (file)
@@ -1,13 +1,15 @@
 #include "XGUI_Tools.h"
 
 #include <TopoDS_Shape.hxx>
-#include <ModelAPI_Feature.h>
+#include <ModelAPI_Object.h>
 
 #include <QDir>
 
 #include <iostream>
 #include <sstream>
 
+namespace XGUI_Tools
+{
 //******************************************************************
 QString dir(const QString& path, bool isAbs)
 {
@@ -54,7 +56,13 @@ QRect makeRect(const int x1, const int y1, const int x2, const int y2)
 }
 
 //******************************************************************
-std::string featureInfo(boost::shared_ptr<ModelAPI_Feature> theFeature)
+bool isModelObject(FeaturePtr theFeature)
+{
+  return theFeature && !theFeature->data();
+}
+
+//******************************************************************
+std::string featureInfo(FeaturePtr theFeature)
 {
   std::ostringstream aStream; 
   if (theFeature)
@@ -62,3 +70,15 @@ std::string featureInfo(boost::shared_ptr<ModelAPI_Feature> theFeature)
   return QString(aStream.str().c_str()).toStdString();
 }
 
+//******************************************************************
+FeaturePtr realFeature(const FeaturePtr theFeature)
+{
+  if (theFeature->data()) {
+    return theFeature;
+  } else {
+    ObjectPtr aObject = boost::dynamic_pointer_cast<ModelAPI_Object>(theFeature);
+    return aObject->featureRef();
+  }
+}
+
+}