EMAN2
|
An encapsulation of octahedral symmetry Doctor Phil has this to say about the octahedral symmetry: "Each Platonic Solid has 2E symmetry elements. More...
#include <symmetry.h>
Public Member Functions | |
OctahedralSym () | |
Constructor calls PlatonicSym::init. More... | |
virtual | ~OctahedralSym () |
virtual string | get_name () const |
Return OctahedralSym::NAME. More... | |
virtual string | get_desc () const |
Get a description. More... | |
virtual int | get_max_csym () const |
Gets the maximum symmetry of this object. More... | |
virtual Transform | get_sym (const int n) const |
This function provides access to the unique rotational symmetries of an octahedron. More... | |
virtual int | get_nsym () const |
Gets the total number of unique roational symmetry operations associated with this symmetry For octahedral symmetry this is 24. More... | |
Public Member Functions inherited from EMAN::PlatonicSym | |
PlatonicSym () | |
virtual | ~PlatonicSym () |
virtual TypeDict | get_param_types () const |
Get a dictionary containing the permissable parameters of this class Platonic symmetries actually have no parameters. More... | |
virtual Dict | get_delimiters (const bool inc_mirror=false) const |
Returns the range of altitude and azimuth angles which encompass the asymmetric unit of the Platonic symmetry (and more). 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_platonic_sym () const |
Determines whether or not this Symmetry3D is the platonic type - returns true. 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_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_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 = "oct" |
The name of this class - used to access it from factories etc. Should be "oct". More... | |
Private Member Functions | |
OctahedralSym (const OctahedralSym &) | |
Disallow copy construction. More... | |
OctahedralSym & | operator= (const OctahedralSym &) |
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::PlatonicSym | |
void | init () |
Init - Called to initialize platonic_params, should be called in the constructor of all Platonic solids that derive from this. More... | |
float | platonic_alt_lower_bound (const float &azimuth, const float &alpha) const |
Returns the lower bound of the asymmetric unit, as dependent on azimuth, and on alpha - alpha is alt_max for icos and oct, but may be alt_max/2.0 for tet depending on mirror symmetry etc. More... | |
virtual vector< Vec3f > | get_asym_unit_points (bool inc_mirror=false) const |
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... | |
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::PlatonicSym | |
Dict | platonic_params |
A dictionary that stores important angles, in radians. 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... | |
An encapsulation of octahedral symmetry Doctor Phil has this to say about the octahedral symmetry: "Each Platonic Solid has 2E symmetry elements.
"A cube has m=3, n=4, F=6 E=12=nF/2, V=8=nF/m,since vertices shared by 3 squares; It is composed of 6 squares. An octahedron has m=4, n=3, F=8 E=12=nF/2, V=6=nF/m,since vertices shared by 4 triangles"
Definition at line 779 of file symmetry.h.
|
inline |
Constructor calls PlatonicSym::init.
Definition at line 784 of file symmetry.h.
References EMAN::PlatonicSym::init().
Referenced by NEW().
|
inlinevirtual |
Definition at line 785 of file symmetry.h.
|
private |
Disallow copy construction.
|
inlinevirtual |
Get a description.
Implements EMAN::FactoryBase.
Definition at line 803 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 809 of file symmetry.h.
|
inlinevirtual |
Return OctahedralSym::NAME.
Implements EMAN::FactoryBase.
Definition at line 798 of file symmetry.h.
References NAME.
|
inlinevirtual |
Gets the total number of unique roational symmetry operations associated with this symmetry For octahedral symmetry this is 24.
Implements EMAN::Symmetry3D.
Definition at line 834 of file symmetry.h.
|
virtual |
This function provides access to the unique rotational symmetries of an octahedron.
We have placed the octahedral symmetry group with a face along the z-axis. In all, there are 24 (accessed by get_nysm) unique rotational symmetric operations for the octahedron. In the terminology defined Append A (titled Symmetry Elements) in the manuscript Baldwin and Penczek, 2007. The Transform Class in SPARX and EMAN2. JSB 157(250-261), Doctor Phil has this to say: "B^4=A^3=1; BABA=1; implies AA=BAB, ABA=B^3 , AB^2A = BBBABBB and 20 words with at most a single A 1 B BB BBB A BA AB BBA BAB ABB BBBA BBAB BABB ABBB BBBAB BBABB BABBB BBBABB BBABBB BBBABBB also ABBBA is distinct yields 4 more words ABBBA BABBBA BBABBBA BBBABBBA for a total of 24 words Note A BBB A BBB A reduces to BBABB and B A BBB A is the same as A BBB A BBB etc."
n | the symmetric operation number. |
Implements EMAN::Symmetry3D.
Definition at line 1949 of file symmetry.cpp.
|
inlinestatic |
Factory support function NEW.
Definition at line 790 of file symmetry.h.
References OctahedralSym().
|
private |
Disallow assignment.
|
static |
The name of this class - used to access it from factories etc. Should be "oct".
Definition at line 837 of file symmetry.h.
Referenced by EMAN::PlatonicSym::get_delimiters(), and get_name().