9 #ifndef IMPATOM_BOND_GRAPH_H
10 #define IMPATOM_BOND_GRAPH_H
14 #include "internal/bond_graph_functors.h"
16 #include <IMP/internal/NestedIterator.h>
17 #include <boost/graph/graph_traits.hpp>
18 #include <boost/graph/properties.hpp>
19 #include <boost/iterator/transform_iterator.hpp>
23 IMPATOM_BEGIN_NAMESPACE
79 typedef internal::AttributeVertexPropertyMap<FloatKey, Float>
80 VertexFloatPropertyMap;
81 typedef internal::AttributeVertexPropertyMap<IntKey, Int>
83 typedef internal::AttributeVertexPropertyMap<ParticleIndexKey, Bonded>
84 VertexVertexPropertyMap;
86 typedef internal::AttributeEdgePropertyMap<FloatKey, Float>
88 typedef internal::AttributeEdgePropertyMap<IntKey, Int> EdgeIntPropertyMap;
90 VertexIntPropertyMap get_vertex_index_map()
const;
115 VertexIntPropertyMap get_vertex_index_map()
const;
120 typedef std::pair<Bonded, Bonded> edge_descriptor;
128 struct traversal_category :
public virtual boost::adjacency_graph_tag,
129 public virtual boost::vertex_list_graph_tag,
130 public virtual boost::edge_list_graph_tag,
132 public virtual boost::bidirectional_graph_tag {};
133 typedef Bonded vertex_descriptor;
135 typedef int vertices_size_type;
136 typedef int edges_size_type;
137 typedef int degree_size_type;
139 typedef boost::transform_iterator<internal::MakeOutEdgeDescriptor,
140 vertex_descriptor::BondIterator>
142 typedef vertex_descriptor::BondedIterator adjacency_iterator;
143 typedef boost::transform_iterator<
144 internal::MakeBonded, IMP::Particles::iterator> vertex_iterator;
145 typedef boost::disallow_parallel_edge_tag edge_parallel_category;
146 typedef boost::undirected_tag directed_category;
148 typedef boost::transform_iterator<internal::MakeInEdgeDescriptor,
149 vertex_descriptor::BondIterator>
152 typedef IMP::internal::NestedIterator<internal::NestedTraits> edge_iterator;
155 typedef Int vertex_property_type;
159 IMPATOM_END_NAMESPACE
161 #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 ParticleIndexes.
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.
#define IMP_NO_DOXYGEN(x)
Hide something from doxygen.
The standard decorator for manipulating molecular structures.
A decorator for wrapping a particle representing a molecular bond.
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 Particle attribute each vertex.