Xmipp
v3.23.11-Nereus
|
Classes | |
class | Crystal_Projection_Parameters |
Functions | |
void | project_crystal (Phantom &phantom, Projection &P, const ParametersProjection &prm, PROJECT_Side_Info &side, const Crystal_Projection_Parameters &prm_crystal, float rot, float tilt, float psi) |
void | find_crystal_limits (const Matrix1D< double > &proj_corner1, const Matrix1D< double > &proj_corner2, const Matrix1D< double > &corner1, const Matrix1D< double > &corner2, const Matrix1D< double > &a, const Matrix1D< double > &b, int &iamin, int &iamax, int &ibmin, int &ibmax) |
void | move_following_spiral (Matrix1D< double > &r, const MultidimArray< int > &visited) |
void | fill_cell_positions (Projection &P, Matrix1D< double > &aproj, Matrix1D< double > &bproj, Matrix1D< double > &aprojd, Matrix1D< double > &bprojd, Matrix1D< double > &corner1, Matrix1D< double > &corner2, const Crystal_Projection_Parameters &prm_crystal, MultidimArray< double > &cell_shiftX, MultidimArray< double > &cell_shiftY, MultidimArray< double > &cell_shiftZ, MultidimArray< int > &cell_inside, MultidimArray< double > &exp_shifts_matrix_X, MultidimArray< double > &exp_shifts_matrix_Y, MultidimArray< double > &exp_shifts_matrix_Z) |
void | init_shift_matrix (const Crystal_Projection_Parameters &prm_crystal, MultidimArray< int > &cell_inside, MultidimArray< double > &exp_shifts_matrix_X, MultidimArray< double > &exp_shifts_matrix_Y, MultidimArray< double > &exp_shifts_matrix_Z, MultidimArray< double > &exp_normal_shifts_matrix_X, MultidimArray< double > &exp_normal_shifts_matrix_Y, MultidimArray< double > &exp_normal_shifts_matrix_Z, double param_file_scale) |
void fill_cell_positions | ( | Projection & | P, |
Matrix1D< double > & | aproj, | ||
Matrix1D< double > & | bproj, | ||
Matrix1D< double > & | aprojd, | ||
Matrix1D< double > & | bprojd, | ||
Matrix1D< double > & | corner1, | ||
Matrix1D< double > & | corner2, | ||
const Crystal_Projection_Parameters & | prm_crystal, | ||
MultidimArray< double > & | cell_shiftX, | ||
MultidimArray< double > & | cell_shiftY, | ||
MultidimArray< double > & | cell_shiftZ, | ||
MultidimArray< int > & | cell_inside, | ||
MultidimArray< double > & | exp_shifts_matrix_X, | ||
MultidimArray< double > & | exp_shifts_matrix_Y, | ||
MultidimArray< double > & | exp_shifts_matrix_Z | ||
) |
Fill cell positions. This function returns the random shifts corresponding to all cells that can be seen in a projection using the lattice vectors given. It also returns a matrix telling if a lattice combination falls inside the projection or not. You must provide the vectors in the undeformed space (for orthogonal projections), the lattice vectors in the deformed space (if it is not deformed, supply the same as in the undeformed), and the corners of the projection of a single cell. Corners must be the unit cell corners in the deformed space. Output shifts are in the deformed space.
Definition at line 715 of file project_crystal.cpp.
void find_crystal_limits | ( | const Matrix1D< double > & | proj_corner1, |
const Matrix1D< double > & | proj_corner2, | ||
const Matrix1D< double > & | corner1, | ||
const Matrix1D< double > & | corner2, | ||
const Matrix1D< double > & | a, | ||
const Matrix1D< double > & | b, | ||
int & | iamin, | ||
int & | iamax, | ||
int & | ibmin, | ||
int & | ibmax | ||
) |
Find crystal limits. This function returns imin and imax such that imin*v and imax*v are still inside the projection. v is supposed to be in R2. proj_Corner1 and proj_corner2 are the top-left and right-bottom corners of the space to fit (for instance the projection). a and b are the lattice vectors where the unit cell defined by the two cell corners will be copied. iamin, iamax, ibmin, ibmax are the minimum and maximum indexes that you can use with these lattice vectors, unit cell and projection size such that the unit cell intersects the projection.
Definition at line 499 of file project_crystal.cpp.
void init_shift_matrix | ( | const Crystal_Projection_Parameters & | prm_crystal, |
MultidimArray< int > & | cell_inside, | ||
MultidimArray< double > & | exp_shifts_matrix_X, | ||
MultidimArray< double > & | exp_shifts_matrix_Y, | ||
MultidimArray< double > & | exp_shifts_matrix_Z, | ||
MultidimArray< double > & | exp_normal_shifts_matrix_X, | ||
MultidimArray< double > & | exp_normal_shifts_matrix_Y, | ||
MultidimArray< double > & | exp_normal_shifts_matrix_Z, | ||
double | param_file_scale | ||
) |
Fill auxiliary matrix with experimental shifts. the values 3D shifts stored in the doc file DF_shift are transfer to two 2D matrices
Definition at line 879 of file project_crystal.cpp.
void move_following_spiral | ( | Matrix1D< double > & | r, |
const MultidimArray< int > & | visited | ||
) |
Move following a spiral. Starting in a given position this function visits a matrix using an spiral like this
DCBA E329 F418 G567 HIJKL...
r is the actual position in the matrix.
Definition at line 589 of file project_crystal.cpp.
void project_crystal | ( | Phantom & | phantom, |
Projection & | P, | ||
const ParametersProjection & | prm, | ||
PROJECT_Side_Info & | side, | ||
const Crystal_Projection_Parameters & | prm_crystal, | ||
float | rot, | ||
float | tilt, | ||
float | psi | ||
) |
Project a Mathematical volume as a crystal.
Definition at line 170 of file project_crystal.cpp.