Clipper
container_types.h
1
4//C Copyright (C) 2000-2006 Kevin Cowtan and University of York
5//L
6//L This library is free software and is distributed under the terms
7//L and conditions of version 2.1 of the GNU Lesser General Public
8//L Licence (LGPL) with the following additional clause:
9//L
10//L `You may also combine or link a "work that uses the Library" to
11//L produce a work containing portions of the Library, and distribute
12//L that work under terms of your choice, provided that you give
13//L prominent notice with each copy of the work that the specified
14//L version of the Library is used in it, and that you include or
15//L provide public access to the complete corresponding
16//L machine-readable source code for the Library including whatever
17//L changes were used in the work. (i.e. If you make changes to the
18//L Library you must distribute those, but you do not need to
19//L distribute source or object code to those portions of the work
20//L not covered by this licence.)'
21//L
22//L Note that this clause grants an additional right and does not impose
23//L any additional restriction, and so does not affect compatibility
24//L with the GNU General Public Licence (GPL). If you wish to negotiate
25//L other terms, please contact the maintainer.
26//L
27//L You can redistribute it and/or modify the library under the terms of
28//L the GNU Lesser General Public License as published by the Free Software
29//L Foundation; either version 2.1 of the License, or (at your option) any
30//L later version.
31//L
32//L This library is distributed in the hope that it will be useful, but
33//L WITHOUT ANY WARRANTY; without even the implied warranty of
34//L MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
35//L Lesser General Public License for more details.
36//L
37//L You should have received a copy of the CCP4 licence and/or GNU
38//L Lesser General Public License along with this library; if not, write
39//L to the CCP4 Secretary, Daresbury Laboratory, Warrington WA4 4AD, UK.
40//L The GNU Lesser General Public can also be obtained by writing to the
41//L Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
42//L MA 02111-1307 USA
43
44
45#ifndef CLIPPER_CONTAINER_TYPES
46#define CLIPPER_CONTAINER_TYPES
47
48
49#include "container.h"
50
51
52namespace clipper
53{
54
55 extern const Resolution NullResolution; //<! null instance
56 extern const Spacegroup NullSpacegroup; //<! null instance
57 extern const Cell NullCell; //<! null instance
58 extern const Grid_sampling NullGrid_sampling; //<! null instance
59
60
62
64 class CResolution : public Container, public Resolution
65 {
66 public:
68 CResolution( const String name = "",
69 const Resolution& resol = NullResolution ) :
70 Container( name ), Resolution( resol ) {}
73 const Resolution& resol = NullResolution ) :
74 Container( parent, name ), Resolution( resol ) {}
76 void init( const Resolution& resolution_ );
77 };
78
79
81
83 class CSpacegroup : public Container, public Spacegroup
84 {
85 public:
87 CSpacegroup( const String name = "",
88 const Spacegroup& spgr = NullSpacegroup ) :
89 Container( name ), Spacegroup( spgr ) {}
92 const Spacegroup& spgr = NullSpacegroup ) :
93 Container( parent, name ), Spacegroup( spgr ) {}
95 void init( const Spacegroup& spacegroup_ );
96 };
97
98
100
102 class CCell : public Container, public Cell
103 {
104 public:
106 CCell( const String name = "",
107 const Cell& cell = NullCell ) :
108 Container( name ), Cell( cell ) {}
111 const Cell& cell = NullCell ) :
112 Container( parent, name ), Cell( cell ) {}
114 void init( const Cell& cell_ );
115 };
116
117
119
122 {
123 public:
125 CGrid_sampling( const String name = "",
126 const Grid_sampling& grid = NullGrid_sampling );
129 const ftype rate = 1.5 );
132 const Grid_sampling& grid );
134 void init( const Spacegroup& spacegroup, const Cell& cell,
135 const Resolution& resolution, const ftype rate );
137 void init( const Grid_sampling& grid_sampling_ );
139 void update();
140 private:
141 ftype rate_;
142 };
143
144
145} // namespace clipper
146
147#endif
CCell container.
Definition: container_types.h:103
CCell(const String name="", const Cell &cell=NullCell)
constructor: make null object or top object in tree
Definition: container_types.h:106
CCell(Container &parent, const String name="", const Cell &cell=NullCell)
constructor: make child object
Definition: container_types.h:110
void init(const Cell &cell_)
initialiser: from Cell
Definition: container_types.cpp:74
CGrid_sampling container.
Definition: container_types.h:122
CGrid_sampling(const String name="", const Grid_sampling &grid=NullGrid_sampling)
constructor: make null object or top object in tree
Definition: container_types.cpp:84
void update()
hierarchical update
Definition: container_types.cpp:141
void init(const Spacegroup &spacegroup, const Cell &cell, const Resolution &resolution, const ftype rate)
initialiser: from sampling rate
Definition: container_types.cpp:110
Resolution container.
Definition: container_types.h:65
CResolution(Container &parent, const String name="", const Resolution &resol=NullResolution)
constructor: make child object
Definition: container_types.h:72
void init(const Resolution &resolution_)
initialiser: from Resolution
Definition: container_types.cpp:56
CResolution(const String name="", const Resolution &resol=NullResolution)
constructor: make null object or top object in tree
Definition: container_types.h:68
Spacegroup container.
Definition: container_types.h:84
void init(const Spacegroup &spacegroup_)
initialiser: from Spacegroup
Definition: container_types.cpp:65
CSpacegroup(Container &parent, const String name="", const Spacegroup &spgr=NullSpacegroup)
constructor: make child object
Definition: container_types.h:91
CSpacegroup(const String name="", const Spacegroup &spgr=NullSpacegroup)
constructor: make null object or top object in tree
Definition: container_types.h:87
Cell object.
Definition: cell.h:122
Definition for a generic container Object.
Definition: container.h:69
const Container & parent() const
get the parent of this object
Definition: container.cpp:142
String name() const
get the name of this tree object
Definition: container.cpp:127
Grid sampling of a unit cell.
Definition: coords.h:516
Resolution in angstroms.
Definition: coords.h:69
Spacegroup object.
Definition: spacegroup.h:173
String extension with simple parsing methods.
Definition: clipper_types.h:65
ftype64 ftype
ftype definition for floating point representation
Definition: clipper_precision.h:58