OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
libvgcode::ExtrusionRoles Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libvgcode/src/ExtrusionRoles.hpp>

Collaboration diagram for libvgcode::ExtrusionRoles:

Classes

struct  Item

Public Member Functions

void add (EGCodeExtrusionRole role, const std::array< float, TIME_MODES_COUNT > &times)
std::size_t get_roles_count () const
std::vector< EGCodeExtrusionRole > get_roles () const
float get_time (EGCodeExtrusionRole role, ETimeMode mode) const
void reset ()

Private Attributes

std::map< EGCodeExtrusionRole, Item > m_items

Detailed Description


Class Documentation

◆ libvgcode::ExtrusionRoles::Item

struct libvgcode::ExtrusionRoles::Item
Collaboration diagram for libvgcode::ExtrusionRoles::Item:
Class Members
array< float, TIME_MODES_COUNT > times

Member Function Documentation

◆ add()

void libvgcode::ExtrusionRoles::add ( EGCodeExtrusionRole role,
const std::array< float, TIME_MODES_COUNT > & times )
15{
16 auto role_it = m_items.find(role);
17 if (role_it == m_items.end())
18 role_it = m_items.insert(std::make_pair(role, Item())).first;
19
20 for (std::size_t i = 0; i < TIME_MODES_COUNT; ++i) {
21 role_it->second.times[i] += times[i];
22 }
23}
std::map< EGCodeExtrusionRole, Item > m_items
Definition ExtrusionRoles.hpp:34
Definition ExtrusionRoles.hpp:21
static constexpr std::size_t TIME_MODES_COUNT
Definition Types.hpp:206

References m_items, and libvgcode::TIME_MODES_COUNT.

◆ get_roles()

std::vector< EGCodeExtrusionRole > libvgcode::ExtrusionRoles::get_roles ( ) const
26{
27 std::vector<EGCodeExtrusionRole> ret;
28 ret.reserve(m_items.size());
29 for (const auto& [role, item] : m_items) {
30 ret.emplace_back(role);
31 }
32 return ret;
33}

References m_items.

◆ get_roles_count()

std::size_t libvgcode::ExtrusionRoles::get_roles_count ( ) const
inline
27{ return m_items.size(); }

References m_items.

◆ get_time()

float libvgcode::ExtrusionRoles::get_time ( EGCodeExtrusionRole role,
ETimeMode mode ) const
36{
37 const auto role_it = m_items.find(role);
38 if (role_it == m_items.end())
39 return 0.0f;
40
41 return (mode < ETimeMode::COUNT) ? role_it->second.times[static_cast<std::size_t>(mode)] : 0.0f;
42}
@ COUNT
Definition Types.hpp:203

References libvgcode::COUNT, and m_items.

◆ reset()

void libvgcode::ExtrusionRoles::reset ( )
inline
31{ m_items.clear(); }

References m_items.

Member Data Documentation

◆ m_items

std::map<EGCodeExtrusionRole, Item> libvgcode::ExtrusionRoles::m_items
private

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