/usr/include/BALL/FORMAT/XYZFile.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 | // -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_FORMAT_XYZFILE_H
#define BALL_FORMAT_XYZFILE_H
#ifndef BALL_FORMAT_GENERICMOLFILE_H
# include <BALL/FORMAT/genericMolFile.h>
#endif
namespace BALL
{
class System;
class Molecule;
class AtomContainer;
/** XYZ file class.
This class enables BALL to read and write XMol XYZ files.
The XYZ format is a very simple molecular file format. In general it contains
only the atom type (i.e., the element) and the cartesian coordinates
of the structure.
Newer versions of this file format also contain bonds (without bond order) and
atom names.\par
The first line of each XYZ file contains a single integer number: the number
of atoms in the file. The second line is just a comment line. When reading a
XYZ file, BALL stores this comment as the name attribute of the system read.
Similarly, on writing the system, it's name is written to this comment line.
All remaining lines contain the element symbol and the three coordinates
in free format. \par
\ingroup StructureFormats
*/
class BALL_EXPORT XYZFile
: public GenericMolFile
{
public:
/** @name Constructors and Destructors
*/
//@{
/** Default constructor
*/
XYZFile();
/** Detailed constructor.
* Create a XYZ file and open it with mode <tt>open_mode</tt> (reading is default)
* @param filename the filename
* @param open_mode the openmode - default is \link File::IN File::IN \endlink
* @throw Exception::FileNotFound if the file could not be opened
*/
XYZFile(const String& filename, File::OpenMode open_mode = std::ios::in);
/** Destructor
*/
virtual ~XYZFile();
//@}
/** @name Reading and Writing of Kernel Datastructures
*/
//@{
/** Write an AtomContainer to the XYZ file
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const AtomContainer& ac);
/** Write a system to the XYZ file
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const System& system);
/** Write a molecule to the XYZ file
* @throw File::CannotWrite if writing to the file failed
*/
virtual bool write(const Molecule& mol);
/** Read a system from the XYZ file
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual bool read(System& system);
/** Read a molecule from the XYZ file
* @throw Exception::ParseError if a syntax error was encountered
*/
virtual Molecule* read();
///@deprecated Instead of this method use XYZFile::getComment()
BALL_DEPRECATED const String& getComent() const { return comment_; }
///
const String& getComment() const { return comment_; }
private:
const XYZFile& operator = (const XYZFile& file);
String comment_;
//@}
};
} // namespace BALL
#endif // BALL_FORMAT_XYZFILE_H
|