]> OCCT Git - occt.git/commitdiff
0033331: Data Exchange, Step Import - Unsupported Representation Items
authordpasukhi <dpasukhi@opencascade.com>
Mon, 20 Feb 2023 12:45:48 +0000 (12:45 +0000)
committervglukhik <vglukhik@opencascade.com>
Tue, 21 Mar 2023 12:36:42 +0000 (12:36 +0000)
Fixed problem with iteration on Null RI

src/STEPCAFControl/STEPCAFControl_Reader.cxx
tests/bugs/step/bug33331 [new file with mode: 0644]

index a211ebbb945360a8baf967037f36a69e38ea1874..cae2a1bf282f85bb73eab28f298f8a09c3b1587f 100644 (file)
@@ -4692,9 +4692,16 @@ void collectRepresentationItems(const Interface_Graph& theGraph,
   const Handle(StepShape_ShapeRepresentation)& theRepresentation,
   NCollection_Sequence<Handle(StepRepr_RepresentationItem)>& theItems)
 {
-  Handle(StepRepr_HArray1OfRepresentationItem) aReprItems = theRepresentation->Items();
-  for (Standard_Integer itemIt = aReprItems->Lower(); itemIt <= aReprItems->Upper(); itemIt++)
-    theItems.Append(aReprItems->Value(itemIt));
+  for (StepRepr_HArray1OfRepresentationItem::Iterator anIter(theRepresentation->Items()->Array1());
+       anIter.More(); anIter.Next())
+  {
+    const Handle(StepRepr_RepresentationItem)& anReprItem = anIter.Value();
+    if (anReprItem.IsNull())
+    {
+      continue;
+    }
+    theItems.Append(anReprItem);
+  }
 
   Interface_EntityIterator entIt = theGraph.TypedSharings(theRepresentation, STANDARD_TYPE(StepRepr_RepresentationRelationship));
   for (entIt.Start(); entIt.More(); entIt.Next())
diff --git a/tests/bugs/step/bug33331 b/tests/bugs/step/bug33331
new file mode 100644 (file)
index 0000000..73cc77d
--- /dev/null
@@ -0,0 +1,14 @@
+puts "===================================="
+puts "0033331: Data Exchange, Step Import - Unsupported Representation Items"
+puts "===================================="
+puts ""
+
+pload DCAF
+catch {Close D}
+
+param "read.stepcaf.subshapes.name" 1
+
+ReadStep D [locate_data_file bug33331.stp]
+
+param "read.stepcaf.subshapes.name" 0
+Close D