summaryrefslogtreecommitdiff
path: root/thirdparty/msdfgen/core/EdgeHolder.h
blob: c4c5be76168f58fb29464a4cae0929a6d9a878b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

#pragma once

#include "edge-segments.h"

namespace msdfgen {

/// Container for a single edge of dynamic type.
class EdgeHolder {

public:
    /// Swaps the edges held by a and b.
    static void swap(EdgeHolder &a, EdgeHolder &b);

    EdgeHolder();
    EdgeHolder(EdgeSegment *segment);
    EdgeHolder(Point2 p0, Point2 p1, EdgeColor edgeColor = WHITE);
    EdgeHolder(Point2 p0, Point2 p1, Point2 p2, EdgeColor edgeColor = WHITE);
    EdgeHolder(Point2 p0, Point2 p1, Point2 p2, Point2 p3, EdgeColor edgeColor = WHITE);
    EdgeHolder(const EdgeHolder &orig);
#ifdef MSDFGEN_USE_CPP11
    EdgeHolder(EdgeHolder &&orig);
#endif
    ~EdgeHolder();
    EdgeHolder & operator=(const EdgeHolder &orig);
#ifdef MSDFGEN_USE_CPP11
    EdgeHolder & operator=(EdgeHolder &&orig);
#endif
    EdgeSegment & operator*();
    const EdgeSegment & operator*() const;
    EdgeSegment * operator->();
    const EdgeSegment * operator->() const;
    operator EdgeSegment *();
    operator const EdgeSegment *() const;

private:
    EdgeSegment *edgeSegment;

};

}