DistanceMapping.cpp 701 B

123456789101112131415161718192021222324252627
  1. #include "DistanceMapping.h"
  2. namespace msdfgen {
  3. DistanceMapping DistanceMapping::inverse(Range range) {
  4. double rangeWidth = range.upper-range.lower;
  5. return DistanceMapping(rangeWidth, range.lower/(rangeWidth ? rangeWidth : 1));
  6. }
  7. DistanceMapping::DistanceMapping() : scale(1), translate(0) { }
  8. DistanceMapping::DistanceMapping(Range range) : scale(1/(range.upper-range.lower)), translate(-range.lower) { }
  9. double DistanceMapping::operator()(double d) const {
  10. return scale*(d+translate);
  11. }
  12. double DistanceMapping::operator()(Delta d) const {
  13. return scale*d.value;
  14. }
  15. DistanceMapping DistanceMapping::inverse() const {
  16. return DistanceMapping(1/scale, -scale*translate);
  17. }
  18. }