Classes | |
class | EMAN::EMData |
EMData stores an image's data and defines core image processing routines. More... | |
class | EMAN::TransposeProcessor |
Transpose a 2D image. More... | |
class | EMAN::FourierToCornerProcessor |
Undo the effects of the FourierToCenterProcessor. More... | |
class | EMAN::FourierToCenterProcessor |
Translates the origin in Fourier space from the corner to the center in y and z Handles 2D and 3D, and handles all combinations of even and oddness Typically you call this function after Fourier transforming a real space image. More... | |
class | EMAN::Phase180Processor |
This class is abstract. More... | |
class | EMAN::PhaseToCenterProcessor |
Translates a cornered image to the center Undoes the PhaseToCornerProcessor. More... | |
class | EMAN::PhaseToCornerProcessor |
Translates a centered image to the corner works for 1D, 2D and 3D images, for all combinations of even and oddness. More... | |
class | EMAN::PhaseToMassCenterProcessor |
ToMassCenterProcessor centers image at center of mass, ignores old dx, dy. More... | |
class | EMAN::ToMassCenterProcessor |
ToMassCenterProcessor centers image at center of mass, ignores old dx, dy. More... | |
class | EMAN::ACFCenterProcessor |
Center image using auto convolution with 180 degree rotation. More... | |
class | EMAN::Transform |
A Transform object is a somewhat specialized object designed specifically for EMAN2/Sparx storage of alignment parameters and euler orientations. More... | |
class | EMAN::Util |
Util is a collection of utility functions. More... | |
class | EMAN::Vec3< Type > |
The Vec3 object is a templated object, intended to instantiated with basic types such as int, float, double etc. More... | |
class | EMAN::Vec2< Type > |
The Vec2 is precisely the same as Vec3 except it works exclusively in 2D Note there are convenient typedef so one needn't bother about using template terminology typedef Vec2<float> Vec2f; typedef Vec2<int> Vec2i; typedef Vec2double> Vec2d; // Not recommended for use unless precision is addressed in this class. More... | |
Functions | |
virtual Transform | EMAN::Symmetry3D::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. |
|
A function that will reduce an orientation, as characterized by Euler anges, into a specific asymmetric unit. Default behavior is to map the given orientation into the default asymmetric unit of the symmetry (n=0). This is a concrete implementation that works for all symmetries, relying on a concrete instance of the get_asym_unit_triangles function
Definition at line 948 of file symmetry.cpp. References EMAN::Symmetry3D::get_sym(), EMAN::Symmetry3D::in_which_asym_unit(), EMAN::Transform::invert(), and t. Referenced by EMAN::RandomOrientationGenerator::gen_orientations(). 00949 { 00950 // Determine which asym unit the given asym unit is in 00951 int soln = in_which_asym_unit(t); 00952 00953 // This should never happen 00954 if ( soln == -1 ) { 00955 cout << "error, no solution found!" << endl; 00956 // throw; 00957 return t; 00958 } 00959 00960 // Get the symmetry operation corresponding to the intersection asymmetric unit 00961 Transform nt = get_sym(soln); 00962 // Transpose it (invert it) 00963 nt.invert(); 00964 // Now we can transform the argument orientation into the default asymmetric unit 00965 nt = t*nt; 00966 // Now that we're at the default asymmetric unit, we can map into the requested asymmunit by doing this 00967 if ( n != 0 ) { 00968 nt = nt*get_sym(n); 00969 } 00970 // Done! 00971 return nt; 00972 00973 }
|