| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #ifndef PATH_COMMAND_H |
| | #define PATH_COMMAND_H |
| |
|
| | #include <map> |
| | #include <string> |
| | #include <variant> |
| | #include <Base/Persistence.h> |
| | #include <Base/Placement.h> |
| | #include <Base/Vector3D.h> |
| | #include <Mod/CAM/PathGlobal.h> |
| |
|
| | namespace Path |
| | { |
| | |
| | class PathExport Command: public Base::Persistence |
| | { |
| | TYPESYSTEM_HEADER_WITH_OVERRIDE(); |
| |
|
| | public: |
| | |
| | Command(); |
| | Command(const char* name, const std::map<std::string, double>& parameters); |
| | Command( |
| | const char* name, |
| | const std::map<std::string, double>& parameters, |
| | const std::map<std::string, std::variant<std::string, double>>& annotations |
| | ); |
| | ~Command() override; |
| | |
| | unsigned int getMemSize() const override; |
| | void Save(Base::Writer& ) const override; |
| | void Restore(Base::XMLReader& ) override; |
| |
|
| | |
| | Base::Placement getPlacement( |
| | const Base::Vector3d pos = Base::Vector3d() |
| | ) const; |
| | Base::Vector3d getCenter() const; |
| | void setCenter( |
| | const Base::Vector3d&, |
| | bool clockwise = true |
| | ); |
| | std::string toGCode( |
| | int precision = 6, |
| | bool padzero = true |
| | ) const; |
| | void setFromGCode(const std::string&); |
| | |
| | void setFromPlacement(const Base::Placement&); |
| | |
| | bool has(const std::string&) const; |
| | Command transform(const Base::Placement&); |
| | double getValue(const std::string& name) const; |
| | void scaleBy(double factor); |
| |
|
| | |
| | void setAnnotation( |
| | const std::string& key, |
| | const std::string& value |
| | ); |
| | void setAnnotation(const std::string& key, |
| | double value); |
| | std::string getAnnotation(const std::string& key) const; |
| | std::string getAnnotationString(const std::string& key) const; |
| | double getAnnotationDouble( |
| | const std::string& key, |
| | double fallback = 0.0 |
| | ) const; |
| | std::variant<std::string, double> getAnnotationValue( |
| | const std::string& key |
| | ) const; |
| | bool hasAnnotation(const std::string& key) const; |
| | Command& setAnnotations(const std::string& annotationString); |
| | |
| |
|
| | |
| | inline double getParam(const std::string& name, double fallback = 0.0) const |
| | { |
| | auto it = Parameters.find(name); |
| | return it == Parameters.end() ? fallback : it->second; |
| | } |
| |
|
| | |
| | std::string Name; |
| | std::map<std::string, double> Parameters; |
| | std::map<std::string, std::variant<std::string, double>> Annotations; |
| | }; |
| |
|
| | } |
| |
|
| | #endif |
| |
|