#ifndef CLIPPER_ENGINE_H
#define CLIPPER_ENGINE_H
#include <cstdlib>
#include <stdint.h>
#include <iostream>
#include <queue>
#include <vector>
#include <functional>
#include <numeric>
#include <memory>
#include "clipper2/clipper.core.h"
namespace Clipper2Lib {
struct Scanline;
struct IntersectNode;
struct Active;
struct Vertex;
struct LocalMinima;
struct OutRec;
struct HorzSegment;
enum class ClipType { … };
enum class PathType { … };
enum class JoinWith { … };
enum class VertexFlags : uint32_t { … };
constexpr enum VertexFlags operator &(enum VertexFlags a, enum VertexFlags b)
{ … }
constexpr enum VertexFlags operator |(enum VertexFlags a, enum VertexFlags b)
{ … }
struct Vertex { … };
struct OutPt { … };
class PolyPath;
class PolyPath64;
class PolyPathD;
PolyTree64;
PolyTreeD;
struct OutRec;
OutRecList;
struct OutRec { … };
struct Active { … };
struct LocalMinima { … };
struct IntersectNode { … };
struct HorzSegment { … };
struct HorzJoin { … };
#ifdef USINGZ
typedef std::function<void(const Point64& e1bot, const Point64& e1top,
const Point64& e2bot, const Point64& e2top, Point64& pt)> ZCallback64;
typedef std::function<void(const PointD& e1bot, const PointD& e1top,
const PointD& e2bot, const PointD& e2top, PointD& pt)> ZCallbackD;
#endif
HorzSegmentList;
LocalMinima_ptr;
LocalMinimaList;
IntersectNodeList;
class ReuseableDataContainer64 { … };
class ClipperBase { … };
class PolyPath { … };
PolyPath64List;
PolyPathDList;
class PolyPath64 : public PolyPath { … };
class PolyPathD : public PolyPath { … };
class Clipper64 : public ClipperBase
{ … };
class ClipperD : public ClipperBase { … };
}
#endif