OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::CartesianKinematics Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/GCode/MachineKinematics.hpp>

Inheritance diagram for Slic3r::CartesianKinematics:
Collaboration diagram for Slic3r::CartesianKinematics:

Public Member Functions

Vec3d to_machine (const Vec3d &p) const override
bool must_emit_all_axes () const override
bool suppress_lift_at_unknown_position () const override
bool supports_arc_moves () const override
void set_axis_remap (int rx, int ry, int rz) override
void set_build_volume_max (const Vec3d &max) override
bool has_axis_remap () const

Protected Member Functions

Vec3d apply_axis_remap (const Vec3d &pos) const

Protected Attributes

int m_remap_x { 0 }
int m_remap_y { 1 }
int m_remap_z { 2 }
Vec3d m_build_vol_max { Vec3d::Zero() }

Detailed Description

Member Function Documentation

◆ apply_axis_remap()

Vec3d Slic3r::CartesianKinematics::apply_axis_remap ( const Vec3d & pos) const
protected
8{
9 if (!has_axis_remap())
10 return pos;
11 auto remap = [this, &pos](int r) -> double {
12 int axis = r % 3;
13 if (r < 3) return pos[axis];
14 if (r < 6) return -pos[axis];
15 return m_build_vol_max[axis] - pos[axis];
16 };
17 return { remap(m_remap_x), remap(m_remap_y), remap(m_remap_z) };
18}
int m_remap_z
Definition MachineKinematics.hpp:86
bool has_axis_remap() const
Definition MachineKinematics.hpp:78
int m_remap_x
Definition MachineKinematics.hpp:84
int m_remap_y
Definition MachineKinematics.hpp:85
Vec3d m_build_vol_max
Definition MachineKinematics.hpp:87
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

References has_axis_remap(), m_build_vol_max, m_remap_x, m_remap_y, and m_remap_z.

Referenced by Slic3r::BeltKinematics::to_machine(), and to_machine().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ has_axis_remap()

bool Slic3r::CartesianKinematics::has_axis_remap ( ) const
inline
79 { return m_remap_x != 0 || m_remap_y != 1 || m_remap_z != 2; }

References m_remap_x, m_remap_y, and m_remap_z.

Referenced by apply_axis_remap(), must_emit_all_axes(), and suppress_lift_at_unknown_position().

Here is the caller graph for this function:

◆ must_emit_all_axes()

bool Slic3r::CartesianKinematics::must_emit_all_axes ( ) const
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

65{ return this->has_axis_remap(); }

References has_axis_remap().

Here is the call graph for this function:

◆ set_axis_remap()

void Slic3r::CartesianKinematics::set_axis_remap ( int rx,
int ry,
int rz )
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

75 { m_remap_x = rx; m_remap_y = ry; m_remap_z = rz; }

References m_remap_x, m_remap_y, and m_remap_z.

◆ set_build_volume_max()

void Slic3r::CartesianKinematics::set_build_volume_max ( const Vec3d & max)
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

76{ m_build_vol_max = max; }

References m_build_vol_max.

◆ supports_arc_moves()

bool Slic3r::CartesianKinematics::supports_arc_moves ( ) const
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

72{ return m_remap_x == 0 && m_remap_y == 1; }

References m_remap_x, and m_remap_y.

◆ suppress_lift_at_unknown_position()

bool Slic3r::CartesianKinematics::suppress_lift_at_unknown_position ( ) const
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

66{ return this->has_axis_remap(); }

References has_axis_remap().

Here is the call graph for this function:

◆ to_machine()

Vec3d Slic3r::CartesianKinematics::to_machine ( const Vec3d & p) const
overridevirtual

Implements Slic3r::MachineKinematics.

21{
22 return this->apply_axis_remap(p);
23}
Vec3d apply_axis_remap(const Vec3d &pos) const
Definition MachineKinematics.cpp:7

References apply_axis_remap().

Here is the call graph for this function:

Member Data Documentation

◆ m_build_vol_max

Vec3d Slic3r::CartesianKinematics::m_build_vol_max { Vec3d::Zero() }
protected
87{ Vec3d::Zero() };

Referenced by apply_axis_remap(), and set_build_volume_max().

◆ m_remap_x

int Slic3r::CartesianKinematics::m_remap_x { 0 }
protected

◆ m_remap_y

int Slic3r::CartesianKinematics::m_remap_y { 1 }
protected

◆ m_remap_z

int Slic3r::CartesianKinematics::m_remap_z { 2 }
protected
86{ 2 };

Referenced by apply_axis_remap(), has_axis_remap(), and set_axis_remap().


The documentation for this class was generated from the following files: