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...
Public Member Functions  
TypeName ("bezier")  
bezier (const pointField &points, const label start, const label end, const pointField &control)  
Construct from components. More...  
bezier (const dictionary &dict, const label index, const searchableSurfaces &geometry, const pointField &points, Istream &is)  
Construct from Istream and point field. More...  
virtual  ~bezier ()=default 
Destructor. More...  
point  position (const scalar lambda) const 
Return the point position corresponding to the curve parameter. More...  
scalar  length () const 
Return the length of the curve. More...  
Public Member Functions inherited from blockEdge  
TypeName ("blockEdge")  
Runtime type information. More...  
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 label start, const label end)  
Construct from components. More...  
blockEdge (const dictionary &dict, const label index, const pointField &points, Istream &is)  
Construct from Istream and point field. More...  
virtual autoPtr< blockEdge >  clone () const 
Clone function. More...  
virtual  ~blockEdge ()=default 
Destructor. More...  
label  start () const 
Index of start point. More...  
label  end () const 
Index of end point. More...  
int  compare (const blockEdge &e) const 
Compare the given start/end points with this block edge. More...  
int  compare (const edge &e) const 
Compare the given start/end points with this block edge. More...  
int  compare (const label start, const label end) const 
Compare the given start/end points with this block edge. More...  
virtual tmp< pointField >  position (const scalarList &lambdas) const 
The point positions corresponding to the curve parameters. More...  
void  write (Ostream &os, const dictionary &dict) const 
Write edge with variable backsubstitution. More...  
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. More...  
Static Protected Member Functions inherited from blockEdge  
static pointField  appendEndPoints (const pointField &points, const label start, const label end, const pointField &intermediate) 
Protected Attributes inherited from blockEdge  
const pointField &  points_ 
The referenced point field. More...  
const label  start_ 
Index of the start point. More...  
const label  end_ 
Index of the end point. More...  
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 label  start,  
const label  end,  
const pointField &  control  
) 
bezier  (  const dictionary &  dict, 
const label  index,  
const searchableSurfaces &  geometry,  
const pointField &  points,  
Istream &  is  
) 

virtualdefault 
Destructor.
TypeName  (  "bezier"  ) 

virtual 

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