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
87
88// radius of the milling tool
93
94// radius of the milling tool
100
101// size of voxel needed to offset mesh
107
108// size of voxel needed to offset mesh
113
114// size of voxel needed to offset mesh
120
121// distance between sections built along Z axis
122// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
128
129// distance between sections built along Z axis
130// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
135
136// distance between sections built along Z axis
137// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
143
144// if distance to the next section is smaller than it, transition will be performed along the surface
145// 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// if distance to the next section is smaller than it, transition will be performed along the surface
160// otherwise transition will be through the safe plane
166
167// when the mill is moving down, it will be slowed down in this distance from mesh
173
174// when the mill is moving down, it will be slowed down in this distance from mesh
179
180// when the mill is moving down, it will be slowed down in this distance from mesh
186
187// when the mill is moving up, it will be slowed down in this distance from mesh
193
194// when the mill is moving up, it will be slowed down in this distance from mesh
199
200// when the mill is moving up, it will be slowed down in this distance from mesh
206
207// speed of slow movement down
213
214// speed of slow movement down
219
220// speed of slow movement down
226
227// speed of slow movement up
233
234// speed of slow movement up
239
240// speed of slow movement up
246
247// speed of regular milling
253
254// speed of regular milling
259
260// speed of regular milling
266
267// z-coordinate of plane where tool can move in any direction without touching the object
273
274// z-coordinate of plane where tool can move in any direction without touching the object
279
280// z-coordinate of plane where tool can move in any direction without touching the object
286
287// which direction isolines or sections should be passed in
293
294// which direction isolines or sections should be passed in
300
301// which direction isolines or sections should be passed in
307
308// mesh can be transformed using xf parameter
314
315// mesh can be transformed using xf parameter
321
322// mesh can be transformed using xf parameter
328
329// if true then a tool path for a flat milling tool will be generated
335
336// if true then a tool path for a flat milling tool will be generated
341
342// if true then a tool path for a flat milling tool will be generated
348
349// callback for reporting on progress
355
356// callback for reporting on progress
362
363// callback for reporting on progress
369
370// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
371// The area has the shape of a box.
372// Lacing specific only.
378
379// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
380// The area has the shape of a box.
381// Lacing specific only.
386
387// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
388// The area has the shape of a box.
389// Lacing specific only.
395
396// optional output, stores isolines without transits
402
403// optional output, stores isolines without transits
409
410// optional output, stores isolines without transits
416
417// optional output, polyline containing start vertices for isolines
423
424// optional output, polyline containing start vertices for isolines
430
431// optional output, polyline containing start vertices for isolines
437
438// start vertices on the offset mesh used for calcutating isolines
444
445// start vertices on the offset mesh used for calcutating isolines
451
452// start vertices on the offset mesh used for calcutating isolines
458
464
470
476
480
485
496MRC_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);
497
501
505
510
513
516
523
524// if true isolines will be processed from center point to the boundary (usually it means from up to down)
530
531// if true isolines will be processed from center point to the boundary (usually it means from up to down)
536
537// if true isolines will be processed from center point to the boundary (usually it means from up to down)
543
544// radius of the milling tool
550
551// radius of the milling tool
556
557// radius of the milling tool
563
564// size of voxel needed to offset mesh
570
571// size of voxel needed to offset mesh
576
577// size of voxel needed to offset mesh
583
584// distance between sections built along Z axis
585// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
591
592// distance between sections built along Z axis
593// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
598
599// distance between sections built along Z axis
600// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
606
607// if distance to the next section is smaller than it, transition will be performed along the surface
608// otherwise transition will be through the safe plane
614
615// if distance to the next section is smaller than it, transition will be performed along the surface
616// otherwise transition will be through the safe plane
621
622// if distance to the next section is smaller than it, transition will be performed along the surface
623// otherwise transition will be through the safe plane
629
630// when the mill is moving down, it will be slowed down in this distance from mesh
636
637// when the mill is moving down, it will be slowed down in this distance from mesh
642
643// when the mill is moving down, it will be slowed down in this distance from mesh
649
650// when the mill is moving up, it will be slowed down in this distance from mesh
656
657// when the mill is moving up, it will be slowed down in this distance from mesh
662
663// when the mill is moving up, it will be slowed down in this distance from mesh
669
670// speed of slow movement down
676
677// speed of slow movement down
682
683// speed of slow movement down
689
690// speed of slow movement up
696
697// speed of slow movement up
702
703// speed of slow movement up
709
710// speed of regular milling
716
717// speed of regular milling
722
723// speed of regular milling
729
730// z-coordinate of plane where tool can move in any direction without touching the object
736
737// z-coordinate of plane where tool can move in any direction without touching the object
742
743// z-coordinate of plane where tool can move in any direction without touching the object
749
750// which direction isolines or sections should be passed in
756
757// which direction isolines or sections should be passed in
763
764// which direction isolines or sections should be passed in
770
771// mesh can be transformed using xf parameter
777
778// mesh can be transformed using xf parameter
784
785// mesh can be transformed using xf parameter
791
792// if true then a tool path for a flat milling tool will be generated
798
799// if true then a tool path for a flat milling tool will be generated
804
805// if true then a tool path for a flat milling tool will be generated
811
812// callback for reporting on progress
818
819// callback for reporting on progress
825
826// callback for reporting on progress
832
833// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
834// The area has the shape of a box.
835// Lacing specific only.
841
842// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
843// The area has the shape of a box.
844// Lacing specific only.
849
850// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
851// The area has the shape of a box.
852// Lacing specific only.
858
859// optional output, stores isolines without transits
865
866// optional output, stores isolines without transits
872
873// optional output, stores isolines without transits
879
880// optional output, polyline containing start vertices for isolines
886
887// optional output, polyline containing start vertices for isolines
893
894// optional output, polyline containing start vertices for isolines
900
901// start vertices on the offset mesh used for calcutating isolines
907
908// start vertices on the offset mesh used for calcutating isolines
914
915// start vertices on the offset mesh used for calcutating isolines
921
927
933
939
943
948
952
956
961
965
971
976
981
984
987
994
995// maximal deviation from given line
1001
1002// maximal deviation from given line
1007
1008// maximal deviation from given line
1014
1015// maximal length of the line
1021
1022// maximal length of the line
1027
1028// maximal length of the line
1034
1035// callback for reporting on progress
1041
1042// callback for reporting on progress
1048
1049// callback for reporting on progress
1055
1059
1064
1070
1074
1078
1083
1086
1089
1096
1097// maximal deviation of arc from given path
1103
1104// maximal deviation of arc from given path
1109
1110// maximal deviation of arc from given path
1116
1117// maximal radius of the arc
1123
1124// maximal radius of the arc
1129
1130// maximal radius of the arc
1136
1137// callback for reporting on progress
1143
1144// callback for reporting on progress
1150
1151// callback for reporting on progress
1157
1161
1166
1172
1176
1180
1185
1188
1191
1198
1199// type of command GX (G0, G1, etc). By default - G1
1205
1206// type of command GX (G0, G1, etc). By default - G1
1212
1213// type of command GX (G0, G1, etc). By default - G1
1219
1220// Place for comment
1226
1227// Place for comment
1233
1234// Place for comment
1240
1241// feedrate for move
1246MRC_API const float *MR_GCommand_Get_feed(const MR_GCommand *_this);
1247
1248// feedrate for move
1252MRC_API void MR_GCommand_Set_feed(MR_GCommand *_this, float value);
1253
1254// feedrate for move
1260
1261// coordinates of destination point
1266MRC_API const float *MR_GCommand_Get_x(const MR_GCommand *_this);
1267
1268// coordinates of destination point
1272MRC_API void MR_GCommand_Set_x(MR_GCommand *_this, float value);
1273
1274// coordinates of destination point
1280
1285MRC_API const float *MR_GCommand_Get_y(const MR_GCommand *_this);
1286
1290MRC_API void MR_GCommand_Set_y(MR_GCommand *_this, float value);
1291
1297
1302MRC_API const float *MR_GCommand_Get_z(const MR_GCommand *_this);
1303
1307MRC_API void MR_GCommand_Set_z(MR_GCommand *_this, float value);
1308
1314
1315// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1321
1322// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1328
1329// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
1335
1339
1344
1351MRC_API MR_GCommand *MR_GCommand_ConstructFrom(MR_MoveType type, MR_ArcPlane arcPlane, float feed, float x, float y, float z, MR_Vector3f arcCenter);
1352
1356
1360
1366
1369
1372
1380
1381// mesh after fixing undercuts and offset
1387
1388// mesh after fixing undercuts and offset
1394
1395// mesh after fixing undercuts and offset
1401
1402// selected region projected from the original mesh to the offset
1408
1409// selected region projected from the original mesh to the offset
1415
1416// selected region projected from the original mesh to the offset
1422
1423// constains type of movement and its feed
1429
1430// constains type of movement and its feed
1436
1437// constains type of movement and its feed
1443
1447
1452
1459MRC_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);
1460
1464
1468
1473
1476
1479
1486
1487// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
1488// this toolpath is built from the parallel sections along Z-axis
1489// mesh can be transformed using xf parameter
1495
1496// Slices are built along the axis defined by cutDirection argument (can be Axis::X or Axis::Y)
1502
1503// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
1504// this toolpath is built from geodesic parallels divercing from the given start point or from the bounaries of selected areas
1505// if neither is specified, the lowest section by XY plane will be used as a start contour
1506// mesh can be transformed using xf parameter
1512
1513// generates G-Code for milling tool
1518
1519// interpolates several points lying on the same straight line with one move
1525
1526// interpolates given path with arcs
1532
1533// 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
1534// \param expandOffset defines how much the boundary is expanded
1535// \param expandOffset defines how much the boundary is shrinked after that
1540MRC_API MR_FaceBitSet *MR_smoothSelection(MR_Mesh *mesh, const MR_FaceBitSet *region, float expandOffset, float shrinkOffset);
1541
1542#ifdef __cplusplus
1543} // extern "C"
1544#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 MR_ConstantCuspParams * MR_ConstantCuspParams_MutableStaticDowncastFrom_MR_ToolPathParams(MR_ToolPathParams *object)
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_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 const MR_ConstantCuspParams * MR_ConstantCuspParams_StaticDowncastFrom_MR_ToolPathParams(const MR_ToolPathParams *object)
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 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)
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 include/MRCMisc/exports.h:11
struct MR_std_shared_ptr_MR_ObjectGcode MR_std_shared_ptr_MR_ObjectGcode
Definition std_shared_ptr_MR_ObjectGcode.h:20
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
Generated from class MR::Vector3f.
Definition MRVector3.h:47