22#ifndef mia_2d_vfregularizerkernel_hh
23#define mia_2d_vfregularizerkernel_hh
57 typedef std::shared_ptr< C2DFVectorfieldRegularizerKernel >
Pointer;
69 float residual_thresh);
81 bool has_pertuberation()
const;
88 float get_residual_thresh()
const;
90 virtual void post_set_data_fields();
92 virtual float do_evaluate_row(
unsigned y,
CBuffers& buffers) = 0;
94 virtual float do_evaluate_row_sparse(
unsigned y,
CBuffers& buffers) = 0;
96 virtual unsigned do_get_boundary_padding()
const = 0;
98 virtual PBuffers do_get_buffers()
const;
100 virtual void do_start_row(
unsigned y,
CBuffers& buffers)
const;
102 virtual float do_evaluate_pertuberation_row(
unsigned y,
CBuffers& buffers)
const;
109 float m_residual_thresh;
110 bool m_has_pertuberation;
116 return m_has_pertuberation;
140 return *m_update_flags;
152 return m_residual_thresh;
THandlerSingleton< TFactoryPluginHandler< C2DFVectorfieldRegularizerKernelPlugin > > C2DFVectorfieldRegularizerKernelPluginHandler
C2DFVectorfieldRegularizerKernel::Pointer P2DVectorfieldRegularizerKernel
TFactory< C2DFVectorfieldRegularizerKernel > C2DFVectorfieldRegularizerKernelPlugin
T2DDatafield< float > & get_residua() const
void set_update_fields(const T2DDatafield< unsigned char > *update_flags, T2DDatafield< unsigned char > *set_flags, T2DDatafield< float > *residua, float residual_thresh)
std::shared_ptr< C2DFVectorfieldRegularizerKernel > Pointer
bool has_pertuberation() const
static const char * type_descr
C2DFVectorfield & get_output_field() const
C2DFVectorfield plugin_data
unsigned get_boundary_padding() const
virtual ~C2DFVectorfieldRegularizerKernel()
T2DDatafield< unsigned char > & get_set_flags() const
float get_residual_thresh() const
PBuffers get_buffers() const
float evaluate_row(unsigned y, CBuffers &buffers)
const T2DDatafield< unsigned char > & get_update_flags() const
float evaluate_row_sparse(unsigned y, CBuffers &buffers)
const C2DFVectorfield & get_input_field() const
std::unique_ptr< CBuffers > PBuffers
C2DFVectorfieldRegularizerKernel plugin_type
C2DFVectorfieldRegularizerKernel(bool has_pertuberation)
float evaluate_pertuberation_row(unsigned y, CBuffers &buffers) const
void start_row(unsigned y, CBuffers &buffers) const
void set_data_fields(C2DFVectorfield *output, const C2DFVectorfield *input)
a 2D field of floating point single accuracy 2D vectors
The base class for all plug-in created object.
A class to hold data on a regular 2D grid.
the Base class for all plugn handlers that deal with factory plugins.
This is tha base of all plugins that create "things", like filters, cost functions time step operator...
the singleton that a plug-in handler really is
The basic template of all plugin handlers.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end the mia namespace