]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/GEOMImpl/GEOMImpl_VectorDriver.cxx
Salome HOME
Fix error in creation information - wrong operation type in case of MakeEdge
[modules/geom.git] / src / GEOMImpl / GEOMImpl_VectorDriver.cxx
index f123e4fefc208c772bd2bc01c3325aa208146ba0..4c7d2a55c3b1f7db6be5b889f96ad65c8889a4f7 100644 (file)
 
 #include <Standard_ConstructionError.hxx>
 
+namespace
+{
+  Handle(GEOM_Object) GetOwner( const TDF_Label& l )
+  {
+    TDF_Label label = l;
+    // object is stored on a grandfather label of a driver label
+    if ( !label.IsNull() )
+      label = label.Father();
+    if ( !label.IsNull() )
+      label = label.Father();
+    
+    return GEOM_Object::GetObject( label );
+  }
+}
+
 //=======================================================================
 //function : GetID
 //purpose  :
@@ -179,8 +194,7 @@ GetCreationInformation(std::string&             theOperationName,
     AddParam( theParams, "Dz", aCI.GetDZ() );
     break;
   case VECTOR_TWO_PNT: {
-    TDF_Label label = Label();
-    Handle(GEOM_Object) obj = GEOM_Object::GetObject( label );
+    Handle(GEOM_Object) obj = GetOwner( Label() );
     if ( !obj.IsNull() && obj->GetType() == GEOM_EDGE )
       theOperationName = "EDGE";
     else