EMAN2
Classes | Functions
unit test in Python
tested
Collaboration diagram for unit test in Python:

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.

Function Documentation

Transform Symmetry3D::reduce ( const Transform t3d,
int  n = 0 
) const [virtual]

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

Parameters:
t3da Transform characterizing an orientation
nthe number of the asymmetric unit you wish to map the given orientation into. There is a strong relationship between n and to Symmetry3D::get_sym
Returns:
the orientation the specified asymmetric unit (by default this is the default asymmetric unit of the symmetry)

Definition at line 950 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().

{
        // Determine which asym unit the given asym unit is in
        int soln = in_which_asym_unit(t);

        // This should never happen
        if ( soln == -1 ) {
                cout << "error, no solution found!" << endl;
//              throw;
                return t;
        }

        // Get the symmetry operation corresponding to the intersection asymmetric unit
        Transform nt = get_sym(soln);
        // Transpose it (invert it)
        nt.invert();
        // Now we can transform the argument orientation into the default asymmetric unit
        nt  = t*nt;
        // Now that we're at the default asymmetric unit, we can map into the requested asymmunit by doing this
        if ( n != 0 ) {
                nt = nt*get_sym(n);
        }
        // Done!
        return nt;

}