OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
FilamentMixer.hpp File Reference
#include <cstddef>
#include <limits>
#include <map>
#include <set>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for FilamentMixer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Slic3r::GradientAnchor
struct  Slic3r::GradientCurve

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/

Functions

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::compute_pchip_default_tangents (const std::vector< GradientAnchor > &pts)
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)
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)
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)
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)

Variables

constexpr double Slic3r::kGradientMinRatio = 0.1
constexpr double Slic3r::kGradientMaxRatio = 0.9

Class Documentation

◆ Slic3r::GradientAnchor

struct Slic3r::GradientAnchor
Class Members
double m_in = std::numeric_limits<double>::quiet_NaN()
double m_out = std::numeric_limits<double>::quiet_NaN()
double x = 0.0
double y = 0.0