]> OCCT Git - occt.git/commitdiff
0029394: IESample contains strange STEP reading code
authorBenjamin Bihler <benjamin.bihler@compositence.de>
Tue, 19 Dec 2017 10:12:32 +0000 (11:12 +0100)
committerbugmaster <bugmaster@opencascade.com>
Thu, 29 Mar 2018 14:13:09 +0000 (17:13 +0300)
All STEP roots are transferred first and then all shapes are read.
The resulting sequence is not discarded and recreated.

samples/qt/Interface/src/Translate.cxx

index f47badabaccc9cf64ffbca513aa6eaafeb495cdb..1b2bdb440bd1cf1ce1068e0b2ad7b693ad432f71 100755 (executable)
@@ -408,34 +408,37 @@ Handle(TopTools_HSequenceOfShape) Translate::importIGES( const QString& file )
 
 Handle(TopTools_HSequenceOfShape) Translate::importSTEP( const QString& file )
 {
-       Handle(TopTools_HSequenceOfShape) aSequence;
-  TCollection_AsciiString  aFilePath = file.toUtf8().data();
-       STEPControl_Reader aReader;
-       IFSelect_ReturnStatus status = aReader.ReadFile( aFilePath.ToCString() );
-       if ( status == IFSelect_RetDone )
+    Handle(TopTools_HSequenceOfShape) aSequence = new TopTools_HSequenceOfShape;
+    TCollection_AsciiString  aFilePath = file.toUtf8().data();
+    STEPControl_Reader aReader;
+    IFSelect_ReturnStatus status = aReader.ReadFile( aFilePath.ToCString() );
+    if ( status != IFSelect_RetDone )
+    {
+        return aSequence;
+    }
+
+    //Interface_TraceFile::SetDefault();
+    bool failsonly = false;
+    aReader.PrintCheckLoad( failsonly, IFSelect_ItemsByEntity );
+
+    int nbr = aReader.NbRootsForTransfer();
+    aReader.PrintCheckTransfer( failsonly, IFSelect_ItemsByEntity );
+    for ( Standard_Integer n = 1; n <= nbr; n++ )
     {
-           //Interface_TraceFile::SetDefault();
-           bool failsonly = false;
-           aReader.PrintCheckLoad( failsonly, IFSelect_ItemsByEntity );
-
-           int nbr = aReader.NbRootsForTransfer();
-           aReader.PrintCheckTransfer( failsonly, IFSelect_ItemsByEntity );
-           for ( Standard_Integer n = 1; n <= nbr; n++ )
-           {
-               bool ok = aReader.TransferRoot( n );
-               int nbs = aReader.NbShapes();
-               if ( ok == true && nbs > 0 )
-            {
-                   aSequence = new TopTools_HSequenceOfShape();
-                   for ( int i = 1; i <= nbs; i++ )
-                {
-                           TopoDS_Shape shape = aReader.Shape( i );
-                           aSequence->Append( shape );
-                   }
-            }
+        aReader.TransferRoot( n );
+    }
+
+    int nbs = aReader.NbShapes();
+    if ( nbs > 0 )
+    {
+        for ( int i = 1; i <= nbs; i++ )
+        {
+         TopoDS_Shape shape = aReader.Shape( i );
+         aSequence->Append( shape );
         }
     }
-       return aSequence;
+
+    return aSequence;
 }
 
 // ----------------------------- Export functionality -----------------------------