A series of straight line segments, which can also be interpreted as a series of control points for splines, etc. More...
Public Member Functions | |
polyLine (const pointField &points, const bool notImplementedClosed=false) | |
Construct from components. More... | |
polyLine (const point &start, const pointField &intermediate, const point &end, const bool notImplementedClosed=false) | |
Construct from begin, intermediate, end points. More... | |
const pointField & | points () const noexcept |
Return const-access to the control-points. More... | |
label | nSegments () const noexcept |
The number of line segments. More... | |
point | position (const scalar) const |
The point position corresponding to the curve parameter. More... | |
point | position (const label segment, const scalar) const |
The point position corresponding to the local parameter. More... | |
scalar | length () const noexcept |
The length of the curve. More... | |
Static Public Member Functions | |
static tmp< pointField > | concat (const point &start, const pointField &intermediate, const point &end) |
Concatenate begin, intermediate and end points. More... | |
Protected Member Functions | |
void | calcParam () |
Precalculate the rational cumulative parameter value and the line-length. More... | |
label | localParameter (scalar &lambda) const |
Return the line segment and the local parameter [0..1] corresponding to the global lambda [0..1]. More... | |
Protected Attributes | |
pointField | points_ |
The control points or ends of each segments. More... | |
scalar | lineLength_ |
The real (total) line length. More... | |
scalarList | param_ |
The rational (0-1) cumulative parameter value for each point. More... | |
A series of straight line segments, which can also be interpreted as a series of control points for splines, etc.
A future implementation could also handle a closed polyLine.
Definition at line 51 of file polyLine.H.
|
explicit |
Construct from components.
points | The poly-line points |
Definition at line 77 of file polyLine.C.
References polyLine::calcParam().
polyLine | ( | const point & | start, |
const pointField & | intermediate, | ||
const point & | end, | ||
const bool | notImplementedClosed = false |
||
) |
Construct from begin, intermediate, end points.
start | The start point |
intermediate | The intermediate points |
end | The end point |
Definition at line 88 of file polyLine.C.
|
protected |
Precalculate the rational cumulative parameter value and the line-length.
Definition at line 50 of file polyLine.C.
References UList< T >::last(), polyLine::lineLength_, Foam::mag(), polyLine::param_, polyLine::points_, List< T >::resize(), and UList< T >::size().
Referenced by polyLine::polyLine().
|
protected |
Return the line segment and the local parameter [0..1] corresponding to the global lambda [0..1].
Definition at line 117 of file polyLine.C.
References lambda().
Referenced by BSpline::position().
|
static |
Concatenate begin, intermediate and end points.
start | The start point |
intermediate | The intermediate points |
end | The end point |
Definition at line 28 of file polyLine.C.
References UList< T >::first(), UList< T >::last(), Foam::New(), p0, and UList< T >::size().
Referenced by blockEdge::appendEndPoints().
|
noexcept |
Return const-access to the control-points.
Definition at line 105 of file polyLine.C.
Referenced by BSpline::position().
|
noexcept |
The number of line segments.
Definition at line 111 of file polyLine.C.
Foam::point position | ( | const scalar | mu | ) | const |
The point position corresponding to the curve parameter.
0 <= lambda <= 1
Definition at line 151 of file polyLine.C.
References lambda(), and Foam::constant::physicoChemical::mu.
Referenced by polyLineEdge::position().
Foam::point position | ( | const label | segment, |
const scalar | mu | ||
) | const |
The point position corresponding to the local parameter.
0 <= lambda <= 1 on the given segment
Definition at line 170 of file polyLine.C.
References Foam::constant::physicoChemical::mu, and p0.
|
noexcept |
The length of the curve.
Definition at line 203 of file polyLine.C.
|
protected |
The control points or ends of each segments.
Definition at line 60 of file polyLine.H.
Referenced by polyLine::calcParam().
|
protected |
The real (total) line length.
Definition at line 65 of file polyLine.H.
Referenced by polyLine::calcParam(), and polyLineEdge::length().
|
protected |
The rational (0-1) cumulative parameter value for each point.
Definition at line 70 of file polyLine.H.
Referenced by polyLine::calcParam().