23 #ifndef ATBCOUPLEDBSPLINEMODEL_LEGACY_HH 24 #define ATBCOUPLEDBSPLINEMODEL_LEGACY_HH 53 double value, std::vector<double>
const ¶meters);
56 double value, std::vector<double>
const ¶meters);
59 double value, std::vector<double>
const ¶meters);
62 double value, std::vector<double>
const ¶meters);
65 double value, std::vector<double>
const ¶meters);
68 double value, std::vector<double>
const ¶meters);
71 double value, std::vector<double>
const ¶meters);
74 double value, std::vector<double>
const ¶meters);
115 Energy(
double kappa = 1.0,
double lambda = 0.0,
double mu = 0.0);
121 double value()
const;
137 std::vector< blitz::TinyVector<double,Dim> >
const &points,
139 double kappa,
double lambda,
double mu,
140 double (®ularizer)(
double, std::vector<double>
const &) =
142 std::vector<double>
const ®ularizerParameters = std::vector<double>());
148 std::vector< blitz::TinyVector<double,Dim> >
const &dAxisControlPoints,
149 std::vector<double>
const &dThicknessControlPoints,
double tau);
154 std::vector< blitz::TinyVector<double,Dim> >
const &points,
156 std::vector< blitz::TinyVector<double,Dim> >
const &dAxisControlPoints,
157 std::vector<double>
const &dThicknessControlPoints,
158 double tau,
double kappa,
double lambda,
double mu,
159 double (®ularizer)(
double, std::vector<double>
const &),
160 std::vector<double>
const ®ularizerParameters);
165 std::vector< blitz::TinyVector<double,Dim> >
const &points,
167 double kappa,
double lambda,
double mu,
int nIter,
double tau,
168 double (®ularizer)(
double, std::vector<double>
const &) =
170 double (&dRegularizer)(
double, std::vector<double>
const &) =
172 std::vector<double>
const ®ularizerParameters = std::vector<double>(),
174 std::string
const &evolutionFileName =
"",
175 std::string
const &evolutionGroup =
"");
184 std::vector< blitz::TinyVector<double,Dim> >
const &points,
186 double kappa,
double lambda,
double mu,
int nIter,
double tau,
188 double (®ularizer)(
double, std::vector<double>
const &) =
190 double (&dRegularizer)(
double, std::vector<double>
const &) =
192 std::vector<double>
const ®ularizerParameters = std::vector<double>(),
194 std::string
const &evolutionFileName =
"");
199 std::vector<blitz::TinyVector<double,Dim> >
const &points,
202 double length,
size_t direction,
203 std::vector< blitz::TinyVector<double,3> >
const &searchDirections,
204 bool rightEnd,
double kappa,
double lambda,
double mu,
size_t nIter,
205 double tau,
double regridLength,
206 double (®ularizer)(
double, std::vector<double>
const &),
207 double (&dRegularizer)(
double, std::vector<double>
const &),
208 std::vector<double>
const ®ularizerParameters);
217 std::vector< blitz::TinyVector<double,Dim> >
const &points,
219 double kappa,
double lambda,
double mu,
220 double (®ularizer)(
double, std::vector<double>
const &) =
222 std::vector<double>
const ®ularizerParameters = std::vector<double>());
227 std::vector< blitz::TinyVector<double,Dim> >
const &points,
229 std::vector< std::vector< blitz::TinyVector<double,Dim> > >
230 const &dAxisControlPoints,
231 std::vector< std::vector<double> >
const &dThicknessControlPoints,
232 double tau,
double kappa,
double lambda,
double mu,
233 double (®ularizer)(
double, std::vector<double>
const &),
234 std::vector<double>
const ®ularizerParameters);
239 std::vector< blitz::TinyVector<double,Dim> >
const &points,
241 double kappa,
double lambda,
double mu,
int nIter,
double tau,
242 double (®ularizer)(
double, std::vector<double>
const &) =
244 double (&dRegularizer)(
double, std::vector<double>
const &) =
246 std::vector<double>
const ®ularizerParameters = std::vector<double>());
251 std::vector< blitz::TinyVector<double,Dim> >
const &points,
253 double kappa,
double lambda,
double mu,
int nIter,
double tau,
255 double (®ularizer)(
double, std::vector<double>
const &) =
257 double (&dRegularizer)(
double, std::vector<double>
const &) =
259 std::vector<double>
const ®ularizerParameters = std::vector<double>());
261 #ifdef __SAVEINTERMEDIATERESULTS 262 std::string __intermediateResultFileName;
263 std::string __intermediateBaseGroup;
264 std::string __outerIterGroup;
269 #include "ATBCoupledBSplineModel.icc" void updateAxisPolyline()
BSpline< blitz::TinyVector< double, Dim > > const & axis() const
The Polyline class provides a simple polyline representation of a BSpline for fast point to spline di...
static bool const normalizeGradient
The BSpline class provides functions for fitting B-Splines to point clouds and evaluating them at arb...
CoupledBSplineModel< Dim > & operator=(CoupledBSplineModel< Dim > const &model)
Energy computeUpdatedCoupledSplineEnergy(std::vector< blitz::TinyVector< double, Dim > > const &points, CoupledBSplineModel< Dim > model, std::vector< blitz::TinyVector< double, Dim > > const &dAxisControlPoints, std::vector< double > const &dThicknessControlPoints, double tau, double kappa, double lambda, double mu, double(®ularizer)(double, std::vector< double > const &), std::vector< double > const ®ularizerParameters)
static bool const weighCurvatureWithSplineLength
double dTikhonovRegularizer(double value, std::vector< double > const ¶meters)
static bool const controlPointsUpdatePerpendicularToSpline
double dTikhonovCutoffRegularizer(double value, std::vector< double > const ¶meters)
double totalVariationCutoffRegularizer(double value, std::vector< double > const ¶meters)
std::ostream & operator<<(std::ostream &os, Energy const &E)
bool regridModel(CoupledBSplineModel< Dim > &model, double minSegmentLength)
BSpline< double > const & thickness() const
Energy fitCoupledSplines(std::vector< blitz::TinyVector< double, Dim > > const &points, CoupledBSplineModel< Dim > &model, double kappa, double lambda, double mu, int nIter, double tau, double regridLength, double(®ularizer)(double, std::vector< double > const &)=tikhonovRegularizer, double(&dRegularizer)(double, std::vector< double > const &)=dTikhonovRegularizer, std::vector< double > const ®ularizerParameters=std::vector< double >(), iRoCS::ProgressReporter *pr=NULL, std::string const &evolutionFileName="")
Energy computeCoupledSplineEnergy(std::vector< blitz::TinyVector< double, Dim > > const &points, CoupledBSplineModel< Dim > &model, double kappa, double lambda, double mu, double(®ularizer)(double, std::vector< double > const &)=tikhonovRegularizer, std::vector< double > const ®ularizerParameters=std::vector< double >())
Energy extendCoupledBSplineModel(std::vector< blitz::TinyVector< double, Dim > > const &points, CoupledBSplineModel< Dim > const &model, CoupledBSplineModel< Dim > &extendedModel, double length, size_t direction, std::vector< blitz::TinyVector< double, 3 > > const &searchDirections, bool rightEnd, double kappa, double lambda, double mu, size_t nIter, double tau, double regridLength, double(®ularizer)(double, std::vector< double > const &), double(&dRegularizer)(double, std::vector< double > const &), std::vector< double > const ®ularizerParameters)
double tikhonovCutoffRegularizer(double value, std::vector< double > const ¶meters)
Polyline< Dim > const & axisPolyline() const
Simple Polyline class providing a function to fit a polyline with defined precision to a BSpline for ...
double dTotalVariationRegularizer(double value, std::vector< double > const ¶meters)
static bool const dataTermUsePerpendicularPointsOnly
void updateCoupledSplineModel(CoupledBSplineModel< Dim > &model, std::vector< blitz::TinyVector< double, Dim > > const &dAxisControlPoints, std::vector< double > const &dThicknessControlPoints, double tau)
double tikhonovRegularizer(double value, std::vector< double > const ¶meters)
double dTotalVariationCutoffRegularizer(double value, std::vector< double > const ¶meters)
double totalVariationRegularizer(double value, std::vector< double > const ¶meters)
Energy refineModel(std::vector< blitz::TinyVector< double, Dim > > const &points, CoupledBSplineModel< Dim > &model, double kappa, double lambda, double mu, int nIter, double tau, double(®ularizer)(double, std::vector< double > const &)=tikhonovRegularizer, double(&dRegularizer)(double, std::vector< double > const &)=dTikhonovRegularizer, std::vector< double > const ®ularizerParameters=std::vector< double >(), iRoCS::ProgressReporter *pr=NULL, std::string const &evolutionFileName="", std::string const &evolutionGroup="")
static bool const doLineSearch