9using GcodeSource = std::vector<std::string>;
17 ObjectGcode( ObjectGcode&& ) =
default;
18 ObjectGcode& operator=( ObjectGcode&& ) =
default;
20 constexpr static const char* StaticTypeName() noexcept {
return "ObjectGcode"; }
21 virtual const char* typeName()
const override {
return StaticTypeName(); }
23 constexpr static const char* StaticClassName() noexcept {
return "G-code"; }
24 virtual std::string className()
const override {
return StaticClassName(); }
26 constexpr static const char* StaticClassNameInPlural() noexcept {
return "G-codes"; }
27 virtual std::string classNameInPlural()
const override {
return StaticClassNameInPlural(); }
29 MRMESH_API virtual std::shared_ptr<Object> clone()
const override;
30 MRMESH_API virtual std::shared_ptr<Object> shallowClone()
const override;
32 MRMESH_API virtual void setCNCMachineSettings(
const CNCMachineSettings& cncSettings );
33 virtual const CNCMachineSettings& getCNCMachineSettings()
const {
return cncMachineSettings_; }
35 MRMESH_API virtual void setGcodeSource(
const std::shared_ptr<GcodeSource>& gcodeSource );
36 virtual const std::shared_ptr<GcodeSource>& gcodeSource()
const {
return gcodeSource_; }
38 virtual const std::vector<GcodeProcessor::MoveAction>& actionList()
const {
return actionList_; }
40 virtual const std::vector<int>& segmentToSourceLineMap()
const {
return segmentToSourceLineMap_; }
42 MRMESH_API virtual void setDirtyFlags( uint32_t mask,
bool invalidateCaches =
true )
override;
45 ObjectGcode( ProtectedStruct,
const ObjectGcode& obj ) : ObjectGcode( obj ) {}
47 MRMESH_API virtual std::vector<std::string> getInfoLines()
const override;
50 MRMESH_API void switchFeedrateGradient(
bool isFeedrateGradientEnabled );
51 bool isFeedrateGradient()
const {
return feedrateGradientEnabled_; }
53 MRMESH_API void setIdleColor(
const Color& color );
54 const Color& getIdleColor()
const {
return idleColor_; }
57 using GcodeChangedSignal = Signal<void( uint32_t mask )>;
58 GcodeChangedSignal gcodeChangedSignal;
60 MRMESH_API virtual bool select(
bool isSelected )
override;
61 MRMESH_API virtual void setFrontColor(
const Color& color,
bool selected, ViewportId viewportId = {} )
override;
67 ObjectGcode(
const ObjectGcode& other ) =
default;
70 MRMESH_API virtual void swapBase_( Object& other )
override;
73 MRMESH_API virtual void swapSignals_( Object& other )
override;
75 MRMESH_API virtual void serializeFields_( Json::Value& root )
const override;
77 MRMESH_API void deserializeFields_(
const Json::Value& root )
override;
80 std::shared_ptr<GcodeSource> gcodeSource_;
81 std::vector<GcodeProcessor::MoveAction> actionList_;
82 CNCMachineSettings cncMachineSettings_;
83 void updateHeapUsageCache_();
84 size_t nonTrivialHeapUsageCache_{ 0 };
86 std::vector<int> segmentToSourceLineMap_;
88 Color idleColor_ = Color(0.3f, 0.3f, 0.3f);
89 float maxFeedrate_ = 0.f;
90 bool feedrateGradientEnabled_ =
true;
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8
int heapBytes(FloatGrid grid)