In order to make this repository and GUI more modular, we should consider defining plugin(s) for the creation and saving of tool paths. Some initial thoughts for this would be:
A top-level GUI (likely an Rviz panel to start) capable of loading some number of plugins and displaying their widgets in an organized fashion
A plugin with methods for showing a GUI and generating a tool path:
At present, the implementations of the tool path generators would be a raster path generator using noether, a generator of single "stroke" paths using a click-and-point method, and a generator of "multi-stroke" paths using a click-and-point method.
Implementations of the save plugin might be serializing the files to binary and saving to file, or saving the files to a database
In order to make this repository and GUI more modular, we should consider defining plugin(s) for the creation and saving of tool paths. Some initial thoughts for this would be:
std::vector<geometry_msgs::PoseArray> createPath() = 0;
QWidget* getWidget() = 0;
std::string getName() = 0;
bool save(const std::map<std::string, std::vector<geometry_msgs::PoseArray>>&) = 0;
At present, the implementations of the tool path generators would be a raster path generator using
noether
, a generator of single "stroke" paths using a click-and-point method, and a generator of "multi-stroke" paths using a click-and-point method.Implementations of the save plugin might be serializing the files to binary and saving to file, or saving the files to a database