Salome HOME
Copyright update 2020
[modules/shaper.git] / src / SketcherPrs / SketcherPrs_Tools.cpp
index 4e9522fd1f94caec8056f5c4faf59cbd7d613d58..156e1265954e78e745b83ebd8b2c4cb8f8c02db8 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2020  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 namespace SketcherPrs_Tools {
 
+static ParameterStyle MyStyle = ParameterValue;
+
+void setParameterStyle(ParameterStyle theStyle)
+{
+  MyStyle = theStyle;
+}
+
+ParameterStyle parameterStyle()
+{
+  return MyStyle;
+}
+
 AttributePtr getAttribute(ModelAPI_Feature* theFeature, const std::string& theAttrName)
 {
   AttributePtr anAttribute;
@@ -94,8 +106,12 @@ std::shared_ptr<GeomAPI_Shape> getShape(ObjectPtr theObject)
 std::shared_ptr<GeomAPI_Pnt2d> getPoint(ModelAPI_Feature* theFeature,
                                         const std::string& theAttribute)
 {
-  std::shared_ptr<GeomDataAPI_Point2D> aPointAttr = ModelGeomAlgo_Point2D::getPointOfRefAttr(
+  std::shared_ptr<GeomDataAPI_Point2D> aPointAttr =
+    std::dynamic_pointer_cast<GeomDataAPI_Point2D>(theFeature->attribute(theAttribute));
+  if (!aPointAttr.get() || !aPointAttr->isInitialized()) {
+    aPointAttr = ModelGeomAlgo_Point2D::getPointOfRefAttr(
                theFeature, theAttribute, SketchPlugin_Point::ID(), SketchPlugin_Point::COORD_ID());
+  }
   if (aPointAttr.get() != NULL)
     return aPointAttr->pnt();
   return std::shared_ptr<GeomAPI_Pnt2d>();
@@ -365,17 +381,6 @@ std::shared_ptr<GeomAPI_Pnt> getAnchorPoint(const ModelAPI_Feature* theConstrain
   return thePlane->to3D(aFlyoutPnt->x(), aFlyoutPnt->y());
 }
 
-void sendExpressionShownEvent(const bool& theState)
-{
-  static Events_ID anId = SketcherPrs_ParameterStyleMessage::eventId();
-  std::shared_ptr<SketcherPrs_ParameterStyleMessage> aMessage = std::shared_ptr
-    <SketcherPrs_ParameterStyleMessage>(new SketcherPrs_ParameterStyleMessage(anId, 0));
-  aMessage->setStyle(theState ? SketcherPrs_ParameterStyleMessage::ParameterText
-                              : SketcherPrs_ParameterStyleMessage::ParameterValue);
-  Events_Loop::loop()->send(aMessage);
-  Events_Loop::loop()->flush(anId);
-}
-
 void sendEmptyPresentationError(ModelAPI_Feature* theFeature, const std::string theError)
 {
   Events_InfoMessage("SketcherPrs_Tools",