OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
libvgcode::WipeTowerHelper Class Reference
Collaboration diagram for libvgcode::WipeTowerHelper:

Public Member Functions

 WipeTowerHelper (const Slic3r::Print &print)
const std::vector< Slic3r::WipeTower::ToolChangeResult > & tool_change (size_t idx)
float get_angle () const
const Slic3r::Vec2f & get_position () const
size_t get_layers_count ()

Private Attributes

const Slic3r::Print & m_print
std::vector< Slic3r::WipeTower::ToolChangeResult > m_priming
std::vector< Slic3r::WipeTower::ToolChangeResult > m_final
Slic3r::Vec2f m_position { Slic3r::Vec2f::Zero() }
float m_angle { 0.0f }
size_t m_layers_count { 0 }

Detailed Description

Constructor & Destructor Documentation

◆ WipeTowerHelper()

libvgcode::WipeTowerHelper::WipeTowerHelper ( const Slic3r::Print & print)
inline
519 : m_print(print) {
520 const Slic3r::PrintConfig& config = m_print.config();
521 const Slic3r::WipeTowerData& wipe_tower_data = m_print.wipe_tower_data();
522 if (wipe_tower_data.priming && config.single_extruder_multi_material_priming) {
523 for (size_t i = 0; i < wipe_tower_data.priming.get()->size(); ++i) {
524 m_priming.emplace_back(wipe_tower_data.priming.get()->at(i));
525 }
526 }
527 if (wipe_tower_data.final_purge)
528 m_final.emplace_back(*wipe_tower_data.final_purge.get());
529
530 m_angle = print.model().wipe_tower.rotation / 180.0f * PI;
531 // ORCA/BBS: plate index
532 m_position = print.model().wipe_tower.positions[print.get_plate_index()].cast<float>();
533 m_layers_count = wipe_tower_data.tool_changes.size() + (m_priming.empty() ? 0 : 1);
534 }
double rotation
Definition Model.hpp:1598
std::vector< Vec2d > positions
Definition Model.hpp:1597
ModelWipeTower wipe_tower
Definition Model.hpp:1704
const Model & model() const
Definition PrintBase.hpp:420
int get_plate_index() const
Definition PrintBase.hpp:526
float m_angle
Definition LibVGCodeWrapper.cpp:552
std::vector< Slic3r::WipeTower::ToolChangeResult > m_priming
Definition LibVGCodeWrapper.cpp:549
const Slic3r::Print & m_print
Definition LibVGCodeWrapper.cpp:548
std::vector< Slic3r::WipeTower::ToolChangeResult > m_final
Definition LibVGCodeWrapper.cpp:550
size_t m_layers_count
Definition LibVGCodeWrapper.cpp:553
Slic3r::Vec2f m_position
Definition LibVGCodeWrapper.cpp:551
static constexpr float PI
Definition Types.hpp:17
std::unique_ptr< WipeTower::ToolChangeResult > final_purge
Definition Print.hpp:915
std::unique_ptr< std::vector< WipeTower::ToolChangeResult > > priming
Definition Print.hpp:913
std::vector< std::vector< WipeTower::ToolChangeResult > > tool_changes
Definition Print.hpp:914

References m_print, and Slic3r::WipeTowerData::priming.

Member Function Documentation

◆ get_angle()

float libvgcode::WipeTowerHelper::get_angle ( ) const
inline
543{ return m_angle; }

References m_angle.

Referenced by libvgcode::convert_wipe_tower_to_vertices().

Here is the caller graph for this function:

◆ get_layers_count()

size_t libvgcode::WipeTowerHelper::get_layers_count ( )
inline
545{ return m_layers_count; }

References m_layers_count.

Referenced by libvgcode::convert_wipe_tower_to_vertices().

Here is the caller graph for this function:

◆ get_position()

const Slic3r::Vec2f & libvgcode::WipeTowerHelper::get_position ( ) const
inline
544{ return m_position; }

References m_position.

Referenced by libvgcode::convert_wipe_tower_to_vertices().

Here is the caller graph for this function:

◆ tool_change()

const std::vector< Slic3r::WipeTower::ToolChangeResult > & libvgcode::WipeTowerHelper::tool_change ( size_t idx)
inline
536 {
537 const auto& tool_changes = m_print.wipe_tower_data().tool_changes;
538 return m_priming.empty() ?
539 ((idx == tool_changes.size()) ? m_final : tool_changes[idx]) :
540 ((idx == 0) ? m_priming : (idx == tool_changes.size() + 1) ? m_final : tool_changes[idx - 1]);
541 }

References m_final, m_priming, and m_print.

Referenced by libvgcode::convert_wipe_tower_to_vertices().

Here is the caller graph for this function:

Member Data Documentation

◆ m_angle

float libvgcode::WipeTowerHelper::m_angle { 0.0f }
private
552{ 0.0f };

Referenced by get_angle().

◆ m_final

std::vector<Slic3r::WipeTower::ToolChangeResult> libvgcode::WipeTowerHelper::m_final
private

Referenced by tool_change().

◆ m_layers_count

size_t libvgcode::WipeTowerHelper::m_layers_count { 0 }
private
553{ 0 };

Referenced by get_layers_count().

◆ m_position

Slic3r::Vec2f libvgcode::WipeTowerHelper::m_position { Slic3r::Vec2f::Zero() }
private
551{ Slic3r::Vec2f::Zero() };

Referenced by get_position().

◆ m_priming

std::vector<Slic3r::WipeTower::ToolChangeResult> libvgcode::WipeTowerHelper::m_priming
private

Referenced by tool_change().

◆ m_print

const Slic3r::Print& libvgcode::WipeTowerHelper::m_print
private

Referenced by WipeTowerHelper(), and tool_change().


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