libslic3r
Library for generating gcode from 3d models
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Slic3r Namespace Reference

Namespaces

 Geometry
 
 IO
 

Classes

class  _area_comp
 
class  AvoidCrossingPerimeters
 
class  BoundingBox
 
class  BoundingBox3Base
 
class  BoundingBoxBase
 
class  BoundingBoxf
 
class  BoundingBoxf3
 
class  BridgeDetector
 
struct  Chaining
 
class  CLIConfig
 
class  CLIConfigDef
 
class  Config
 
class  ConfigBase
 An abstract configuration store. More...
 
class  ConfigDef
 
class  ConfigOption
 Public interface for configuration options. More...
 
class  ConfigOptionBool
 Represents a boolean flag. More...
 
class  ConfigOptionBools
 
class  ConfigOptionDef
 Definition of a configuration value for the purpose of GUI presentation, editing, value mapping and config file handling. More...
 
class  ConfigOptionEnum
 Templated enumeration representation. More...
 
class  ConfigOptionEnumGeneric
 Generic enum configuration value. More...
 
class  ConfigOptionFloat
 
class  ConfigOptionFloatOrPercent
 
class  ConfigOptionFloats
 Vector form of template specialization for floating point numbers. More...
 
class  ConfigOptionInt
 
class  ConfigOptionInts
 
class  ConfigOptionPercent
 Specialized floating point class to represent some percentage value of another numeric configuration option. More...
 
class  ConfigOptionPoint
 Configuration option to store a 2D (x,y) tuple. More...
 
class  ConfigOptionPoint3
 Configuration option to store a 3D (x,y,z) tuple. More...
 
class  ConfigOptionPoints
 
class  ConfigOptionSingle
 Value of a single valued option (bool, int, float, string, point, enum) More...
 
class  ConfigOptionString
 
class  ConfigOptionStrings
 semicolon-separated strings More...
 
class  ConfigOptionVector
 Value of a vector valued option (bools, ints, floats, strings, points), template. More...
 
class  ConfigOptionVectorBase
 Virtual base class, represents value of a vector valued option (bools, ints, floats, strings, points) More...
 
class  CoolingBuffer
 
class  DynamicConfig
 
class  DynamicPrintConfig
 
class  ExPolygon
 
class  ExPolygonCollection
 
class  Extruder
 
class  ExtrusionEntity
 
class  ExtrusionEntityCollection
 
class  ExtrusionLoop
 
class  ExtrusionPath
 
class  Fill
 Abstract base class for the infill generators. More...
 
class  Fill3DHoneycomb
 
class  FillAlignedRectilinear
 
class  FillArchimedeanChords
 
class  FillConcentric
 
class  FillCubic
 
class  FillGrid
 
class  FillGyroid
 
class  FillHilbertCurve
 
class  FillHoneycomb
 
class  FillOctagramSpiral
 
class  FillPlanePath
 
class  FillRectilinear
 
class  FillStars
 
class  FillTriangles
 
class  Flow
 Represents material flow; provides methods to predict material spacing. More...
 
class  FullPrintConfig
 
class  GCode
 
class  GCodeConfig
 
class  GCodeReader
 
class  GCodeTimeEstimator
 
class  GCodeWriter
 
class  HostConfig
 
class  IntersectionLine
 
class  IntersectionPoint
 
class  InvalidConfigOption
 Exception class to handle config options that don't exist. More...
 
class  InvalidObjectException
 
class  InvalidOptionType
 Exception class for type mismatches. More...
 
class  InvalidOptionValue
 
class  Layer
 
class  LayerHeightSpline
 
class  LayerRegion
 
class  Line
 
class  Linef
 
class  Linef3
 
class  Log
 
struct  mesh_stats
 Interface to available statistics from the underlying mesh. More...
 
class  Model
 
class  ModelInstance
 
class  ModelMaterial
 
class  ModelObject
 
class  ModelVolume
 
class  MotionPlanner
 
class  MotionPlannerEnv
 
class  MotionPlannerGraph
 
class  MultiPoint
 
class  OozePrevention
 
class  PerimeterGenerator
 
class  PerimeterGeneratorLoop
 
class  PlaceholderParser
 
class  Point
 
class  Point3
 
class  Pointf
 
class  Pointf3
 
class  Polygon
 
class  Polyline
 
class  PolylineCollection
 
class  Print
 
class  PrintConfig
 
class  PrintConfigBase
 
class  PrintConfigDef
 
class  PrintGCode
 
class  PrintObject
 
class  PrintObjectConfig
 
class  PrintRegion
 
class  PrintRegionConfig
 
class  PrintState
 
class  SLAPrint
 
class  SLAPrintConfig
 
class  SlicingAdaptive
 
class  SpiralVase
 
class  StaticConfig
 
class  StaticPrintConfig
 
class  SupportLayer
 
class  SupportMaterial
 
class  Surface
 
class  SurfaceCollection
 
struct  SurfaceGroupAttrib
 
class  SVG
 
class  ThickLine
 
class  ThickPolyline
 
struct  toolpaths_params
 Struct for carrying the toolpaths parameters needed for each thread. More...
 
class  TriangleMesh
 
class  TriangleMeshSlicer
 Class for processing TriangleMesh objects. More...
 
class  UnknownOptionException
 Specialization of std::exception to indicate that an unknown config option has been encountered. More...
 
class  Wipe
 

Typedefs

typedef Point Size
 
typedef Point3 Size3
 
typedef Pointf Sizef
 
typedef Pointf3 Sizef3
 
using config_ptr = std::shared_ptr< Config >
 
typedef std::string t_config_option_key
 Name of the configuration option. More...
 
typedef std::vector< std::string > t_config_option_keys
 
typedef std::map< std::string, int > t_config_enum_values
 Map from an enum name to an enum integer value. More...
 
typedef std::map< t_config_option_key, ConfigOptionDeft_optiondef_map
 Map from a config option name to its definition. More...
 
typedef std::vector< ExPolygonExPolygons
 
typedef std::vector< ExPolygonCollectionExPolygonCollections
 
typedef std::vector< ExtrusionEntity * > ExtrusionEntitiesPtr
 
typedef std::vector< ExtrusionPathExtrusionPaths
 
typedef std::pair< coordf_t, coordf_tt_layer_height_range
 
typedef std::map< t_layer_height_range, coordf_tt_layer_height_ranges
 
typedef std::vector< LayerRegion * > LayerRegionPtrs
 A std::vector of LayerRegion Pointers. More...
 
typedef long coord_t
 
typedef double coordf_t
 
typedef std::vector< LineLines
 
typedef std::vector< ThickLineThickLines
 
typedef std::string t_model_material_id
 
typedef std::string t_model_material_attribute
 
typedef std::map< t_model_material_attribute, std::string > t_model_material_attributes
 
typedef std::map< t_model_material_id, ModelMaterial * > ModelMaterialMap
 
typedef std::vector< ModelObject * > ModelObjectPtrs
 
typedef std::vector< ModelVolume * > ModelVolumePtrs
 
typedef std::vector< ModelInstance * > ModelInstancePtrs
 
typedef std::vector< PerimeterGeneratorLoopPerimeterGeneratorLoops
 
typedef std::map< std::string, std::string > t_strstr_map
 
typedef std::map< std::string, std::vector< std::string > > t_strstrs_map
 
typedef Point Vector
 
typedef Pointf Vectorf
 
typedef Pointf3 Vectorf3
 
using Vector3 = Point3
 
typedef std::vector< PointPoints
 
typedef std::vector< Point * > PointPtrs
 
typedef std::vector< const Point * > PointConstPtrs
 
typedef std::vector< PointfPointfs
 
typedef std::vector< Pointf3Pointf3s
 
using Point3s = std::vector< Point3 >
 
typedef std::vector< PolygonPolygons
 
typedef std::vector< PolylinePolylines
 
typedef std::vector< ThickPolylineThickPolylines
 
typedef std::vector< Layer * > LayerPtrs
 
typedef std::vector< SupportLayer * > SupportLayerPtrs
 
typedef std::vector< PrintObject * > PrintObjectPtrs
 
typedef std::vector< PrintRegion * > PrintRegionPtrs
 
using shared_Print = std::shared_ptr< Print >
 
typedef std::vector< SurfaceSurfaces
 
typedef std::vector< Surface * > SurfacesPtr
 
typedef std::vector< const Surface * > SurfacesConstPtr
 
typedef std::vector< TriangleMesh * > TriangleMeshPtrs
 
typedef std::vector< IntersectionLineIntersectionLines
 
typedef std::vector< IntersectionLine * > IntersectionLinePtrs
 

Enumerations

enum  ConfigOptionType {
  coNone, coFloat, coFloats, coInt,
  coInts, coString, coStrings, coPercent,
  coFloatOrPercent, coPoint, coPoints, coPoint3,
  coBool, coBools, coEnum
}
 Type of a configuration value. More...
 
enum  ExtrusionRole {
  erNone, erPerimeter, erExternalPerimeter, erOverhangPerimeter,
  erInternalInfill, erSolidInfill, erTopSolidInfill, erBridgeInfill,
  erGapFill, erSkirt, erSupportMaterial, erSupportMaterialInterface
}
 Each ExtrusionRole value identifies a distinct set of { extruder, speed }. More...
 
enum  ExtrusionLoopRole { elrDefault, elrContourInternalPerimeter, elrSkirt }
 Special flags describing loop. More...
 
enum  FlowRole {
  frExternalPerimeter = 0b1, frPerimeter = 0b10, frInfill = 0b100, frSolidInfill = 0b1000,
  frTopSolidInfill = 0b10000, frSupportMaterial = 0b100000, frSupportMaterialInterface = 0b1000000
}
 Enumeration for different flow roles. More...
 
enum  Axis { X =0, Y, Z }
 
enum  PrintStep { psSkirt, psBrim }
 
enum  PrintObjectStep {
  posLayers, posSlice, posPerimeters, posDetectSurfaces,
  posPrepareInfill, posInfill, posSupportMaterial
}
 
enum  GCodeFlavor {
  gcfRepRap, gcfTeacup, gcfMakerWare, gcfSailfish,
  gcfMach3, gcfMachinekit, gcfNoExtrusion, gcfSmoothie,
  gcfRepetier
}
 
enum  HostType { htOctoprint, htDuet }
 
enum  InfillPattern {
  ipRectilinear, ipGrid, ipAlignedRectilinear, ipTriangles,
  ipStars, ipCubic, ipConcentric, ipHoneycomb,
  ip3DHoneycomb, ipGyroid, ipHilbertCurve, ipArchimedeanChords,
  ipOctagramSpiral
}
 
enum  SupportMaterialPattern { smpRectilinear, smpRectilinearGrid, smpHoneycomb, smpPillars }
 
enum  SeamPosition { spRandom, spNearest, spAligned, spRear }
 
enum  SurfaceType {
  stTop = 0b1, stBottom = 0b10, stBottomBridge = 0b100, stInternal = 0b1000,
  stInternalSolid = 0b10000, stInternalBridge = 0b100000, stInternalVoid = 0b1000000
}
 
enum  FacetEdgeType { feNone, feTop, feBottom, feHorizontal }
 

Functions

template<typename VT >
bool operator== (const BoundingBoxBase< VT > &bb1, const BoundingBoxBase< VT > &bb2)
 
template<typename VT >
bool operator!= (const BoundingBoxBase< VT > &bb1, const BoundingBoxBase< VT > &bb2)
 
void AddOuterPolyNodeToExPolygons (ClipperLib::PolyNode &polynode, ExPolygons *expolygons)
 
ExPolygons PolyTreeToExPolygons (ClipperLib::PolyTree &polytree)
 
template<class T >
ClipperPath_to_Slic3rMultiPoint (const ClipperLib::Path &input)
 
template Polygon ClipperPath_to_Slic3rMultiPoint< Polygon > (const ClipperLib::Path &input)
 
template<class T >
ClipperPaths_to_Slic3rMultiPoints (const ClipperLib::Paths &input)
 
ExPolygons ClipperPaths_to_Slic3rExPolygons (const ClipperLib::Paths &input)
 
ClipperLib::Path Slic3rMultiPoint_to_ClipperPath (const MultiPoint &input)
 
template<class T >
ClipperLib::Paths Slic3rMultiPoints_to_ClipperPaths (const T &input)
 
void scaleClipperPolygons (ClipperLib::Paths &polygons, const double scale)
 
ClipperLib::Paths _offset (const Polygons &polygons, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
ClipperLib::Paths _offset (const Polylines &polylines, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
Polygons offset (const Polygons &polygons, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
Polygons offset (const Polylines &polylines, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
Surfaces offset (const Surface &surface, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
ExPolygons offset_ex (const Polygons &polygons, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
ExPolygons offset_ex (const ExPolygons &expolygons, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)
 
ClipperLib::Paths _offset2 (const Polygons &polygons, const float delta1, const float delta2, const double scale, const ClipperLib::JoinType joinType, const double miterLimit)
 
Polygons offset2 (const Polygons &polygons, const float delta1, const float delta2, const double scale, const ClipperLib::JoinType joinType, const double miterLimit)
 
ExPolygons offset2_ex (const Polygons &polygons, const float delta1, const float delta2, const double scale, const ClipperLib::JoinType joinType, const double miterLimit)
 
template<class T >
_clipper_do (const ClipperLib::ClipType clipType, const Polygons &subject, const Polygons &clip, const ClipperLib::PolyFillType fillType, const bool safety_offset_)
 
ClipperLib::PolyTree _clipper_do_polytree2 (const ClipperLib::ClipType clipType, const Polygons &subject, const Polygons &clip, const ClipperLib::PolyFillType fillType, const bool safety_offset_)
 
ClipperLib::PolyTree _clipper_do (const ClipperLib::ClipType clipType, const Polylines &subject, const Polygons &clip, const ClipperLib::PolyFillType fillType, const bool safety_offset_)
 
Polygons _clipper (ClipperLib::ClipType clipType, const Polygons &subject, const Polygons &clip, bool safety_offset_)
 
ExPolygons _clipper_ex (ClipperLib::ClipType clipType, const Polygons &subject, const Polygons &clip, bool safety_offset_)
 
Polylines _clipper_pl (ClipperLib::ClipType clipType, const Polylines &subject, const Polygons &clip, bool safety_offset_)
 
Polylines _clipper_pl (ClipperLib::ClipType clipType, const Polygons &subject, const Polygons &clip, bool safety_offset_)
 
Lines _clipper_ln (ClipperLib::ClipType clipType, const Lines &subject, const Polygons &clip, bool safety_offset_)
 
ClipperLib::PolyTree union_pt (const Polygons &subject, bool safety_offset_)
 
Polygons union_pt_chained (const Polygons &subject, bool safety_offset_)
 
void traverse_pt (ClipperLib::PolyNodes &nodes, Polygons *retval)
 
Polygons simplify_polygons (const Polygons &subject, bool preserve_collinear)
 
ExPolygons simplify_polygons_ex (const Polygons &subject, bool preserve_collinear)
 
void safety_offset (ClipperLib::Paths *paths)
 
void AddOuterPolyNodeToExPolygons (ClipperLib::PolyNode &polynode, Slic3r::ExPolygons &expolygons)
 
void PolyTreeToExPolygons (ClipperLib::PolyTree &polytree, Slic3r::ExPolygons &expolygons)
 
Slic3r::Polygons diff (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::ExPolygons diff_ex (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::ExPolygons diff_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, bool safety_offset_=false)
 
Slic3r::Polygons diff (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, bool safety_offset_=false)
 
Slic3r::Polylines diff_pl (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Polylines diff_pl (const Slic3r::Polylines &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Lines diff_ln (const Slic3r::Lines &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Polygons intersection (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::ExPolygons intersection_ex (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::ExPolygons intersection_ex (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, bool safety_offset_=false)
 
Slic3r::Polygons intersection (const Slic3r::ExPolygons &subject, const Slic3r::ExPolygons &clip, bool safety_offset_=false)
 
Slic3r::Polylines intersection_pl (const Slic3r::Polygons &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Polylines intersection_pl (const Slic3r::Polylines &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Lines intersection_ln (const Slic3r::Lines &subject, const Slic3r::Polygons &clip, bool safety_offset_=false)
 
Slic3r::Polygons union_ (const Slic3r::Polygons &subject, bool safety_offset_=false)
 
Slic3r::Polygons union_ (const Slic3r::Polygons &subject, const Slic3r::Polygons &subject2, bool safety_offset_=false)
 
Slic3r::ExPolygons union_ex (const Slic3r::Polygons &subject, bool safety_offset_=false)
 
Slic3r::ExPolygons union_ex (const Slic3r::ExPolygons &subject, bool safety_offset_=false)
 
Slic3r::ExPolygons union_ex (const Slic3r::Surfaces &subject, bool safety_offset_=false)
 
static void ltrim (std::string &s)
 
static void rtrim (std::string &s)
 
static void trim (std::string &s)
 
static void replace_substr (std::string &str, const std::string &from, const std::string &to)
 
std::string apply_math (const std::string &input)
 Start of recursive function to parse gcode file. More...
 
std::string evaluate (const std::string &expression_string)
 
std::string expression (const std::string &input, const int depth)
 Parse an expression and return a string. We assume that PlaceholderParser has expanded all variables. More...
 
std::shared_ptr< Confignew_from_cli (const int &argc, const char *argv[])
 
bool is_valid_int (const std::string &type, const ConfigOptionDef &opt, const std::string &ser_value)
 
bool is_valid_float (const std::string &type, const ConfigOptionDef &opt, const std::string &ser_value)
 
std::string escape_string_cstyle (const std::string &str)
 
std::string escape_strings_cstyle (const std::vector< std::string > &strs)
 
bool unescape_string_cstyle (const std::string &str, std::string &str_out)
 
bool unescape_strings_cstyle (const std::string &str, std::vector< std::string > &out)
 
bool operator== (const ConfigOption &a, const ConfigOption &b)
 
bool operator!= (const ConfigOption &a, const ConfigOption &b)
 
std::ostream & operator<< (std::ostream &s, const ExPolygons &expolygons)
 
size_t number_polygons (const ExPolygons &expolys)
 
ExPolygons operator+ (ExPolygons src1, const ExPolygons &src2)
 
void polygons_append (Polygons &dst, const ExPolygon &src)
 
void polygons_append (Polygons &dst, const ExPolygons &src)
 
void polygons_append (Polygons &dst, ExPolygon &&src)
 
void polygons_append (Polygons &dst, ExPolygons &&src)
 
void expolygons_append (ExPolygons &dst, const ExPolygons &src)
 
void expolygons_append (ExPolygons &dst, ExPolygons &&src)
 
Polygons to_polygons (const ExPolygon &src)
 
Polygons to_polygons (const ExPolygons &src)
 
Polygons to_polygons (ExPolygon &&src)
 
Polygons to_polygons (ExPolygons &&src)
 
ExPolygonCollectionoperator<< (ExPolygonCollection &coll, const ExPolygons &expolygons)
 
static std::vector< coordf_tcolinearPoints (const coordf_t offset, const size_t baseLocation, size_t gridLength)
 
static std::vector< coordf_tperpendPoints (const coordf_t offset, const size_t baseLocation, size_t gridLength)
 
template<typename T >
static T clamp (T low, T high, T x)
 
static void trim (Pointfs &pts, coordf_t minX, coordf_t minY, coordf_t maxX, coordf_t maxY)
 
static Pointfs zip (const std::vector< coordf_t > &x, const std::vector< coordf_t > &y)
 
static std::vector< PointfsmakeNormalisedGrid (coordf_t z, size_t gridWidth, size_t gridHeight, size_t curveType)
 
static Polylines makeGrid (coord_t z, coord_t gridSize, size_t gridWidth, size_t gridHeight, size_t curveType)
 
static double f (double x, double z_sin, double z_cos, bool vertical, bool flip)
 
static Polyline make_wave (const std::vector< Pointf > &one_period, double width, double height, double offset, double scaleFactor, double z_cos, double z_sin, bool vertical)
 
static bool sortPointf (Pointf &lfs, Pointf &rhs)
 
static std::vector< Pointfmake_one_period (double width, double scaleFactor, double z_cos, double z_sin, bool vertical, bool flip)
 
static Polylines make_gyroid_waves (double gridZ, double density_adjusted, double line_spacing, double width, double height)
 
static Point hilbert_n_to_xy (const size_t n)
 
void apply_speed_factor (std::string &line, float speed_factor, float min_print_speed)
 
std::string _format_z (float z)
 
constexpr coord_t scale_ (const coordf_t &val)
 
constexpr coordf_t unscale (const coord_t &val)
 
template<class T >
void append_to (std::vector< T > &dst, const std::vector< T > &src)
 
template<class T >
void _parallelize_do (std::queue< T > *queue, boost::mutex *queue_mutex, boost::function< void(T)> func)
 
template<class T >
void parallelize (std::queue< T > queue, boost::function< void(T)> func, int threads_count=boost::thread::hardware_concurrency())
 
template<class T >
void parallelize (T start, T end, boost::function< void(T)> func, int threads_count=boost::thread::hardware_concurrency())
 
template<typename T >
std::string log_string (const std::vector< T > &in)
 
static coord_t _align_to_grid (const coord_t coord, const coord_t spacing)
 
Point operator+ (const Point &point1, const Point &point2)
 
Point operator- (const Point &point1, const Point &point2)
 
Point operator* (double scalar, const Point &point2)
 
std::ostream & operator<< (std::ostream &stm, const Pointf &pointf)
 
Pointf operator+ (const Pointf &point1, const Pointf &point2)
 
Pointf operator/ (const Pointf &point1, const double &scalar)
 
std::ostream & operator<< (std::ostream &stm, const Pointf3 &pointf3)
 
Pointsoperator+= (Points &dst, const Points &src)
 
Pointsoperator+= (Points &dst, const Point &p)
 
template<class T >
Points to_points (const std::vector< T > &items)
 
Points scale (const std::vector< Pointf > &in)
 
void polygons_append (Polygons &dst, const Polygons &src)
 
void polygons_append (Polygons &dst, Polygons &&src)
 
Polygons operator+ (Polygons src1, const Polygons &src2)
 
Polygonsoperator+= (Polygons &dst, const Polygons &src2)
 
Polylines to_polylines (const Polygons &polygons)
 
Polylines to_polylines (const Lines &lines)
 
template<typename T >
int nearest_point_index (const std::vector< Chaining > &pairs, const Point &start_near, bool no_reverse)
 
std::ostream & print_cli_options (std::ostream &out)
 Iterate through all of the CLI options and write them to a stream. More...
 
std::ostream & print_print_options (std::ostream &out)
 Iterate through all of the print options and write them to a stream. More...
 
std::pair< float, float > face_z_span (const stl_facet *f)
 
PolylineCollection _fill_surface (Fill *fill, Surface *surface)
 
Polygons to_polygons (const Surfaces &surfaces)
 
Polygons to_polygons (const SurfacesPtr &surfaces)
 
Polygons to_polygons (const SurfacesConstPtr &surfaces)
 
ExPolygons to_expolygons (const Surfaces &src)
 
ExPolygons to_expolygons (Surfaces &&src)
 
ExPolygons to_expolygons (const SurfacesPtr &src)
 
size_t number_polygons (const Surfaces &surfaces)
 
size_t number_polygons (const SurfacesPtr &surfaces)
 
void polygons_append (Polygons &dst, const Surfaces &src)
 
void polygons_append (Polygons &dst, Surfaces &&src)
 
void polygons_append (Polygons &dst, const SurfacesPtr &src)
 
void polygons_append (Polygons &dst, SurfacesPtr &&src)
 
bool surfaces_could_merge (const Surface &s1, const Surface &s2)
 

Variables

constexpr auto MAX_COORD = ClipperLib::hiRange / CLIPPER_OFFSET_SCALE
 
const PrintConfigDef print_config_def
 
constexpr auto BRIDGE_EXTRA_SPACING = 0.05
 
constexpr auto OVERLAP_FACTOR = 1.0
 
constexpr auto SLIC3R_VERSION = "1.3.1-dev"
 
const auto SLIC3R_GIT_STR = std::string(BUILD_COMMIT)
 
const auto SLIC3R_GIT = SLIC3R_GIT_STR.c_str()
 
constexpr auto SCALING_FACTOR = 0.000001
 
constexpr auto EPSILON = 1e-4
 
constexpr auto SCALED_EPSILON = scale_(EPSILON)
 
constexpr auto RESOLUTION = 0.0125
 
constexpr auto SCALED_RESOLUTION = scale_(RESOLUTION)
 
constexpr auto PI = 3.141592653589793238
 
constexpr auto LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER = 0.15
 
constexpr coord_t SMALL_PERIMETER_LENGTH = scale_(6.5) * 2 * PI
 
constexpr coordf_t INSET_OVERLAP_TOLERANCE = 0.4
 
constexpr coordf_t EXTERNAL_INFILL_MARGIN = 3
 
constexpr coord_t SCALED_EXTERNAL_INFILL_MARGIN = scale_(EXTERNAL_INFILL_MARGIN)
 
constexpr float CLIPPER_OFFSET_SCALE = 100000.0
 
constexpr coord_t MP_INNER_MARGIN = scale_(1.0)
 
constexpr coord_t MP_OUTER_MARGIN = scale_(2.0)
 
const CLIConfigDef cli_config_def
 
constexpr coordf_t SUPPORT_MATERIAL_MARGIN = 1.5
 
constexpr coordf_t MARGIN_STEP = SUPPORT_MATERIAL_MARGIN / 3
 
constexpr coordf_t PILLAR_SIZE = 2.5
 
constexpr coordf_t PILLAR_SPACING = 10
 

Detailed Description

https://github.com/slic3r/Slic3r/wiki/Conditional-Gcode-Syntax-Spec

Typedef Documentation

◆ config_ptr

using Slic3r::config_ptr = typedef std::shared_ptr<Config>

◆ coord_t

typedef long Slic3r::coord_t

◆ coordf_t

typedef double Slic3r::coordf_t

◆ ExPolygonCollections

◆ ExPolygons

typedef std::vector<ExPolygon> Slic3r::ExPolygons

◆ ExtrusionEntitiesPtr

◆ ExtrusionPaths

typedef std::vector<ExtrusionPath> Slic3r::ExtrusionPaths

◆ IntersectionLinePtrs

◆ IntersectionLines

◆ LayerPtrs

typedef std::vector<Layer*> Slic3r::LayerPtrs

◆ LayerRegionPtrs

typedef std::vector<LayerRegion*> Slic3r::LayerRegionPtrs

A std::vector of LayerRegion Pointers.

◆ Lines

typedef std::vector<Line> Slic3r::Lines

◆ ModelInstancePtrs

◆ ModelMaterialMap

◆ ModelObjectPtrs

typedef std::vector<ModelObject*> Slic3r::ModelObjectPtrs

◆ ModelVolumePtrs

typedef std::vector<ModelVolume*> Slic3r::ModelVolumePtrs

◆ PerimeterGeneratorLoops

◆ Point3s

using Slic3r::Point3s = typedef std::vector<Point3>

◆ PointConstPtrs

typedef std::vector<const Point*> Slic3r::PointConstPtrs

◆ Pointf3s

typedef std::vector<Pointf3> Slic3r::Pointf3s

◆ Pointfs

typedef std::vector<Pointf> Slic3r::Pointfs

◆ PointPtrs

typedef std::vector<Point*> Slic3r::PointPtrs

◆ Points

typedef std::vector<Point> Slic3r::Points

◆ Polygons

typedef std::vector<Polygon> Slic3r::Polygons

◆ Polylines

typedef std::vector<Polyline> Slic3r::Polylines

◆ PrintObjectPtrs

typedef std::vector<PrintObject*> Slic3r::PrintObjectPtrs

◆ PrintRegionPtrs

typedef std::vector<PrintRegion*> Slic3r::PrintRegionPtrs

◆ shared_Print

using Slic3r::shared_Print = typedef std::shared_ptr<Print>

◆ Size

◆ Size3

◆ Sizef

◆ Sizef3

◆ SupportLayerPtrs

typedef std::vector<SupportLayer*> Slic3r::SupportLayerPtrs

◆ Surfaces

typedef std::vector<Surface> Slic3r::Surfaces

◆ SurfacesConstPtr

typedef std::vector<const Surface*> Slic3r::SurfacesConstPtr

◆ SurfacesPtr

typedef std::vector<Surface*> Slic3r::SurfacesPtr

◆ t_config_enum_values

typedef std::map<std::string,int> Slic3r::t_config_enum_values

Map from an enum name to an enum integer value.

◆ t_config_option_key

typedef std::string Slic3r::t_config_option_key

Name of the configuration option.

◆ t_config_option_keys

typedef std::vector<std::string> Slic3r::t_config_option_keys

◆ t_layer_height_range

◆ t_layer_height_ranges

◆ t_model_material_attribute

◆ t_model_material_attributes

◆ t_model_material_id

typedef std::string Slic3r::t_model_material_id

◆ t_optiondef_map

Map from a config option name to its definition.

◆ t_strstr_map

typedef std::map<std::string, std::string> Slic3r::t_strstr_map

◆ t_strstrs_map

typedef std::map<std::string, std::vector<std::string> > Slic3r::t_strstrs_map

◆ ThickLines

typedef std::vector<ThickLine> Slic3r::ThickLines

◆ ThickPolylines

typedef std::vector<ThickPolyline> Slic3r::ThickPolylines

◆ TriangleMeshPtrs

typedef std::vector<TriangleMesh*> Slic3r::TriangleMeshPtrs

◆ Vector

◆ Vector3

using Slic3r::Vector3 = typedef Point3

◆ Vectorf

◆ Vectorf3

Enumeration Type Documentation

◆ Axis

Enumerator

◆ ConfigOptionType

Type of a configuration value.

Enumerator
coNone 
coFloat 

single float

coFloats 

vector of floats

coInt 

single int

coInts 

vector of ints

coString 

single string

coStrings 

vector of strings

coPercent 

percent value. Currently only used for infill.

coFloatOrPercent 

a fraction or an absolute value

coPoint 

single 2d point. Currently not used.

coPoints 

vector of 2d points. Currently used for the definition of the print bed and for the extruder offsets.

coPoint3 
coBool 

single boolean value

coBools 

vector of boolean values

coEnum 

a generic enum

◆ ExtrusionLoopRole

Special flags describing loop.

Enumerator
elrDefault 
elrContourInternalPerimeter 
elrSkirt 

◆ ExtrusionRole

Each ExtrusionRole value identifies a distinct set of { extruder, speed }.

Enumerator
erNone 
erPerimeter 
erExternalPerimeter 
erOverhangPerimeter 
erInternalInfill 
erSolidInfill 
erTopSolidInfill 
erBridgeInfill 
erGapFill 
erSkirt 
erSupportMaterial 
erSupportMaterialInterface 

◆ FacetEdgeType

Enumerator
feNone 
feTop 
feBottom 
feHorizontal 

◆ FlowRole

Enumeration for different flow roles.

Enumerator
frExternalPerimeter 
frPerimeter 
frInfill 
frSolidInfill 
frTopSolidInfill 
frSupportMaterial 
frSupportMaterialInterface 

◆ GCodeFlavor

Enumerator
gcfRepRap 
gcfTeacup 
gcfMakerWare 
gcfSailfish 
gcfMach3 
gcfMachinekit 
gcfNoExtrusion 
gcfSmoothie 
gcfRepetier 

◆ HostType

Enumerator
htOctoprint 
htDuet 

◆ InfillPattern

Enumerator
ipRectilinear 
ipGrid 
ipAlignedRectilinear 
ipTriangles 
ipStars 
ipCubic 
ipConcentric 
ipHoneycomb 
ip3DHoneycomb 
ipGyroid 
ipHilbertCurve 
ipArchimedeanChords 
ipOctagramSpiral 

◆ PrintObjectStep

Enumerator
posLayers 
posSlice 
posPerimeters 
posDetectSurfaces 
posPrepareInfill 
posInfill 
posSupportMaterial 

◆ PrintStep

Enumerator
psSkirt 
psBrim 

◆ SeamPosition

Enumerator
spRandom 
spNearest 
spAligned 
spRear 

◆ SupportMaterialPattern

Enumerator
smpRectilinear 
smpRectilinearGrid 
smpHoneycomb 
smpPillars 

◆ SurfaceType

Surface type enumerations. As it is very unlikely that there will be more than 32 or 64 of these surface types, pack into a flag

Enumerator
stTop 
stBottom 
stBottomBridge 
stInternal 
stInternalSolid 
stInternalBridge 
stInternalVoid 

Function Documentation

◆ _align_to_grid()

static coord_t Slic3r::_align_to_grid ( const coord_t  coord,
const coord_t  spacing 
)
static

◆ _clipper()

Slic3r::Polygons Slic3r::_clipper ( ClipperLib::ClipType  clipType,
const Polygons subject,
const Polygons clip,
bool  safety_offset_ 
)

◆ _clipper_do() [1/2]

template<class T >
T Slic3r::_clipper_do ( const ClipperLib::ClipType  clipType,
const Polygons subject,
const Polygons clip,
const ClipperLib::PolyFillType  fillType,
const bool  safety_offset_ 
)

◆ _clipper_do() [2/2]

ClipperLib::PolyTree Slic3r::_clipper_do ( const ClipperLib::ClipType  clipType,
const Polylines subject,
const Polygons clip,
const ClipperLib::PolyFillType  fillType,
const bool  safety_offset_ 
)

◆ _clipper_do_polytree2()

ClipperLib::PolyTree Slic3r::_clipper_do_polytree2 ( const ClipperLib::ClipType  clipType,
const Polygons subject,
const Polygons clip,
const ClipperLib::PolyFillType  fillType,
const bool  safety_offset_ 
)
inline

◆ _clipper_ex()

Slic3r::ExPolygons Slic3r::_clipper_ex ( ClipperLib::ClipType  clipType,
const Polygons subject,
const Polygons clip,
bool  safety_offset_ 
)

◆ _clipper_ln()

Slic3r::Lines Slic3r::_clipper_ln ( ClipperLib::ClipType  clipType,
const Lines subject,
const Polygons clip,
bool  safety_offset_ 
)

◆ _clipper_pl() [1/2]

Slic3r::Polylines Slic3r::_clipper_pl ( ClipperLib::ClipType  clipType,
const Polylines subject,
const Polygons clip,
bool  safety_offset_ 
)

◆ _clipper_pl() [2/2]

Slic3r::Polylines Slic3r::_clipper_pl ( ClipperLib::ClipType  clipType,
const Polygons subject,
const Polygons clip,
bool  safety_offset_ 
)

◆ _fill_surface()

PolylineCollection Slic3r::_fill_surface ( Fill fill,
Surface surface 
)

◆ _format_z()

std::string Slic3r::_format_z ( float  z)

◆ _offset() [1/2]

ClipperLib::Paths Slic3r::_offset ( const Polygons polygons,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ _offset() [2/2]

ClipperLib::Paths Slic3r::_offset ( const Polylines polylines,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ _offset2()

ClipperLib::Paths Slic3r::_offset2 ( const Polygons polygons,
const float  delta1,
const float  delta2,
const double  scale,
const ClipperLib::JoinType  joinType,
const double  miterLimit 
)

◆ _parallelize_do()

template<class T >
void Slic3r::_parallelize_do ( std::queue< T > *  queue,
boost::mutex *  queue_mutex,
boost::function< void(T)>  func 
)

◆ AddOuterPolyNodeToExPolygons() [1/2]

void Slic3r::AddOuterPolyNodeToExPolygons ( ClipperLib::PolyNode &  polynode,
ExPolygons expolygons 
)

◆ AddOuterPolyNodeToExPolygons() [2/2]

void Slic3r::AddOuterPolyNodeToExPolygons ( ClipperLib::PolyNode &  polynode,
Slic3r::ExPolygons expolygons 
)

◆ append_to()

template<class T >
void Slic3r::append_to ( std::vector< T > &  dst,
const std::vector< T > &  src 
)
inline

◆ apply_math()

std::string Slic3r::apply_math ( const std::string &  input)

Start of recursive function to parse gcode file.

External access function to begin replac.

◆ apply_speed_factor()

void Slic3r::apply_speed_factor ( std::string &  line,
float  speed_factor,
float  min_print_speed 
)

◆ clamp()

template<typename T >
static T Slic3r::clamp ( low,
high,
x 
)
inlinestatic

◆ ClipperPath_to_Slic3rMultiPoint()

template<class T >
T Slic3r::ClipperPath_to_Slic3rMultiPoint ( const ClipperLib::Path &  input)

◆ ClipperPath_to_Slic3rMultiPoint< Polygon >()

template Polygon Slic3r::ClipperPath_to_Slic3rMultiPoint< Polygon > ( const ClipperLib::Path &  input)

◆ ClipperPaths_to_Slic3rExPolygons()

Slic3r::ExPolygons Slic3r::ClipperPaths_to_Slic3rExPolygons ( const ClipperLib::Paths &  input)

◆ ClipperPaths_to_Slic3rMultiPoints()

template<class T >
T Slic3r::ClipperPaths_to_Slic3rMultiPoints ( const ClipperLib::Paths &  input)

◆ colinearPoints()

static std::vector<coordf_t> Slic3r::colinearPoints ( const coordf_t  offset,
const size_t  baseLocation,
size_t  gridLength 
)
static

◆ diff() [1/2]

Slic3r::Polygons Slic3r::diff ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff() [2/2]

Slic3r::Polygons Slic3r::diff ( const Slic3r::ExPolygons subject,
const Slic3r::ExPolygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff_ex() [1/2]

Slic3r::ExPolygons Slic3r::diff_ex ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff_ex() [2/2]

Slic3r::ExPolygons Slic3r::diff_ex ( const Slic3r::ExPolygons subject,
const Slic3r::ExPolygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff_ln()

Slic3r::Lines Slic3r::diff_ln ( const Slic3r::Lines subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff_pl() [1/2]

Slic3r::Polylines Slic3r::diff_pl ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ diff_pl() [2/2]

Slic3r::Polylines Slic3r::diff_pl ( const Slic3r::Polylines subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ escape_string_cstyle()

std::string Slic3r::escape_string_cstyle ( const std::string &  str)

◆ escape_strings_cstyle()

std::string Slic3r::escape_strings_cstyle ( const std::vector< std::string > &  strs)

◆ evaluate()

std::string Slic3r::evaluate ( const std::string &  expression_string)

Evaluate expressions with exprtk Everything must resolve to a number.

◆ expolygons_append() [1/2]

void Slic3r::expolygons_append ( ExPolygons dst,
const ExPolygons src 
)
inline

◆ expolygons_append() [2/2]

void Slic3r::expolygons_append ( ExPolygons dst,
ExPolygons &&  src 
)
inline

◆ expression()

std::string Slic3r::expression ( const std::string &  input,
const int  depth = 0 
)

Parse an expression and return a string. We assume that PlaceholderParser has expanded all variables.

Recursive expression parser. Offloads mathematics to exprtk. Precondition: All strings inside {} are able to be understood by exprtk (and thus parsed to a number). Starts from the end of the string and works from the inside out. Any statements that resolve to {if0} will remove everything on the same line.

◆ f()

static double Slic3r::f ( double  x,
double  z_sin,
double  z_cos,
bool  vertical,
bool  flip 
)
inlinestatic

◆ face_z_span()

std::pair<float, float> Slic3r::face_z_span ( const stl_facet *  f)

◆ hilbert_n_to_xy()

static Point Slic3r::hilbert_n_to_xy ( const size_t  n)
inlinestatic

◆ intersection() [1/2]

Slic3r::Polygons Slic3r::intersection ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection() [2/2]

Slic3r::Polygons Slic3r::intersection ( const Slic3r::ExPolygons subject,
const Slic3r::ExPolygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection_ex() [1/2]

Slic3r::ExPolygons Slic3r::intersection_ex ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection_ex() [2/2]

Slic3r::ExPolygons Slic3r::intersection_ex ( const Slic3r::ExPolygons subject,
const Slic3r::ExPolygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection_ln()

Slic3r::Lines Slic3r::intersection_ln ( const Slic3r::Lines subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection_pl() [1/2]

Slic3r::Polylines Slic3r::intersection_pl ( const Slic3r::Polygons subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ intersection_pl() [2/2]

Slic3r::Polylines Slic3r::intersection_pl ( const Slic3r::Polylines subject,
const Slic3r::Polygons clip,
bool  safety_offset_ = false 
)
inline

◆ is_valid_float()

bool Slic3r::is_valid_float ( const std::string &  type,
const ConfigOptionDef opt,
const std::string &  ser_value 
)

◆ is_valid_int()

bool Slic3r::is_valid_int ( const std::string &  type,
const ConfigOptionDef opt,
const std::string &  ser_value 
)

◆ log_string()

template<typename T >
std::string Slic3r::log_string ( const std::vector< T > &  in)

Utility debug function to transform a std::vector of anything that supports ostream& operator<<() into a std::string.

◆ ltrim()

static void Slic3r::ltrim ( std::string &  s)
inlinestatic

◆ make_gyroid_waves()

static Polylines Slic3r::make_gyroid_waves ( double  gridZ,
double  density_adjusted,
double  line_spacing,
double  width,
double  height 
)
static

◆ make_one_period()

static std::vector<Pointf> Slic3r::make_one_period ( double  width,
double  scaleFactor,
double  z_cos,
double  z_sin,
bool  vertical,
bool  flip 
)
static

◆ make_wave()

static Polyline Slic3r::make_wave ( const std::vector< Pointf > &  one_period,
double  width,
double  height,
double  offset,
double  scaleFactor,
double  z_cos,
double  z_sin,
bool  vertical 
)
inlinestatic

◆ makeGrid()

static Polylines Slic3r::makeGrid ( coord_t  z,
coord_t  gridSize,
size_t  gridWidth,
size_t  gridHeight,
size_t  curveType 
)
static

◆ makeNormalisedGrid()

static std::vector<Pointfs> Slic3r::makeNormalisedGrid ( coordf_t  z,
size_t  gridWidth,
size_t  gridHeight,
size_t  curveType 
)
static

◆ nearest_point_index()

template<typename T >
int Slic3r::nearest_point_index ( const std::vector< Chaining > &  pairs,
const Point start_near,
bool  no_reverse 
)
inline

◆ new_from_cli()

std::shared_ptr<Config> Slic3r::new_from_cli ( const int &  argc,
const char *  argv[] 
)

◆ number_polygons() [1/3]

size_t Slic3r::number_polygons ( const ExPolygons expolys)
inline

◆ number_polygons() [2/3]

size_t Slic3r::number_polygons ( const Surfaces surfaces)
inline

◆ number_polygons() [3/3]

size_t Slic3r::number_polygons ( const SurfacesPtr surfaces)
inline

◆ offset() [1/3]

Slic3r::Polygons Slic3r::offset ( const Polygons polygons,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ offset() [2/3]

Slic3r::Polygons Slic3r::offset ( const Polylines polylines,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ offset() [3/3]

Slic3r::Surfaces Slic3r::offset ( const Surface surface,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ offset2()

Slic3r::Polygons Slic3r::offset2 ( const Polygons polygons,
const float  delta1,
const float  delta2,
const double  scale,
const ClipperLib::JoinType  joinType,
const double  miterLimit 
)

◆ offset2_ex()

Slic3r::ExPolygons Slic3r::offset2_ex ( const Polygons polygons,
const float  delta1,
const float  delta2,
const double  scale,
const ClipperLib::JoinType  joinType,
const double  miterLimit 
)

◆ offset_ex() [1/2]

Slic3r::ExPolygons Slic3r::offset_ex ( const Polygons polygons,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ offset_ex() [2/2]

Slic3r::ExPolygons Slic3r::offset_ex ( const ExPolygons expolygons,
const float  delta,
double  scale,
ClipperLib::JoinType  joinType,
double  miterLimit 
)

◆ operator!=() [1/2]

template<typename VT >
bool Slic3r::operator!= ( const BoundingBoxBase< VT > &  bb1,
const BoundingBoxBase< VT > &  bb2 
)
inline

◆ operator!=() [2/2]

bool Slic3r::operator!= ( const ConfigOption a,
const ConfigOption b 
)

◆ operator*()

Point Slic3r::operator* ( double  scalar,
const Point point2 
)

◆ operator+() [1/4]

ExPolygons Slic3r::operator+ ( ExPolygons  src1,
const ExPolygons src2 
)
inline

◆ operator+() [2/4]

Polygons Slic3r::operator+ ( Polygons  src1,
const Polygons src2 
)
inline

◆ operator+() [3/4]

Point Slic3r::operator+ ( const Point point1,
const Point point2 
)

◆ operator+() [4/4]

Pointf Slic3r::operator+ ( const Pointf point1,
const Pointf point2 
)

◆ operator+=() [1/3]

Polygons& Slic3r::operator+= ( Polygons dst,
const Polygons src2 
)
inline

◆ operator+=() [2/3]

Points& Slic3r::operator+= ( Points dst,
const Points src 
)
inline

◆ operator+=() [3/3]

Points& Slic3r::operator+= ( Points dst,
const Point p 
)
inline

◆ operator-()

Point Slic3r::operator- ( const Point point1,
const Point point2 
)

◆ operator/()

Pointf Slic3r::operator/ ( const Pointf point1,
const double &  scalar 
)

◆ operator<<() [1/4]

ExPolygonCollection& Slic3r::operator<< ( ExPolygonCollection coll,
const ExPolygons expolygons 
)
inline

◆ operator<<() [2/4]

std::ostream & Slic3r::operator<< ( std::ostream &  stm,
const Pointf pointf 
)

◆ operator<<() [3/4]

std::ostream & Slic3r::operator<< ( std::ostream &  stm,
const Pointf3 pointf3 
)

◆ operator<<() [4/4]

std::ostream & Slic3r::operator<< ( std::ostream &  s,
const ExPolygons expolygons 
)

◆ operator==() [1/2]

template<typename VT >
bool Slic3r::operator== ( const BoundingBoxBase< VT > &  bb1,
const BoundingBoxBase< VT > &  bb2 
)
inline

◆ operator==() [2/2]

bool Slic3r::operator== ( const ConfigOption a,
const ConfigOption b 
)

◆ parallelize() [1/2]

template<class T >
void Slic3r::parallelize ( std::queue< T >  queue,
boost::function< void(T)>  func,
int  threads_count = boost::thread::hardware_concurrency() 
)

◆ parallelize() [2/2]

template<class T >
void Slic3r::parallelize ( start,
end,
boost::function< void(T)>  func,
int  threads_count = boost::thread::hardware_concurrency() 
)

◆ perpendPoints()

static std::vector<coordf_t> Slic3r::perpendPoints ( const coordf_t  offset,
const size_t  baseLocation,
size_t  gridLength 
)
static

◆ polygons_append() [1/10]

void Slic3r::polygons_append ( Polygons dst,
const Polygons src 
)
inline

◆ polygons_append() [2/10]

void Slic3r::polygons_append ( Polygons dst,
Polygons &&  src 
)
inline

◆ polygons_append() [3/10]

void Slic3r::polygons_append ( Polygons dst,
const ExPolygon src 
)
inline

◆ polygons_append() [4/10]

void Slic3r::polygons_append ( Polygons dst,
const ExPolygons src 
)
inline

◆ polygons_append() [5/10]

void Slic3r::polygons_append ( Polygons dst,
ExPolygon &&  src 
)
inline

◆ polygons_append() [6/10]

void Slic3r::polygons_append ( Polygons dst,
ExPolygons &&  src 
)
inline

◆ polygons_append() [7/10]

void Slic3r::polygons_append ( Polygons dst,
const Surfaces src 
)
inline

◆ polygons_append() [8/10]

void Slic3r::polygons_append ( Polygons dst,
Surfaces &&  src 
)
inline

◆ polygons_append() [9/10]

void Slic3r::polygons_append ( Polygons dst,
const SurfacesPtr src 
)
inline

◆ polygons_append() [10/10]

void Slic3r::polygons_append ( Polygons dst,
SurfacesPtr &&  src 
)
inline

◆ PolyTreeToExPolygons() [1/2]

ExPolygons Slic3r::PolyTreeToExPolygons ( ClipperLib::PolyTree &  polytree)

◆ PolyTreeToExPolygons() [2/2]

void Slic3r::PolyTreeToExPolygons ( ClipperLib::PolyTree &  polytree,
Slic3r::ExPolygons expolygons 
)

◆ print_cli_options()

std::ostream & Slic3r::print_cli_options ( std::ostream &  out)

Iterate through all of the CLI options and write them to a stream.

◆ print_print_options()

std::ostream & Slic3r::print_print_options ( std::ostream &  out)

Iterate through all of the print options and write them to a stream.

◆ replace_substr()

static void Slic3r::replace_substr ( std::string &  str,
const std::string &  from,
const std::string &  to 
)
inlinestatic

◆ rtrim()

static void Slic3r::rtrim ( std::string &  s)
inlinestatic

◆ safety_offset()

void Slic3r::safety_offset ( ClipperLib::Paths *  paths)

◆ scale()

Points Slic3r::scale ( const std::vector< Pointf > &  in)
inline

◆ scale_()

constexpr coord_t Slic3r::scale_ ( const coordf_t val)
inline

◆ scaleClipperPolygons()

void Slic3r::scaleClipperPolygons ( ClipperLib::Paths &  polygons,
const double  scale 
)

◆ simplify_polygons()

Slic3r::Polygons Slic3r::simplify_polygons ( const Polygons subject,
bool  preserve_collinear 
)

◆ simplify_polygons_ex()

Slic3r::ExPolygons Slic3r::simplify_polygons_ex ( const Polygons subject,
bool  preserve_collinear 
)

◆ Slic3rMultiPoint_to_ClipperPath()

ClipperLib::Path Slic3r::Slic3rMultiPoint_to_ClipperPath ( const MultiPoint input)

◆ Slic3rMultiPoints_to_ClipperPaths()

template<class T >
ClipperLib::Paths Slic3r::Slic3rMultiPoints_to_ClipperPaths ( const T &  input)

◆ sortPointf()

static bool Slic3r::sortPointf ( Pointf lfs,
Pointf rhs 
)
static

◆ surfaces_could_merge()

bool Slic3r::surfaces_could_merge ( const Surface s1,
const Surface s2 
)
inline

◆ to_expolygons() [1/3]

ExPolygons Slic3r::to_expolygons ( const Surfaces src)
inline

◆ to_expolygons() [2/3]

ExPolygons Slic3r::to_expolygons ( Surfaces &&  src)
inline

◆ to_expolygons() [3/3]

ExPolygons Slic3r::to_expolygons ( const SurfacesPtr src)
inline

◆ to_points()

template<class T >
Points Slic3r::to_points ( const std::vector< T > &  items)
inline

◆ to_polygons() [1/7]

Polygons Slic3r::to_polygons ( const Surfaces surfaces)
inline

◆ to_polygons() [2/7]

Polygons Slic3r::to_polygons ( const SurfacesPtr surfaces)
inline

◆ to_polygons() [3/7]

Polygons Slic3r::to_polygons ( const SurfacesConstPtr surfaces)
inline

◆ to_polygons() [4/7]

Polygons Slic3r::to_polygons ( const ExPolygon src)
inline

◆ to_polygons() [5/7]

Polygons Slic3r::to_polygons ( const ExPolygons src)
inline

◆ to_polygons() [6/7]

Polygons Slic3r::to_polygons ( ExPolygon &&  src)
inline

◆ to_polygons() [7/7]

Polygons Slic3r::to_polygons ( ExPolygons &&  src)
inline

◆ to_polylines() [1/2]

Polylines Slic3r::to_polylines ( const Polygons polygons)
inline

◆ to_polylines() [2/2]

Polylines Slic3r::to_polylines ( const Lines lines)
inline

◆ traverse_pt()

void Slic3r::traverse_pt ( ClipperLib::PolyNodes &  nodes,
Polygons retval 
)

◆ trim() [1/2]

static void Slic3r::trim ( std::string &  s)
inlinestatic

◆ trim() [2/2]

static void Slic3r::trim ( Pointfs pts,
coordf_t  minX,
coordf_t  minY,
coordf_t  maxX,
coordf_t  maxY 
)
inlinestatic

◆ unescape_string_cstyle()

bool Slic3r::unescape_string_cstyle ( const std::string &  str,
std::string &  str_out 
)

◆ unescape_strings_cstyle()

bool Slic3r::unescape_strings_cstyle ( const std::string &  str,
std::vector< std::string > &  out 
)

◆ union_() [1/2]

Slic3r::Polygons Slic3r::union_ ( const Slic3r::Polygons subject,
bool  safety_offset_ = false 
)
inline

◆ union_() [2/2]

Slic3r::Polygons Slic3r::union_ ( const Slic3r::Polygons subject,
const Slic3r::Polygons subject2,
bool  safety_offset_ = false 
)
inline

◆ union_ex() [1/3]

Slic3r::ExPolygons Slic3r::union_ex ( const Slic3r::Polygons subject,
bool  safety_offset_ = false 
)
inline

◆ union_ex() [2/3]

Slic3r::ExPolygons Slic3r::union_ex ( const Slic3r::ExPolygons subject,
bool  safety_offset_ = false 
)
inline

◆ union_ex() [3/3]

Slic3r::ExPolygons Slic3r::union_ex ( const Slic3r::Surfaces subject,
bool  safety_offset_ = false 
)
inline

◆ union_pt()

ClipperLib::PolyTree Slic3r::union_pt ( const Polygons subject,
bool  safety_offset_ 
)

◆ union_pt_chained()

Slic3r::Polygons Slic3r::union_pt_chained ( const Polygons subject,
bool  safety_offset_ 
)

◆ unscale()

constexpr coordf_t Slic3r::unscale ( const coord_t val)
inline

◆ zip()

static Pointfs Slic3r::zip ( const std::vector< coordf_t > &  x,
const std::vector< coordf_t > &  y 
)
inlinestatic

Variable Documentation

◆ BRIDGE_EXTRA_SPACING

constexpr auto Slic3r::BRIDGE_EXTRA_SPACING = 0.05

◆ cli_config_def

const CLIConfigDef Slic3r::cli_config_def

◆ CLIPPER_OFFSET_SCALE

constexpr float Slic3r::CLIPPER_OFFSET_SCALE = 100000.0

◆ EPSILON

constexpr auto Slic3r::EPSILON = 1e-4

◆ EXTERNAL_INFILL_MARGIN

constexpr coordf_t Slic3r::EXTERNAL_INFILL_MARGIN = 3

◆ INSET_OVERLAP_TOLERANCE

constexpr coordf_t Slic3r::INSET_OVERLAP_TOLERANCE = 0.4

◆ LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER

constexpr auto Slic3r::LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER = 0.15

◆ MARGIN_STEP

constexpr coordf_t Slic3r::MARGIN_STEP = SUPPORT_MATERIAL_MARGIN / 3

◆ MAX_COORD

constexpr auto Slic3r::MAX_COORD = ClipperLib::hiRange / CLIPPER_OFFSET_SCALE

◆ MP_INNER_MARGIN

constexpr coord_t Slic3r::MP_INNER_MARGIN = scale_(1.0)

◆ MP_OUTER_MARGIN

constexpr coord_t Slic3r::MP_OUTER_MARGIN = scale_(2.0)

◆ OVERLAP_FACTOR

constexpr auto Slic3r::OVERLAP_FACTOR = 1.0

◆ PI

constexpr auto Slic3r::PI = 3.141592653589793238

◆ PILLAR_SIZE

constexpr coordf_t Slic3r::PILLAR_SIZE = 2.5

◆ PILLAR_SPACING

constexpr coordf_t Slic3r::PILLAR_SPACING = 10

◆ print_config_def

const PrintConfigDef Slic3r::print_config_def

◆ RESOLUTION

constexpr auto Slic3r::RESOLUTION = 0.0125

◆ SCALED_EPSILON

constexpr auto Slic3r::SCALED_EPSILON = scale_(EPSILON)

◆ SCALED_EXTERNAL_INFILL_MARGIN

constexpr coord_t Slic3r::SCALED_EXTERNAL_INFILL_MARGIN = scale_(EXTERNAL_INFILL_MARGIN)

◆ SCALED_RESOLUTION

constexpr auto Slic3r::SCALED_RESOLUTION = scale_(RESOLUTION)

◆ SCALING_FACTOR

constexpr auto Slic3r::SCALING_FACTOR = 0.000001

◆ SLIC3R_GIT

const auto Slic3r::SLIC3R_GIT = SLIC3R_GIT_STR.c_str()

◆ SLIC3R_GIT_STR

const auto Slic3r::SLIC3R_GIT_STR = std::string(BUILD_COMMIT)

◆ SLIC3R_VERSION

constexpr auto Slic3r::SLIC3R_VERSION = "1.3.1-dev"

◆ SMALL_PERIMETER_LENGTH

constexpr coord_t Slic3r::SMALL_PERIMETER_LENGTH = scale_(6.5) * 2 * PI

◆ SUPPORT_MATERIAL_MARGIN

constexpr coordf_t Slic3r::SUPPORT_MATERIAL_MARGIN = 1.5