Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
geometries.hpp File Reference
#include <sstream>
#include <unordered_map>
#include <cassert>
#include <vector>
#include <iostream>
#include <libnest2d/geometry_traits.hpp>
#include <libnest2d/geometry_traits_nfp.hpp>
#include <libslic3r/ExPolygon.hpp>
#include <libslic3r/ClipperUtils.hpp>
#include <libnest2d/utils/boost_alg.hpp>
+ Include dependency graph for geometries.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Slic3r::IsVec_< T, En >
 
struct  Slic3r::IsVec_< Vec< 2, T > >
 
struct  libnest2d::ShapeTag< Slic3r::Vec2crd >
 
struct  libnest2d::ShapeTag< Slic3r::Point >
 
struct  libnest2d::ShapeTag< std::vector< Slic3r::Vec2crd > >
 
struct  libnest2d::ShapeTag< Slic3r::Polygon >
 
struct  libnest2d::ShapeTag< Slic3r::Points >
 
struct  libnest2d::ShapeTag< Slic3r::ExPolygon >
 
struct  libnest2d::ShapeTag< Slic3r::ExPolygons >
 
struct  libnest2d::CoordType< Slic3r::Point >
 
struct  libnest2d::CoordType< Slic3r::Vec2crd >
 
struct  libnest2d::PointType< std::vector< Slic3r::Vec2crd > >
 
struct  libnest2d::PointType< Slic3r::Polygon >
 
struct  libnest2d::PointType< Slic3r::Points >
 
struct  libnest2d::ContourType< Slic3r::ExPolygon >
 
struct  libnest2d::HolesContainer< Slic3r::ExPolygon >
 
struct  libnest2d::OrientationType< Slic3r::Polygon >
 
struct  libnest2d::OrientationType< Slic3r::Points >
 
struct  libnest2d::ClosureType< Slic3r::Polygon >
 
struct  libnest2d::ClosureType< Slic3r::Points >
 
struct  libnest2d::MultiShape< Slic3r::ExPolygon >
 
struct  libnest2d::ContourType< Slic3r::ExPolygons >
 

Namespaces

namespace  Slic3r
 
namespace  libnest2d
 
namespace  libnest2d::shapelike
 
namespace  libnest2d::nfp
 A collection of static methods for handling the no fit polygon creation.
 

Macros

#define DISABLE_BOOST_AREA
 
#define DISABLE_BOOST_OFFSET
 
#define DISABLE_BOOST_TRANSLATE
 
#define DISABLE_BOOST_ROTATE
 
#define DISABLE_BOOST_NFP_MERGE
 
#define DISABLE_BOOST_CONVEX_HULL
 

Typedefs

template<class T , class O >
using Slic3r::VecOnly = std::enable_if_t< IsVec< T >, O >
 
template<class T >
using libnest2d::Vec = Slic3r::Vec< 2, T >
 
using libnest2d::PointImpl = Slic3r::Point
 
using libnest2d::PathImpl = Slic3r::Polygon
 
using libnest2d::HoleStore = Slic3r::Polygons
 
using libnest2d::PolygonImpl = Slic3r::ExPolygon
 

Functions

Point Slic3r::operator+ (const Point &p1, const Point &p2)
 
Point Slic3r::operator- (const Point &p)
 
Point Slic3r::operator- (const Point &p1, const Point &p2)
 
PointSlic3r::operator*= (Point &p, const Point &pa)
 
Point Slic3r::operator* (const Point &p1, const Point &p2)
 
template<>
void libnest2d::shapelike::offset (Slic3r::ExPolygon &sh, coord_t distance, const PolygonTag &)
 
template<>
void libnest2d::shapelike::offset (Slic3r::Polygon &sh, coord_t distance, const PathTag &)
 
template<>
std::string libnest2d::shapelike::toString (const Slic3r::ExPolygon &sh)
 
template<>
Slic3r::ExPolygon libnest2d::shapelike::create (const Slic3r::Polygon &path, const Slic3r::Polygons &holes)
 
template<>
Slic3r::ExPolygon libnest2d::shapelike::create (Slic3r::Polygon &&path, Slic3r::Polygons &&holes)
 
template<>
const THolesContainer< PolygonImpl > & libnest2d::shapelike::holes (const Slic3r::ExPolygon &sh)
 
template<>
THolesContainer< PolygonImpl > & libnest2d::shapelike::holes (Slic3r::ExPolygon &sh)
 
template<>
Slic3r::Polygonlibnest2d::shapelike::hole (Slic3r::ExPolygon &sh, unsigned long idx)
 
template<>
const Slic3r::Polygonlibnest2d::shapelike::hole (const Slic3r::ExPolygon &sh, unsigned long idx)
 
template<>
size_t libnest2d::shapelike::holeCount (const Slic3r::ExPolygon &sh)
 
template<>
Slic3r::Polygonlibnest2d::shapelike::contour (Slic3r::ExPolygon &sh)
 
template<>
const Slic3r::Polygonlibnest2d::shapelike::contour (const Slic3r::ExPolygon &sh)
 
template<>
void libnest2d::shapelike::reserve (Slic3r::Polygon &p, size_t vertex_capacity, const PathTag &)
 
template<>
void libnest2d::shapelike::addVertex (Slic3r::Polygon &sh, const PathTag &, const Slic3r::Point &p)
 
template<>
void libnest2d::shapelike::translate (Slic3r::ExPolygon &sh, const Slic3r::Point &offs)
 
template<>
void libnest2d::shapelike::rotate (Slic3r::ExPolygon &sh, const Radians &rads)
 
template<>
TMultiShape< PolygonImpllibnest2d::nfp::merge (const TMultiShape< PolygonImpl > &shapes)
 

Variables

template<class T >
static constexpr const bool Slic3r::IsVec = IsVec_<libnest2d::remove_cvref_t<T>>::value
 

Class Documentation

◆ libnest2d::ShapeTag< Slic3r::Vec2crd >

struct libnest2d::ShapeTag< Slic3r::Vec2crd >
Class Members
typedef PointTag Type

◆ libnest2d::ShapeTag< Slic3r::Point >

struct libnest2d::ShapeTag< Slic3r::Point >
Class Members
typedef PointTag Type

◆ libnest2d::ShapeTag< std::vector< Slic3r::Vec2crd > >

struct libnest2d::ShapeTag< std::vector< Slic3r::Vec2crd > >
Class Members
typedef PathTag Type

◆ libnest2d::ShapeTag< Slic3r::Polygon >

struct libnest2d::ShapeTag< Slic3r::Polygon >
Class Members
typedef PathTag Type

◆ libnest2d::ShapeTag< Slic3r::Points >

struct libnest2d::ShapeTag< Slic3r::Points >
Class Members
typedef PathTag Type

◆ libnest2d::ShapeTag< Slic3r::ExPolygon >

struct libnest2d::ShapeTag< Slic3r::ExPolygon >
Class Members
typedef PolygonTag Type

◆ libnest2d::ShapeTag< Slic3r::ExPolygons >

struct libnest2d::ShapeTag< Slic3r::ExPolygons >
Class Members
typedef MultiPolygonTag Type

◆ libnest2d::PointType< std::vector< Slic3r::Vec2crd > >

struct libnest2d::PointType< std::vector< Slic3r::Vec2crd > >
Class Members
typedef Vec2crd Type

◆ libnest2d::PointType< Slic3r::Polygon >

struct libnest2d::PointType< Slic3r::Polygon >
Class Members
typedef Point Type

◆ libnest2d::PointType< Slic3r::Points >

struct libnest2d::PointType< Slic3r::Points >
Class Members
typedef Point Type

◆ libnest2d::ContourType< Slic3r::ExPolygon >

struct libnest2d::ContourType< Slic3r::ExPolygon >
Class Members
typedef Polygon Type

◆ libnest2d::HolesContainer< Slic3r::ExPolygon >

struct libnest2d::HolesContainer< Slic3r::ExPolygon >
Class Members
typedef Polygons Type

◆ libnest2d::MultiShape< Slic3r::ExPolygon >

struct libnest2d::MultiShape< Slic3r::ExPolygon >
Class Members
typedef ExPolygons Type

◆ libnest2d::ContourType< Slic3r::ExPolygons >

struct libnest2d::ContourType< Slic3r::ExPolygons >
Class Members
typedef Polygon Type

Macro Definition Documentation

◆ DISABLE_BOOST_AREA

#define DISABLE_BOOST_AREA

◆ DISABLE_BOOST_CONVEX_HULL

#define DISABLE_BOOST_CONVEX_HULL

◆ DISABLE_BOOST_NFP_MERGE

#define DISABLE_BOOST_NFP_MERGE

◆ DISABLE_BOOST_OFFSET

#define DISABLE_BOOST_OFFSET

◆ DISABLE_BOOST_ROTATE

#define DISABLE_BOOST_ROTATE

◆ DISABLE_BOOST_TRANSLATE

#define DISABLE_BOOST_TRANSLATE