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#include <stdint.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
17typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
18typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
19typedef struct MR_MeshPart MR_MeshPart; // Defined in `#include <MRCMesh/MRMeshPart.h>`.
20typedef struct MR_expected_MR_ToolPathResult_std_string MR_expected_MR_ToolPathResult_std_string; // Defined in `#include <MRCMisc/expected_MR_ToolPathResult_std_string.h>`.
21typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
22typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
23typedef struct MR_std_shared_ptr_MR_ObjectGcode MR_std_shared_ptr_MR_ObjectGcode; // Defined in `#include <MRCMisc/std_shared_ptr_MR_ObjectGcode.h>`.
24typedef struct MR_std_vector_MR_GCommand MR_std_vector_MR_GCommand; // Defined in `#include <MRCMisc/std_vector_MR_GCommand.h>`.
25typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
26typedef 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>`.
27
28
29typedef int32_t MR_BypassDirection;
30enum // MR_BypassDirection
31{
34};
35
41
47
50
53
54typedef int32_t MR_MoveType;
55enum // MR_MoveType
56{
62};
63
64typedef int32_t MR_ArcPlane;
65enum // MR_ArcPlane
66{
71};
72
74typedef struct MR_GCommand MR_GCommand;
75
78
79// radius of the milling tool
84
85// radius of the milling tool
89
90// radius of the milling tool
95
96// size of voxel needed to offset mesh
101
102// size of voxel needed to offset mesh
106
107// size of voxel needed to offset mesh
112
113// distance between sections built along Z axis
114// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
119
120// distance between sections built along Z axis
121// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
125
126// distance between sections built along Z axis
127// in Constant Cusp mode sectionStep should be bigger than voxelSize (x1.2 or more is recomended)
132
133// if distance to the next section is smaller than it, transition will be performed along the surface
134// otherwise transition will be through the safe plane
139
140// if distance to the next section is smaller than it, transition will be performed along the surface
141// otherwise transition will be through the safe plane
145
146// if distance to the next section is smaller than it, transition will be performed along the surface
147// otherwise transition will be through the safe plane
152
153// when the mill is moving down, it will be slowed down in this distance from mesh
158
159// when the mill is moving down, it will be slowed down in this distance from mesh
163
164// when the mill is moving down, it will be slowed down in this distance from mesh
169
170// when the mill is moving up, it will be slowed down in this distance from mesh
175
176// when the mill is moving up, it will be slowed down in this distance from mesh
180
181// when the mill is moving up, it will be slowed down in this distance from mesh
186
187// speed of slow movement down
192
193// speed of slow movement down
197
198// speed of slow movement down
203
204// speed of slow movement up
209
210// speed of slow movement up
214
215// speed of slow movement up
220
221// speed of regular milling
226
227// speed of regular milling
231
232// speed of regular milling
237
238// z-coordinate of plane where tool can move in any direction without touching the object
243
244// z-coordinate of plane where tool can move in any direction without touching the object
248
249// z-coordinate of plane where tool can move in any direction without touching the object
254
255// which direction isolines or sections should be passed in
260
261// which direction isolines or sections should be passed in
265
266// which direction isolines or sections should be passed in
271
272// mesh can be transformed using xf parameter
277
278// mesh can be transformed using xf parameter
282
283// mesh can be transformed using xf parameter
288
289// if true then a tool path for a flat milling tool will be generated
294
295// if true then a tool path for a flat milling tool will be generated
299
300// if true then a tool path for a flat milling tool will be generated
305
306// callback for reporting on progress
311
312// callback for reporting on progress
316
317// callback for reporting on progress
322
323// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
324// The area has the shape of a box.
325// Lacing specific only.
330
331// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
332// The area has the shape of a box.
333// Lacing specific only.
337
338// if > 0 - expand the trajectory creation area and create toolpath to mill excess material to make empty areas.
339// The area has the shape of a box.
340// Lacing specific only.
345
346// optional output, stores isolines without transits
351
352// optional output, stores isolines without transits
356
357// optional output, stores isolines without transits
362
363// optional output, polyline containing start vertices for isolines
368
369// optional output, polyline containing start vertices for isolines
373
374// optional output, polyline containing start vertices for isolines
379
380// start vertices on the offset mesh used for calcutating isolines
385
386// start vertices on the offset mesh used for calcutating isolines
390
391// start vertices on the offset mesh used for calcutating isolines
396
401
405
410
414
419
422MRC_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);
423
426
429
434
438
442
445
448
453
454// if true isolines will be processed from center point to the boundary (usually it means from up to down)
459
460// if true isolines will be processed from center point to the boundary (usually it means from up to down)
464
465// if true isolines will be processed from center point to the boundary (usually it means from up to down)
470
474
479
482
485
489
492
496
499
502
507
508// maximal deviation from given line
513
514// maximal deviation from given line
518
519// maximal deviation from given line
524
525// maximal length of the line
530
531// maximal length of the line
535
536// maximal length of the line
541
542// callback for reporting on progress
547
548// callback for reporting on progress
552
553// callback for reporting on progress
558
562
567
571
574
577
581
584
587
592
593// maximal deviation of arc from given path
598
599// maximal deviation of arc from given path
603
604// maximal deviation of arc from given path
609
610// maximal radius of the arc
615
616// maximal radius of the arc
620
621// maximal radius of the arc
626
627// callback for reporting on progress
632
633// callback for reporting on progress
637
638// callback for reporting on progress
643
647
652
656
659
662
666
669
672
677
678// type of command GX (G0, G1, etc). By default - G1
683
684// type of command GX (G0, G1, etc). By default - G1
688
689// type of command GX (G0, G1, etc). By default - G1
694
695// Place for comment
700
701// Place for comment
705
706// Place for comment
711
712// feedrate for move
716MRC_API const float *MR_GCommand_Get_feed(const MR_GCommand *_this);
717
718// feedrate for move
721MRC_API void MR_GCommand_Set_feed(MR_GCommand *_this, float value);
722
723// feedrate for move
728
729// coordinates of destination point
733MRC_API const float *MR_GCommand_Get_x(const MR_GCommand *_this);
734
735// coordinates of destination point
738MRC_API void MR_GCommand_Set_x(MR_GCommand *_this, float value);
739
740// coordinates of destination point
745
749MRC_API const float *MR_GCommand_Get_y(const MR_GCommand *_this);
750
753MRC_API void MR_GCommand_Set_y(MR_GCommand *_this, float value);
754
759
763MRC_API const float *MR_GCommand_Get_z(const MR_GCommand *_this);
764
767MRC_API void MR_GCommand_Set_z(MR_GCommand *_this, float value);
768
773
774// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
779
780// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
784
785// if moveType is ArcCW or ArcCCW center of the arc shoult be specified
790
794
799
802MRC_API MR_GCommand *MR_GCommand_ConstructFrom(MR_MoveType type, MR_ArcPlane arcPlane, float feed, float x, float y, float z, MR_Vector3f arcCenter);
803
805MRC_API const MR_GCommand *MR_GCommand_OffsetPtr(const MR_GCommand *ptr, ptrdiff_t i);
806
809
814
817
820
826
827// mesh after fixing undercuts and offset
832
833// mesh after fixing undercuts and offset
837
838// mesh after fixing undercuts and offset
843
844// selected region projected from the original mesh to the offset
849
850// selected region projected from the original mesh to the offset
854
855// selected region projected from the original mesh to the offset
860
861// constains type of movement and its feed
866
867// constains type of movement and its feed
871
872// constains type of movement and its feed
877
881
886
889MRC_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);
890
893
896
900
903
906
911
912// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
913// this toolpath is built from the parallel sections along Z-axis
914// mesh can be transformed using xf parameter
920
921// Slices are built along the axis defined by cutDirection argument (can be Axis::X or Axis::Y)
927
928// compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction )
929// this toolpath is built from geodesic parallels divercing from the given start point or from the bounaries of selected areas
930// if neither is specified, the lowest section by XY plane will be used as a start contour
931// mesh can be transformed using xf parameter
937
938// generates G-Code for milling tool
943
944// interpolates several points lying on the same straight line with one move
950
951// interpolates given path with arcs
957
958// 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
959// \param expandOffset defines how much the boundary is expanded
960// \param expandOffset defines how much the boundary is shrinked after that
965MRC_API MR_FaceBitSet *MR_smoothSelection(MR_Mesh *mesh, const MR_FaceBitSet *region, float expandOffset, float shrinkOffset);
966
967#ifdef __cplusplus
968} // extern "C"
969#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTreeBase.h:25
struct MR_MeshPart MR_MeshPart
Definition MRAABBTree.h:14
int32_t MR_Axis
Definition MRAxis.h:10
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:26
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:20
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
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 void MR_ToolPathParams_Set_isolines(MR_ToolPathParams *_this, MR_std_vector_std_vector_MR_Vector3f *value)
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 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 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)
int32_t MR_MoveType
Definition MRToolPath.h:54
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_ToolPathParams MR_ToolPathParams
Definition MRToolPath.h:40
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 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
Generated from class MR::LineInterpolationParams.
Definition MRToolPath.h:49
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 MR_ArcInterpolationParams * MR_ArcInterpolationParams_DefaultConstruct(void)
MRC_API MR_ConstantCuspParams * MR_ConstantCuspParams_AssignFromAnother(MR_ConstantCuspParams *_this, MR_PassBy _other_pass_by, MR_ConstantCuspParams *_other)
MRC_API void MR_ToolPathParams_Set_sectionStep(MR_ToolPathParams *_this, float value)
int32_t MR_ArcPlane
Definition MRToolPath.h:64
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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 MR_GCommand * MR_GCommand_ConstructFrom(MR_MoveType type, MR_ArcPlane arcPlane, float feed, float x, float y, float z, MR_Vector3f arcCenter)
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 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 MR_GCommand * MR_GCommand_DefaultConstruct(void)
struct MR_ConstantCuspParams MR_ConstantCuspParams
Definition MRToolPath.h:46
MRC_API const MR_ArcInterpolationParams * MR_ArcInterpolationParams_OffsetPtr(const MR_ArcInterpolationParams *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_FaceBitSet * MR_ToolPathResult_GetMutable_modifiedRegion(MR_ToolPathResult *_this)
MRC_API float * MR_ToolPathParams_GetMutable_retractFeed(MR_ToolPathParams *_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)
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_ToolPathParams * MR_ToolPathParams_OffsetMutablePtr(MR_ToolPathParams *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_std_vector_std_vector_MR_Vector3f ** MR_ToolPathParams_GetMutable_isolines(MR_ToolPathParams *_this)
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 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)
@ 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 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 MR_ToolPathParams * MR_ToolPathParams_DefaultConstruct(void)
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API float * MR_ToolPathParams_GetMutable_plungeFeed(MR_ToolPathParams *_this)
MRC_API MR_std_function_bool_from_float * MR_ArcInterpolationParams_GetMutable_cb(MR_ArcInterpolationParams *_this)
MRC_API MR_std_vector_std_vector_MR_Vector3f *const * MR_ToolPathParams_Get_isolines(const MR_ToolPathParams *_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 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_ArcInterpolationParams_Set_eps(MR_ArcInterpolationParams *_this, float value)
int32_t MR_BypassDirection
Definition MRToolPath.h:29
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 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_BypassDirection_CounterClockwise
Definition MRToolPath.h:33
@ MR_BypassDirection_Clockwise
Definition MRToolPath.h:32
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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_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 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 float * MR_GCommand_GetMutable_feed(MR_GCommand *_this)
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_MoveType * MR_GCommand_GetMutable_type(MR_GCommand *_this)
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_OffsetMutablePtr(MR_ArcInterpolationParams *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_ArcInterpolationParams * MR_ArcInterpolationParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_ArcInterpolationParams *_other)
MRC_API void MR_ToolPathParams_Set_toolpathExpansion(MR_ToolPathParams *_this, float value)
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)
@ MR_MoveType_FastLinear
Definition MRToolPath.h:58
@ MR_MoveType_ArcCCW
Definition MRToolPath.h:61
@ MR_MoveType_None
Definition MRToolPath.h:57
@ MR_MoveType_Linear
Definition MRToolPath.h:59
@ MR_MoveType_ArcCW
Definition MRToolPath.h:60
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 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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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
Generated from class MR::ArcInterpolationParams.
Definition MRToolPath.h:52
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_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:19
struct MR_ToolPathResult MR_ToolPathResult
Definition expected_MR_ToolPathResult_std_string.h:12
struct MR_expected_MR_ToolPathResult_std_string MR_expected_MR_ToolPathResult_std_string
Definition expected_MR_ToolPathResult_std_string.h:18
#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:17
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:36
Definition MRVector3.h:51