21 #ifndef mia_3d_transform_hh
22 #define mia_3d_transform_hh
61 typedef std::shared_ptr<C3DTransformation> Pointer;
62 static const char *data_descr;
63 static const char *dim_descr;
97 virtual iterator_impl * clone()
const __attribute__((warn_unused_result)) = 0;
111 virtual const C3DFVector& do_get_value()
const = 0;
112 virtual void do_z_increment() = 0;
113 virtual void do_y_increment() = 0;
114 virtual void do_x_increment() = 0;
136 typedef std::forward_iterator_tag iterator_category;
138 typedef size_t difference_type;
167 std::unique_ptr<iterator_impl> m_holder;
186 void set_creator_string(
const std::string& s);
189 const std::string& get_creator_string()
const;
233 virtual void reinit()
const;
252 virtual size_t degrees_of_freedom()
const = 0;
257 virtual void set_identity() = 0;
267 virtual C3DFMatrix derivative_at(
int x,
int y,
int z)
const = 0;
291 virtual void set_parameters(
const CDoubleVector& params) = 0;
296 virtual float get_max_transform()
const = 0;
302 virtual const C3DBounds& get_size()
const = 0;
329 virtual float get_jacobian(
const C3DFVectorfield& v,
float delta)
const = 0;
340 virtual double get_divcurl_cost(
double wd,
double wr,
CDoubleVector& gradient)
const = 0;
349 virtual double get_divcurl_cost(
double wd,
double wr)
const = 0;
356 virtual bool refine();
364 bool get_debug()
const;
371 std::string m_creator_string;