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 &, Istream &)  
Construct from Istream. 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 &, Istream &)  
Construct from Istream setting pointsList. More...  
virtual autoPtr< blockEdge >  clone () const 
Clone function. More...  
virtual  ~blockEdge ()=default 
Destructor. More...  
label  start () const 
Return label of start point. More...  
label  end () const 
Return label of end point. More...  
int  compare (const blockEdge &) const 
Compare the given start and end points with this curve. More...  
int  compare (const edge &) const 
Compare the given start and end points with this curve. More...  
int  compare (const label start, const label end) const 
Compare the given start and end points with this curve. More...  
virtual tmp< pointField >  position (const scalarList &) const 
Return the point positions corresponding to the curve parameters. More...  
void  write (Ostream &, const dictionary &) 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 &, Istream &) 
New function which constructs and returns pointer to a blockEdge. More...  
Static Protected Member Functions inherited from blockEdge  
static pointField  appendEndPoints (const pointField &, const label start, const label end, const pointField &otherKnots) 
Return a complete point field by appending the start/end points. More...  
Protected Attributes inherited from blockEdge  
const pointField &  points_ 
const label  start_ 
const label  end_ 
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.
Implements blockEdge.
Definition at line 94 of file bezier.C.
References NotImplemented.