Nth order bezier curve edge. Only interior control points should be specified. The outer points are taken as start and end. Note that the calculation of each point takes 0(N^2) time, where N is the number of control points. This edge type shouldn't therefore be used for finely discretised line data; polyLine or similar will be more appropriate for such cases. Beziers are useful for simple curved shapes such as aerofoils, or when you want an edge to match a specific direction at one, or both, or its endpoints. In comparison with BSplines, the grading of bezier edges should be smoother, and the code is much simpler. The algorithmic order is worse, however, and the edge will not follow the control points as closely. More...
#include <bezier.H>


Public Member Functions | |
| TypeName ("bezier") | |
| bezier (const pointField &points, const edge &fromTo, const pointField &control) | |
| Construct from components. | |
| bezier (const pointField &points, const label from, const label to, const pointField &control) | |
| Construct from components. | |
| bezier (const dictionary &dict, const label index, const searchableSurfaces &, const pointField &points, Istream &is) | |
| Construct from Istream and point field. | |
| virtual | ~bezier ()=default |
| Destructor. | |
| point | position (const scalar lambda) const |
| Return the point position corresponding to the curve parameter. | |
| scalar | length () const |
| Return the length of the curve. | |
| Public Member Functions inherited from blockEdge | |
| TypeName ("blockEdge") | |
| Runtime type information. | |
| declareRunTimeSelectionTable (autoPtr, blockEdge, Istream,(const dictionary &dict, const label index, const searchableSurfaces &geometry, const pointField &points, Istream &is),(dict, index, geometry, points, is)) | |
| blockEdge (const pointField &points, const edge &fromTo) | |
| Construct from components. | |
| blockEdge (const dictionary &dict, const label index, const pointField &points, Istream &is) | |
| Construct from Istream and point field. | |
| virtual autoPtr< blockEdge > | clone () const |
| Clone function. | |
| virtual | ~blockEdge ()=default |
| Destructor. | |
| bool | good () const noexcept |
| True if first/last indices are unique and non-negative. | |
| bool | valid () const noexcept |
| Same as good(). | |
| label | start () const noexcept |
| Index of start (first) point. | |
| label | end () const noexcept |
| Index of end (last) point. | |
| const point & | firstPoint () const |
| The location of the first point. | |
| const point & | lastPoint () const |
| The location of the last point. | |
| int | compare (const blockEdge &e) const |
| Compare the given start/end points with this block edge. | |
| int | compare (const edge &e) const |
| Compare the given start/end points with this block edge. | |
| int | compare (const label start, const label end) const |
| Compare the given start/end points with this block edge. | |
| point | linearPosition (const scalar lambda) const |
| The point position in the straight line. | |
| virtual tmp< pointField > | position (const scalarList &lambdas) const |
| The point positions corresponding to the curve parameters. | |
| void | write (Ostream &os, const dictionary &dict) const |
| Write edge with variable back-substitution. | |
Additional Inherited Members | |
| Static Public Member Functions inherited from blockEdge | |
| static autoPtr< blockEdge > | New (const dictionary &dict, const label index, const searchableSurfaces &geometry, const pointField &points, Istream &is) |
| New function which constructs and returns pointer to a blockEdge. | |
| Protected Member Functions inherited from blockEdge | |
| blockEdge (const pointField &points, const label from, const label to) | |
| Construct from components. | |
| Static Protected Member Functions inherited from blockEdge | |
| static pointField | appendEndPoints (const pointField &p, const label from, const label to, const pointField &intermediate) |
| Return a complete point field by appending the start/end points to the given list. | |
| Protected Attributes inherited from blockEdge | |
| const pointField & | points_ |
| The referenced point field. | |
| const label | start_ |
| Index of the first point. | |
| const label | end_ |
| Index of the last point. | |
Nth order bezier curve edge. Only interior control points should be specified. The outer points are taken as start and end. Note that the calculation of each point takes 0(N^2) time, where N is the number of control points. This edge type shouldn't therefore be used for finely discretised line data; polyLine or similar will be more appropriate for such cases. Beziers are useful for simple curved shapes such as aerofoils, or when you want an edge to match a specific direction at one, or both, or its endpoints. In comparison with BSplines, the grading of bezier edges should be smoother, and the code is much simpler. The algorithmic order is worse, however, and the edge will not follow the control points as closely.
| bezier | ( | const pointField & | points, |
| const edge & | fromTo, | ||
| const pointField & | control ) |
Construct from components.
| points | Referenced point field |
| fromTo | Start/end in point field |
| control | The control points |
Definition at line 40 of file bezier.C.
References blockEdge::blockEdge(), and points.

| bezier | ( | const pointField & | points, |
| const label | from, | ||
| const label | to, | ||
| const pointField & | control ) |
| bezier | ( | const dictionary & | dict, |
| const label | index, | ||
| const searchableSurfaces & | , | ||
| const pointField & | points, | ||
| Istream & | is ) |
Construct from Istream and point field.
| points | Referenced point field |
Definition at line 64 of file bezier.C.
References blockEdge::blockEdge(), dict, blockEdge::firstPoint(), blockEdge::lastPoint(), and points.

|
virtualdefault |
|
virtual |
|
virtual |
Return the length of the curve.
\not NotImplemented
Implements blockEdge.
Definition at line 102 of file bezier.C.
References NotImplemented.