Salome HOME
Visualization preferences for sketcher are created
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_ConstraintParallel.cpp
index 0d73cba025f4cacedbc4ba15403962679b7532d7..ea09ad9cf488a7e5f5de9690df24139fad99af23 100644 (file)
@@ -15,6 +15,8 @@
 #include <GeomAPI_Pnt2d.h>
 #include <GeomAPI_Pnt.h>
 
+#include <Config_PropManager.h>
+
 SketchPlugin_ConstraintParallel::SketchPlugin_ConstraintParallel()
 {
 }
@@ -45,13 +47,13 @@ boost::shared_ptr<GeomAPI_AISObject> SketchPlugin_ConstraintParallel::getAISObje
       !anAttr2 || !anAttr2->isObject())
     return thePrevious;
 
-  FeaturePtr aFeature = SketchPlugin_Sketch::getFeature(anAttr1->object());
+  FeaturePtr aFeature = ModelAPI_Feature::feature(anAttr1->object());
   if (!aFeature)
     return thePrevious;
   boost::shared_ptr<SketchPlugin_Line> aLine1Feature = 
     boost::dynamic_pointer_cast<SketchPlugin_Line>(aFeature);
 
-  aFeature = SketchPlugin_Sketch::getFeature(anAttr2->object());
+  aFeature = ModelAPI_Feature::feature(anAttr2->object());
   if (!aFeature)
     return thePrevious;
   boost::shared_ptr<SketchPlugin_Line> aLine2Feature = 
@@ -63,10 +65,10 @@ boost::shared_ptr<GeomAPI_AISObject> SketchPlugin_ConstraintParallel::getAISObje
   boost::shared_ptr<GeomAPI_Pln> aPlane = sketch()->plane();
   boost::shared_ptr<GeomAPI_Shape> aLine1, aLine2;
   boost::shared_ptr<ModelAPI_ResultConstruction> aConst1 = 
-    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aLine1Feature->firstResult());
+    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(anAttr1->object());
   if (aConst1) aLine1 = aConst1->shape();
   boost::shared_ptr<ModelAPI_ResultConstruction> aConst2 = 
-    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(aLine1Feature->firstResult());
+    boost::dynamic_pointer_cast<ModelAPI_ResultConstruction>(anAttr2->object());
   if (aConst2) aLine2 = aConst2->shape();
 
   boost::shared_ptr<GeomDataAPI_Point2D> aFlyoutAttr = 
@@ -77,6 +79,12 @@ boost::shared_ptr<GeomAPI_AISObject> SketchPlugin_ConstraintParallel::getAISObje
   if (!anAIS)
     anAIS = boost::shared_ptr<GeomAPI_AISObject>(new GeomAPI_AISObject);
   anAIS->createParallel(aLine1, aLine2, aFlyoutPnt, aPlane);
+
+  // Set color from preferences
+  std::string aColor = Config_PropManager::value("Sketcher", "Visualization", 
+                                                 "parallel_color", PARALLEL_COLOR);
+  std::vector<int> aRGB = stringToRGB(aColor);
+  anAIS->setColor(aRGB[0], aRGB[1], aRGB[2]);
   return anAIS;
 }