Salome HOME
Tangency arc feature can not be opened/saved (issue #1401)
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_ConstraintRigid.cpp
index 78574b338eddafe71e0616b5dad1944693808d3e..418c0dd53a523e12590e40f59cc392df7b5b4b1f 100644 (file)
@@ -35,9 +35,23 @@ AISObjectPtr SketchPlugin_ConstraintRigid::getAISObject(AISObjectPtr thePrevious
     return thePrevious;
 
   AISObjectPtr anAIS = thePrevious;
-  if (anAIS.get() == NULL) {
-    anAIS = SketcherPrs_Factory::rigidConstraint(this, sketch()->coordinatePlane());
+
+  bool isValidRigid = false;
+  std::shared_ptr<ModelAPI_Data> aData = data();
+  AttributeRefAttrPtr anAttr = aData->refattr(SketchPlugin_Constraint::ENTITY_A());
+  ObjectPtr aObj = anAttr->object();
+  if (aObj.get() != NULL) {
+    FeaturePtr aFeature = ModelAPI_Feature::feature(aObj);
+    std::shared_ptr<SketchPlugin_Feature> aSkFea = 
+      std::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
+    if (!aSkFea->isExternal()) 
+      isValidRigid = true;
   }
 
+  if (isValidRigid)
+    anAIS = SketcherPrs_Factory::rigidConstraint(this, sketch()->coordinatePlane(), thePrevious);
+  else
+    anAIS = AISObjectPtr();
+
   return anAIS;
 }
\ No newline at end of file