OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
FilamentMixer.cpp File Reference
#include "FilamentMixer.hpp"
#include <algorithm>
#include <cassert>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <exception>
#include <limits>
#include <map>
#include <set>
#include <sstream>
#include <numeric>
#include <boost/log/trivial.hpp>
#include <string>
#include <vector>
#include <utility>
#include "ColorDecomposeRecipe.hpp"
#include "Config.hpp"
#include "I18N.hpp"
#include "format.hpp"
#include "FilamentMixerModel.hpp"
#include "LocalesUtils.hpp"
Include dependency graph for FilamentMixer.cpp:

Go to the source code of this file.

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  Slic3r::anonymous_namespace{FilamentMixer.cpp}

Functions

float Slic3r::anonymous_namespace{FilamentMixer.cpp}::clamp01 (float x)
float Slic3r::anonymous_namespace{FilamentMixer.cpp}::srgb_to_linear (float x)
float Slic3r::anonymous_namespace{FilamentMixer.cpp}::linear_to_srgb (float x)
unsigned char Slic3r::anonymous_namespace{FilamentMixer.cpp}::to_u8 (float x)
float Slic3r::anonymous_namespace{FilamentMixer.cpp}::to_f01 (unsigned char x)
void Slic3r::filament_mixer_lerp (unsigned char r1, unsigned char g1, unsigned char b1, unsigned char r2, unsigned char g2, unsigned char b2, float t, unsigned char *out_r, unsigned char *out_g, unsigned char *out_b)
void Slic3r::filament_mixer_lerp_float (float r1, float g1, float b1, float r2, float g2, float b2, float t, float *out_r, float *out_g, float *out_b)
void Slic3r::filament_mixer_lerp_linear_float (float r1, float g1, float b1, float r2, float g2, float b2, float t, float *out_r, float *out_g, float *out_b)
static bool Slic3r::parse_hex (const std::string &hex, unsigned char &r, unsigned char &g, unsigned char &b)
std::string Slic3r::blend_color (const std::string &hex_a, const std::string &hex_b, float ratio_b)
std::string Slic3r::blend_color_multi (const std::vector< std::string > &hex_colors, const std::vector< int > &weights)
std::vector< unsigned int > Slic3r::parse_mixed_components (const std::string &str)
double Slic3r::anonymous_namespace{FilamentMixer.cpp}::parse_tangent_token (const std::string &tok)
std::vector< std::string > Slic3r::anonymous_namespace{FilamentMixer.cpp}::split_commas (const std::string &seg)
std::vector< double > Slic3r::compute_pchip_default_tangents (const std::vector< GradientAnchor > &pts)
GradientCurve Slic3r::parse_gradient_curve (const std::string &s)
std::string Slic3r::serialize_gradient_curve (const GradientCurve &c)
double Slic3r::sample_gradient_curve (const GradientCurve &c, double t)
std::vector< double > Slic3r::parse_mixed_ratios (const std::string &str, size_t n_components)
std::string Slic3r::format_mixed_components (const std::vector< unsigned int > &components)
std::string Slic3r::format_mixed_ratios (const std::vector< int > &weights)
int Slic3r::find_fixed_mixed_filament (const ConfigBase &project_config, const std::vector< unsigned int > &components, const std::vector< int > &weights)
bool Slic3r::has_any_mixed_filament (const std::vector< unsigned char > &is_mixed)
std::vector< size_t > Slic3r::check_mixed_filament_integrity (const std::vector< unsigned char > &is_mixed, const std::vector< std::string > &comp_strs, size_t num_physical)
std::vector< unsigned int > Slic3r::expand_mixed_filaments (const std::vector< unsigned int > &extruders_0based, const std::vector< unsigned char > &is_mixed, const std::vector< std::string > &comp_strs)
void Slic3r::remap_mixed_components_on_delete (const std::vector< unsigned char > &is_mixed, std::vector< std::string > &comp_strs, unsigned int del_1based)
std::vector< size_t > Slic3r::check_mixed_filament_type_consistency (const std::vector< unsigned char > &is_mixed, const std::vector< std::string > &comp_strs, const std::vector< std::string > &filament_types)
void Slic3r::expand_mixed_slots_in_unprintables (std::vector< std::set< int > > &unprintables, const std::vector< unsigned char > &is_mixed, const std::vector< std::string > &comp_strs)
void Slic3r::sanitize_mixed_gradient_curve_array (std::vector< std::string > &vals)
bool Slic3r::try_parse_mixed_components_strict (const std::string &str, std::vector< unsigned int > &components, std::string &err)
bool Slic3r::try_parse_mixed_ratios_strict (const std::string &str, size_t n_components, std::string &err)
bool Slic3r::validate_gradient_range_strict (const std::string &str, std::string &err)
static void Slic3r::append_error (std::map< std::string, std::string > &errors, const std::string &key, const std::string &msg)
static bool Slic3r::has_mixed_sub_params_specified (const std::vector< std::string > &comp_strs, const std::vector< std::string > &ratio_strs, const std::vector< unsigned char > &gradient_flags)
static bool Slic3r::mixed_string_array_was_specified (const std::vector< std::string > &vals)
static bool Slic3r::mixed_bool_array_was_specified (const std::vector< unsigned char > &vals)
static void Slic3r::check_mixed_array_size_required (std::map< std::string, std::string > &errors, const std::string &opt_key, size_t actual_size, size_t expected_size)
std::map< std::string, std::string > Slic3r::validate_mixed_filament_params (const std::vector< unsigned char > &is_mixed, const std::vector< std::string > &comp_strs, const std::vector< std::string > &ratio_strs, const std::vector< unsigned char > &gradient_flags, const std::vector< std::string > &gradient_range_strs, const std::vector< std::string > &gradient_curve_strs)