diff options
author | Marius Kintel <marius@kintel.net> | 2013-05-10 16:01:50 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-05-10 16:01:50 (GMT) |
commit | adffb9121fbf5d12542ae0d8c5a010e78cc8a4f9 (patch) | |
tree | b13fa35d6b9d807b3c2d7a4c195b49624c2c3297 /src/dxftess-cgal.cc | |
parent | 130e10778e9d74ceb07dfc813b85d75a52a71e10 (diff) |
Added support for 2D scaling in linear_extrude
Diffstat (limited to 'src/dxftess-cgal.cc')
-rw-r--r-- | src/dxftess-cgal.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/dxftess-cgal.cc b/src/dxftess-cgal.cc index fffa4f1..16eaf9f 100644 --- a/src/dxftess-cgal.cc +++ b/src/dxftess-cgal.cc @@ -101,7 +101,7 @@ void mark_inner_outer(std::vector<struct triangle> &tri, Grid2d<point_info_t> &p } } -void dxf_tesselate(PolySet *ps, DxfData &dxf, double rot, double scale, bool up, bool /* do_triangle_splitting */, double h) +void dxf_tesselate(PolySet *ps, DxfData &dxf, double rot, Vector2d scale, bool up, bool /* do_triangle_splitting */, double h) { CDT cdt; @@ -124,8 +124,8 @@ void dxf_tesselate(PolySet *ps, DxfData &dxf, double rot, double scale, bool up, struct point_info_t *first_pi = NULL, *prev_pi = NULL; for (size_t j = 1; j < dxf.paths[i].indices.size(); j++) { - double x = scale * dxf.points[dxf.paths[i].indices[j]][0]; - double y = scale * dxf.points[dxf.paths[i].indices[j]][1]; + double x = dxf.points[dxf.paths[i].indices[j]][0]; + double y = dxf.points[dxf.paths[i].indices[j]][1]; if (point_info.has(x, y)) { // FIXME: How can the same path set contain the same point twice? @@ -314,8 +314,8 @@ void dxf_tesselate(PolySet *ps, DxfData &dxf, double rot, double scale, bool up, int idx = up ? j : (2-j); double px = tri[i].p[idx].x; double py = tri[i].p[idx].y; - ps->append_vertex(px * cos(rot*M_PI/180) + py * sin(rot*M_PI/180), - px * -sin(rot*M_PI/180) + py * cos(rot*M_PI/180), h); + ps->append_vertex(scale[0] * (px * cos(rot*M_PI/180) + py * sin(rot*M_PI/180)), + scale[1] * (px * -sin(rot*M_PI/180) + py * cos(rot*M_PI/180)), h); path[j] = point_info.data(px, py).pathidx; point[j] = point_info.data(px, py).pointidx; } |