]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Edit radius with variable
authorvsv <vitaly.smetannikov@opencascade.com>
Thu, 16 Apr 2015 16:57:40 +0000 (19:57 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Thu, 16 Apr 2015 16:57:40 +0000 (19:57 +0300)
src/PartSet/PartSet_SketcherMgr.cpp

index e46d1a60c83d0695a8d2e2d86f8743a2994a3eb6..c3c96f9f4087d8b591f683e0de32ce1fd562634a 100644 (file)
@@ -318,24 +318,25 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
           aOperation->abort();
       return;
     }
+    // Init flyout point for radius rotation
+    FeaturePtr aFeature = myCurrentSelection.begin().key();
 
     if (isSketcher) {
       myIsDragging = true;
       get2dPoint(theWnd, theEvent, myCurrentPoint);
       myDragDone = false;
       launchEditing();
-      // Init flyout point for radius rotation
-      FeaturePtr aFeature = myCurrentSelection.begin().key();
-      std::shared_ptr<SketchPlugin_Feature> aSPFeature = 
-                std::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
-      if (aSPFeature->getKind() == SketchPlugin_ConstraintRadius::ID()) {
-        DataPtr aData = aSPFeature->data();
-        AttributePtr aAttr = aData->attribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT());
-        std::shared_ptr<GeomDataAPI_Point2D> aFPAttr = 
-          std::dynamic_pointer_cast<GeomDataAPI_Point2D>(aAttr);
-        aFPAttr->setValue(myCurrentPoint.myCurX, myCurrentPoint.myCurY);
+      if (aFeature.get() != NULL) {
+        std::shared_ptr<SketchPlugin_Feature> aSPFeature = 
+                  std::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
+        if (aSPFeature->getKind() == SketchPlugin_ConstraintRadius::ID()) {
+          DataPtr aData = aSPFeature->data();
+          AttributePtr aAttr = aData->attribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT());
+          std::shared_ptr<GeomDataAPI_Point2D> aFPAttr = 
+            std::dynamic_pointer_cast<GeomDataAPI_Point2D>(aAttr);
+          aFPAttr->setValue(myCurrentPoint.myCurX, myCurrentPoint.myCurY);
+        }
       }
-
     } else if (isSketchOpe && isEditing) {
       // If selected another object commit current result
       aOperation->commit();
@@ -1120,7 +1121,7 @@ void PartSet_SketcherMgr::storeSelection(const bool theHighlightedOnly)
     FeaturePtr aFeature = anIt.key();
     getCurrentSelection(aFeature, myCurrentSketch, aWorkshop, myCurrentSelection);
   }
-  //qDebug(QString("  storeSelection: %1").arg(myCurrentSelection.size()).toStdString().c_str());
+  qDebug(QString("  storeSelection: %1").arg(myCurrentSelection.size()).toStdString().c_str());
 }
 
 void PartSet_SketcherMgr::restoreSelection()