33#ifndef eman_reconstructor_toosl_h__
34#define eman_reconstructor_tools_h__ 1
125 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0) = 0;
165 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
179 return "Fourier pixel insertion using nearest neighbor";
199 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
213 return "Fourier pixel insertion using interpolation and the nearest 8 voxels";
232 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
246 return "Fourier pixel insertion 2x2x2 with trilinear interpolation";
266 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
280 return "Fourier pixel insertion using a 3x3x3 Gaussian kernel";
312 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
326 return "Fourier pixel insertion mode 5";
348 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
362 return "More exact version of gauss_5";
385 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
399 return "5x5x5 gridding kernel with numerically computed kernel";
427 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
441 return "Fourier pixel insertion mode 8";
467 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
481 return "Kaiser-bessel (KB) kernel 4x4x4";
501 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
515 return "(imprecise) Kaiser-bessel derived (KBD) kernel 8x8x8";
541 virtual bool insert_pixel(
const float& xx,
const float& yy,
const float& zz,
const std::complex<float> dt,
const float& weight=1.0);
555 return "7x7x7 gridding kernel with numerically computed kernel";
EMData stores an image's data and defines core image processing routines.
A class one may inherit from to ensure that the responsibilities of being incorporated into an EMAN2:...
Factory is used to store objects to create new instances.
FourierPixelInserter3DMode10 - encapsulates "method 10" for inserting a 2D Fourier slice into a 3D vo...
FourierInserter3DMode10(const FourierInserter3DMode10 &)
static FourierPixelInserter3D * NEW()
FourierInserter3DMode10()
FourierInserter3DMode10 & operator=(const FourierInserter3DMode10 &)
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
virtual string get_desc() const
Get a clear, concise description of this class.
virtual ~FourierInserter3DMode10()
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
FourierPixelInserter3DMode7 - encapsulates "method 7" for inserting a 2D Fourier slice into a 3D volu...
static const float kernel[12][12][12]
static FourierPixelInserter3D * NEW()
FourierInserter3DMode11(const FourierInserter3DMode11 &)
FourierInserter3DMode11 & operator=(const FourierInserter3DMode11 &)
virtual ~FourierInserter3DMode11()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
FourierInserter3DMode11()
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
virtual string get_desc() const
Get a clear, concise description of this class.
FourierPixelInserter3DMode1 - encapsulates "method 1" for inserting a 2D Fourier slice into a 3D volu...
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
FourierInserter3DMode1 & operator=(const FourierInserter3DMode1 &)
FourierInserter3DMode1(const FourierInserter3DMode1 &)
static FourierPixelInserter3D * NEW()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
virtual string get_desc() const
Get a clear, concise description of this class.
virtual ~FourierInserter3DMode1()
FourierPixelInserter3DMode2 - encapsulates "method 2" for inserting a 2D Fourier slice into a 3D volu...
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
static FourierPixelInserter3D * NEW()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode2(const FourierInserter3DMode2 &)
virtual ~FourierInserter3DMode2()
FourierInserter3DMode2 & operator=(const FourierInserter3DMode2 &)
FourierPixelInserter3DMode2l - trilinear 2x2x2 inserter See comments in FourierPixelInserter3D for ex...
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
virtual ~FourierInserter3DMode2l()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
FourierInserter3DMode2l(const FourierInserter3DMode2l &)
static FourierPixelInserter3D * NEW()
FourierInserter3DMode2l & operator=(const FourierInserter3DMode2l &)
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode2l()
FourierPixelInserter3DMode3 - encapsulates "method 3" for inserting a 2D Fourier slice into a 3D volu...
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode3(const FourierInserter3DMode3 &)
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
static FourierPixelInserter3D * NEW()
virtual ~FourierInserter3DMode3()
FourierInserter3DMode3 & operator=(const FourierInserter3DMode3 &)
FourierPixelInserter3DMode5 - encapsulates "method 5" for inserting a 2D Fourier slice into a 3D volu...
virtual ~FourierInserter3DMode5()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
FourierInserter3DMode5 & operator=(const FourierInserter3DMode5 &)
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
virtual string get_desc() const
Get a clear, concise description of this class.
static FourierPixelInserter3D * NEW()
FourierInserter3DMode5(const FourierInserter3DMode5 &)
FourierPixelInserter3DMode6 - encapsulates "method 6" for inserting a 2D Fourier slice into a 3D volu...
FourierInserter3DMode6 & operator=(const FourierInserter3DMode6 &)
virtual string get_desc() const
Get a clear, concise description of this class.
virtual ~FourierInserter3DMode6()
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
FourierInserter3DMode6(const FourierInserter3DMode6 &)
static FourierPixelInserter3D * NEW()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
FourierPixelInserter3DMode7 - encapsulates "method 7" for inserting a 2D Fourier slice into a 3D volu...
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode7(const FourierInserter3DMode7 &)
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
static const float kernel[9][9][9]
virtual ~FourierInserter3DMode7()
FourierInserter3DMode7 & operator=(const FourierInserter3DMode7 &)
static FourierPixelInserter3D * NEW()
FourierPixelInserter3DMode8 - encapsulates "method 8" for inserting a 2D Fourier slice into a 3D volu...
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
virtual ~FourierInserter3DMode8()
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode8 & operator=(const FourierInserter3DMode8 &)
FourierInserter3DMode8(const FourierInserter3DMode8 &)
static FourierPixelInserter3D * NEW()
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
FourierPixelInserter3DMode9 - encapsulates "method 9" for inserting a 2D Fourier slice into a 3D volu...
FourierInserter3DMode9(const FourierInserter3DMode9 &)
static FourierPixelInserter3D * NEW()
virtual ~FourierInserter3DMode9()
virtual string get_desc() const
Get a clear, concise description of this class.
FourierInserter3DMode9 & operator=(const FourierInserter3DMode9 &)
virtual string get_name() const
Get the unique name of this class (especially for factory based instantiation access)
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
FourierPixelInserter3D class defines a way a continuous pixel in 3D is inserted into the discrete 3D ...
TypeDict get_param_types() const
FourierPixelInserter3D()
Construct a FourierPixelInserter3D.
EMData * data
A pointer to the constructor argument real_data.
virtual ~FourierPixelInserter3D()
Desctruct a FourierPixelInserter3D.
virtual bool insert_pixel(const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0)=0
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete...
FourierPixelInserter3D(const FourierPixelInserter3D &)
FourierPixelInserter3D & operator=(const FourierPixelInserter3D &)
int nx
Image volume data sizes a convenience variable used here and there.
float * norm
A pointer to the constructor argument normalize_values.
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
void put(const string &key, EMObject::ObjectType o, const string &desc="")