EMAN2
|
An encapsulation of cyclic 3D symmetry. More...
#include <symmetry.h>
Public Member Functions | |
CSym () | |
virtual | ~CSym () |
virtual string | get_name () const |
Return CSym::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 c 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 C symmetry, this is simply 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 |
to demarcate the asymmetric unit. More... | |
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_c_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_d_sym () const |
A function that is used to determine if this is a d symmetry object This function is only virtually overidden by the DSym 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 = "c" |
The name of this class - used to access it from factories etc. Should be "c". More... | |
Private Member Functions | |
CSym (const CSym &) | |
Disallow copy construction. More... | |
CSym & | operator= (const CSym &) |
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 237 of file symmetry.h.
|
private |
Disallow copy construction.
|
virtual |
to demarcate the asymmetric unit.
The last should may be connected to the first.
inc_mirror | whether or not to include the mirror portion of the asymmetric unit |
Implements EMAN::Symmetry3D.
Definition at line 1370 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 1275 of file symmetry.cpp.
References get_asym_unit_points(), EMAN::FactoryBase::params, EMAN::Dict::set_default(), and x.
|
virtual |
Get the altitude and phi angle of the c symmetry, which depends on nysm.
The "alt_max" value in the return dicts is 180 or 90 degrees, depending inc_mirror The "az_max" is 360/nsym degrees.
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 1249 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 255 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 296 of file symmetry.h.
References EMAN::FactoryBase::params.
|
inlinevirtual |
Return CSym::NAME.
Implements EMAN::FactoryBase.
Definition at line 250 of file symmetry.h.
References NAME.
|
inlinevirtual |
Gets the total number of unique roational symmetry operations associated with this symmetry For C symmetry, this is simply nsym.
Implements EMAN::Symmetry3D.
Definition at line 289 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 260 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.
Rotational symmetry operations for C symmetry are always about the z-axis (in the EMAN convention), and therefore the only non zero return angle is azimuth. Specifically, it is n*360/nsym degrees.
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 1407 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 320 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 1263 of file symmetry.cpp.
References get_delimiters(), EMAN::FactoryBase::params, and EMAN::Dict::set_default().
|
inlinestatic |
Factory support function NEW.
Definition at line 242 of file symmetry.h.
References CSym().
|
static |
The name of this class - used to access it from factories etc. Should be "c".
Definition at line 299 of file symmetry.h.
Referenced by get_name().