Xmipp  v3.23.11-Nereus
symmetries.h
Go to the documentation of this file.
1 /***************************************************************************
2  *
3  * Authors: Carlos Oscar S. Sorzano (coss@cnb.csic.es)
4  *
5  * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20  * 02111-1307 USA
21  *
22  * All comments concerning this program package may be sent to the
23  * e-mail address 'xmipp@cnb.csic.es'
24  ***************************************************************************/
25 /* ------------------------------------------------------------------------- */
26 /* SYMMETRIES */
27 /* ------------------------------------------------------------------------- */
28 #ifndef _SYMMETRIES_HH
29 #define _SYMMETRIES_HH
30 
31 #include <core/matrix1d.h>
32 #include <core/matrix2d.h>
33 #include <core/xmipp_funcs.h>
34 #include <core/args.h>
35 #include <core/symmetries.h>
36 #include <data/grids.h>
37 
53  Matrix1D<double> &bint,
54  Matrix1D<double> &shift,
55  int space_group,
56  int sym_no,
57  const Matrix1D<double> &eprm_aint,
58  const Matrix1D<double> &eprm_bint);
59 
63  const Matrix1D<double> &eprm_aint,
64  const Matrix1D<double> &eprm_bint,
65  int eprm_space_group, const MultidimArray<int> &mask,
66  int grid_type);
67 
70 void symmetry_P2_122(Image<double> &vol, const SimpleGrid &grid,
71  const Matrix1D<double> &eprm_aint,
72  const Matrix1D<double> &eprm_bint,
73  const MultidimArray<int> &mask, int volume_no,
74  int grid_type);
75 
78 void symmetry_P22_12(Image<double> &vol, const SimpleGrid &grid,
79  const Matrix1D<double> &eprm_aint,
80  const Matrix1D<double> &eprm_bint,
81  const MultidimArray<int> &mask, int volume_no,
82  int grid_type);
83 
86 void symmetry_P4(Image<double> &vol, const SimpleGrid &grid,
87  const Matrix1D<double> &eprm_aint,
88  const Matrix1D<double> &eprm_bint,
89  const MultidimArray<int> &mask, int volume_no,
90  int grid_type);
91 
94 void symmetry_P42_12(Image<double> &vol, const SimpleGrid &grid,
95  const Matrix1D<double> &eprm_aint,
96  const Matrix1D<double> &eprm_bint,
97  const MultidimArray<int> &mask, int volume_no,
98  int grid_type);
99 
102 void symmetry_P6(Image<double> &vol, const SimpleGrid &grid,
103  const Matrix1D<double> &eprm_aint,
104  const Matrix1D<double> &eprm_bint,
105  const MultidimArray<int> &mask, int volume_no,
106  int grid_type);
107 
109 void symmetry_Helical(MultidimArray<double> &Vout, const MultidimArray<double> &Vin, double zHelical, double rotHelical,
110  double rot0=0, MultidimArray<int> *mask=nullptr, bool dihedral=false, double heightFraction=1.0, int Cn=1);
111 
115 void symmetry_HelicalLowRes(MultidimArray<double> &Vout, const MultidimArray<double> &Vin, double zHelical, double rotHelical,
116  double rot0=0, MultidimArray<int> *mask=nullptr);
117 
119 void symmetry_Dihedral(MultidimArray<double> &Vout, const MultidimArray<double> &Vin, double rotStep=1,
120  double zmin=-3, double zmax=3, double zStep=0.5, MultidimArray<int> *mask=nullptr);
122 #endif
void symmetry_Dihedral(MultidimArray< double > &Vout, const MultidimArray< double > &Vin, double rotStep=1, double zmin=-3, double zmax=3, double zStep=0.5, MultidimArray< int > *mask=nullptr)
void symmetry_P2_122(Image< double > &vol, const SimpleGrid &grid, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, const MultidimArray< int > &mask, int volume_no, int grid_type)
Definition: symmetries.cpp:366
void symmetry_HelicalLowRes(MultidimArray< double > &Vout, const MultidimArray< double > &Vin, double zHelical, double rotHelical, double rot0=0, MultidimArray< int > *mask=nullptr)
void symmetry_P42_12(Image< double > &vol, const SimpleGrid &grid, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, const MultidimArray< int > &mask, int volume_no, int grid_type)
void symmetry_P4(Image< double > &vol, const SimpleGrid &grid, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, const MultidimArray< int > &mask, int volume_no, int grid_type)
Definition: symmetries.cpp:815
void symmetry_P6(Image< double > &vol, const SimpleGrid &grid, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, const MultidimArray< int > &mask, int volume_no, int grid_type)
void symmetry_Helical(MultidimArray< double > &Vout, const MultidimArray< double > &Vin, double zHelical, double rotHelical, double rot0=0, MultidimArray< int > *mask=nullptr, bool dihedral=false, double heightFraction=1.0, int Cn=1)
void symmetry_P22_12(Image< double > &vol, const SimpleGrid &grid, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, const MultidimArray< int > &mask, int volume_no, int grid_type)
Definition: symmetries.cpp:591
void symmetrizeCrystalVectors(Matrix1D< double > &aint, Matrix1D< double > &bint, Matrix1D< double > &shift, int space_group, int sym_no, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint)
Definition: symmetries.cpp:44
void symmetrizeCrystalVolume(GridVolume &vol, const Matrix1D< double > &eprm_aint, const Matrix1D< double > &eprm_bint, int eprm_space_group, const MultidimArray< int > &mask, int grid_type)
Definition: symmetries.cpp:301