29 while (++ip1n < Curve.
size() &&
distance(o, Curve[ip1n]) < l);
34 if (ip1n < Curve.
size() && in >= 0)
57 while (--ip1n >= 0 &&
distance(o, Curve[ip1n]) < l);
62 if (ip1n >= 0 && in < Curve.
size())
85 scalar
b = 2.0*(
D&(p2 - o));
86 scalar
c =
magSqr(p2) + (o&(o - 2.0*p2)) - l*l;
88 scalar b2m4ac =
b*
b - 4.0*a*
c;
92 scalar srb2m4ac =
sqrt(b2m4ac);
94 scalar lamda = (-
b - srb2m4ac)/(2.0*a);
98 lamda = (-
b + srb2m4ac)/(2.0*a);
101 if (lamda < 1.0+curveSmall && lamda > -
curveSmall)
103 n = p2 + lamda*(p1 - p2);
129 while (++ip1n < Curve.
size() &&
mag(o.x() - Curve[ip1n].x()) < l);
134 if (ip1n < Curve.
size() && in >= 0)
163 if (p2.x() < o.x() + l)
169 scalar lamda = (
n.x() - p1.x())/
D.x();
170 n.y() = p1.y() + lamda*
D.y();
void size(const label n)
Older name for setAddressableSize.
bool XstepForwardsToNextPoint(const vector &o, vector &n, label &i, label &ip1, scalar l, const curve &Curve)
bool stepBackwardsToNextPoint(const vector &o, vector &n, label &i, label &ip1, scalar l, const curve &Curve)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
bool interpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
dimensionedScalar sqrt(const dimensionedScalar &ds)
bool stepForwardsToNextPoint(const vector &o, vector &n, label &i, label &ip1, scalar l, const curve &Curve)
scalar distance(const vector &p1, const vector &p2)
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
A single curve in a graph.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
bool Xinterpolate(const vector &p1, const vector &p2, const vector &o, vector &n, scalar l)
const dimensionedScalar c
Speed of light in a vacuum.
const dimensionedScalar & D
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)