From dc4bc159251e8300fa51554f50008d8c59a50a02 Mon Sep 17 00:00:00 2001 From: Marius Kintel Date: Fri, 23 Dec 2011 22:01:19 +0100 Subject: Ported binary STL file reader away from Qt diff --git a/src/import.cc b/src/import.cc index 07100e3..a95fce7 100644 --- a/src/import.cc +++ b/src/import.cc @@ -115,7 +115,7 @@ AbstractNode *ImportModule::evaluate(const Context *ctx, const ModuleInstantiati return node; } -PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *evaluator) const +PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const { PolySet *p = NULL; @@ -188,8 +188,8 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *evaluator) const } else { -/* - f.read(80-5+4); + f.ignore(80-5+4); + int total = 84; while (1) { #ifdef _MSC_VER #pragma pack(push,1) @@ -204,19 +204,18 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *evaluator) const #ifdef __GNUC__ __attribute__ ((packed)) #endif - data; + stldata; #ifdef _MSC_VER #pragma pack(pop) #endif - if (f.read((char*)&data, sizeof(data)) != sizeof(data)) - break; + f.read((char*)&stldata, sizeof(stldata)); + if (f.eof()) break; p->append_poly(); - p->append_vertex(data.x1, data.y1, data.z1); - p->append_vertex(data.x2, data.y2, data.z2); - p->append_vertex(data.x3, data.y3, data.z3); + p->append_vertex(stldata.x1, stldata.y1, stldata.z1); + p->append_vertex(stldata.x2, stldata.y2, stldata.z2); + p->append_vertex(stldata.x3, stldata.y3, stldata.z3); } -*/ } } diff --git a/testdata/scad/features/import_stl-tests.scad b/testdata/scad/features/import_stl-tests.scad index b634d12..7104078 100644 --- a/testdata/scad/features/import_stl-tests.scad +++ b/testdata/scad/features/import_stl-tests.scad @@ -1 +1,3 @@ import_stl("import.stl"); +translate([2,0,0]) import("import.stl"); +translate([4,0,0]) import("import_bin.stl"); diff --git a/tests/regression/cgalpngtest/import_stl-tests-expected.png b/tests/regression/cgalpngtest/import_stl-tests-expected.png index 31395c2..08aa225 100644 Binary files a/tests/regression/cgalpngtest/import_stl-tests-expected.png and b/tests/regression/cgalpngtest/import_stl-tests-expected.png differ diff --git a/tests/regression/dumptest/import_stl-tests-expected.txt b/tests/regression/dumptest/import_stl-tests-expected.txt index ac702f6..648a207 100644 --- a/tests/regression/dumptest/import_stl-tests-expected.txt +++ b/tests/regression/dumptest/import_stl-tests-expected.txt @@ -1,2 +1,8 @@ import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); + multmatrix([[1, 0, 0, 2], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + import(file = "import.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); + } + multmatrix([[1, 0, 0, 4], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) { + import(file = "import_bin.stl", layer = "", origin = [0, 0], scale = 1, convexity = 1, $fn = 0, $fa = 12, $fs = 2); + } diff --git a/tests/regression/opencsgtest/import_stl-tests-expected.png b/tests/regression/opencsgtest/import_stl-tests-expected.png index e6fdbca..19e233a 100644 Binary files a/tests/regression/opencsgtest/import_stl-tests-expected.png and b/tests/regression/opencsgtest/import_stl-tests-expected.png differ diff --git a/tests/regression/throwntogethertest/import_stl-tests-expected.png b/tests/regression/throwntogethertest/import_stl-tests-expected.png index e6fdbca..19e233a 100644 Binary files a/tests/regression/throwntogethertest/import_stl-tests-expected.png and b/tests/regression/throwntogethertest/import_stl-tests-expected.png differ -- cgit v0.10.1