IMP  2.0.1
The Integrative Modeling Platform
atom_io.h
Go to the documentation of this file.
1 /**
2  * \file IMP/rmf/atom_io.h
3  * \brief Handle read/write of Model data from/to files.
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPRMF_ATOM_IO_H
10 #define IMPRMF_ATOM_IO_H
11 
12 #include <IMP/rmf/rmf_config.h>
13 #include "link_macros.h"
14 #include <IMP/atom/Hierarchy.h>
15 
16 IMPRMF_BEGIN_NAMESPACE
17 
18 /** \name Hierarchy I/O
19  Hierarchy I/O writes IMP::atom::Hierarchy information along with
20  the information contained in the following decorators
21  - IMP::atom::Atom
22  - IMP::atom::Residue
23  - IMP::core::XYZR
24  - IMP::atom::Mass
25  - IMP::atom::Diffusion
26  - IMP::core::Typed
27  - IMP::display::Colored
28  - IMP::atom::Domain
29  - IMP::atom::Molecule
30  - IMP::atom::Copy
31  - IMP::core::RigidMember (rigid body information will be written and rigid
32  bodies created even when the IMP::core::RigidBody is not itself written
33  to the file)
34  - IMP::core::RigidBody
35 
36  @note IMP::core::XYZ and IMP::core::RigidBody data are stored at each frame.
37  Data for all the other decorators are assumed to be static attributes, and
38  are stored once for the entire RMF file. There is currently no way to
39  customize this. Complain to the IMP team if this is problematic.
40 
41  \anchor topology_matching
42  \note To avoid unexpected behavior, be aware that when linking
43  atom::Hierarchies against an RMF file, the linked hierarchies are
44  assumed to be identical in all of their static attributes to the
45  hierarchies in the RMF file (within
46  RMF::REPRESENTATION nodes). In particular, these hierachies must
47  have the same tree topology (number of children for each node).
48 
49  @{
50  */
51 
52 IMP_DECLARE_LINKERS(Hierarchy, hierarchy, hierarchies,
53  atom::Hierarchy,atom::Hierarchies,
54  atom::Hierarchy,atom::Hierarchies,
55  (RMF::FileConstHandle fh, Model *m),
56  See \ref topology_matching "Linking hierarchies" for more
57  information and intricacies);
58 
59 /** Set whether the forces (and torques) are saved to the file.*/
60 IMPRMFEXPORT void set_save_forces(RMF::FileHandle fh, bool tf);
61 
62 /** @} */
63 
64 
65 
66 IMPRMF_END_NAMESPACE
67 
68 #endif /* IMPRMF_ATOM_IO_H */