0031466: Data Exchange - Cannot import layers from STeP file (7.4.0 regression)
authorika <ika@opencascade.com>
Thu, 10 Sep 2020 18:56:08 +0000 (21:56 +0300)
committerabv <abv@opencascade.com>
Sat, 12 Sep 2020 17:42:23 +0000 (20:42 +0300)
Return possibility to find layers fir subshapes.

src/XCAFDoc/XCAFDoc_LayerTool.cxx
tests/bugs/xde/bug31466 [new file with mode: 0644]

index d633539..3b14fef 100644 (file)
@@ -449,7 +449,6 @@ Standard_Boolean XCAFDoc_LayerTool::SetLayer(const TopoDS_Shape& Sh,
                                             const Standard_Boolean shapeInOneLayer)
 {
   TDF_Label aLab;
-//   if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
   // PTV 22.01.2003 set layer for shape with location if it is necessary
   if (! myShapeTool->Search( Sh, aLab ) ) return Standard_False;
   SetLayer(aLab, LayerL, shapeInOneLayer);
@@ -479,7 +478,8 @@ Standard_Boolean XCAFDoc_LayerTool::SetLayer(const TopoDS_Shape& Sh,
 Standard_Boolean XCAFDoc_LayerTool::UnSetLayers(const TopoDS_Shape& Sh) 
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab) )
+    return Standard_False;
   UnSetLayers(aLab);
   return Standard_True;
 }
@@ -494,7 +494,8 @@ Standard_Boolean XCAFDoc_LayerTool::UnSetOneLayer(const TopoDS_Shape& Sh,
                                                  const TCollection_ExtendedString& aLayer)
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab) )
+    return Standard_False;
   return UnSetOneLayer(aLab, aLayer);
 }
 
@@ -507,7 +508,8 @@ Standard_Boolean XCAFDoc_LayerTool::UnSetOneLayer(const TopoDS_Shape& Sh,
                                                  const TDF_Label& aLayerL)
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab) )
+    return Standard_False;
   return UnSetOneLayer(aLab, aLayerL);
 }
 
@@ -520,7 +522,8 @@ Standard_Boolean XCAFDoc_LayerTool::IsSet(const TopoDS_Shape& Sh,
                                          const TCollection_ExtendedString& aLayer) 
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (! myShapeTool->Search(Sh, aLab) )
+    return Standard_False;
   return IsSet(aLab, aLayer);
 }
 
@@ -534,7 +537,8 @@ Standard_Boolean XCAFDoc_LayerTool::IsSet(const TopoDS_Shape& Sh,
                                          const TDF_Label& aLayerL) 
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab) )
+    return Standard_False;
   return IsSet(aLab, aLayerL);
 }
 
@@ -547,7 +551,8 @@ Standard_Boolean XCAFDoc_LayerTool::GetLayers(const TopoDS_Shape& Sh,
                                              Handle(TColStd_HSequenceOfExtendedString)& aLayerS) 
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab))
+    return Standard_False;
   return GetLayers(aLab, aLayerS);
 }
 
@@ -560,7 +565,8 @@ Standard_Boolean XCAFDoc_LayerTool::GetLayers(const TopoDS_Shape& Sh,
                                              TDF_LabelSequence& aLayerLS) 
 {
   TDF_Label aLab;
-  if (! myShapeTool->FindShape(Sh, aLab) ) return Standard_False;
+  if (!myShapeTool->Search(Sh, aLab))
+    return Standard_False;
   return GetLayers(aLab, aLayerLS);
 }
 
@@ -574,7 +580,7 @@ Handle(TColStd_HSequenceOfExtendedString) XCAFDoc_LayerTool::GetLayers(const Top
 {
   Handle(TColStd_HSequenceOfExtendedString) aLayerS = new TColStd_HSequenceOfExtendedString;
   TDF_Label aLab;
-  if ( myShapeTool->FindShape(Sh, aLab) )
+  if (myShapeTool->Search(Sh, aLab))
     aLayerS = GetLayers(aLab);
   return aLayerS;
 }
diff --git a/tests/bugs/xde/bug31466 b/tests/bugs/xde/bug31466
new file mode 100644 (file)
index 0000000..1bfd6d6
--- /dev/null
@@ -0,0 +1,22 @@
+puts "================================================================================="
+puts " 0031466: Data Exchange - Cannot import layers from STeP file (7.4.0 regression)"
+puts "================================================================================="
+puts ""
+
+pload DCAF
+
+XNewDoc D
+box b 1 1 1
+explode b f
+XAddShape D b
+XAddSubShape D b_1 0:1:1:1
+XAddLayer D myLayer
+XSetLayer D 0:1:1:1:1 myLayer
+
+# check layer
+set layer [XGetLayers D b_1]
+if {$layer != "\"myLayer\" "} {
+  puts "Error: wrong result layer searching."
+}
+
+Close D