OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::PreciseSeam::PreciseSeamWarnings Struct Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/GCode/PreciseSeam.hpp>

Collaboration diagram for Slic3r::PreciseSeam::PreciseSeamWarnings:

Classes

struct  ModifierUsage

Static Public Member Functions

static unsigned type_bit (ModelVolumeType type)
static void mark (std::atomic< unsigned > &mask, ModelVolumeType type)
static void set (std::atomic< bool > &flag)

Public Attributes

std::atomic< unsigned > multiple_intersections {0}
std::atomic< unsigned > full_containment {0}
std::atomic< unsigned > failed_types {0}
std::atomic< size_t > failed_fragments {0}
std::atomic< size_t > recovered_fragments {0}
std::unordered_map< const ModelVolume *, ModifierUsage > modifier_usage

Detailed Description


Class Documentation

◆ Slic3r::PreciseSeam::PreciseSeamWarnings::ModifierUsage

struct Slic3r::PreciseSeam::PreciseSeamWarnings::ModifierUsage
Collaboration diagram for Slic3r::PreciseSeam::PreciseSeamWarnings::ModifierUsage:
Class Members
atomic< bool > checked {false}
atomic< bool > fully_blocked {false}
atomic< bool > reached {false}

Member Function Documentation

◆ mark()

void Slic3r::PreciseSeam::PreciseSeamWarnings::mark ( std::atomic< unsigned > & mask,
ModelVolumeType type )
inlinestatic
77 {
78 const unsigned bit = type_bit(type);
79 if ((mask.load(std::memory_order_relaxed) & bit) == 0)
80 mask.fetch_or(bit, std::memory_order_relaxed);
81 }
static unsigned type_bit(ModelVolumeType type)
Definition PreciseSeam.hpp:70

References type_bit().

Referenced by Slic3r::PreciseSeam::insert_strong_seam_point(), and Slic3r::PreciseSeam::record_extraction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set()

void Slic3r::PreciseSeam::PreciseSeamWarnings::set ( std::atomic< bool > & flag)
inlinestatic
83 {
84 if (!flag.load(std::memory_order_relaxed))
85 flag.store(true, std::memory_order_relaxed);
86 }

Referenced by Slic3r::PreciseSeam::apply_weak_modifiers_to_perimeter(), and Slic3r::PreciseSeam::record_extraction().

Here is the caller graph for this function:

◆ type_bit()

unsigned Slic3r::PreciseSeam::PreciseSeamWarnings::type_bit ( ModelVolumeType type)
inlinestatic
71 {
72 assert(is_precise_seam(type));
73 return 1u << (int(type) - int(ModelVolumeType::PRECISE_SEAM_CENTER));
74 }
@ PRECISE_SEAM_CENTER
Definition Model.hpp:364
bool is_precise_seam(ModelVolumeType t)
Definition Model.hpp:373

References Slic3r::is_precise_seam(), and Slic3r::PRECISE_SEAM_CENTER.

Referenced by mark().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ failed_fragments

std::atomic<size_t> Slic3r::PreciseSeam::PreciseSeamWarnings::failed_fragments {0}
54{0}; // Total discarded fragments, for the log summary.

Referenced by Slic3r::PreciseSeam::detail::append_fragment().

◆ failed_types

std::atomic<unsigned> Slic3r::PreciseSeam::PreciseSeamWarnings::failed_types {0}
53{0}; // Types with at least one discarded fragment.

Referenced by Slic3r::PreciseSeam::record_extraction().

◆ full_containment

std::atomic<unsigned> Slic3r::PreciseSeam::PreciseSeamWarnings::full_containment {0}
52{0}; // Skipped for a perimeter fully inside: Center/Left/Right.

Referenced by Slic3r::PreciseSeam::insert_strong_seam_point().

◆ modifier_usage

std::unordered_map<const ModelVolume*, ModifierUsage> Slic3r::PreciseSeam::PreciseSeamWarnings::modifier_usage

◆ multiple_intersections

std::atomic<unsigned> Slic3r::PreciseSeam::PreciseSeamWarnings::multiple_intersections {0}
51{0}; // Center/Left/Right with several segments on a perimeter.

Referenced by Slic3r::PreciseSeam::insert_strong_seam_point().

◆ recovered_fragments

std::atomic<size_t> Slic3r::PreciseSeam::PreciseSeamWarnings::recovered_fragments {0}

The documentation for this struct was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/GCode/PreciseSeam.hpp