EMAN::MaskGaussNonuniformProcessor Class Reference

a gaussian falloff to zero, with nonisotropic widths along x,y,z More...

#include <processor.h>

Inheritance diagram for EMAN::MaskGaussNonuniformProcessor:

Inheritance graph
[legend]
Collaboration diagram for EMAN::MaskGaussNonuniformProcessor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MaskGaussNonuniformProcessor ()
void set_params (const Dict &new_params)
 Set the processor parameters using a key/value dictionary.
TypeDict get_param_types () const
 Get processor parameter information in a dictionary.
string get_name () const
 Get the processor's name.
string get_desc () const
 Get the descrition of this specific processor.

Static Public Member Functions

static ProcessorNEW ()

Static Public Attributes

static const string NAME = "mask.gaussian.nonuniform"

Protected Member Functions

void process_pixel (float *pixel, int xi, int yi, int zi) const

Protected Attributes

float radius_x
float radius_y
float radius_z
float gauss_width

Detailed Description

a gaussian falloff to zero, with nonisotropic widths along x,y,z

Parameters:
radius_x x-axis radius
radius_y y-axis radius
radius_z z-axis radius
gauss_width Gaussian falloff width, relative to each radius, default 0.05

Definition at line 2582 of file processor.h.


Constructor & Destructor Documentation

EMAN::MaskGaussNonuniformProcessor::MaskGaussNonuniformProcessor (  )  [inline]

Definition at line 2585 of file processor.h.

Referenced by NEW().

02585                                               :radius_x(0), radius_y(0), radius_z(0), gauss_width(0)
02586                 {
02587                 }


Member Function Documentation

string EMAN::MaskGaussNonuniformProcessor::get_desc (  )  const [inline, virtual]

Get the descrition of this specific processor.

This function must be overwritten by a subclass.

Returns:
The description of this processor.

Implements EMAN::Processor.

Definition at line 2627 of file processor.h.

02628                 {
02629                         return "A Gaussian falloff to zero. Nonisotropic, specify inner radius for x,y,z and Gaussian falloff width. Falloff \
02630 width is also nonisotropic and relative to the radii, with 1 being equal to the radius on that axis.";
02631                 }

string EMAN::MaskGaussNonuniformProcessor::get_name (  )  const [inline, virtual]

Get the processor's name.

Each processor is identified by a unique name.

Returns:
The processor's name.

Implements EMAN::Processor.

Definition at line 2618 of file processor.h.

References NAME.

02619                 {
02620                         return NAME;
02621                 }

TypeDict EMAN::MaskGaussNonuniformProcessor::get_param_types (  )  const [inline, virtual]

Get processor parameter information in a dictionary.

Each parameter has one record in the dictionary. Each record contains its name, data-type, and description.

Returns:
A dictionary containing the parameter info.

Reimplemented from EMAN::Processor.

Definition at line 2606 of file processor.h.

References EMAN::EMObject::FLOAT, EMAN::EMObject::INT, and EMAN::TypeDict::put().

02607                 {
02608                         TypeDict d;
02609 
02610                         d.put("radius_x", EMObject::INT, "x-axis radius");
02611                         d.put("radius_y", EMObject::INT, "y-axis radius");
02612                         d.put("radius_z", EMObject::INT, "z-axis radius");
02613                         d.put("gauss_width", EMObject::FLOAT, "Gaussian falloff width, relative to each radius, default 0.05");
02614 
02615                         return d;
02616                 }

static Processor* EMAN::MaskGaussNonuniformProcessor::NEW (  )  [inline, static]

Definition at line 2622 of file processor.h.

References MaskGaussNonuniformProcessor().

02623                 {
02624                         return new MaskGaussNonuniformProcessor();
02625                 }

void EMAN::MaskGaussNonuniformProcessor::process_pixel ( float *  pixel,
int  xi,
int  yi,
int  zi 
) const [inline, protected, virtual]

Implements EMAN::CoordinateProcessor.

Definition at line 2636 of file processor.h.

References dist(), gauss_width, EMAN::CoordinateProcessor::nx, EMAN::CoordinateProcessor::ny, EMAN::CoordinateProcessor::nz, radius_x, radius_y, radius_z, and sqrt().

02637                 {
02638                         float dist = pow((xi - nx/2)/radius_x,2.0f) + pow((yi - ny/2)/radius_y,2.0f) + pow((zi - nz/2)/radius_z,2.0f);
02639                         if (dist>1.0) (*pixel)*=exp(-pow((sqrt(dist)-1.0f)/gauss_width,2.0f));
02640                 }

void EMAN::MaskGaussNonuniformProcessor::set_params ( const Dict new_params  )  [inline, virtual]

Set the processor parameters using a key/value dictionary.

Parameters:
new_params A dictionary containing the new parameters.

Reimplemented from EMAN::Processor.

Definition at line 2589 of file processor.h.

References gauss_width, EMAN::Dict::has_key(), EMAN::Processor::params, radius_x, radius_y, and radius_z.

02590                 {
02591                         params = new_params;
02592 
02593                         if (params.has_key("radius_x")) radius_x=params["radius_x"];
02594                         else radius_x=5.0;
02595 
02596                         if (params.has_key("radius_y")) radius_y=params["radius_y"];
02597                         else radius_y=5.0;
02598 
02599                         if (params.has_key("radius_z")) radius_z=params["radius_z"];
02600                         else radius_z=5.0;
02601 
02602                         if (params.has_key("gauss_width")) gauss_width=params["gauss_width"];
02603                         else gauss_width=0.05f;
02604                 }


Member Data Documentation

float EMAN::MaskGaussNonuniformProcessor::gauss_width [protected]

Definition at line 2642 of file processor.h.

Referenced by process_pixel(), and set_params().

const string MaskGaussNonuniformProcessor::NAME = "mask.gaussian.nonuniform" [static]

Definition at line 2633 of file processor.h.

Referenced by get_name().

float EMAN::MaskGaussNonuniformProcessor::radius_x [protected]

Definition at line 2642 of file processor.h.

Referenced by process_pixel(), and set_params().

float EMAN::MaskGaussNonuniformProcessor::radius_y [protected]

Definition at line 2642 of file processor.h.

Referenced by process_pixel(), and set_params().

float EMAN::MaskGaussNonuniformProcessor::radius_z [protected]

Definition at line 2642 of file processor.h.

Referenced by process_pixel(), and set_params().


The documentation for this class was generated from the following files:
Generated on Tue Jul 12 13:48:57 2011 for EMAN2 by  doxygen 1.4.7