diff options
Diffstat (limited to 'svg-flatten/src/out_gerber.cpp')
-rw-r--r-- | svg-flatten/src/out_gerber.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/svg-flatten/src/out_gerber.cpp b/svg-flatten/src/out_gerber.cpp index b1c5875..c43d07d 100644 --- a/svg-flatten/src/out_gerber.cpp +++ b/svg-flatten/src/out_gerber.cpp @@ -65,6 +65,7 @@ SimpleGerberOutput& SimpleGerberOutput::operator<<(const ApertureToken &ap) { if (ap.m_size == m_current_aperture) { return *this; } + m_current_aperture = ap.m_size; m_aperture_num += 1; @@ -123,6 +124,17 @@ SimpleGerberOutput& SimpleGerberOutput::operator<<(const Polygon &poly) { return *this; } +SimpleGerberOutput &SimpleGerberOutput::operator<<(const DrillToken &tok) { + double x = round((tok.m_center[0] * m_scale + m_offset[0]) * m_gerber_scale); + double y = round((m_height - tok.m_center[1] * m_scale + m_offset[1]) * m_gerber_scale); + + m_out << "X" << setw(m_digits_int + m_digits_frac) << setfill('0') << std::internal /* isn't C++ a marvel of engineering? */ << (long long int)x + << "Y" << setw(m_digits_int + m_digits_frac) << setfill('0') << std::internal << (long long int)y + << "D03*" << endl; + + return *this; +} + void SimpleGerberOutput::footer_impl() { m_out << "M02*" << endl; } |