/usr/include/BALL/FORMAT/CCP4File.h is in libball1.4-dev 1.4.3~beta1-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
//
#ifndef BALL_FORMAT_CCP4FILE_H
#define BALL_FORMAT_CCP4FILE_H
#ifndef BALL_SYSTEM_FILE_H
# include <BALL/SYSTEM/file.h>
#endif
#ifndef BALL_DATATYPE_REGULARDATA3D_H
# include <BALL/DATATYPE/regularData3D.h>
#endif
namespace BALL
{
/** CCP4 density map file format. This class enables BALL to read and
write CCP4 - type binary electron density maps as used by the CCP4
project
For detailed information on the file format CCP4 see:
http://www.ccp4.ac.uk/html/maplib.html#introduction
\ingroup Format
*/
class BALL_EXPORT CCP4File
: public File
{
public:
/** @name Constructors and Destructor
*/
//@{
/// Default constructor
CCP4File();
/** Detailed constructor
* @throw Exception::FileNotFound if the file could not be opened
*/
CCP4File(const String& name, File::OpenMode open_mode = std::ios::in);
/// Destructor
virtual ~CCP4File();
//@}
/** @name Assignment
*/
//@{
/// Clear method
virtual void clear();
//@}
/** @name Predicates
*/
//@{
/// Equality operator
bool operator == (const CCP4File& file) const;
//@}
/// @name Public methods for file handling
//@{
/** open a CCP4File
* @throw Exception::FileNotFound if the file could not be opened
*/
virtual bool open(const String& name, File::OpenMode open_mode = std::ios::in);
/** Read the header of an existing file.
Return true if the header could be read successfully, false ow.
*/
virtual bool readHeader();
/** Read the symmetry records of an existing file if present.
Return true if the symmetry records could be read successfully, false ow.
*/
virtual bool readSymmetryRecords();
/** Read the file into a RegularData3D field.
*/
virtual bool read(RegularData3D& map);
/** Write a header
Return true if the header could be written successfully, false ow.
*/
virtual bool writeHeader();
/** Write a RegularData3D to a CCP4 File
Return true if the map could be written successfully, false ow.
*/
virtual bool write(RegularData3D& map);
//@}
/** @name Accessors
*/
//@{
//@}
private:
const CCP4File& operator = (const CCP4File& file);
protected:
int readBinValueasInt_(char* header, Position pos);
float readBinValueasFloat_(char* header, Position pos);
/// flag indicating that we have to swap bytes when reading header values
bool swap_bytes_;
/// number of bytes used for storing symmetry operations
Distance offset_symops_;
/// how do columns, rows and sections correspond to specific axes: 0=x, 1=y, 2=z
Size col_axis_;
Size row_axis_;
Size sec_axis_;
/// the start coordinates in grid coordinates, i.e. indices
Vector3 start_;
/// the extent of the map
Vector3 extent_;
/// the sampling rates used for the map
Vector3 sampling_rate_;
/// dimension of the crystal unit cell in Angstrom/sample
Vector3 cell_dimension_;
/// angles of the crystal unit cell
Angle alpha_, beta_, gamma_;
/// mean density value
float mean_density_;
/// rms deviation of whole map from mean density value
float deviation_sigma_;
/// space group number
Index space_group_;
/// geometry in cartesian coordinates
Vector3 origin_, xaxis_, yaxis_, zaxis_;
};
} // namespace BALL
#endif // BALL_FORMAT_DCDFILE_H
|