diff options
author | clifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c> | 2009-07-22 20:53:37 (GMT) |
---|---|---|
committer | clifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c> | 2009-07-22 20:53:37 (GMT) |
commit | f78917d4dee78b720d41bbd59eee82ceaca95454 (patch) | |
tree | ed34953716e9548a36384dc429970fec0a76ccba /dxfdata.cc | |
parent | 7236439c5a98db89b8b8e2732466649d15b16b41 (diff) |
Clifford Wolf:
Improved dxf tesselation inner/outer detection
git-svn-id: http://svn.clifford.at/openscad/trunk@68 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'dxfdata.cc')
-rw-r--r-- | dxfdata.cc | 18 |
1 files changed, 4 insertions, 14 deletions
@@ -230,21 +230,15 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye } if (paths.count() > 0) { - double min_x1 = paths[0].points[0]->x; - int min_x_path = 0; for (int i = 0; i < paths.count(); i++) { if (!paths[i].is_closed) break; paths[i].is_inner = true; - double min_x2 = paths[i].points[0]->x; + double min_x = paths[i].points[0]->x; int min_x_point = 0; for (int j = 0; j < paths[i].points.count(); j++) { - if (paths[i].points[j]->x < min_x1) { - min_x1 = paths[i].points[j]->x; - min_x_path = i; - } - if (paths[i].points[j]->x < min_x2) { - min_x2 = paths[i].points[j]->x; + if (paths[i].points[j]->x < min_x) { + min_x = paths[i].points[j]->x; min_x_point = j; } } @@ -267,16 +261,12 @@ DxfData::DxfData(double fn, double fs, double fa, QString filename, QString laye paths[i].points.swap(j, paths[i].points.count()-1-j); } } - paths[min_x_path].is_inner = false; } #if 0 printf("----- DXF Data -----\n"); for (int i = 0; i < paths.count(); i++) { - if (paths[i].is_closed) - printf("Path %d (closed, %s):\n", i, paths[i].is_inner ? "inner" : "outer"); - else - printf("Path %d (open):\n", i); + printf("Path %d (%s):\n", i, paths[i].is_closed ? "closed" : "open"); for (int j = 0; j < paths[i].points.count(); j++) printf(" %f %f\n", paths[i].points[j]->x, paths[i].points[j]->y); } |