25 #ifndef __BIAS_CONTOURBSPLINEDATA_HH_
26 #define __BIAS_CONTOURBSPLINEDATA_HH_
32 #include <Base/Debug/Debug.hh>
33 #include <Base/Math/Polynom.hh>
34 #include <Base/Math/Matrix.hh>
35 #include <Base/Math/Vector.hh>
37 #include "ContourBSplineType.hh"
39 #define D_CONTOURBSPLINEMATH_DEBUG 1<<0
40 #define D_CONTOURBSPLINEMATH_REGISTER 1<<1
41 #define D_CONTOURBSPLINEMATH_SPAN 1<<2
42 #define D_CONTOURBSPLINEMATH_PLACEMENT 1<<3
125 const std::vector<unsigned int>& mPnts);
144 const std::vector<ContourBSplineData*>& bSplinesData);
172 const std::vector<unsigned int>& mPnts,
173 const unsigned int numBasePolynoms,
174 const unsigned int numSpans,
175 const std::vector<unsigned int>& numSpansVec,
190 const std::vector<unsigned int>& mPnts);
234 const unsigned int knotIndex,
235 const unsigned int order,
236 const std::vector<int>& breakpoints);
251 const std::vector<unsigned int>& kMult,
252 const std::vector<int>& k);
287 static std::list<ContourBSplineData*>
pntr_;
~ContourBSplineData()
destructor
class for Polynoms of arbitary order
BIAS::Matrix< double > splineMetricMatrix_
metric matrix - confer to "Active Contours", chapter 3, p.50f
data object which holds a shape matrix or regularisation matrix for a b-spline curve; could be shared...
void RegisterPeriodicBSpline_()
inits class variables for a closed B-Spline curve
friend class ContourBSpline
void ComputeSpan_(const unsigned int span, const int placeOff, const std::vector< unsigned int > &kMult, const std::vector< int > &k)
computes the span matrix of a B-Spline curves span
data object which holds all infomations of a B-Spline curve (ContourBSpline); its shared by B-Spline ...
static ContourBSplineData * LookUpData_(const unsigned int order, const ContourBSplineType::Type bType, const std::vector< unsigned int > &mPnts)
looks up if a ContourBSplineData object with the initial given parameter exist and returns pointer to...
unsigned int reference_
reference counter - for handling unregister
std::vector< BIAS::Matrix< double > > placedSpanMatrices_
span matrices of curve (multiplied with placement matrices - p.292)
unsigned int numBasePolynoms_
number of base polynoms of curve - equal to number of control points
static ContourBSplineData * Register(const unsigned int order, const ContourBSplineType::Type bType, const std::vector< unsigned int > &mPnts)
registers a ContourBSpline object and returns pointer to its data object
ContourBSplineType::Type bType_
type of B-Spline curve (Open,Closed,Cluster)
BIAS::Polynom ComputeBasePolynomRecursive_(const unsigned int span, const unsigned int knotIndex, const unsigned int order, const std::vector< int > &breakpoints)
recursivly computes one base polynom for a span matrix
void ComputeSplineMetricMatrixParametric_()
computes the metrix matrix (I^2 x scriptB) of the B-Spline curve
void Unregister()
decrements reference counter to this data object and deletes it if there is no reference to it ...
BIAS::Matrix< double > areaCoefficientMatrix_
area coefficient matrix - confer to "Active Contours", chapter 3, p.65
void RegisterAperiodicBSpline_()
inits class variables for an open B-Spline curve
void ComputeSplineMetricMatrix_()
computes the metric matrix (scriptB) of the B-Spline curve
std::vector< unsigned int > numSpansVec_
number of spans for sub B-Spline curves of the B-Spline curve length >1 when curve is clustered ...
std::vector< unsigned int > mPnts_
vector of multiplicities - determines in which control points edges are modelled
unsigned int order_
order of B-Spline curve
BIAS::Matrix< double > splineMetricMatrixParametric_
metric matrix - confer to "Active Contours", chapter 3, p.59
static std::list< ContourBSplineData * > pntr_
list of all pointers to ContourBSplineData objects
ContourBSplineData()
empty standard constructor
unsigned int numSpans_
number of spans of curve
void ComputeAreaCoefficientMatrix_()
computes the area coefficient matrix of the B-Spline curve