00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #ifndef CLIPPER_CONTAINER_TYPES
00046 #define CLIPPER_CONTAINER_TYPES
00047
00048
00049 #include "container.h"
00050
00051
00052 namespace clipper
00053 {
00054
00055 extern const Resolution NullResolution;
00056 extern const Spacegroup NullSpacegroup;
00057 extern const Cell NullCell;
00058 extern const Grid_sampling NullGrid_sampling;
00059
00060
00062
00064 class CResolution : public Container, public Resolution
00065 {
00066 public:
00068 CResolution( const String name = "",
00069 const Resolution& resol = NullResolution ) :
00070 Container( name ), Resolution( resol ) {}
00072 CResolution( Container& parent, const String name = "",
00073 const Resolution& resol = NullResolution ) :
00074 Container( parent, name ), Resolution( resol ) {}
00076 void init( const Resolution& resolution_ );
00077 };
00078
00079
00081
00083 class CSpacegroup : public Container, public Spacegroup
00084 {
00085 public:
00087 CSpacegroup( const String name = "",
00088 const Spacegroup& spgr = NullSpacegroup ) :
00089 Container( name ), Spacegroup( spgr ) {}
00091 CSpacegroup( Container& parent, const String name = "",
00092 const Spacegroup& spgr = NullSpacegroup ) :
00093 Container( parent, name ), Spacegroup( spgr ) {}
00095 void init( const Spacegroup& spacegroup_ );
00096 };
00097
00098
00100
00102 class CCell : public Container, public Cell
00103 {
00104 public:
00106 CCell( const String name = "",
00107 const Cell& cell = NullCell ) :
00108 Container( name ), Cell( cell ) {}
00110 CCell( Container& parent, const String name = "",
00111 const Cell& cell = NullCell ) :
00112 Container( parent, name ), Cell( cell ) {}
00114 void init( const Cell& cell_ );
00115 };
00116
00117
00119
00121 class CGrid_sampling : public Container, public Grid_sampling
00122 {
00123 public:
00125 CGrid_sampling( const String name = "",
00126 const Grid_sampling& grid = NullGrid_sampling );
00128 CGrid_sampling( Container& parent, const String name = "",
00129 const ftype rate = 1.5 );
00131 CGrid_sampling( Container& parent, const String name,
00132 const Grid_sampling& grid );
00134 void init( const Spacegroup& spacegroup, const Cell& cell,
00135 const Resolution& resolution, const ftype rate );
00137 void init( const Grid_sampling& grid_sampling_ );
00139 void update();
00140 private:
00141 ftype rate_;
00142 };
00143
00144
00145 }
00146
00147 #endif