Skip to content

Fix stl reader for multiple patches

Fix for the following problem:

If we have an ASCII STL file with multiple patches, in the format:

solid wing_1
    facet normal -0.988028 0.000000 -0.154276
        outer loop
           vertex 5.111373 2.636347 1.956025
           vertex 5.111609 3.636347 1.948793
           vertex 5.111373 3.636347 1.956025
        endloop
    endfacet
    facet normal -0.988028 -0.000000 -0.154276
        outer loop
           vertex 5.111609 3.636347 1.948793
           vertex 5.111373 2.636347 1.956025
           vertex 5.111609 2.636347 1.948793
        endloop
    endfacet
   ...
    facet normal -0.000004 1.000000 -0.000004
        outer loop
           vertex 5.322488 2.636348 1.971589
           vertex 5.111609 2.636347 1.948793
           vertex 5.118849 2.636347 1.940065
        endloop
    endfacet
endsolid wing_1
solid wing_2
    facet normal -0.988028 0.000000 -0.154275
        outer loop
           vertex 5.516308 2.636347 2.030015
           vertex 5.514788 3.636347 2.022941
           vertex 5.516308 3.636347 2.030015
        endloop
    endfacet
    facet normal -0.988028 -0.000000 -0.154275
        outer loop
           vertex 5.514788 3.636347 2.022941
           vertex 5.516308 2.636347 2.030015
           vertex 5.514788 2.636347 2.022941
        endloop
    endfacet
    ...
    facet normal -0.000004 1.000000 -0.000004
        outer loop
           vertex 5.724917 2.636348 1.994043
           vertex 5.514788 2.636347 2.022941
           vertex 5.519701 2.636347 2.012721
        endloop
    endfacet
endsolid wing_2

The vtkSTLReader was not able to read it, giving the following error:

vtkSTLReader (...): STLReader: error while reading file ... at line ...: unable to read reading point.

NOTE: I've created an associated task here: http://www.paraview.org/Bug/view.php?id=15411

Merge request reports