OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::FilamentColor Struct Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/EncodedFilament.hpp>

Collaboration diagram for Slic3r::FilamentColor:

Public Types

enum class  ColorType : char { SINGLE_CLR = 0 , MULTI_CLR , GRADIENT_CLR }

Public Member Functions

size_t ColorCount () const noexcept
const std::vector< wxColour > & GetColors () const noexcept
void AddColor (const wxColour &color)
void EndSet (int ctype)
bool operator< (const FilamentColor &other) const

Public Attributes

ColorType m_color_type = ColorType::SINGLE_CLR
std::set< wxColour, wxColorSorter > m_colors

Private Attributes

std::vector< wxColour > m_color_list

Detailed Description

Member Enumeration Documentation

◆ ColorType

enum class Slic3r::FilamentColor::ColorType : char
strong
Enumerator
SINGLE_CLR 
MULTI_CLR 
GRADIENT_CLR 
79 {
80 SINGLE_CLR = 0, // single color filament
81 MULTI_CLR, // multi-color filament
82 GRADIENT_CLR, // gradient filament
83 };

Member Function Documentation

◆ AddColor()

void Slic3r::FilamentColor::AddColor ( const wxColour & color)
inline
93 {
94 if (m_colors.insert(color).second) m_color_list.push_back(color);
95 }
std::vector< wxColour > m_color_list
Definition EncodedFilament.hpp:98
std::set< wxColour, wxColorSorter > m_colors
Definition EncodedFilament.hpp:86

References m_color_list, and m_colors.

Referenced by Slic3r::FilamentColorCodeQuery::LoadFromLocal().

Here is the caller graph for this function:

◆ ColorCount()

size_t Slic3r::FilamentColor::ColorCount ( ) const
inlinenoexcept
89{ return m_colors.size(); }

References m_colors.

Referenced by Slic3r::GUI::collect_preset_color_items(), Slic3r::GUI::FilamentPickerDialog::CreateColorBitmap(), operator<(), and Slic3r::GUI::FilamentPickerDialog::SetupLabelsContent().

Here is the caller graph for this function:

◆ EndSet()

void Slic3r::FilamentColor::EndSet ( int ctype)
inline
103 {
104 if (m_colors.size() < 2)
105 {
107 }
108 else
109 {
110 if (ctype == 0)
111 {
113 }
114 else
115 {
117 }
118 }
119 }
@ MULTI_CLR
Definition EncodedFilament.hpp:81
@ GRADIENT_CLR
Definition EncodedFilament.hpp:82
@ SINGLE_CLR
Definition EncodedFilament.hpp:80
ColorType m_color_type
Definition EncodedFilament.hpp:85

References GRADIENT_CLR, m_color_type, m_colors, MULTI_CLR, and SINGLE_CLR.

Referenced by Slic3r::GUI::PlaterPresetComboBox::get_cur_color_info(), Slic3r::GUI::AMSMaterialsSetting::set_color(), and Slic3r::GUI::AMSMaterialsSetting::set_colors().

Here is the caller graph for this function:

◆ GetColors()

const std::vector< wxColour > & Slic3r::FilamentColor::GetColors ( ) const
inlinenoexcept
91{ return m_color_list; }

References m_color_list.

Referenced by Slic3r::GUI::collect_preset_color_items().

Here is the caller graph for this function:

◆ operator<()

bool Slic3r::FilamentColor::operator< ( const FilamentColor & other) const
inline
122 {
123 if (ColorCount() != other.ColorCount()) { return ColorCount() < other.ColorCount(); };
124 if (m_color_type != other.m_color_type) { return m_color_type < other.m_color_type; }
125 if (m_colors == other.m_colors) { return false;}
126
127 // Compare colors in HSV format
128 auto lhs_it = m_colors.begin();
129 auto rhs_it = other.m_colors.begin();
130 while ((lhs_it != m_colors.end()))
131 {
132 ColourHSV ha = wxColourToHSV(*lhs_it);
133 ColourHSV hb = wxColourToHSV(*rhs_it);
134 if (ha.h != hb.h) return ha.h < hb.h;
135 if (ha.s != hb.s) return ha.s < hb.s;
136 if (ha.v != hb.v) return ha.v < hb.v;
137
138 int lhs_alpha = lhs_it->Alpha();
139 int rhs_alpha = rhs_it->Alpha();
140 if (lhs_alpha != rhs_alpha) return lhs_alpha < rhs_alpha;
141
142 lhs_it++;
143 rhs_it++;
144 }
145
146 return false;
147 }
ColourHSV wxColourToHSV(const wxColour &c)
Definition EncodedFilament.hpp:33
size_t ColorCount() const noexcept
Definition EncodedFilament.hpp:89

References ColorCount(), Slic3r::ColourHSV::h, m_color_type, m_colors, Slic3r::ColourHSV::s, Slic3r::ColourHSV::v, and Slic3r::wxColourToHSV().

Here is the call graph for this function:

Member Data Documentation

◆ m_color_list

std::vector<wxColour> Slic3r::FilamentColor::m_color_list
private

Referenced by AddColor(), and GetColors().

◆ m_color_type

◆ m_colors


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