A series of straight line segments, which can also be interpreted as a series of control points for splines, etc. More...
#include <polyLine.H>


Public Member Functions | |
| polyLine (const pointField &points, const bool notImplementedClosed=false) | |
| Construct from components. | |
| polyLine (const point &start, const pointField &intermediate, const point &end, const bool notImplementedClosed=false) | |
| Construct from begin, intermediate, end points. | |
| const pointField & | points () const noexcept |
| Return const-access to the control-points. | |
| label | nSegments () const noexcept |
| The number of line segments. | |
| point | position (const scalar) const |
| The point position corresponding to the curve parameter. | |
| point | position (const label segment, const scalar) const |
| The point position corresponding to the local parameter. | |
| scalar | length () const noexcept |
| The length of the curve. | |
Static Public Member Functions | |
| static tmp< pointField > | concat (const point &start, const pointField &intermediate, const point &end) |
| Concatenate begin, intermediate and end points. | |
Protected Member Functions | |
| void | calcParam () |
| Precalculate the rational cumulative parameter value and the line-length. | |
| label | localParameter (scalar &lambda) const |
| Return the line segment and the local parameter [0..1] corresponding to the global lambda [0..1]. | |
Protected Attributes | |
| pointField | points_ |
| The control points or ends of each segments. | |
| scalar | lineLength_ |
| The real (total) line length. | |
| scalarList | param_ |
| The rational (0-1) cumulative parameter value for each point. | |
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 calcParam(), lineLength_, p, param_, and points_.
Referenced by BSpline::BSpline(), BSplineEdge::BSplineEdge(), BSplineEdge::BSplineEdge(), CatmullRomSpline::CatmullRomSpline(), polyLine(), polyLineEdge::polyLineEdge(), polyLineEdge::polyLineEdge(), splineEdge::splineEdge(), and splineEdge::splineEdge().


| 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 87 of file polyLine.C.
References calcParam(), concat(), lineLength_, param_, points_, and polyLine().

|
protected |
Precalculate the rational cumulative parameter value and the line-length.
Definition at line 50 of file polyLine.C.
References lineLength_, Foam::mag(), param_, and points_.
Referenced by polyLine(), and 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(), nSegments(), and param_.
Referenced by BSpline::position(), CatmullRomSpline::position(), and position().


|
static |
Concatenate begin, intermediate and end points.
| start | The start point |
| intermediate | The intermediate points |
| end | The end point |
Definition at line 27 of file polyLine.C.
References UList< T >::first(), tmp< T >::New(), p0, and UList< T >::size().
Referenced by blockEdge::appendEndPoints(), BSplineEdge::BSplineEdge(), BSplineEdge::BSplineEdge(), polyLine(), splineEdge::splineEdge(), and splineEdge::splineEdge().


|
noexcept |
Return const-access to the control-points.
Definition at line 105 of file polyLine.C.
References Foam::noexcept, and points_.
Referenced by BSplineEdge::BSplineEdge(), BSplineEdge::BSplineEdge(), BSplineEdge::BSplineEdge(), polyLineEdge::polyLineEdge(), polyLineEdge::polyLineEdge(), polyLineEdge::polyLineEdge(), splineEdge::splineEdge(), splineEdge::splineEdge(), splineEdge::splineEdge(), BSplineEdge::TypeName(), polyLineEdge::TypeName(), and splineEdge::TypeName().

|
noexcept |
The number of line segments.
Definition at line 111 of file polyLine.C.
References Foam::noexcept, and points_.
Referenced by CatmullRomSpline::length(), localParameter(), BSpline::position(), CatmullRomSpline::position(), and position().

| 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(), localParameter(), mu, points_, and position().
Referenced by polyLineEdge::position(), and 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 169 of file polyLine.C.
References mu, nSegments(), p0, and points_.

|
noexcept |
The length of the curve.
Definition at line 203 of file polyLine.C.
References lineLength_, and Foam::noexcept.
|
protected |
The control points or ends of each segments.
Definition at line 60 of file polyLine.H.
Referenced by calcParam(), nSegments(), points(), polyLine(), polyLine(), position(), and position().
|
protected |
The real (total) line length.
Definition at line 65 of file polyLine.H.
Referenced by calcParam(), polyLineEdge::length(), length(), polyLine(), and polyLine().
|
protected |
The rational (0-1) cumulative parameter value for each point.
Definition at line 70 of file polyLine.H.
Referenced by calcParam(), localParameter(), polyLine(), and polyLine().