42 auto& result = tresult.ref();
60 param_.resize(points_.size());
66 for (label i=1; i < param_.size(); i++)
68 param_[i] = param_[i-1] +
mag(points_[i] - points_[i-1]);
72 lineLength_ = param_.last();
73 for (label i=1; i < param_.size() - 1; i++)
75 param_[i] /= lineLength_;
102 points_(
polyLine::concat(start, intermediate, end)),
120 return points_.size()-1;
132 else if (
lambda > 1 - SMALL)
163 return points_.first();
165 else if (
mu > 1 - SMALL)
167 return points_.last();
185 return points_.first();
187 else if (
segment > nSegments())
189 return points_.last();
An ordered pair of two objects of type <T> with first() and second() elements.
A List obtained as a section of another List.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
T & first()
Return the first element of the list.
void size(const label n)
Older name for setAddressableSize.
T & last()
Return the last element of the list.
A series of straight line segments, which can also be interpreted as a series of control points for s...
const pointField & points() const noexcept
Return const-access to the control-points.
label localParameter(scalar &lambda) const
scalar length() const noexcept
The length of the curve.
static tmp< pointField > concat(const point &start, const pointField &intermediate, const point &end)
Concatenate begin, intermediate and end points.
label nSegments() const noexcept
The number of line segments.
A class for managing temporary objects.
const volScalarField & mu
const volScalarField & p0
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
dimensionedScalar lambda("lambda", dimTime/sqr(dimLength), laminarTransport)