mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-04 22:31:02 +00:00
Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand.
54 lines
1.4 KiB
C++
54 lines
1.4 KiB
C++
//Copyright (c) 2020 Ultimaker B.V.
|
|
//CuraEngine is released under the terms of the AGPLv3 or higher.
|
|
|
|
#ifndef UTILS_POLYGONS_SEGMENT_INDEX_H
|
|
#define UTILS_POLYGONS_SEGMENT_INDEX_H
|
|
|
|
#include <vector>
|
|
|
|
#include "libslic3r/Polygon.hpp"
|
|
#include "libslic3r/Point.hpp"
|
|
#include "PolygonsPointIndex.hpp"
|
|
#include "libslic3r/libslic3r.h"
|
|
|
|
namespace Slic3r::Arachne
|
|
{
|
|
|
|
/*!
|
|
* A class for iterating over the points in one of the polygons in a \ref Polygons object
|
|
*/
|
|
class PolygonsSegmentIndex : public PolygonsPointIndex
|
|
{
|
|
public:
|
|
PolygonsSegmentIndex() : PolygonsPointIndex(){};
|
|
PolygonsSegmentIndex(const Polygons *polygons, unsigned int poly_idx, unsigned int point_idx) : PolygonsPointIndex(polygons, poly_idx, point_idx){};
|
|
|
|
Point from() const { return PolygonsPointIndex::p(); }
|
|
|
|
Point to() const { return PolygonsSegmentIndex::next().p(); }
|
|
};
|
|
|
|
} // namespace Slic3r::Arachne
|
|
|
|
namespace boost::polygon {
|
|
|
|
template<> struct geometry_concept<Slic3r::Arachne::PolygonsSegmentIndex>
|
|
{
|
|
typedef segment_concept type;
|
|
};
|
|
|
|
template<> struct segment_traits<Slic3r::Arachne::PolygonsSegmentIndex>
|
|
{
|
|
typedef coord_t coordinate_type;
|
|
typedef Slic3r::Point point_type;
|
|
|
|
static inline point_type get(const Slic3r::Arachne::PolygonsSegmentIndex &CSegment, direction_1d dir)
|
|
{
|
|
return dir.to_int() ? CSegment.to() : CSegment.from();
|
|
}
|
|
};
|
|
|
|
} // namespace boost::polygon
|
|
|
|
#endif//UTILS_POLYGONS_SEGMENT_INDEX_H
|