Test of importing non-standard ASCII STL (broken normals, junk
after the ending tags)
This commit is contained in:
parent
7a47784ddf
commit
6e6b137151
@ -83,4 +83,4 @@ solid STL generated by MeshLab
|
||||
vertex 0.000000e+00 2.000000e+01 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
endsolid vcg
|
||||
endsolid
|
||||
|
86
tests/data/test_stl/ASCII/20mmbox-nonstandard.stl
Normal file
86
tests/data/test_stl/ASCII/20mmbox-nonstandard.stl
Normal file
@ -0,0 +1,86 @@
|
||||
solid STL generated by MeshLab
|
||||
facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 0.000000e+00
|
||||
vertex 2.000000e+01 0.000000e+00 0.000000e+00
|
||||
vertex 0.000000e+00 0.000000e+00 0.000000e+00
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -0.000000e+00 0.000000e+00 -1.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 0.000000e+00
|
||||
vertex 0.000000e+00 0.000000e+00 0.000000e+00
|
||||
vertex 0.000000e+00 2.000000e+01 0.000000e+00
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 2.000000e+01
|
||||
vertex 0.000000e+00 2.000000e+01 2.000000e+01
|
||||
vertex 0.000000e+00 0.000000e+00 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 2.000000e+01
|
||||
vertex 0.000000e+00 0.000000e+00 2.000000e+01
|
||||
vertex 2.000000e+01 0.000000e+00 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+00 0.000000e+00 -0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 0.000000e+00
|
||||
vertex 2.000000e+01 2.000000e+01 2.000000e+01
|
||||
vertex 2.000000e+01 0.000000e+00 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 0.000000e+00
|
||||
vertex 2.000000e+01 0.000000e+00 2.000000e+01
|
||||
vertex 2.000000e+01 0.000000e+00 0.000000e+00
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 0.000000e+00 0.000000e+00
|
||||
vertex 2.000000e+01 0.000000e+00 2.000000e+01
|
||||
vertex 0.000000e+00 0.000000e+00 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 0.000000e+00 0.000000e+00
|
||||
vertex 0.000000e+00 0.000000e+00 2.000000e+01
|
||||
vertex 0.000000e+00 0.000000e+00 0.000000e+00
|
||||
endloop
|
||||
endfacet
|
||||
facet normal +inf -inf weirdvalue
|
||||
outer loop
|
||||
vertex 0.000000e+00 0.000000e+00 0.000000e+00
|
||||
vertex 0.000000e+00 0.000000e+00 2.000000e+01
|
||||
vertex 0.000000e+00 2.000000e+01 2.000000e+01
|
||||
endloop
|
||||
endfacet
|
||||
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 0.000000e+00 0.000000e+00 0.000000e+00
|
||||
vertex 0.000000e+00 2.000000e+01 2.000000e+01
|
||||
vertex 0.000000e+00 2.000000e+01 0.000000e+00
|
||||
endloop
|
||||
endfacet blah
|
||||
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 2.000000e+01
|
||||
vertex 2.000000e+01 2.000000e+01 0.000000e+00
|
||||
vertex 0.000000e+00 2.000000e+01 0.000000e+00
|
||||
endloop foo
|
||||
endfacet bar
|
||||
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||
outer loop
|
||||
vertex 2.000000e+01 2.000000e+01 2.000000e+01
|
||||
vertex 0.000000e+00 2.000000e+01 0.000000e+00
|
||||
vertex 0.000000e+00 2.000000e+01 2.000000e+01
|
||||
endloop foo
|
||||
endfacet bar
|
||||
endsolid some blah blah
|
@ -44,6 +44,14 @@ SCENARIO("Reading an STL file", "[stl]") {
|
||||
REQUIRE(is_approx(model.objects.front()->volumes.front()->mesh().size(), Vec3d(20, 20, 20)));
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
WHEN("nonstandard STL file (text after ending tags, invalid normals, for example infinities)") {
|
||||
Slic3r::Model model;
|
||||
THEN("load should succeed") {
|
||||
REQUIRE(Slic3r::load_stl(stl_path("ASCII/20mmbox-nonstandard.stl").c_str(), &model));
|
||||
REQUIRE(is_approx(model.objects.front()->volumes.front()->mesh().size(), Vec3d(20, 20, 20)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user