Path: blob/master/thirdparty/msdfgen/core/EdgeHolder.h
9902 views
1#pragma once23#include "edge-segments.h"45namespace msdfgen {67/// Container for a single edge of dynamic type.8class EdgeHolder {910public:11/// Swaps the edges held by a and b.12static void swap(EdgeHolder &a, EdgeHolder &b);1314inline EdgeHolder() : edgeSegment() { }15inline EdgeHolder(EdgeSegment *segment) : edgeSegment(segment) { }16inline EdgeHolder(Point2 p0, Point2 p1, EdgeColor edgeColor = WHITE) : edgeSegment(EdgeSegment::create(p0, p1, edgeColor)) { }17inline EdgeHolder(Point2 p0, Point2 p1, Point2 p2, EdgeColor edgeColor = WHITE) : edgeSegment(EdgeSegment::create(p0, p1, p2, edgeColor)) { }18inline EdgeHolder(Point2 p0, Point2 p1, Point2 p2, Point2 p3, EdgeColor edgeColor = WHITE) : edgeSegment(EdgeSegment::create(p0, p1, p2, p3, edgeColor)) { }19EdgeHolder(const EdgeHolder &orig);20#ifdef MSDFGEN_USE_CPP1121EdgeHolder(EdgeHolder &&orig);22#endif23~EdgeHolder();24EdgeHolder &operator=(const EdgeHolder &orig);25#ifdef MSDFGEN_USE_CPP1126EdgeHolder &operator=(EdgeHolder &&orig);27#endif28EdgeSegment &operator*();29const EdgeSegment &operator*() const;30EdgeSegment *operator->();31const EdgeSegment *operator->() const;32operator EdgeSegment *();33operator const EdgeSegment *() const;3435private:36EdgeSegment *edgeSegment;3738};3940}414243