EMAN2
|
An encapsulation of dihedral 3D symmetry. More...
#include <symmetry.h>
Public Member Functions | |
DSym () | |
virtual | ~DSym () |
virtual string | get_name () const |
Return DSym::NAME. 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 Dict | get_delimiters (const bool inc_mirror=false) const |
Get the altitude and phi angle of the d symmetry, which depends on nysm. More... | |
virtual Transform | get_sym (const int n) const |
Provides access to the complete set of rotational symmetry operations associated with this symmetry. More... | |
virtual int | get_nsym () const |
Gets the total number of unique roational symmetry operations associated with this symmetry For D symmetry, this is simply 2*nsym. More... | |
virtual int | get_max_csym () const |
Gets the maximum symmetry of this object. More... | |
virtual vector< Vec3f > | get_asym_unit_points (bool inc_mirror=false) const |
virtual bool | is_in_asym_unit (const float &altitude, const float &azimuth, const bool inc_mirror) const |
A function to be used when generating orientations over portion of the unit sphere defined by parameters returned by get_delimiters. More... | |
virtual bool | is_d_sym () const |
Returns true - this is indeed a c symmetry object. More... | |
virtual vector< vector< Vec3f > > | get_asym_unit_triangles (bool inc_mirror) const |
Get triangles that precisely occlude the projection area of the default asymmetric unit. More... | |
Public Member Functions inherited from EMAN::Symmetry3D | |
Symmetry3D () | |
virtual | ~Symmetry3D () |
virtual float | get_az_alignment_offset () const |
This functionality is only relevant to platonic symmetries. More... | |
virtual bool | is_platonic_sym () const |
A function that is used to determine if this is a platonic symmetry object This function is only virtually overidden by the PlatonicSym symmetry, which returns true, not false. More... | |
virtual bool | is_h_sym () const |
A function that is used to determine if this is a Helical symmetry object This function is only virtually overidden by the HSym symmetry, which returns true, not false. More... | |
virtual bool | is_c_sym () const |
A function that is used to determine if this is a c symmetry object This function is only virtually overidden by the CSym object, which returns true. More... | |
virtual bool | is_tet_sym () const |
A function that is used to determine if this is the tetrahedral symmetry object This function is only virtually overidden by the TetSym object, which returns true. More... | |
vector< Transform > | gen_orientations (const string &generatorname="eman", const Dict &parms=Dict()) |
Ask the Symmetry3D object to generate a set of orientations in its asymmetric unit using an OrientationGenerator constructed from the given parameters (using a Factory). More... | |
virtual Transform | reduce (const Transform &t3d, int n=0) const |
A function that will reduce an orientation, as characterized by Euler anges, into a specific asymmetric unit. More... | |
virtual int | in_which_asym_unit (const Transform &t3d) const |
A function that will determine in which asymmetric unit a given orientation resides The asymmetric unit 'number' will depend entirely on the order in which different symmetry operations are return by the Symmetry3D::get_sym function. More... | |
virtual int | point_in_which_asym_unit (const Vec3f &v) const |
A function that will determine in which asymmetric unit a given vector resides The asymmetric unit 'number' will depend entirely on the order in which different symmetry operations are return by the Symmetry3D::get_sym function The vector is a point. More... | |
virtual vector< Transform > | get_touching_au_transforms (bool inc_mirror=true) const |
Gets a vector of Transform objects that define the set of asymmetric units that touch the default asymmetric unit. More... | |
virtual vector< Transform > | get_syms () const |
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 Symmetry3D * | NEW () |
Factory support function NEW. More... | |
Static Public Member Functions inherited from EMAN::Symmetry3D | |
static vector< Transform > | get_symmetries (const string &symmetry) |
Static Public Attributes | |
static const string | NAME = "d" |
The name of this class - used to access it from factories etc. Should be "d". More... | |
Private Member Functions | |
DSym (const DSym &) | |
Disallow copy construction. More... | |
DSym & | operator= (const DSym &) |
Disallow assignment. More... | |
Additional Inherited Members | |
Public Types inherited from EMAN::Symmetry3D | |
typedef vector< vector< Vec3f > >::const_iterator | cit |
typedef vector< vector< Vec3f > >::iterator | ncit |
Protected Member Functions inherited from EMAN::Symmetry3D | |
void | cache_au_planes () const |
Establish the asymmetric unit planes cache. More... | |
void | delete_au_planes () |
Clear the asymmetric unit planes cache. More... | |
Protected Attributes inherited from EMAN::Symmetry3D | |
float ** | cached_au_planes |
The asymmetric unit planes are cached to provide a great speed up the point_in_which_asym_unit function, which is called by reduce and by in_which_asym_unit. More... | |
int | cache_size |
Have to remember the cache size. More... | |
int | num_triangles |
This is stores the number of triangles returned by get_asym_unit_triangles(true) More... | |
vector< vector< Vec3f > > | au_sym_triangles |
This cache is of size cache_size. More... | |
Protected Attributes inherited from EMAN::FactoryBase | |
Dict | params |
This is the dictionary the stores the parameters of the object. More... | |
|
inline |
|
inlinevirtual |
Definition at line 344 of file symmetry.h.
|
private |
Disallow copy construction.
|
virtual |
inc_mirror | whether or not to include the mirror portion of the asymmetric unit |
Implements EMAN::Symmetry3D.
Definition at line 1527 of file symmetry.cpp.
References EMAN::EMConsts::deg2rad, get_delimiters(), EMAN::FactoryBase::params, EMAN::Dict::set_default(), x, and y.
Referenced by get_asym_unit_triangles().
|
virtual |
Get triangles that precisely occlude the projection area of the default asymmetric unit.
This is used for collision detection in Symmetry3D::reduce
inc_mirror | whether to include the mirror portion of the asymmetric unit |
Implements EMAN::Symmetry3D.
Definition at line 1472 of file symmetry.cpp.
References get_asym_unit_points(), EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
virtual |
Get the altitude and phi angle of the d symmetry, which depends on nysm.
The "alt_max" is always 90 degrees The "az_max" is 360/nsym degrees of 180/nsym, depending the inc_mirror argument
inc_mirror | whether or not to include the part of the asymmetric unit which contains the mirror projections of the other half |
InvalidValueException | if nsym is less than or equal to zero |
Implements EMAN::Symmetry3D.
Definition at line 1420 of file symmetry.cpp.
References InvalidValueException, EMAN::FactoryBase::params, and EMAN::Dict::set_default().
Referenced by get_asym_unit_points(), and is_in_asym_unit().
|
inlinevirtual |
Get a description.
Implements EMAN::FactoryBase.
Definition at line 362 of file symmetry.h.
|
inlinevirtual |
Gets the maximum symmetry of this object.
This is used by OrientationGenerators, and is probably not something a general user would utilize.
Implements EMAN::Symmetry3D.
Definition at line 404 of file symmetry.h.
References EMAN::FactoryBase::params.
|
inlinevirtual |
Return DSym::NAME.
Implements EMAN::FactoryBase.
Definition at line 357 of file symmetry.h.
References NAME.
|
inlinevirtual |
Gets the total number of unique roational symmetry operations associated with this symmetry For D symmetry, this is simply 2*nsym.
Implements EMAN::Symmetry3D.
Definition at line 397 of file symmetry.h.
References EMAN::FactoryBase::params.
|
inlinevirtual |
Get a dictionary containing the permissable parameters of this class.
Implements EMAN::FactoryBase.
Definition at line 367 of file symmetry.h.
References EMAN::EMObject::INT, and EMAN::TypeDict::put().
|
virtual |
Provides access to the complete set of rotational symmetry operations associated with this symmetry.
The first half symmetry operations returned by this function are all about the z axis (i.e. only azimuth is non zero. The second half of the symmetry operations are replicas of the first half, except that they have an additional 180 degree rotation about x (in EMAN terms, the altitude angle is 180).
n | the rotational symmetry operation number. If n is greater than nsym we take n modulo nsym |
InvalidValueException | if nsym is less than or equal to zero |
Implements EMAN::Symmetry3D.
Definition at line 1452 of file symmetry.cpp.
References InvalidValueException, EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
inlinevirtual |
Returns true - this is indeed a c symmetry object.
Reimplemented from EMAN::Symmetry3D.
Definition at line 428 of file symmetry.h.
|
virtual |
A function to be used when generating orientations over portion of the unit sphere defined by parameters returned by get_delimiters.
In platonic symmetry altitude and azimuth alone are not enough to correctly demarcate the asymmetric unit. See the get_delimiters comments.
altitude | the EMAN style altitude of the 3D orientation in degrees |
azimuth | the EMAN style azimuth of the 3D orientation in degrees |
inc_mirror | whether or not to include orientations if they are in the mirror portion of the asymmetric unit |
Implements EMAN::Symmetry3D.
Definition at line 1435 of file symmetry.cpp.
References get_delimiters(), EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
inlinestatic |
Factory support function NEW.
Definition at line 349 of file symmetry.h.
References DSym().
|
static |
The name of this class - used to access it from factories etc. Should be "d".
Definition at line 423 of file symmetry.h.
Referenced by get_name().