13enum class BypassDirection
22 float millRadius = {};
27 float sectionStep = {};
30 float critTransitionLength = {};
32 float plungeLength = {};
34 float retractLength = {};
36 float plungeFeed = {};
38 float retractFeed = {};
44 BypassDirection bypassDir = BypassDirection::Clockwise;
46 const AffineXf3f* xf =
nullptr;
48 bool flatTool =
false;
50 ProgressCallback cb = {};
55 float toolpathExpansion = 0.f;
62 std::vector<Vector3f>* startVertices =
nullptr;
64 MeshPart* offsetMesh =
nullptr;
67struct ConstantCuspParams : ToolPathParams
70 bool fromCenterToBoundary =
true;
73struct LineInterpolationParams
80 ProgressCallback cb = {};
83struct ArcInterpolationParams
90 ProgressCallback cb = {};
113 MoveType type = MoveType::Linear;
115 ArcPlane arcPlane = ArcPlane::None;
117 float feed = std::numeric_limits<float>::quiet_NaN();
119 float x = std::numeric_limits<float>::quiet_NaN();
120 float y = std::numeric_limits<float>::quiet_NaN();
121 float z = std::numeric_limits<float>::quiet_NaN();
131 FaceBitSet modifiedRegion;
133 std::vector<GCommand> commands;
#define MRVOXELS_API
Definition MRVoxelsFwd.h:14
Definition MRToolPath.h:84
Definition MRToolPath.h:68
Definition MRToolPath.h:74
Definition MRMesh/MRMesh.h:23
Definition MRCameraOrientationPlugin.h:8
MRVOXELS_API Expected< ToolPathResult > constantCuspToolPath(const MeshPart &mp, const ConstantCuspParams ¶ms)
MRVOXELS_API std::shared_ptr< ObjectGcode > exportToolPathToGCode(const std::vector< GCommand > &commands)
MRVOXELS_API Expected< void > interpolateLines(std::vector< GCommand > &commands, const LineInterpolationParams ¶ms, Axis axis)
MRVOXELS_API Expected< void > interpolateArcs(std::vector< GCommand > &commands, const ArcInterpolationParams ¶ms, Axis axis)
MRVOXELS_API FaceBitSet smoothSelection(Mesh &mesh, const FaceBitSet ®ion, float expandOffset, float shrinkOffset)
MRVOXELS_API Expected< ToolPathResult > constantZToolPath(const MeshPart &mp, const ToolPathParams ¶ms)
MRVOXELS_API Expected< ToolPathResult > lacingToolPath(const MeshPart &mp, const ToolPathParams ¶ms, Axis cutDirection)
static MR.Vector3f diagonal(float a)