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

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

Inheritance diagram for Slic3r::BeltKinematics:
Collaboration diagram for Slic3r::BeltKinematics:

Public Member Functions

 BeltKinematics (const PrintConfig &config, bool world_coordinates=false)
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() }

Private Attributes

BeltBackTransform m_back_transform
MachineFrameTransform m_machine_frame
bool m_world_coordinates { false }

Detailed Description

Constructor & Destructor Documentation

◆ BeltKinematics()

Slic3r::BeltKinematics::BeltKinematics ( const PrintConfig & config,
bool world_coordinates = false )
explicit
11 : m_world_coordinates(world_coordinates)
12{
13 m_back_transform.init_from_config(config);
14 m_machine_frame.init_from_config(config);
15}
bool m_world_coordinates
Definition BeltKinematics.hpp:47
MachineFrameTransform m_machine_frame
Definition BeltKinematics.hpp:46
BeltBackTransform m_back_transform
Definition BeltKinematics.hpp:45

References m_back_transform, m_machine_frame, and m_world_coordinates.

Member Function Documentation

◆ apply_axis_remap()

Vec3d Slic3r::CartesianKinematics::apply_axis_remap ( const Vec3d & pos) const
protectedinherited
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
inlineinherited
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::BeltKinematics::must_emit_all_axes ( ) const
inlineoverridevirtual

Implements Slic3r::MachineKinematics.

38{ return true; }

◆ set_axis_remap()

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

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)
inlineoverridevirtualinherited

Implements Slic3r::MachineKinematics.

76{ m_build_vol_max = max; }

References m_build_vol_max.

◆ supports_arc_moves()

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

Implements Slic3r::MachineKinematics.

42{ return false; }

◆ suppress_lift_at_unknown_position()

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

Implements Slic3r::MachineKinematics.

39{ return true; }

◆ to_machine()

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

Implements Slic3r::MachineKinematics.

18{
19 const Vec3d after_back = m_world_coordinates ? p : m_back_transform.apply(p);
20 const Vec3d after_remap = this->apply_axis_remap(after_back);
21 return m_machine_frame.apply(after_remap);
22}
Vec3d apply_axis_remap(const Vec3d &pos) const
Definition MachineKinematics.cpp:7
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition Point.hpp:68

References Slic3r::CartesianKinematics::apply_axis_remap(), m_back_transform, m_machine_frame, and m_world_coordinates.

Here is the call graph for this function:

Member Data Documentation

◆ m_back_transform

BeltBackTransform Slic3r::BeltKinematics::m_back_transform
private

Referenced by BeltKinematics(), and to_machine().

◆ m_build_vol_max

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

Referenced by apply_axis_remap(), and set_build_volume_max().

◆ m_machine_frame

MachineFrameTransform Slic3r::BeltKinematics::m_machine_frame
private

Referenced by BeltKinematics(), and to_machine().

◆ m_remap_x

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

◆ m_remap_y

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

◆ m_remap_z

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

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

◆ m_world_coordinates

bool Slic3r::BeltKinematics::m_world_coordinates { false }
private
47{ false };

Referenced by BeltKinematics(), and to_machine().


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