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;
bool operator==(const CAttribute &a, const CAttribute &b)
A wrapper around the c-array to provide an STL like interface for iterators.
C3DImage::Pointer P3DImage
define a shortcut to the 3D image shared pointer.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
EXPORT_3D bool operator!=(const C3DTransformation::const_iterator &a, const C3DTransformation::const_iterator &b)
Compare two transformation iterators.
F operator*(const typename TSparseSolver< F >::A_mult_x &A, const F &x)
The generic base type of a 3D image.
A factory to create interpolators of a given type by providing input data.
std::shared_ptr< C3DTransformation > P3DTransformation
pointer type for a 3D transformation
#define NS_MIA_END
conveniance define to end the mia namespace