21 #ifndef mia_2d_transform_hh
22 #define mia_2d_transform_hh
63 typedef std::shared_ptr<C2DTransformation >
Pointer;
96 void advance(
unsigned int delta);
102 virtual iterator_impl * clone()
const __attribute__((warn_unused_result)) = 0;
123 void print(std::ostream& os)
const;
125 virtual const C2DFVector& do_get_value()
const = 0;
126 virtual void do_y_increment() = 0;
127 virtual void do_x_increment() = 0;
210 void print(std::ostream& os)
const;
212 std::unique_ptr<iterator_impl> m_holder;
230 void set_creator_string(
const std::string& s);
233 const std::string& get_creator_string()
const;
243 virtual
C2DTransformation *invert() const __attribute__((warn_unused_result)) = 0;
274 virtual
size_t degrees_of_freedom() const = 0;
279 virtual
void set_identity() = 0;
296 virtual
C2DFMatrix derivative_at(
int x,
int y) const = 0;
312 virtual
void set_parameters(const
CDoubleVector& params) = 0;
317 virtual
float get_max_transform() const = 0;
323 virtual const
C2DBounds& get_size() const = 0;
350 virtual
float get_jacobian(const
C2DFVectorfield& v,
float delta) const = 0;
361 virtual
double get_divcurl_cost(
double wd,
double wr,
CDoubleVector& gradient) const = 0;
370 virtual
double get_divcurl_cost(
double wd,
double wr) const = 0;
377 virtual
bool refine();
383 std::
string m_creator_string;
384 virtual
C2DTransformation *do_clone() const __attribute__((warn_unused_result)) = 0;