OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
FillBase.cpp File Reference
#include <algorithm>
#include <cassert>
#include <cfloat>
#include <math.h>
#include <limits>
#include <cstdint>
#include <stdio.h>
#include <numeric>
#include <cmath>
#include <string>
#include <vector>
#include <utility>
#include <unordered_map>
#include <unordered_set>
#include <tuple>
#include "../AABBTreeLines.hpp"
#include "../ClipperUtils.hpp"
#include "../EdgeGrid.hpp"
#include "../Geometry.hpp"
#include "../Geometry/Circle.hpp"
#include "../Point.hpp"
#include "../PrintConfig.hpp"
#include "../Surface.hpp"
#include "../libslic3r.h"
#include "../VariableWidth.hpp"
#include "FillBase.hpp"
#include "libslic3r/Exception.hpp"
#include "libslic3r/Config.hpp"
#include "libslic3r/ExPolygon.hpp"
#include "libslic3r/ExtrusionEntity.hpp"
#include "libslic3r/ExtrusionEntityCollection.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "FillConcentric.hpp"
#include "FillSpiralInset.hpp"
#include "FillHoneycomb.hpp"
#include "Fill3DHoneycomb.hpp"
#include "FillGyroid.hpp"
#include "FillTpmsD.hpp"
#include "FillTpmsFK.hpp"
#include "FillPlanePath.hpp"
#include "FillLine.hpp"
#include "FillRectilinear.hpp"
#include "FillAdaptive.hpp"
#include "FillLightning.hpp"
#include "FillConcentricInternal.hpp"
#include "FillCrossHatch.hpp"
#include "libslic3r/Polyline.hpp"
#include "libslic3r/ShortestPath.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Utils.hpp"
#include "libslic3r/Flow.hpp"

Go to the source code of this file.

Classes

struct  Slic3r::ContourIntersectionPoint
struct  Slic3r::SegmentPoint
struct  Slic3r::BoundaryInfillGraph
struct  Slic3r::SupportArcCost

Namespaces

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

Functions

static void Slic3r::insert_gap_fill (const ThickPolylines &gaps, const Flow &flow, ExtrusionEntitiesPtr &entities)
static double Slic3r::closed_contour_distance_ccw (double param1, double param2, double contour_length)
static double Slic3r::closed_contour_distance_cw (double param1, double param2, double contour_length)
double Slic3r::path_length_along_contour_ccw (const ContourIntersectionPoint *cp1, const ContourIntersectionPoint *cp2, double contour_length)
std::pair< double, double > Slic3r::path_lengths_along_contour (const ContourIntersectionPoint *cp1, const ContourIntersectionPoint *cp2, double contour_length)
static void Slic3r::take_cw_full (Polyline &pl, const Points &contour, size_t idx_start, size_t idx_end)
static double Slic3r::take_cw_limited (Polyline &pl, const Points &contour, const std::vector< double > &params, size_t idx_start, size_t idx_end, double length_to_take)
static void Slic3r::take_ccw_full (Polyline &pl, const Points &contour, size_t idx_start, size_t idx_end)
static double Slic3r::take_ccw_limited (Polyline &pl, const Points &contour, const std::vector< double > &params, size_t idx_start, size_t idx_end, double length_to_take)
static void Slic3r::take (Polyline &pl1, const Polyline &pl2, const Points &contour, size_t idx_start, size_t idx_end, bool clockwise)
static void Slic3r::take (Polyline &pl1, const Polyline &pl2, const Points &contour, ContourIntersectionPoint *cp_start, ContourIntersectionPoint *cp_end, bool clockwise)
static void Slic3r::take_limited (Polyline &pl1, const Points &contour, const std::vector< double > &params, ContourIntersectionPoint *cp_start, ContourIntersectionPoint *cp_end, bool clockwise, double take_max_length, double line_half_width)
static SegmentPoint Slic3r::clip_start_segment_and_point (const Points &polyline, double distance)
static SegmentPoint Slic3r::clip_end_segment_and_point (const Points &polyline, double distance)
static bool Slic3r::line_rounded_thick_segment_collision (const Vec2d &line_a, const Vec2d &line_b, const Vec2d &segment_a, const Vec2d &segment_b, const double offset, std::pair< double, double > &out_interval)
static bool Slic3r::inside_interval (double low, double high, double p)
static bool Slic3r::interval_inside_interval (double outer_low, double outer_high, double inner_low, double inner_high, double epsilon)
static bool Slic3r::cyclic_interval_inside_interval (double outer_low, double outer_high, double inner_low, double inner_high, double length)
bool Slic3r::validate_boundary_intersections (const std::vector< std::vector< ContourIntersectionPoint * > > &boundary_intersections)
void Slic3r::mark_boundary_segments_touching_infill (const std::vector< Points > &boundary, const std::vector< std::vector< double > > &boundary_parameters, std::vector< std::vector< ContourIntersectionPoint * > > &boundary_intersections, const BoundingBox &boundary_bbox, const Polylines &infill, const double clip_distance, const double distance_colliding)
static void Slic3r::mark_boundary_segments_overlapping_infill (BoundaryInfillGraph &graph, const Polylines &infill, const double spacing)
BoundaryInfillGraph Slic3r::create_boundary_infill_graph (const Polylines &infill_ordered, const std::vector< const Polygon * > &boundary_src, const BoundingBox &bbox, const double spacing)
static void Slic3r::base_support_extend_infill_lines (Polylines &infill, BoundaryInfillGraph &graph, const double spacing, const FillParams &params)
static void Slic3r::emit_loops_in_band (coord_t left, coord_t right, const Points &contour, const std::vector< double > &contour_params, double tbegin, double tend, double min_length, Polylines &polylines_out)
static double Slic3r::evaluate_support_arch_cost (const Polyline &pl)
static std::vector< SupportArcCost > Slic3r::evaluate_support_arches (Polylines &infill, BoundaryInfillGraph &graph, const double spacing, const FillParams &params)
void Slic3r::multiline_fill (Polylines &polylines, const FillParams &params, float spacing)
void Slic3r::join_close_ends (Polylines &polylines, double max_gap, bool can_reverse)

Variables

static bool Slic3r::use_bridge_flow_initializer = Fill::use_bridge_flow(ipGrid)
static constexpr auto Slic3r::boundary_idx_unconnected = std::numeric_limits<size_t>::max()

Class Documentation

◆ Slic3r::SupportArcCost

struct Slic3r::SupportArcCost
Class Members
double cost { 0 }
bool open { false }
bool self_loop { false }