Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / XGUI / XGUI_Tools.cpp
index 77c38599d99f9c8115ea40727e9c39068b6c130e..5cf560636b93be6c263d9eea048d6b664f0c32b6 100644 (file)
@@ -1,7 +1,15 @@
 #include "XGUI_Tools.h"
 
+#include <TopoDS_Shape.hxx>
+#include <ModelAPI_Object.h>
+
 #include <QDir>
 
+#include <iostream>
+#include <sstream>
+
+namespace XGUI_Tools
+{
 //******************************************************************
 QString dir(const QString& path, bool isAbs)
 {
@@ -46,3 +54,31 @@ QRect makeRect(const int x1, const int y1, const int x2, const int y2)
 {
   return QRect(qMin(x1, x2), qMin(y1, y2), qAbs(x2 - x1), qAbs(y2 - y1));
 }
+
+//******************************************************************
+bool isModelObject(FeaturePtr theFeature)
+{
+  return theFeature && !theFeature->data();
+}
+
+//******************************************************************
+std::string featureInfo(FeaturePtr theFeature)
+{
+  std::ostringstream aStream; 
+  if (theFeature)
+    aStream << theFeature.get() << " " << theFeature->getKind();
+  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();
+  }
+}
+
+}