Salome HOME
Working with Construction results in SketchPlugin
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_ConstraintParallel.cpp
index e45980582cfeb4eee9aa8817d17dd31ef3ee4f24..85d34d9c7bcff9b1421d9e8b2bcf5e650e3ca682 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <ModelAPI_AttributeDouble.h>
 #include <ModelAPI_Data.h>
+#include <ModelAPI_ResultConstruction.h>
 
 #include <SketchPlugin_Line.h>
 #include <SketchPlugin_Sketch.h>
@@ -29,13 +30,6 @@ void SketchPlugin_ConstraintParallel::execute()
 {
 }
 
-const boost::shared_ptr<GeomAPI_Shape>&  SketchPlugin_ConstraintParallel::preview()
-{
-  /// \todo Preview for parallel constraint
-  return getPreview();
-}
-
-
 boost::shared_ptr<GeomAPI_AISObject> SketchPlugin_ConstraintParallel::getAISObject(
                     boost::shared_ptr<GeomAPI_AISObject> thePrevious)
 {
@@ -58,8 +52,13 @@ boost::shared_ptr<GeomAPI_AISObject> SketchPlugin_ConstraintParallel::getAISObje
     return thePrevious;
 
   boost::shared_ptr<GeomAPI_Pln> aPlane = sketch()->plane();
-  boost::shared_ptr<GeomAPI_Shape> aLine1 = aLine1Feature->preview();
-  boost::shared_ptr<GeomAPI_Shape> aLine2 = aLine2Feature->preview();
+  boost::shared_ptr<GeomAPI_Shape> aLine1, aLine2;
+  boost::shared_ptr<ModelAPI_ResultConstruction> aConst1 = 
+    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aLine1Feature->firstResult());
+  if (aConst1) aLine1 = aConst1->shape();
+  boost::shared_ptr<ModelAPI_ResultConstruction> aConst2 = 
+    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aLine1Feature->firstResult());
+  if (aConst2) aLine2 = aConst2->shape();
 
   boost::shared_ptr<GeomDataAPI_Point2D> aFlyoutAttr = 
     boost::dynamic_pointer_cast<GeomDataAPI_Point2D>(aData->attribute(CONSTRAINT_ATTR_FLYOUT_VALUE_PNT));