MeshLib C Docs
Loading...
Searching...
No Matches
MRToolPath.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRAxis.h>
4#include <MRCMesh/MRVector3.h>
5#include <MRCMisc/common.h>
6#include <MRCMisc/exports.h>
7
8#include <stdbool.h>
9#include <stddef.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
16typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
18typedef struct MR_MeshPart MR_MeshPart; // Defined in `#include <MRCMesh/MRMeshPart.h>`.
19typedef struct MR_expected_MR_ToolPathResult_std_string MR_expected_MR_ToolPathResult_std_string; // Defined in `#include <MRCMisc/expected_MR_ToolPathResult_std_string.h>`.
20typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
21typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
22typedef struct MR_std_shared_ptr_MR_ObjectGcode MR_std_shared_ptr_MR_ObjectGcode; // Defined in `#include <MRCMisc/std_shared_ptr_MR_ObjectGcode.h>`.
23typedef struct MR_std_vector_MR_GCommand MR_std_vector_MR_GCommand; // Defined in `#include <MRCMisc/std_vector_MR_GCommand.h>`.
24typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
25typedef struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_Vector3f.h>`.
26
27
33
40
47
51
55
64
72
75typedef struct MR_GCommand MR_GCommand;
76
80
81// radius of the milling tool
86
87// radius of the milling tool
92
93// radius of the milling tool
98
99// size of voxel needed to offset mesh
104
105// size of voxel needed to offset mesh
110
111// size of voxel needed to offset mesh
116
117// distance between sections built along Z axis
118// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
123
124// distance between sections built along Z axis
125// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
130
131// distance between sections built along Z axis
132// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
137
138// if distance to the next section is smaller than it, transition will be performed along the surface
139// otherwise transition will be through the safe plane
144
145// if distance to the next section is smaller than it, transition will be performed along the surface
146// otherwise transition will be through the safe plane
151
152// if distance to the next section is smaller than it, transition will be performed along the surface
153// otherwise transition will be through the safe plane
158
159// when the mill is moving down, it will be slowed down in this distance from mesh
164
165// when the mill is moving down, it will be slowed down in this distance from mesh
170
171// when the mill is moving down, it will be slowed down in this distance from mesh
176
177// when the mill is moving up, it will be slowed down in this distance from mesh
182
183// when the mill is moving up, it will be slowed down in this distance from mesh
188
189// when the mill is moving up, it will be slowed down in this distance from mesh
194
195// speed of slow movement down
200
201// speed of slow movement down
206
207// speed of slow movement down
212
213// speed of slow movement up
218
219// speed of slow movement up
224
225// speed of slow movement up
230
231// speed of regular milling
236
237// speed of regular milling
242
243// speed of regular milling
248
249// z-coordinate of plane where tool can move in any direction without touching the object
254
255// z-coordinate of plane where tool can move in any direction without touching the object
260
261// z-coordinate of plane where tool can move in any direction without touching the object
266
267// which direction isolines or sections should be passed in
272
273// which direction isolines or sections should be passed in
279
280// which direction isolines or sections should be passed in
285
286// mesh can be transformed using xf parameter
291
292// mesh can be transformed using xf parameter
298
299// mesh can be transformed using xf parameter
304
305// if true then a tool path for a flat milling tool will be generated
310
311// if true then a tool path for a flat milling tool will be generated
316
317// if true then a tool path for a flat milling tool will be generated
322
323// callback for reporting on progress
328
329// callback for reporting on progress
335
336// callback for reporting on progress
341
342// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
343// The area has the shape of a box.
344// Lacing specific only.
349
350// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
351// The area has the shape of a box.
352// Lacing specific only.
357
358// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
359// The area has the shape of a box.
360// Lacing specific only.
365
366// optional output, stores isolines without transits
371
372// optional output, stores isolines without transits
378
379// optional output, stores isolines without transits
384
385// optional output, polyline containing start vertices for isolines
390
391// optional output, polyline containing start vertices for isolines
397
398// optional output, polyline containing start vertices for isolines
403
404// start vertices on the offset mesh used for calcutating isolines
409
410// start vertices on the offset mesh used for calcutating isolines
416
417// start vertices on the offset mesh used for calcutating isolines
422
427
433
438
442
447
458MRC_API MR_ToolPathParams *MR_ToolPathParams_ConstructFrom(float millRadius, float voxelSize, float sectionStep, float critTransitionLength, float plungeLength, float retractLength, float plungeFeed, float retractFeed, float baseFeed, float safeZ, MR_BypassDirection bypassDir, const MR_AffineXf3f *xf, bool flatTool, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb, float toolpathExpansion, MR_std_vector_std_vector_MR_Vector3f *isolines, MR_std_vector_std_vector_MR_Vector3f *startContours, MR_std_vector_MR_Vector3f *startVertices, MR_MeshPart *offsetMesh);
459
463
467
472
476
481
484
487
494
495// if true isolines will be processed from center point to the boundary (usually it means from up to down)
500
501// if true isolines will be processed from center point to the boundary (usually it means from up to down)
506
507// if true isolines will be processed from center point to the boundary (usually it means from up to down)
512
513// radius of the milling tool
518
519// radius of the milling tool
524
525// radius of the milling tool
530
531// size of voxel needed to offset mesh
536
537// size of voxel needed to offset mesh
542
543// size of voxel needed to offset mesh
548
549// distance between sections built along Z axis
550// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
555
556// distance between sections built along Z axis
557// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
562
563// distance between sections built along Z axis
564// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
569
570// if distance to the next section is smaller than it, transition will be performed along the surface
571// otherwise transition will be through the safe plane
576
577// if distance to the next section is smaller than it, transition will be performed along the surface
578// otherwise transition will be through the safe plane
583
584// if distance to the next section is smaller than it, transition will be performed along the surface
585// otherwise transition will be through the safe plane
590
591// when the mill is moving down, it will be slowed down in this distance from mesh
596
597// when the mill is moving down, it will be slowed down in this distance from mesh
602
603// when the mill is moving down, it will be slowed down in this distance from mesh
608
609// when the mill is moving up, it will be slowed down in this distance from mesh
614
615// when the mill is moving up, it will be slowed down in this distance from mesh
620
621// when the mill is moving up, it will be slowed down in this distance from mesh
626
627// speed of slow movement down
632
633// speed of slow movement down
638
639// speed of slow movement down
644
645// speed of slow movement up
650
651// speed of slow movement up
656
657// speed of slow movement up
662
663// speed of regular milling
668
669// speed of regular milling
674
675// speed of regular milling
680
681// z-coordinate of plane where tool can move in any direction without touching the object
686
687// z-coordinate of plane where tool can move in any direction without touching the object
692
693// z-coordinate of plane where tool can move in any direction without touching the object
698
699// which direction isolines or sections should be passed in
704
705// which direction isolines or sections should be passed in
711
712// which direction isolines or sections should be passed in
717
718// mesh can be transformed using xf parameter
723
724// mesh can be transformed using xf parameter
730
731// mesh can be transformed using xf parameter
736
737// if true then a tool path for a flat milling tool will be generated
742
743// if true then a tool path for a flat milling tool will be generated
748
749// if true then a tool path for a flat milling tool will be generated
754
755// callback for reporting on progress
760
761// callback for reporting on progress
767
768// callback for reporting on progress
773
774// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
775// The area has the shape of a box.
776// Lacing specific only.
781
782// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
783// The area has the shape of a box.
784// Lacing specific only.
789
790// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
791// The area has the shape of a box.
792// Lacing specific only.
797
798// optional output, stores isolines without transits
803
804// optional output, stores isolines without transits
810
811// optional output, stores isolines without transits
816
817// optional output, polyline containing start vertices for isolines
822
823// optional output, polyline containing start vertices for isolines
829
830// optional output, polyline containing start vertices for isolines
835
836// start vertices on the offset mesh used for calcutating isolines
841
842// start vertices on the offset mesh used for calcutating isolines
848
849// start vertices on the offset mesh used for calcutating isolines
854
859
865
870
874
879
883
887
891
894
899
902
905
912
913// maximal deviation from given line
918
919// maximal deviation from given line
924
925// maximal deviation from given line
930
931// maximal length of the line
936
937// maximal length of the line
942
943// maximal length of the line
948
949// callback for reporting on progress
954
955// callback for reporting on progress
961
962// callback for reporting on progress
967
971
976
982
986
990
995
998
1001
1008
1009// maximal deviation of arc from given path
1014
1015// maximal deviation of arc from given path
1020
1021// maximal deviation of arc from given path
1026
1027// maximal radius of the arc
1032
1033// maximal radius of the arc
1038
1039// maximal radius of the arc
1044
1045// callback for reporting on progress
1050
1051// callback for reporting on progress
1057
1058// callback for reporting on progress
1063
1067
1072
1078
1082
1086
1091
1094
1097
1104
1105// type of command GX (G0, G1, etc). By default - G1
1110
1111// type of command GX (G0, G1, etc). By default - G1
1117
1118// type of command GX (G0, G1, etc). By default - G1
1123
1124// Place for comment
1129
1130// Place for comment
1136
1137// Place for comment
1142
1143// feedrate for move
1147MRC_API const float *MR_GCommand_Get_feed(const MR_GCommand *_this);
1148
1149// feedrate for move
1153MRC_API void MR_GCommand_Set_feed(MR_GCommand *_this, float value);
1154
1155// feedrate for move
1160
1161// coordinates of destination point
1165MRC_API const float *MR_GCommand_Get_x(const MR_GCommand *_this);
1166
1167// coordinates of destination point
1171MRC_API void MR_GCommand_Set_x(MR_GCommand *_this, float value);
1172
1173// coordinates of destination point
1178
1182MRC_API const float *MR_GCommand_Get_y(const MR_GCommand *_this);
1183
1187MRC_API void MR_GCommand_Set_y(MR_GCommand *_this, float value);
1188
1193
1197MRC_API const float *MR_GCommand_Get_z(const MR_GCommand *_this);
1198
1202MRC_API void MR_GCommand_Set_z(MR_GCommand *_this, float value);
1203
1208
1209// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1214
1215// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1221
1222// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1227
1231
1236
1243MRC_API MR_GCommand *MR_GCommand_ConstructFrom(MR_MoveType type, MR_ArcPlane arcPlane, float feed, float x, float y, float z, MR_Vector3f arcCenter);
1244
1248
1252
1258
1261
1264
1272
1273// mesh after fixing undercuts and offset
1278
1279// mesh after fixing undercuts and offset
1285
1286// mesh after fixing undercuts and offset
1291
1292// selected region projected from the original mesh to the offset
1297
1298// selected region projected from the original mesh to the offset
1304
1305// selected region projected from the original mesh to the offset
1310
1311// constains type of movement and its feed
1316
1317// constains type of movement and its feed
1323
1324// constains type of movement and its feed
1329
1333
1338
1345MRC_API MR_ToolPathResult *MR_ToolPathResult_ConstructFrom(MR_PassBy modifiedMesh_pass_by, MR_Mesh *modifiedMesh, MR_PassBy modifiedRegion_pass_by, MR_FaceBitSet *modifiedRegion, MR_PassBy commands_pass_by, MR_std_vector_MR_GCommand *commands);
1346
1350
1354
1359
1362
1365
1372
1373// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
1374// this toolpath is built from the parallel sections along Z-axis
1375// mesh can be transformed using xf parameter
1381
1382// Slices are built along the axis defined by cutDirection argument (can be Axis::X or Axis::Y)
1388
1389// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
1390// this toolpath is built from geodesic parallels divercing from the given start point or from the bounaries of selected areas
1391// if neither is specified, the lowest section by XY plane will be used as a start contour
1392// mesh can be transformed using xf parameter
1398
1399// generates G-Code for milling tool
1404
1405// interpolates several points lying on the same straight line with one move
1411
1412// interpolates given path with arcs
1418
1419// makes the given selection more smooth with shifthing a boundary of the selection outside and back. Input mesh is changed because we have to cut new edges along the new boundaries
1420// \param expandOffset defines how much the boundary is expanded
1421// \param expandOffset defines how much the boundary is shrinked after that
1426MRC_API MR_FaceBitSet *MR_smoothSelection(MR_Mesh *mesh, const MR_FaceBitSet *region, float expandOffset, float shrinkOffset);
1427
1428#ifdef __cplusplus
1429} // extern "C"
1430#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTree.h:17
struct MR_MeshPart MR_MeshPart
Definition MRAABBTree.h:19
MR_Axis
Definition MRAxis.h:9
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:25
struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f
Definition MRContour.h:17
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:26
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
MRC_API const float * MR_ToolPathParams_Get_plungeLength(const MR_ToolPathParams *_this)
MRC_API float * MR_ToolPathParams_GetMutable_voxelSize(MR_ToolPathParams *_this)
MRC_API float * MR_ToolPathParams_GetMutable_toolpathExpansion(MR_ToolPathParams *_this)
MRC_API float * MR_ToolPathParams_GetMutable_baseFeed(MR_ToolPathParams *_this)
MRC_API MR_GCommand * MR_GCommand_DefaultConstructArray(size_t num_elems)
MRC_API void MR_ArcInterpolationParams_DestroyArray(const MR_ArcInterpolationParams *_this)
Destroys a heap-allocated array of MR_ArcInterpolationParams. Does nothing if the pointer is null.
MRC_API void MR_GCommand_Set_x(MR_GCommand *_this, float value)
MRC_API void MR_LineInterpolationParams_Set_maxLength(MR_LineInterpolationParams *_this, float value)
MRC_API float * MR_LineInterpolationParams_GetMutable_maxLength(MR_LineInterpolationParams *_this)
MRC_API void MR_ToolPathParams_Set_cb(MR_ToolPathParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_DefaultConstruct(void)
MRC_API const MR_Mesh * MR_ToolPathResult_Get_modifiedMesh(const MR_ToolPathResult *_this)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_DefaultConstructArray(size_t num_elems)
MRC_API void MR_LineInterpolationParams_Set_eps(MR_LineInterpolationParams *_this, float value)
MRC_API MR_expected_void_std_string * MR_interpolateArcs(MR_std_vector_MR_GCommand *commands, const MR_ArcInterpolationParams *params, MR_Axis axis)
MRC_API float * MR_ConstantCuspParams_GetMutable_voxelSize(MR_ConstantCuspParams *_this)
MRC_API void MR_ToolPathParams_Set_isolines(MR_ToolPathParams *_this, MR_std_vector_std_vector_MR_Vector3f *value)
MRC_API const float * MR_ConstantCuspParams_Get_millRadius(const MR_ConstantCuspParams *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_critTransitionLength(MR_ConstantCuspParams *_this)
MRC_API void MR_ArcInterpolationParams_Destroy(const MR_ArcInterpolationParams *_this)
Destroys a heap-allocated instance of MR_ArcInterpolationParams. Does nothing if the pointer is null.
MRC_API const float * MR_ToolPathParams_Get_retractLength(const MR_ToolPathParams *_this)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_ConstructFrom(float eps, float maxRadius, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API void MR_GCommand_Destroy(const MR_GCommand *_this)
Destroys a heap-allocated instance of MR_GCommand. Does nothing if the pointer is null.
MRC_API const MR_AffineXf3f *const * MR_ToolPathParams_Get_xf(const MR_ToolPathParams *_this)
MRC_API void MR_LineInterpolationParams_Destroy(const MR_LineInterpolationParams *_this)
Destroys a heap-allocated instance of MR_LineInterpolationParams. Does nothing if the pointer is null...
MRC_API const float * MR_ConstantCuspParams_Get_plungeFeed(const MR_ConstantCuspParams *_this)
MRC_API MR_std_function_bool_from_float * MR_ToolPathParams_GetMutable_cb(MR_ToolPathParams *_this)
MRC_API MR_ConstantCuspParams * MR_ToolPathParams_MutableStaticDowncastTo_MR_ConstantCuspParams(MR_ToolPathParams *object)
MRC_API MR_ToolPathParams * MR_ToolPathParams_ConstructFrom(float millRadius, float voxelSize, float sectionStep, float critTransitionLength, float plungeLength, float retractLength, float plungeFeed, float retractFeed, float baseFeed, float safeZ, MR_BypassDirection bypassDir, const MR_AffineXf3f *xf, bool flatTool, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb, float toolpathExpansion, MR_std_vector_std_vector_MR_Vector3f *isolines, MR_std_vector_std_vector_MR_Vector3f *startContours, MR_std_vector_MR_Vector3f *startVertices, MR_MeshPart *offsetMesh)
MRC_API MR_std_vector_std_vector_MR_Vector3f ** MR_ConstantCuspParams_GetMutable_isolines(MR_ConstantCuspParams *_this)
MRC_API void MR_ToolPathParams_Set_bypassDir(MR_ToolPathParams *_this, MR_BypassDirection value)
MRC_API void MR_ToolPathParams_Set_xf(MR_ToolPathParams *_this, const MR_AffineXf3f *value)
MRC_API const float * MR_ConstantCuspParams_Get_sectionStep(const MR_ConstantCuspParams *_this)
MRC_API const MR_std_function_bool_from_float * MR_ConstantCuspParams_Get_cb(const MR_ConstantCuspParams *_this)
MRC_API void MR_GCommand_Set_y(MR_GCommand *_this, float value)
MRC_API void MR_ArcInterpolationParams_Set_cb(MR_ArcInterpolationParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API void MR_ToolPathResult_Destroy(const MR_ToolPathResult *_this)
Destroys a heap-allocated instance of MR_ToolPathResult. Does nothing if the pointer is null.
MRC_API MR_Mesh * MR_ToolPathResult_GetMutable_modifiedMesh(MR_ToolPathResult *_this)
MRC_API MR_ToolPathResult * MR_ToolPathResult_OffsetMutablePtr(MR_ToolPathResult *ptr, ptrdiff_t i)
struct MR_ToolPathParams MR_ToolPathParams
Definition MRToolPath.h:39
MRC_API MR_std_vector_MR_GCommand * MR_ToolPathResult_GetMutable_commands(MR_ToolPathResult *_this)
MRC_API MR_BypassDirection * MR_ToolPathParams_GetMutable_bypassDir(MR_ToolPathParams *_this)
MRC_API void MR_ConstantCuspParams_Set_startContours(MR_ConstantCuspParams *_this, MR_std_vector_std_vector_MR_Vector3f *value)
MRC_API float * MR_ArcInterpolationParams_GetMutable_eps(MR_ArcInterpolationParams *_this)
MRC_API MR_GCommand * MR_GCommand_ConstructFromAnother(const MR_GCommand *_other)
MRC_API MR_ToolPathParams * MR_ToolPathParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_ToolPathParams *_other)
MRC_API float * MR_ToolPathParams_GetMutable_critTransitionLength(MR_ToolPathParams *_this)
MRC_API MR_ArcPlane * MR_GCommand_GetMutable_arcPlane(MR_GCommand *_this)
MRC_API const float * MR_ToolPathParams_Get_baseFeed(const MR_ToolPathParams *_this)
MRC_API const float * MR_ToolPathParams_Get_toolpathExpansion(const MR_ToolPathParams *_this)
MRC_API float * MR_LineInterpolationParams_GetMutable_eps(MR_LineInterpolationParams *_this)
MRC_API MR_ToolPathResult * MR_ToolPathResult_ConstructFromAnother(MR_PassBy _other_pass_by, MR_ToolPathResult *_other)
MRC_API const MR_ToolPathParams * MR_ConstantCuspParams_UpcastTo_MR_ToolPathParams(const MR_ConstantCuspParams *object)
MRC_API const float * MR_ToolPathParams_Get_critTransitionLength(const MR_ToolPathParams *_this)
MRC_API void MR_ToolPathResult_Set_commands(MR_ToolPathResult *_this, MR_PassBy value_pass_by, MR_std_vector_MR_GCommand *value)
MRC_API MR_std_function_bool_from_float * MR_LineInterpolationParams_GetMutable_cb(MR_LineInterpolationParams *_this)
MRC_API void MR_ToolPathParams_Set_retractLength(MR_ToolPathParams *_this, float value)
MRC_API MR_std_vector_MR_Vector3f *const * MR_ToolPathParams_Get_startVertices(const MR_ToolPathParams *_this)
MRC_API void MR_ToolPathParams_Set_flatTool(MR_ToolPathParams *_this, bool value)
MRC_API MR_std_vector_MR_Vector3f ** MR_ToolPathParams_GetMutable_startVertices(MR_ToolPathParams *_this)
MRC_API void MR_ToolPathParams_Set_plungeLength(MR_ToolPathParams *_this, float value)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_ConstantCuspParams *_other)
struct MR_LineInterpolationParams MR_LineInterpolationParams
Definition MRToolPath.h:50
MRC_API const float * MR_ConstantCuspParams_Get_retractFeed(const MR_ConstantCuspParams *_this)
MRC_API void MR_GCommand_Set_feed(MR_GCommand *_this, float value)
MRC_API void MR_ConstantCuspParams_Destroy(const MR_ConstantCuspParams *_this)
Destroys a heap-allocated instance of MR_ConstantCuspParams. Does nothing if the pointer is null.
MRC_API void MR_ConstantCuspParams_Set_flatTool(MR_ConstantCuspParams *_this, bool value)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_DefaultConstruct(void)
MRC_API const float * MR_ConstantCuspParams_Get_toolpathExpansion(const MR_ConstantCuspParams *_this)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_AssignFromAnother(MR_ConstantCuspParams *_this, MR_PassBy _other_pass_by, MR_ConstantCuspParams *_other)
MRC_API void MR_ConstantCuspParams_Set_retractLength(MR_ConstantCuspParams *_this, float value)
MRC_API void MR_ToolPathParams_Set_sectionStep(MR_ToolPathParams *_this, float value)
MRC_API const float * MR_GCommand_Get_z(const MR_GCommand *_this)
MRC_API void MR_ToolPathResult_Set_modifiedRegion(MR_ToolPathResult *_this, MR_PassBy value_pass_by, MR_FaceBitSet *value)
MRC_API const MR_GCommand * MR_GCommand_OffsetPtr(const MR_GCommand *ptr, ptrdiff_t i)
MRC_API float * MR_GCommand_GetMutable_z(MR_GCommand *_this)
MRC_API float * MR_ToolPathParams_GetMutable_millRadius(MR_ToolPathParams *_this)
MRC_API void MR_ArcInterpolationParams_Set_maxRadius(MR_ArcInterpolationParams *_this, float value)
MRC_API void MR_ConstantCuspParams_Set_bypassDir(MR_ConstantCuspParams *_this, MR_BypassDirection value)
MRC_API MR_GCommand * MR_GCommand_ConstructFrom(MR_MoveType type, MR_ArcPlane arcPlane, float feed, float x, float y, float z, MR_Vector3f arcCenter)
MRC_API MR_std_vector_std_vector_MR_Vector3f ** MR_ConstantCuspParams_GetMutable_startContours(MR_ConstantCuspParams *_this)
MRC_API const MR_MoveType * MR_GCommand_Get_type(const MR_GCommand *_this)
MRC_API void MR_LineInterpolationParams_DestroyArray(const MR_LineInterpolationParams *_this)
Destroys a heap-allocated array of MR_LineInterpolationParams. Does nothing if the pointer is null.
MRC_API void MR_ToolPathParams_Set_startVertices(MR_ToolPathParams *_this, MR_std_vector_MR_Vector3f *value)
MRC_API void MR_GCommand_DestroyArray(const MR_GCommand *_this)
Destroys a heap-allocated array of MR_GCommand. Does nothing if the pointer is null.
MRC_API void MR_ConstantCuspParams_DestroyArray(const MR_ConstantCuspParams *_this)
Destroys a heap-allocated array of MR_ConstantCuspParams. Does nothing if the pointer is null.
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_AssignFromAnother(MR_LineInterpolationParams *_this, MR_PassBy _other_pass_by, MR_LineInterpolationParams *_other)
MRC_API void MR_ConstantCuspParams_Set_sectionStep(MR_ConstantCuspParams *_this, float value)
MRC_API bool * MR_ConstantCuspParams_GetMutable_flatTool(MR_ConstantCuspParams *_this)
MRC_API const float * MR_ConstantCuspParams_Get_voxelSize(const MR_ConstantCuspParams *_this)
MRC_API const MR_BypassDirection * MR_ConstantCuspParams_Get_bypassDir(const MR_ConstantCuspParams *_this)
MRC_API const float * MR_ArcInterpolationParams_Get_eps(const MR_ArcInterpolationParams *_this)
MRC_API void MR_ToolPathParams_Set_startContours(MR_ToolPathParams *_this, MR_std_vector_std_vector_MR_Vector3f *value)
MRC_API void MR_ConstantCuspParams_Set_isolines(MR_ConstantCuspParams *_this, MR_std_vector_std_vector_MR_Vector3f *value)
MRC_API void MR_ConstantCuspParams_Set_plungeLength(MR_ConstantCuspParams *_this, float value)
MRC_API MR_GCommand * MR_GCommand_DefaultConstruct(void)
MRC_API void MR_ConstantCuspParams_Set_startVertices(MR_ConstantCuspParams *_this, MR_std_vector_MR_Vector3f *value)
struct MR_ConstantCuspParams MR_ConstantCuspParams
Definition MRToolPath.h:46
MRC_API MR_MeshPart *const * MR_ConstantCuspParams_Get_offsetMesh(const MR_ConstantCuspParams *_this)
MRC_API MR_std_vector_MR_Vector3f ** MR_ConstantCuspParams_GetMutable_startVertices(MR_ConstantCuspParams *_this)
MRC_API const MR_ArcInterpolationParams * MR_ArcInterpolationParams_OffsetPtr(const MR_ArcInterpolationParams *ptr, ptrdiff_t i)
MRC_API float * MR_GCommand_GetMutable_x(MR_GCommand *_this)
MRC_API const float * MR_ToolPathParams_Get_sectionStep(const MR_ToolPathParams *_this)
MRC_API const MR_ToolPathParams * MR_ToolPathParams_OffsetPtr(const MR_ToolPathParams *ptr, ptrdiff_t i)
MRC_API const bool * MR_ConstantCuspParams_Get_fromCenterToBoundary(const MR_ConstantCuspParams *_this)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_DefaultConstruct(void)
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_OffsetMutablePtr(MR_LineInterpolationParams *ptr, ptrdiff_t i)
MRC_API MR_FaceBitSet * MR_ToolPathResult_GetMutable_modifiedRegion(MR_ToolPathResult *_this)
MRC_API float * MR_ToolPathParams_GetMutable_retractFeed(MR_ToolPathParams *_this)
MRC_API const bool * MR_ConstantCuspParams_Get_flatTool(const MR_ConstantCuspParams *_this)
MRC_API const MR_Vector3f * MR_GCommand_Get_arcCenter(const MR_GCommand *_this)
MRC_API void MR_ToolPathParams_DestroyArray(const MR_ToolPathParams *_this)
Destroys a heap-allocated array of MR_ToolPathParams. Does nothing if the pointer is null.
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_ConstructFrom(float eps, float maxLength, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MR_ArcPlane
Definition MRToolPath.h:66
@ MR_ArcPlane_XZ
Definition MRToolPath.h:69
@ MR_ArcPlane_YZ
Definition MRToolPath.h:70
@ MR_ArcPlane_None
Definition MRToolPath.h:67
@ MR_ArcPlane_XY
Definition MRToolPath.h:68
MRC_API const float * MR_ArcInterpolationParams_Get_maxRadius(const MR_ArcInterpolationParams *_this)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_DefaultConstructArray(size_t num_elems)
MRC_API MR_std_vector_std_vector_MR_Vector3f *const * MR_ConstantCuspParams_Get_startContours(const MR_ConstantCuspParams *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_sectionStep(MR_ConstantCuspParams *_this)
MRC_API MR_ToolPathParams * MR_ToolPathParams_OffsetMutablePtr(MR_ToolPathParams *ptr, ptrdiff_t i)
MRC_API MR_std_vector_std_vector_MR_Vector3f ** MR_ToolPathParams_GetMutable_isolines(MR_ToolPathParams *_this)
MRC_API MR_std_vector_MR_Vector3f *const * MR_ConstantCuspParams_Get_startVertices(const MR_ConstantCuspParams *_this)
MRC_API void MR_ConstantCuspParams_Set_cb(MR_ConstantCuspParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API void MR_ToolPathResult_DestroyArray(const MR_ToolPathResult *_this)
Destroys a heap-allocated array of MR_ToolPathResult. Does nothing if the pointer is null.
MRC_API void MR_ToolPathParams_Set_offsetMesh(MR_ToolPathParams *_this, MR_MeshPart *value)
MRC_API const float * MR_ToolPathParams_Get_millRadius(const MR_ToolPathParams *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_retractFeed(MR_ConstantCuspParams *_this)
MRC_API MR_std_shared_ptr_MR_ObjectGcode * MR_exportToolPathToGCode(const MR_std_vector_MR_GCommand *commands)
MRC_API const MR_ArcPlane * MR_GCommand_Get_arcPlane(const MR_GCommand *_this)
MRC_API float * MR_ArcInterpolationParams_GetMutable_maxRadius(MR_ArcInterpolationParams *_this)
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_DefaultConstructArray(size_t num_elems)
MRC_API const float * MR_GCommand_Get_x(const MR_GCommand *_this)
MRC_API MR_FaceBitSet * MR_smoothSelection(MR_Mesh *mesh, const MR_FaceBitSet *region, float expandOffset, float shrinkOffset)
MRC_API bool * MR_ToolPathParams_GetMutable_flatTool(MR_ToolPathParams *_this)
MRC_API const bool * MR_ToolPathParams_Get_flatTool(const MR_ToolPathParams *_this)
MRC_API const MR_ConstantCuspParams * MR_ToolPathParams_StaticDowncastTo_MR_ConstantCuspParams(const MR_ToolPathParams *object)
MRC_API MR_expected_MR_ToolPathResult_std_string * MR_constantCuspToolPath(const MR_MeshPart *mp, const MR_ConstantCuspParams *params)
MRC_API const float * MR_ConstantCuspParams_Get_safeZ(const MR_ConstantCuspParams *_this)
MRC_API const MR_AffineXf3f *const * MR_ConstantCuspParams_Get_xf(const MR_ConstantCuspParams *_this)
MRC_API MR_ToolPathParams * MR_ToolPathParams_DefaultConstruct(void)
MRC_API void MR_ConstantCuspParams_Set_toolpathExpansion(MR_ConstantCuspParams *_this, float value)
MRC_API void MR_ToolPathParams_Set_millRadius(MR_ToolPathParams *_this, float value)
MRC_API const MR_LineInterpolationParams * MR_LineInterpolationParams_OffsetPtr(const MR_LineInterpolationParams *ptr, ptrdiff_t i)
MRC_API float * MR_ConstantCuspParams_GetMutable_retractLength(MR_ConstantCuspParams *_this)
MRC_API MR_std_vector_std_vector_MR_Vector3f *const * MR_ConstantCuspParams_Get_isolines(const MR_ConstantCuspParams *_this)
MRC_API void MR_ConstantCuspParams_Set_voxelSize(MR_ConstantCuspParams *_this, float value)
MRC_API float * MR_ToolPathParams_GetMutable_plungeFeed(MR_ToolPathParams *_this)
MRC_API void MR_ConstantCuspParams_Set_offsetMesh(MR_ConstantCuspParams *_this, MR_MeshPart *value)
MRC_API float * MR_ConstantCuspParams_GetMutable_safeZ(MR_ConstantCuspParams *_this)
MRC_API MR_std_function_bool_from_float * MR_ArcInterpolationParams_GetMutable_cb(MR_ArcInterpolationParams *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_toolpathExpansion(MR_ConstantCuspParams *_this)
MRC_API MR_std_vector_std_vector_MR_Vector3f *const * MR_ToolPathParams_Get_isolines(const MR_ToolPathParams *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_millRadius(MR_ConstantCuspParams *_this)
MRC_API MR_MeshPart *const * MR_ToolPathParams_Get_offsetMesh(const MR_ToolPathParams *_this)
MRC_API void MR_ToolPathParams_Set_baseFeed(MR_ToolPathParams *_this, float value)
MRC_API MR_std_vector_std_vector_MR_Vector3f ** MR_ToolPathParams_GetMutable_startContours(MR_ToolPathParams *_this)
MRC_API MR_std_function_bool_from_float * MR_ConstantCuspParams_GetMutable_cb(MR_ConstantCuspParams *_this)
MRC_API const MR_std_function_bool_from_float * MR_LineInterpolationParams_Get_cb(const MR_LineInterpolationParams *_this)
MRC_API void MR_GCommand_Set_arcPlane(MR_GCommand *_this, MR_ArcPlane value)
MRC_API float * MR_ToolPathParams_GetMutable_safeZ(MR_ToolPathParams *_this)
MRC_API void MR_ConstantCuspParams_Set_plungeFeed(MR_ConstantCuspParams *_this, float value)
MRC_API void MR_ArcInterpolationParams_Set_eps(MR_ArcInterpolationParams *_this, float value)
MRC_API void MR_ToolPathParams_Destroy(const MR_ToolPathParams *_this)
Destroys a heap-allocated instance of MR_ToolPathParams. Does nothing if the pointer is null.
MRC_API void MR_LineInterpolationParams_Set_cb(MR_LineInterpolationParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API MR_ToolPathParams * MR_ToolPathParams_AssignFromAnother(MR_ToolPathParams *_this, MR_PassBy _other_pass_by, MR_ToolPathParams *_other)
MRC_API float * MR_ConstantCuspParams_GetMutable_baseFeed(MR_ConstantCuspParams *_this)
MRC_API const float * MR_ToolPathParams_Get_voxelSize(const MR_ToolPathParams *_this)
MRC_API void MR_ToolPathResult_Set_modifiedMesh(MR_ToolPathResult *_this, MR_PassBy value_pass_by, MR_Mesh *value)
MR_MoveType
Definition MRToolPath.h:57
@ MR_MoveType_FastLinear
Definition MRToolPath.h:59
@ MR_MoveType_ArcCCW
Definition MRToolPath.h:62
@ MR_MoveType_None
Definition MRToolPath.h:58
@ MR_MoveType_Linear
Definition MRToolPath.h:60
@ MR_MoveType_ArcCW
Definition MRToolPath.h:61
MRC_API MR_expected_void_std_string * MR_interpolateLines(MR_std_vector_MR_GCommand *commands, const MR_LineInterpolationParams *params, MR_Axis axis)
MRC_API float * MR_ToolPathParams_GetMutable_retractLength(MR_ToolPathParams *_this)
MRC_API const MR_ToolPathResult * MR_ToolPathResult_OffsetPtr(const MR_ToolPathResult *ptr, ptrdiff_t i)
MRC_API float * MR_ConstantCuspParams_GetMutable_plungeFeed(MR_ConstantCuspParams *_this)
MRC_API void MR_GCommand_Set_arcCenter(MR_GCommand *_this, MR_Vector3f value)
MRC_API const float * MR_ToolPathParams_Get_retractFeed(const MR_ToolPathParams *_this)
MRC_API const float * MR_ConstantCuspParams_Get_plungeLength(const MR_ConstantCuspParams *_this)
MRC_API const float * MR_LineInterpolationParams_Get_maxLength(const MR_LineInterpolationParams *_this)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_AssignFromAnother(MR_ArcInterpolationParams *_this, MR_PassBy _other_pass_by, MR_ArcInterpolationParams *_other)
MRC_API float * MR_ToolPathParams_GetMutable_plungeLength(MR_ToolPathParams *_this)
MRC_API MR_Vector3f * MR_GCommand_GetMutable_arcCenter(MR_GCommand *_this)
MRC_API MR_ToolPathResult * MR_ToolPathResult_DefaultConstruct(void)
MRC_API void MR_ConstantCuspParams_Set_xf(MR_ConstantCuspParams *_this, const MR_AffineXf3f *value)
MRC_API const MR_BypassDirection * MR_ToolPathParams_Get_bypassDir(const MR_ToolPathParams *_this)
MRC_API float * MR_GCommand_GetMutable_y(MR_GCommand *_this)
MRC_API MR_LineInterpolationParams * MR_LineInterpolationParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_LineInterpolationParams *_other)
MRC_API const MR_std_vector_MR_GCommand * MR_ToolPathResult_Get_commands(const MR_ToolPathResult *_this)
MRC_API void MR_ConstantCuspParams_Set_millRadius(MR_ConstantCuspParams *_this, float value)
MRC_API float * MR_GCommand_GetMutable_feed(MR_GCommand *_this)
MRC_API const float * MR_ConstantCuspParams_Get_baseFeed(const MR_ConstantCuspParams *_this)
MRC_API void MR_ConstantCuspParams_Set_critTransitionLength(MR_ConstantCuspParams *_this, float value)
MRC_API void MR_ConstantCuspParams_Set_baseFeed(MR_ConstantCuspParams *_this, float value)
MRC_API void MR_ConstantCuspParams_Set_safeZ(MR_ConstantCuspParams *_this, float value)
MRC_API MR_std_vector_std_vector_MR_Vector3f *const * MR_ToolPathParams_Get_startContours(const MR_ToolPathParams *_this)
MRC_API MR_expected_MR_ToolPathResult_std_string * MR_constantZToolPath(const MR_MeshPart *mp, const MR_ToolPathParams *params)
MRC_API const MR_ConstantCuspParams * MR_ConstantCuspParams_OffsetPtr(const MR_ConstantCuspParams *ptr, ptrdiff_t i)
MRC_API MR_MoveType * MR_GCommand_GetMutable_type(MR_GCommand *_this)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_OffsetMutablePtr(MR_ArcInterpolationParams *ptr, ptrdiff_t i)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_ArcInterpolationParams *_other)
MRC_API const float * MR_ConstantCuspParams_Get_retractLength(const MR_ConstantCuspParams *_this)
MRC_API void MR_ToolPathParams_Set_toolpathExpansion(MR_ToolPathParams *_this, float value)
MR_BypassDirection
Definition MRToolPath.h:29
@ MR_BypassDirection_CounterClockwise
Definition MRToolPath.h:31
@ MR_BypassDirection_Clockwise
Definition MRToolPath.h:30
MRC_API void MR_ToolPathParams_Set_safeZ(MR_ToolPathParams *_this, float value)
MRC_API const float * MR_ToolPathParams_Get_safeZ(const MR_ToolPathParams *_this)
MRC_API const float * MR_ToolPathParams_Get_plungeFeed(const MR_ToolPathParams *_this)
MRC_API void MR_ConstantCuspParams_Set_retractFeed(MR_ConstantCuspParams *_this, float value)
MRC_API const MR_std_function_bool_from_float * MR_ToolPathParams_Get_cb(const MR_ToolPathParams *_this)
MRC_API void MR_ToolPathParams_Set_critTransitionLength(MR_ToolPathParams *_this, float value)
MRC_API void MR_GCommand_Set_z(MR_GCommand *_this, float value)
MRC_API const float * MR_GCommand_Get_feed(const MR_GCommand *_this)
MRC_API void MR_ToolPathParams_Set_voxelSize(MR_ToolPathParams *_this, float value)
MRC_API const MR_FaceBitSet * MR_ToolPathResult_Get_modifiedRegion(const MR_ToolPathResult *_this)
MRC_API float * MR_ConstantCuspParams_GetMutable_plungeLength(MR_ConstantCuspParams *_this)
MRC_API const MR_AffineXf3f ** MR_ConstantCuspParams_GetMutable_xf(MR_ConstantCuspParams *_this)
MRC_API const float * MR_ConstantCuspParams_Get_critTransitionLength(const MR_ConstantCuspParams *_this)
MRC_API MR_BypassDirection * MR_ConstantCuspParams_GetMutable_bypassDir(MR_ConstantCuspParams *_this)
MRC_API void MR_ToolPathParams_Set_plungeFeed(MR_ToolPathParams *_this, float value)
MRC_API MR_GCommand * MR_GCommand_AssignFromAnother(MR_GCommand *_this, const MR_GCommand *_other)
MRC_API void MR_ToolPathParams_Set_retractFeed(MR_ToolPathParams *_this, float value)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_OffsetMutablePtr(MR_ConstantCuspParams *ptr, ptrdiff_t i)
MRC_API void MR_ConstantCuspParams_Set_fromCenterToBoundary(MR_ConstantCuspParams *_this, bool value)
MRC_API MR_ToolPathResult * MR_ToolPathResult_DefaultConstructArray(size_t num_elems)
MRC_API bool * MR_ConstantCuspParams_GetMutable_fromCenterToBoundary(MR_ConstantCuspParams *_this)
MRC_API const MR_AffineXf3f ** MR_ToolPathParams_GetMutable_xf(MR_ToolPathParams *_this)
MRC_API float * MR_ToolPathParams_GetMutable_sectionStep(MR_ToolPathParams *_this)
MRC_API MR_GCommand * MR_GCommand_OffsetMutablePtr(MR_GCommand *ptr, ptrdiff_t i)
MRC_API MR_ToolPathResult * MR_ToolPathResult_AssignFromAnother(MR_ToolPathResult *_this, MR_PassBy _other_pass_by, MR_ToolPathResult *_other)
MRC_API MR_MeshPart ** MR_ToolPathParams_GetMutable_offsetMesh(MR_ToolPathParams *_this)
struct MR_ArcInterpolationParams MR_ArcInterpolationParams
Definition MRToolPath.h:54
MRC_API MR_expected_MR_ToolPathResult_std_string * MR_lacingToolPath(const MR_MeshPart *mp, const MR_ToolPathParams *params, MR_Axis cutDirection)
MRC_API MR_ToolPathParams * MR_ConstantCuspParams_MutableUpcastTo_MR_ToolPathParams(MR_ConstantCuspParams *object)
Upcasts an instance of MR::ConstantCuspParams to its base class MR::ToolPathParams.
MRC_API MR_MeshPart ** MR_ConstantCuspParams_GetMutable_offsetMesh(MR_ConstantCuspParams *_this)
MRC_API MR_ToolPathResult * MR_ToolPathResult_ConstructFrom(MR_PassBy modifiedMesh_pass_by, MR_Mesh *modifiedMesh, MR_PassBy modifiedRegion_pass_by, MR_FaceBitSet *modifiedRegion, MR_PassBy commands_pass_by, MR_std_vector_MR_GCommand *commands)
MRC_API const MR_std_function_bool_from_float * MR_ArcInterpolationParams_Get_cb(const MR_ArcInterpolationParams *_this)
MRC_API const float * MR_GCommand_Get_y(const MR_GCommand *_this)
MRC_API MR_ToolPathParams * MR_ToolPathParams_DefaultConstructArray(size_t num_elems)
MRC_API const float * MR_LineInterpolationParams_Get_eps(const MR_LineInterpolationParams *_this)
MRC_API void MR_GCommand_Set_type(MR_GCommand *_this, MR_MoveType value)
MR_PassBy
Definition common.h:23
struct MR_ToolPathResult MR_ToolPathResult
Definition expected_MR_ToolPathResult_std_string.h:13
struct MR_expected_MR_ToolPathResult_std_string MR_expected_MR_ToolPathResult_std_string
Definition expected_MR_ToolPathResult_std_string.h:19
#define MRC_API
Definition exports.h:11
struct MR_std_shared_ptr_MR_ObjectGcode MR_std_shared_ptr_MR_ObjectGcode
Definition std_shared_ptr_MR_ObjectGcode.h:19
struct MR_std_vector_MR_GCommand MR_std_vector_MR_GCommand
Definition std_vector_MR_GCommand.h:18
struct MR_GCommand MR_GCommand
Definition std_vector_MR_GCommand.h:13
Definition MRAffineXf.h:39
Definition MRVector3.h:52