22#include "manifold/common.h"
23#include "manifold/vec_view.h"
76 std::vector<CrossSection>
Decompose()
const;
106 double miter_limit = 2.0,
int circularSegments = 0)
const;
115 const std::vector<CrossSection>& crossSections,
OpType op);
134 mutable std::mutex pathsMutex_;
135 mutable std::shared_ptr<const PathImpl> paths_;
136 mutable mat2x3 transform_ = la::identity;
138 mutable double tolerance_ = 0.0;
140 std::shared_ptr<const PathImpl> GetPaths()
const;
CrossSection Boolean(const CrossSection &second, OpType op) const
Definition cross_section.cpp:344
CrossSection & operator+=(const CrossSection &)
Definition cross_section.cpp:409
Polygons ToPolygons() const
Definition cross_section.cpp:777
CrossSection WarpBatch(std::function< void(VecView< vec2 >)> warpFunc) const
Definition cross_section.cpp:557
CrossSection operator+(const CrossSection &) const
Definition cross_section.cpp:401
CrossSection operator^(const CrossSection &) const
Definition cross_section.cpp:434
CrossSection Translate(const vec2 v) const
Definition cross_section.cpp:472
CrossSection Mirror(const vec2 ax) const
Definition cross_section.cpp:509
::manifold::JoinType JoinType
Definition cross_section.h:61
CrossSection & operator-=(const CrossSection &)
Definition cross_section.cpp:426
static CrossSection Square(const vec2 dims, bool center=false)
Definition cross_section.cpp:311
std::vector< CrossSection > Decompose() const
Definition cross_section.cpp:452
CrossSection Transform(const mat2x3 &m) const
Definition cross_section.cpp:523
CrossSection Offset(double delta, JoinType jt=JoinType::Round, double miter_limit=2.0, int circularSegments=0) const
Definition cross_section.cpp:653
CrossSection Rotate(double degrees) const
Definition cross_section.cpp:483
static CrossSection BatchBoolean(const std::vector< CrossSection > &crossSections, OpType op)
Definition cross_section.cpp:361
size_t NumContour() const
Definition cross_section.cpp:755
bool IsEmpty() const
Definition cross_section.cpp:760
CrossSection SetTolerance(double tolerance) const
Definition cross_section.cpp:626
CrossSection & operator^=(const CrossSection &)
Definition cross_section.cpp:442
CrossSection Hull() const
Definition cross_section.cpp:701
CrossSection Simplify(double tolerance=0) const
Definition cross_section.cpp:594
CrossSection Warp(std::function< void(vec2 &)> warpFunc) const
Definition cross_section.cpp:544
double Area() const
Definition cross_section.cpp:738
size_t NumVert() const
Definition cross_section.cpp:745
CrossSection()
Definition cross_section.cpp:197
double GetTolerance() const
Definition cross_section.cpp:619
CrossSection Scale(const vec2 s) const
Definition cross_section.cpp:496
Rect Bounds() const
Definition cross_section.cpp:766
CrossSection operator-(const CrossSection &) const
Definition cross_section.cpp:418
static CrossSection Circle(double radius, int circularSegments=0)
Definition cross_section.cpp:327
constexpr double degrees(double a)
Definition common.h:90
OpType
Boolean operation type: Add (Union), Subtract (Difference), and Intersect.
Definition common.h:626
std::vector< SimplePolygon > Polygons
Set of polygons with holes. Order of contours is arbitrary. Can contain any depth of nested holes and...
Definition common.h:155
std::vector< vec2 > SimplePolygon
Single polygon contour, wound CCW. First and last point are implicitly connected. Should ensure all i...
Definition common.h:147
JoinType
Definition common.h:637
@ Round
Definition common.h:641
Definition cross_section.cpp:32
Axis-aligned 2D box, primarily for bounding.
Definition common.h:460