8 #ifndef IMPATOM_BOND_GRAPH_H
9 #define IMPATOM_BOND_GRAPH_H
13 #include "internal/bond_graph_functors.h"
15 #include <IMP/kernel/internal/NestedIterator.h>
16 #include <boost/graph/graph_traits.hpp>
17 #include <boost/graph/properties.hpp>
18 #include <boost/iterator/transform_iterator.hpp>
22 IMPATOM_BEGIN_NAMESPACE
78 typedef internal::AttributeVertexPropertyMap<FloatKey, Float>
79 VertexFloatPropertyMap;
80 typedef internal::AttributeVertexPropertyMap<IntKey, Int>
82 typedef internal::AttributeVertexPropertyMap<kernel::ParticleIndexKey, Bonded>
83 VertexVertexPropertyMap;
85 typedef internal::AttributeEdgePropertyMap<FloatKey, Float>
87 typedef internal::AttributeEdgePropertyMap<IntKey, Int> EdgeIntPropertyMap;
89 VertexIntPropertyMap get_vertex_index_map()
const;
114 VertexIntPropertyMap get_vertex_index_map()
const;
119 typedef std::pair<Bonded, Bonded> edge_descriptor;
127 struct traversal_category :
public virtual boost::adjacency_graph_tag,
128 public virtual boost::vertex_list_graph_tag,
129 public virtual boost::edge_list_graph_tag,
131 public virtual boost::bidirectional_graph_tag {};
132 typedef Bonded vertex_descriptor;
134 typedef int vertices_size_type;
135 typedef int edges_size_type;
136 typedef int degree_size_type;
138 typedef boost::transform_iterator<internal::MakeOutEdgeDescriptor,
139 vertex_descriptor::BondIterator>
141 typedef vertex_descriptor::BondedIterator adjacency_iterator;
142 typedef boost::transform_iterator<
143 internal::MakeBonded, IMP::kernel::Particles::iterator> vertex_iterator;
144 typedef boost::disallow_parallel_edge_tag edge_parallel_category;
145 typedef boost::undirected_tag directed_category;
147 typedef boost::transform_iterator<internal::MakeInEdgeDescriptor,
148 vertex_descriptor::BondIterator>
151 typedef IMP::internal::NestedIterator<internal::NestedTraits> edge_iterator;
154 typedef Int vertex_property_type;
158 IMPATOM_END_NAMESPACE
160 #include "internal/bond_graph_boost_functions.h"
EdgeFloatPropertyMap
Provide boost access to a Float attribute on the edges such as length.
Store a list of kernel::ParticlesTemp.
VertexFloatPropertyMap
Provide boost access to a Float attribute each vertex.
EdgeIntPropertyMap
Provide boost access to an Int attribute on each edge.
Contains decorators for a bond.
Decorator for helping deal with a hierarchy of molecules.
VertexIntPropertyMap
Provide boost access to an Int attribute each vertex.
The standard decorator for manipulating molecular structures.
A decorator for wrapping a particle representing a molecular bond.
#define IMP_NO_DOXYGEN(x)
Hide something from doxygen.
Represent a bond graph as a boost graph.
Bond get_bond(Bonded a, Bonded b)
Get the bond between two particles.
int Int
Basic integer value.
VertexVertexPropertyMap
Provide boost access to a kernel::Particle attribute each vertex.