svg-flatten: fix patterns with offset clip path
This commit is contained in:
parent
5f33356f33
commit
446c5e5901
2 changed files with 13 additions and 2 deletions
|
|
@ -315,6 +315,14 @@ void gerbolyze::SVGDocument::export_svg_path(RenderContext &ctx, const pugi::xml
|
|||
|
||||
} else {
|
||||
PolyTreeToPaths(ptree_fill, fill_paths);
|
||||
cerr << "clip paths" << endl;
|
||||
for (auto &p : fill_paths) {
|
||||
cerr << " ";
|
||||
for (auto &pt : p) {
|
||||
cerr << "<" << pt.X << "," << pt.Y << "> ";
|
||||
}
|
||||
cerr << endl;
|
||||
}
|
||||
RenderContext local_ctx(ctx, xform2d(), fill_paths, true);
|
||||
pattern->tile(local_ctx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ void gerbolyze::Pattern::tile (gerbolyze::RenderContext &ctx) {
|
|||
double by = clip_bounds.top / clipper_scale;
|
||||
double bw = (clip_bounds.right - clip_bounds.left) / clipper_scale;
|
||||
double bh = (clip_bounds.bottom - clip_bounds.top) / clipper_scale;
|
||||
cerr << "clip bounds " << bx << ", " << by << "w=" << bw <<" h=" << bh << endl;
|
||||
|
||||
d2p clip_p0 = patternTransform_inv.doc2phys(d2p{bx, by});
|
||||
d2p clip_p1 = patternTransform_inv.doc2phys(d2p{bx+bw, by+bh});
|
||||
|
|
@ -90,12 +91,14 @@ void gerbolyze::Pattern::tile (gerbolyze::RenderContext &ctx) {
|
|||
|
||||
/* Iterate over all pattern tiles in pattern coordinates */
|
||||
for (double inst_off_x = fmod(inst_x, inst_w) - 2*inst_w;
|
||||
inst_off_x < bw + 2*inst_w;
|
||||
inst_off_x < bx + bw + 2*inst_w;
|
||||
inst_off_x += inst_w) {
|
||||
cerr << "inst_off_x " << inst_off_x << endl;
|
||||
|
||||
for (double inst_off_y = fmod(inst_y, inst_h) - 2*inst_h;
|
||||
inst_off_y < bh + 2*inst_h;
|
||||
inst_off_y < by + bh + 2*inst_h;
|
||||
inst_off_y += inst_h) {
|
||||
cerr << " inst_off_y " << inst_off_y << endl;
|
||||
|
||||
xform2d elem_xf;
|
||||
/* Change into this individual tile's coordinate system */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue