00001 /* 00002 ccp4_spg.h: Data structure for symmetry information 00003 Copyright (C) 2001 CCLRC, Martyn Winn 00004 00005 This library is free software and is distributed under the terms and 00006 conditions of the CCP4 licence agreement as `Part 0' (Annex 2) 00007 software, which is version 2.1 of the GNU Lesser General Public 00008 Licence (LGPL) with the following additional clause: 00009 00010 `You may also combine or link a "work that uses the Library" to 00011 produce a work containing portions of the Library, and distribute 00012 that work under terms of your choice, provided that you give 00013 prominent notice with each copy of the work that the specified 00014 version of the Library is used in it, and that you include or 00015 provide public access to the complete corresponding 00016 machine-readable source code for the Library including whatever 00017 changes were used in the work. (i.e. If you make changes to the 00018 Library you must distribute those, but you do not need to 00019 distribute source or object code to those portions of the work 00020 not covered by this licence.)' 00021 00022 Note that this clause grants an additional right and does not impose 00023 any additional restriction, and so does not affect compatibility 00024 with the GNU General Public Licence (GPL). If you wish to negotiate 00025 other terms, please contact the maintainer. 00026 00027 You can redistribute it and/or modify the library under the terms of 00028 the GNU Lesser General Public License as published by the Free Software 00029 Foundation; either version 2.1 of the License, or (at your option) any 00030 later version. 00031 00032 This library is distributed in the hope that it will be useful, but 00033 WITHOUT ANY WARRANTY; without even the implied warranty of 00034 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00035 Lesser General Public License for more details. 00036 00037 You should have received a copy of the CCP4 licence and/or GNU 00038 Lesser General Public License along with this library; if not, write 00039 to the CCP4 Secretary, Daresbury Laboratory, Warrington WA4 4AD, UK. 00040 The GNU Lesser General Public can also be obtained by writing to the 00041 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00042 MA 02111-1307 USA 00043 */ 00044 00056 #ifndef __CCP4_SPG__ 00057 #define __CCP4_SPG__ 00058 static char rcsidhsp[] = "$Id: ccp4__spg_8h-source.html,v 1.8 2004/07/05 14:36:55 mdw Exp $"; 00059 00060 #ifdef __cplusplus 00061 namespace CSym { 00062 extern "C" { 00063 #endif 00064 00065 /* Kevin's symmetry operator */ 00066 00067 typedef struct ccp4_symop_ 00068 { 00069 float rot[3][3]; 00070 float trn[3]; 00071 } ccp4_symop; 00072 00073 typedef struct ccp4_spacegroup_ 00074 { 00075 int spg_num; /* true spacegroup number */ 00076 int spg_ccp4_num; /* CCP4 spacegroup number */ 00077 char symbol_Hall[40]; /* Hall symbol */ 00078 char symbol_xHM[20]; /* Extended Hermann Mauguin symbol */ 00079 char symbol_old[20]; /* old spacegroup name */ 00080 00081 char point_group[20]; /* point group name */ 00082 char crystal[20]; /* crystal system */ 00083 00084 int nlaue; /* CCP4 Laue class number, inferred from asu_descr */ 00085 char laue_name[20]; /* Laue class name */ 00086 int laue_sampling[3]; /* sampling factors for FFT */ 00087 00088 int npatt; /* Patterson spacegroup number, inferred from asu_descr */ 00089 char patt_name[40]; /* Patterson spacegroup name */ 00090 00091 int nsymop; /* total number of symmetry operations */ 00092 int nsymop_prim; /* number of primitive symmetry operations */ 00093 ccp4_symop *symop; /* symmetry matrices */ 00094 ccp4_symop *invsymop; /* inverse symmetry matrices */ 00095 00096 float chb[3][3]; /* change of basis matrix from file */ 00097 00098 char asu_descr[80]; /* asu description from file */ 00099 int (*asufn)(const int, const int, const int); /* pointer to ASU function */ 00100 00101 int centrics[12]; /* symop which generates centric zone, 0 if none */ 00102 int epsilon[13]; /* flag which epsilon zones are applicable */ 00103 00104 char mapasu_zero_descr[80]; /* origin-based map asu: description from file */ 00105 float mapasu_zero[3]; /* origin-based map asu: upper limits */ 00106 00107 char mapasu_ccp4_descr[80]; /* CCP4 map asu: defaults to mapasu_zero */ 00108 float mapasu_ccp4[3]; /* CCP4 map asu: upper limits */ 00109 00110 } CCP4SPG; 00111 00112 #ifdef __cplusplus 00113 } } 00114 #endif 00115 00116 #endif