generated from hertog/godot-module-template
37 lines
807 B
C++
37 lines
807 B
C++
|
|
#pragma once
|
|
|
|
#include "Range.hpp"
|
|
|
|
namespace msdfgen {
|
|
|
|
/// Linear transformation of signed distance values.
|
|
class DistanceMapping {
|
|
|
|
public:
|
|
/// Explicitly designates value as distance delta rather than an absolute distance.
|
|
class Delta {
|
|
public:
|
|
double value;
|
|
inline explicit Delta(double distanceDelta) : value(distanceDelta) { }
|
|
inline operator double() const { return value; }
|
|
};
|
|
|
|
static DistanceMapping inverse(Range range);
|
|
|
|
DistanceMapping();
|
|
DistanceMapping(Range range);
|
|
double operator()(double d) const;
|
|
double operator()(Delta d) const;
|
|
DistanceMapping inverse() const;
|
|
|
|
private:
|
|
double scale;
|
|
double translate;
|
|
|
|
inline DistanceMapping(double scale, double translate) : scale(scale), translate(translate) { }
|
|
|
|
};
|
|
|
|
}
|