Salome HOME
refs #30 - Sketch base GUI: create, draw lines
[modules/shaper.git] / src / PartSet / PartSet_OperationSketchBase.cpp
index 9eac6c82afb55df6867d81a97dffc5918aa593a7..997a96b1217e16b3d1e5dd55e0b530e7b589eac8 100644 (file)
@@ -5,6 +5,7 @@
 #include <PartSet_OperationSketchBase.h>
 
 #include <SketchPlugin_Feature.h>
+#include <ModelAPI_Object.h>
 
 #include <V3d_View.hxx>
 
@@ -29,6 +30,12 @@ boost::shared_ptr<GeomAPI_Shape> PartSet_OperationSketchBase::preview(
 {
   boost::shared_ptr<SketchPlugin_Feature> aFeature = 
                               boost::dynamic_pointer_cast<SketchPlugin_Feature>(theFeature);
+  if (!aFeature) { // if it is reference to a object feature
+    boost::shared_ptr<ModelAPI_Object> anObj = 
+      boost::dynamic_pointer_cast<ModelAPI_Object>(theFeature);
+    if (anObj) 
+      aFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(anObj->featureRef());
+  }
   return aFeature->preview();
 }
 
@@ -38,6 +45,13 @@ std::map<boost::shared_ptr<ModelAPI_Feature>, boost::shared_ptr<GeomAPI_Shape> >
   return std::map<boost::shared_ptr<ModelAPI_Feature>, boost::shared_ptr<GeomAPI_Shape> >();
 }
 
+std::list<int> PartSet_OperationSketchBase::getSelectionModes(boost::shared_ptr<ModelAPI_Feature> theFeature) const
+{
+  std::list<int> aModes;
+  aModes.push_back(TopAbs_VERTEX);
+  aModes.push_back(TopAbs_EDGE);
+  return aModes;
+}
 boost::shared_ptr<ModelAPI_Feature> PartSet_OperationSketchBase::createFeature()
 {
   boost::shared_ptr<ModelAPI_Feature> aFeature = ModuleBase_Operation::createFeature();