OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
TreeSupport.cpp File Reference
#include <boost/date_time/posix_time/ptime.hpp>
#include <boost/date_time/posix_time/posix_time_types.hpp>
#include <cassert>
#include <chrono>
#include <cstddef>
#include <cstdint>
#include <limits>
#include <map>
#include <list>
#include <cstdlib>
#include <cmath>
#include <deque>
#include <iterator>
#include <math.h>
#include "libslic3r/Point.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Surface.hpp"
#include "libslic3r/ExPolygon.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/Geometry.hpp"
#include "libslic3r/TriangleSelector.hpp"
#include "libslic3r/ExtrusionEntity.hpp"
#include "libslic3r/Flow.hpp"
#include "libslic3r/Polyline.hpp"
#include "libslic3r/Support/SupportParameters.hpp"
#include "libslic3r/Utils.hpp"
#include "format.hpp"
#include "ClipperUtils.hpp"
#include "Fill/FillBase.hpp"
#include "I18N.hpp"
#include "Layer.hpp"
#include "MinimumSpanningTree.hpp"
#include "Print.hpp"
#include "ShortestPath.hpp"
#include "SupportCommon.hpp"
#include "TreeSupportCommon.hpp"
#include "TreeSupport.hpp"
#include "TreeSupport3D.hpp"
#include "BeltFloorContext.hpp"
#include "libslic3r/libslic3r.h"
#include <libnest2d/backends/libslic3r/geometries.hpp>
#include <libnest2d/placers/nfpplacer.hpp>
#include <string>
#include <sstream>
#include <ratio>
#include <memory>
#include <set>
#include <mutex>
#include <tbb/blocked_range.h>
#include <tbb/concurrent_unordered_set.h>
#include <tbb/concurrent_vector.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_for_each.h>
#include <boost/log/trivial.hpp>
#include <algorithm>
#include <vector>
#include <unordered_set>
#include <utility>
#include <tuple>
#include <unordered_map>
#include <tbb/concurrent_unordered_map.h>
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/Config.hpp"
#include "libslic3r/ExtrusionEntityCollection.hpp"
#include "libslic3r/Fill/Lightning/Layer.hpp"
#include "libslic3r/Model.hpp"
#include "libslic3r/SurfaceCollection.hpp"

Go to the source code of this file.

Classes

class  Slic3r::TreeSupportProfiler

Namespaces

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

Macros

#define M_PI   3.1415926535897932384626433832795
#define SIGN(x)
#define TAU   (2.0 * M_PI)
#define NO_INDEX   (std::numeric_limits<unsigned int>::max())
#define USE_SUPPORT_3D   0
#define unscale_(val)
#define SUPPORT_SURFACES_OFFSET_PARAMETERS   jtSquare, 0.

Enumerations

enum  Slic3r::TreeSupportStage {
  Slic3r::STAGE_DETECT_OVERHANGS , Slic3r::STAGE_GENERATE_CONTACT_NODES , Slic3r::STAGE_DROP_DOWN_NODES , Slic3r::STAGE_DRAW_CIRCLES ,
  Slic3r::STAGE_GENERATE_TOOLPATHS , Slic3r::STAGE_MinimumSpanningTree , Slic3r::STAGE_GET_AVOIDANCE , Slic3r::STAGE_projection_onto_ex ,
  Slic3r::STAGE_get_collision , Slic3r::STAGE_intersection_ln , Slic3r::STAGE_total , Slic3r::NUM_STAGES
}

Functions

double Slic3r::dot_with_unscale (const Point a, const Point b)
double Slic3r::vsize2_with_unscale (const Point pt)
Point Slic3r::turn90_ccw (const Point pt)
Point Slic3r::normal (Point pt, double scale)
Polygons Slic3r::collect_region_slices_by_type (const Layer &layer, SurfaceType surface_type)
Lines Slic3r::spanning_tree_to_lines (const std::vector< MinimumSpanningTree > &spanning_trees)
static bool Slic3r::move_inside_expoly (const ExPolygon &polygon, Point &from, double distance=0, double max_move_distance=std::numeric_limits< double >::max())
static bool Slic3r::move_inside_expolys (const ExPolygons &polygons, Point &from, double distance, double max_move_distance)
static Point Slic3r::find_closest_ex (Point from, const ExPolygons &polygons)
static bool Slic3r::move_outside_expolys (const ExPolygons &polygons, Point &from, double distance, double max_move_distance)
static bool Slic3r::is_inside_ex (const ExPolygon &polygon, const Point &pt)
static bool Slic3r::is_inside_ex (const ExPolygons &polygons, const Point &pt)
static bool Slic3r::move_out_expolys (const ExPolygons &polygons, Point &from, double distance, double max_move_distance)
static Point Slic3r::bounding_box_middle (const BoundingBox &bbox)
static BoundingBox Slic3r::fill_expolygon_generate_paths (ExtrusionEntitiesPtr &dst, ExPolygon &expolygon, Fill *filler, const FillParams &fill_params, ExtrusionRole role, const Flow &flow)
static std::vector< BoundingBox > Slic3r::fill_expolygons_generate_paths (ExtrusionEntitiesPtr &dst, ExPolygons &expolygons, Fill *filler, const FillParams &fill_params, ExtrusionRole role, const Flow &flow)
static void Slic3r::_make_loops (ExtrusionEntitiesPtr &loops_entities, ExPolygons &support_area, ExtrusionRole role, size_t wall_count, const Flow &flow)
static void Slic3r::make_perimeter_and_inner_brim (ExtrusionEntitiesPtr &dst, const ExPolygon &support_area, size_t wall_count, const Flow &flow, ExtrusionRole role)
static void Slic3r::make_perimeter_and_infill (ExtrusionEntitiesPtr &dst, const ExPolygon &support_area, size_t wall_count, const Flow &flow, ExtrusionRole role, Fill *filler_support, double support_density, bool infill_first=true)
ExPolygons Slic3r::avoid_object_remove_extra_small_parts (const ExPolygon &expoly, const ExPolygons &avoid_region)

Variables

TreeSupportProfiler Slic3r::profiler

Macro Definition Documentation

◆ M_PI

#define M_PI   3.1415926535897932384626433832795

◆ NO_INDEX

#define NO_INDEX   (std::numeric_limits<unsigned int>::max())

◆ SIGN

#define SIGN ( x)
Value:
(x>=0?1:-1)

◆ SUPPORT_SURFACES_OFFSET_PARAMETERS

#define SUPPORT_SURFACES_OFFSET_PARAMETERS   jtSquare, 0.

◆ TAU

#define TAU   (2.0 * M_PI)

◆ unscale_

#define unscale_ ( val)
Value:
((val) * SCALING_FACTOR)
double SCALING_FACTOR
Definition libslic3r.cpp:3

◆ USE_SUPPORT_3D

#define USE_SUPPORT_3D   0