9 #ifndef IMPRMF_ATOM_LINKS_H
10 #define IMPRMF_ATOM_LINKS_H
12 #include <IMP/rmf/rmf_config.h>
14 #include "internal/atom_links_static.h"
15 #include "internal/atom_links_global_coordinates.h"
16 #include "internal/atom_links_static_coordinates.h"
17 #include "internal/atom_links_local_coordinates.h"
20 #include <RMF/NodeHandle.h>
21 #include <RMF/FileHandle.h>
26 #include <RMF/decorators.h>
28 IMPRMF_BEGIN_NAMESPACE
36 RMF::IntermediateParticleConstFactory intermediate_particle_factory_;
37 RMF::ReferenceFrameConstFactory reference_frame_factory_;
39 internal::HierarchyLoadStatic load_static;
40 internal::HierarchyLoadBonds load_bonds;
41 internal::HierarchyLoadLocalCoordinates load_local_coordinates;
42 internal::HierarchyLoadStaticCoordinates load_static_coordinates;
43 internal::HierarchyLoadGlobalCoordinates load_global_coordinates;
44 Data(RMF::FileConstHandle h)
47 load_local_coordinates(h),
48 load_static_coordinates(h),
49 load_global_coordinates(h) {}
53 virtual bool get_is(RMF::NodeConstHandle nh)
const IMP_OVERRIDE {
54 return nh.get_type() == RMF::REPRESENTATION;
58 RMF::NodeConstHandle node,
63 RMF::NodeConstHandle node) IMP_FINAL
71 virtual void do_load_one(RMF::NodeConstHandle nh,
85 RMF::NodeConstHandle node) {}
92 RMF::NodeConstHandle node) {}
97 static const char *get_name() {
return "atom load"; }
109 internal::HierarchySaveStatic save_static;
110 internal::HierarchySaveBonds save_bonds;
111 internal::HierarchySaveLocalCoordinates save_local_coordinates;
112 internal::HierarchySaveStaticCoordinates save_static_coordinates;
113 internal::HierarchySaveGlobalCoordinates save_global_coordinates;
114 Data(RMF::FileHandle h)
117 save_local_coordinates(h),
118 save_static_coordinates(h),
119 save_global_coordinates(h) {}
130 RMF::NodeHandle nh) IMP_OVERRIDE;
132 return RMF::REPRESENTATION;
141 RMF::NodeHandle root_node) {}
145 static const char *get_name() {
return "atom save"; }
Decorator for helping deal with a hierarchy of molecules.
Various general useful macros for IMP.
virtual void do_load_hierarchy(RMF::NodeConstHandle root_node, kernel::Model *m, kernel::ParticleIndex root)
virtual void do_setup_particle(kernel::Model *m, kernel::ParticleIndex root, kernel::ParticleIndex cur, RMF::NodeConstHandle node)
Handle read/write of kernel::Model data from/to files.
macros for display classes
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Various general useful macros for IMP.
Class to handle individual model particles.
Handle read/write of kernel::Model data from/to files.
virtual void do_setup_node(Model *m, kernel::ParticleIndex root, kernel::ParticleIndex p, RMF::NodeHandle n)
Various general useful macros for IMP.
virtual void do_save_hierarchy(Model *m, kernel::ParticleIndex root, RMF::NodeHandle root_node)
virtual void do_link_particle(kernel::Model *m, kernel::ParticleIndex root, kernel::ParticleIndex cur, RMF::NodeConstHandle node)
Declare an efficient stl-compatible map.
Class for storing model, its restraints, constraints, and particles.