EMAN2
|
EmanOrientationGenerator generates orientations quasi-evenly distributed in the asymmetric unit. More...
#include <symmetry.h>
Public Member Functions | |
EmanOrientationGenerator () | |
virtual | ~EmanOrientationGenerator () |
virtual string | get_name () const |
Return "eman". More... | |
virtual string | get_desc () const |
Get a description. More... | |
virtual TypeDict | get_param_types () const |
Get a dictionary containing the permissable parameters of this class. More... | |
virtual vector< Transform > | gen_orientations (const Symmetry3D *const sym) const |
generate orientations given some symmetry type More... | |
Public Member Functions inherited from EMAN::OrientationGenerator | |
OrientationGenerator () | |
virtual | ~OrientationGenerator () |
bool | add_orientation (vector< Transform > &v, const float &az, const float &alt) const |
This functions adds one or more Transform objects to the vector v, depending on the parameters stored in the dictionary (which the inheriting class may include by initializing the typedict in get_param_types by calling. More... | |
float | get_optimal_delta (const Symmetry3D *const sym, const int &n) const |
This function gets the optimal value of the delta (or angular spacing) of the orientations based on a desired total number of orientations (n). More... | |
Public Member Functions inherited from EMAN::FactoryBase | |
FactoryBase () | |
virtual | ~FactoryBase () |
Dict | get_params () const |
get a copy of the parameters of this class More... | |
void | set_params (const Dict &new_params) |
Set new parameters. More... | |
void | set_param (const string key, const EMObject val) |
void | insert_params (const Dict &new_params) |
Insert parameters. More... | |
Dict | copy_relevant_params (const FactoryBase *const that) const |
Static Public Member Functions | |
static OrientationGenerator * | NEW () |
Factory support function NEW. More... | |
Static Public Attributes | |
static const string | NAME = "eman" |
The name of this class - used to access it from factories etc. Should be "icos". More... | |
Private Member Functions | |
EmanOrientationGenerator (const EmanOrientationGenerator &) | |
Disallow copy construction. More... | |
EmanOrientationGenerator & | operator= (const EmanOrientationGenerator &) |
Disallow assignment. More... | |
virtual int | get_orientations_tally (const Symmetry3D *const sym, const float &delta) const |
This function returns how many orientations will be generated for a given delta (angular spacing) It does this by simulated gen_orientations. More... | |
float | get_az_delta (const float &delta, const float &altitude, const int maxcsym) const |
Gets the optimum azimuth delta (angular step) for a given altitude, delta and maximum symmetry. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from EMAN::OrientationGenerator | |
void | get_az_max (const Symmetry3D *const sym, const float &altmax, const bool inc_mirror, const float &alt_iterator, const float &h, bool &d_odd_mirror_flag, float &azmax_adjusted) const |
Protected Attributes inherited from EMAN::FactoryBase | |
Dict | params |
This is the dictionary the stores the parameters of the object. More... | |
EmanOrientationGenerator generates orientations quasi-evenly distributed in the asymmetric unit.
Historically, it is an adaptation of the method first used in EMAN1 and developed by Steve Ludtke. In EMAN2 it is more or less the same thing, but with more precise treatmeant of the platonic symmetries. In terms of approach, the altitude angles in the asymmetric unit are traversed constantly in steps of "prop" (a parameter of this class). However, the azimuth steps vary according to altitude, and this helps to achieve a more even distribution of orientations.
Definition at line 1083 of file symmetry.h.
|
inline |
|
inlinevirtual |
Definition at line 1087 of file symmetry.h.
|
private |
Disallow copy construction.
|
virtual |
generate orientations given some symmetry type
sym | the symmetry which defines the interesting asymmetric unit |
Implements EMAN::OrientationGenerator.
Definition at line 389 of file symmetry.cpp.
References EMAN::OrientationGenerator::add_orientation(), EMAN::Symmetry3D::get_az_alignment_offset(), get_az_delta(), EMAN::OrientationGenerator::get_az_max(), EMAN::Symmetry3D::get_delimiters(), EMAN::Util::get_gauss_rand(), EMAN::Symmetry3D::get_max_csym(), EMAN::Symmetry3D::get_nsym(), EMAN::OrientationGenerator::get_optimal_delta(), EMAN::Symmetry3D::get_sym(), InvalidParameterException, EMAN::Symmetry3D::is_h_sym(), EMAN::Symmetry3D::is_in_asym_unit(), EMAN::Symmetry3D::is_platonic_sym(), EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
private |
Gets the optimum azimuth delta (angular step) for a given altitude, delta and maximum symmetry.
This function is important for the generation of evenly distributed orientations
delta | - the angular spacing of the altitude angles, this is usually the "delta" parameter |
altitude | the altitude along which the azimuth is going to be varied |
maxcsym | the maximum csym of the Symmetry3D object - this is usually Symmetry3D::get_max_csym |
Definition at line 301 of file symmetry.cpp.
References EMAN::EMConsts::deg2rad.
Referenced by gen_orientations(), and get_orientations_tally().
|
inlinevirtual |
Get a description.
Implements EMAN::FactoryBase.
Definition at line 1105 of file symmetry.h.
|
inlinevirtual |
Return "eman".
Implements EMAN::FactoryBase.
Definition at line 1100 of file symmetry.h.
References NAME.
|
privatevirtual |
This function returns how many orientations will be generated for a given delta (angular spacing) It does this by simulated gen_orientations.
sym | the symmetry which defines the interesting asymmetric unit |
delta | the desired angular spacing of the orientations |
Implements EMAN::OrientationGenerator.
Definition at line 323 of file symmetry.cpp.
References get_az_delta(), EMAN::OrientationGenerator::get_az_max(), EMAN::Symmetry3D::get_delimiters(), EMAN::Symmetry3D::get_max_csym(), EMAN::Symmetry3D::get_nsym(), EMAN::Symmetry3D::is_h_sym(), EMAN::Symmetry3D::is_in_asym_unit(), EMAN::Symmetry3D::is_platonic_sym(), EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
inlinevirtual |
Get a dictionary containing the permissable parameters of this class.
Reimplemented from EMAN::OrientationGenerator.
Definition at line 1111 of file symmetry.h.
References EMAN::EMObject::BOOL, EMAN::EMObject::FLOAT, EMAN::OrientationGenerator::get_param_types(), EMAN::EMObject::INT, and EMAN::TypeDict::put().
|
inlinestatic |
Factory support function NEW.
Definition at line 1092 of file symmetry.h.
References EmanOrientationGenerator().
|
private |
Disallow assignment.
|
static |
The name of this class - used to access it from factories etc. Should be "icos".
Definition at line 1132 of file symmetry.h.
Referenced by get_name().