9namespace Json {
class Value; }
19 enum class RotationAxisName
25 using RotationAxesOrder = std::vector<RotationAxisName>;
26 using RotationLimits = std::optional<Vector2f>;
28 static int getAxesCount() {
return int( RotationAxisName::C ) + 1; }
31 MRMESH_API void setRotationAxis( RotationAxisName paramName,
const Vector3f& rotationAxis );
32 MRMESH_API const Vector3f& getRotationAxis( RotationAxisName paramName )
const;
35 MRMESH_API void setRotationLimits( RotationAxisName paramName,
const RotationLimits& rotationLimits );
36 MRMESH_API const RotationLimits& getRotationLimits( RotationAxisName paramName )
const;
38 MRMESH_API void setRotationOrder(
const RotationAxesOrder& rotationAxesOrder );
39 const RotationAxesOrder& getRotationOrder()
const {
return rotationAxesOrder_; }
42 MRMESH_API void setFeedrateIdle(
float feedrateIdle );
43 float getFeedrateIdle()
const {
return feedrateIdle_; }
44 void setHomePosition(
const Vector3f& homePosition ) { homePosition_ = homePosition; }
45 const Vector3f& getHomePosition()
const {
return homePosition_; }
48 bool operator!=(
const CNCMachineSettings& rhs ) {
return !(*
this == rhs); }
51 MRMESH_API bool loadFromJson(
const Json::Value& jsonValue );
55 std::array<Vector3f, 3> rotationAxes_ = { Vector3f::minusX(), Vector3f::minusY(), Vector3f::plusZ() };
57 std::array<RotationLimits, 3> rotationLimits_;
59 RotationAxesOrder rotationAxesOrder_ = { RotationAxisName::A, RotationAxisName::B, RotationAxisName::C };
61 float feedrateIdle_ = 10000.f;
62 Vector3f homePosition_;
constexpr bool operator==(ImVec2 a, ImVec2 b)
Definition MRImGuiVectorOperators.h:117
#define MRMESH_API
Definition MRMeshFwd.h:80
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8
bool operator!=(const Color &a, const Color &b)
Definition MRMesh/MRColor.h:101