/* drawing (DXF) to G-code (NGC) converter
* Copyright 2013 Stefan Schuermans <stefan@schuermans.info>
* Copyleft: CC-BY-SA http://creativecommons.org/licenses/by-sa/3.0/
*/
#ifndef GCODE_H
#define GCODE_H
#include <iostream>
#include <string>
#include <vector>
#include "gcmd.h"
#include "point.h"
/// G-code
class GCode {
public:
/// type for G-code commands
typedef std::vector<GCmd *> GCmds;
/// consturctor
GCode();
/// destructor
~GCode();
private:
/// copy constructor disabled
GCode(const GCode &);
/// assignment operator disabled
GCode & operator=(const GCode &);
public:
/**
* @brief append fast move up command
* @param[in] z z coordinate to move up to
*/
void appendUp(double z);
/**
* @brief append fast move command
* @param[in] pt point to move to
*/
void appendFast(const Point &pt);
/**
* @brief append set feed rate command
* @param[in] feed feed rate
*/