#include "contour-combiners.h" #include <cfloat> #include "arithmetics.hpp" namespace msdfgen { static void initDistance(double &distance) { … } static void initDistance(MultiDistance &distance) { … } static double resolveDistance(double distance) { … } static double resolveDistance(const MultiDistance &distance) { … } template <class EdgeSelector> SimpleContourCombiner<EdgeSelector>::SimpleContourCombiner(const Shape &shape) { … } template <class EdgeSelector> void SimpleContourCombiner<EdgeSelector>::reset(const Point2 &p) { … } template <class EdgeSelector> EdgeSelector &SimpleContourCombiner<EdgeSelector>::edgeSelector(int) { … } template <class EdgeSelector> typename SimpleContourCombiner<EdgeSelector>::DistanceType SimpleContourCombiner<EdgeSelector>::distance() const { … } template class SimpleContourCombiner<TrueDistanceSelector>; template class SimpleContourCombiner<PseudoDistanceSelector>; template class SimpleContourCombiner<MultiDistanceSelector>; template class SimpleContourCombiner<MultiAndTrueDistanceSelector>; template <class EdgeSelector> OverlappingContourCombiner<EdgeSelector>::OverlappingContourCombiner(const Shape &shape) { … } template <class EdgeSelector> void OverlappingContourCombiner<EdgeSelector>::reset(const Point2 &p) { … } template <class EdgeSelector> EdgeSelector &OverlappingContourCombiner<EdgeSelector>::edgeSelector(int i) { … } template <class EdgeSelector> typename OverlappingContourCombiner<EdgeSelector>::DistanceType OverlappingContourCombiner<EdgeSelector>::distance() const { … } template class OverlappingContourCombiner<TrueDistanceSelector>; template class OverlappingContourCombiner<PseudoDistanceSelector>; template class OverlappingContourCombiner<MultiDistanceSelector>; template class OverlappingContourCombiner<MultiAndTrueDistanceSelector>; }