Main Page   Compound List   File List   Compound Members   File Members   Related Pages  

ccp4_spg.h

Go to the documentation of this file.
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