An implementation of Bsplines. More...
Public Member Functions  
BSpline (const pointField &knots, const bool notImplementedClosed=false)  
Construct from components. More...  
BSpline (const BSpline &)=delete  
Disallow default bitwise copy construction. More...  
point  position (const scalar lambda) const 
Return the point position corresponding to the curve parameter. More...  
point  position (const label segment, const scalar lambda) const 
Return the point position corresponding to the local parameter. More...  
scalar  length () const 
Return the length of the curve. More...  
void  operator= (const BSpline &)=delete 
Disallow default bitwise assignment. More...  
Public Member Functions inherited from polyLine  
polyLine (const pointField &, const bool notImplementedClosed=false)  
Construct from components. More...  
polyLine (const polyLine &)=delete  
Disallow default bitwise copy construction. More...  
const pointField &  points () const 
Return constaccess to the controlpoints. More...  
label  nSegments () const 
Return the number of line segments. More...  
point  position (const scalar) const 
Return the point position corresponding to the curve parameter. More...  
point  position (const label segment, const scalar) const 
Return the point position corresponding to the local parameter. More...  
scalar  length () const 
Return the length of the curve. More...  
void  operator= (const polyLine &)=delete 
Disallow default bitwise assignment. More...  
Additional Inherited Members  
Protected Member Functions inherited from polyLine  
void  calcParam () 
Precalculate the rational cumulative parameter value. More...  
label  localParameter (scalar &lambda) const 
Return the line segment and the local parameter [0..1]. More...  
Protected Attributes inherited from polyLine  
pointField  points_ 
The control points or ends of each segments. More...  
scalar  lineLength_ 
The real line length. More...  
scalarList  param_ 
The rational (01) cumulative parameter value for each point. More...  
An implementation of Bsplines.
In this implementation, the end tangents are created automatically by reflection.
In matrix form, the local interpolation on the interval t=[0..1] is described as follows:
P(t) = 1/6 * [ t^3 t^2 t 1 ] * [ 1 3 3 1 ] * [ P1 ] [ 3 6 3 0 ] [ P0 ] [ 3 0 3 0 ] [ P1 ] [ 1 4 1 0 ] [ P2 ]
Where P1 and P2 represent the neighbouring points or the extrapolated end points. Simple reflection is used to automatically create the end points.
The spline is discretized based on the chord length of the individual segments. In rare cases (sections with very high curvatures), the resulting distribution may be suboptimal.
A future implementation could also handle closed splines.
BSpline  (  const pointField &  knots, 
const bool  notImplementedClosed = false 

) 
Foam::point position  (  const scalar  lambda  )  const 
Return the point position corresponding to the curve parameter.
0 <= lambda <= 1
Definition at line 42 of file BSpline.C.
References UList< T >::first(), lambda(), UList< T >::last(), polyLine::localParameter(), Foam::constant::physicoChemical::mu, and polyLine::points().
Referenced by BSplineEdge::position().
Foam::point position  (  const label  segment, 
const scalar  lambda  
)  const 
Return the point position corresponding to the local parameter.
0 <= lambda <= 1 on the given segment
Definition at line 61 of file BSpline.C.
References UList< T >::first(), UList< T >::last(), polyLine::nSegments(), and polyLine::points().
Foam::scalar length  (  )  const 
Return the length of the curve.
Definition at line 132 of file BSpline.C.
References NotImplemented.
Referenced by BSplineEdge::length().

delete 
Disallow default bitwise assignment.