EdgeHolder.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "edge-segments.h"
  3. namespace msdfgen {
  4. /// Container for a single edge of dynamic type.
  5. class EdgeHolder {
  6. public:
  7. /// Swaps the edges held by a and b.
  8. static void swap(EdgeHolder &a, EdgeHolder &b);
  9. EdgeHolder();
  10. EdgeHolder(EdgeSegment *segment);
  11. EdgeHolder(Point2 p0, Point2 p1, EdgeColor edgeColor = WHITE);
  12. EdgeHolder(Point2 p0, Point2 p1, Point2 p2, EdgeColor edgeColor = WHITE);
  13. EdgeHolder(Point2 p0, Point2 p1, Point2 p2, Point2 p3, EdgeColor edgeColor = WHITE);
  14. EdgeHolder(const EdgeHolder &orig);
  15. #ifdef MSDFGEN_USE_CPP11
  16. EdgeHolder(EdgeHolder &&orig);
  17. #endif
  18. ~EdgeHolder();
  19. EdgeHolder & operator=(const EdgeHolder &orig);
  20. #ifdef MSDFGEN_USE_CPP11
  21. EdgeHolder & operator=(EdgeHolder &&orig);
  22. #endif
  23. EdgeSegment & operator*();
  24. const EdgeSegment & operator*() const;
  25. EdgeSegment * operator->();
  26. const EdgeSegment * operator->() const;
  27. operator EdgeSegment *();
  28. operator const EdgeSegment *() const;
  29. private:
  30. EdgeSegment *edgeSegment;
  31. };
  32. }