IMP  2.2.1
The Integrative Modeling Platform
Hierarchies of particles

Classes

class  IMP::atom::Atom
 A decorator for a particle representing an atom. More...
 
class  IMP::core::ChildrenRefiner
 Return the hierarchy children of a particle. More...
 
class  IMP::core::Hierarchy
 A decorator for helping deal with a hierarchy. More...
 
struct  IMP::core::HierarchyCounter
 A simple functor to count the number of particles in a hierarchy. More...
 
class  IMP::core::HierarchyVisitor
 A visitor for traversal of a hierarchy. More...
 
class  IMP::core::LeavesRefiner
 Return the hierarchy leaves under a particle. More...
 
class  IMP::core::ModifierVisitor
 A visitor which applies a modifier to each kernel::Particle in a hierarchy. More...
 
class  IMP::atom::Residue
 A decorator for a residue. More...
 

Functions

template<class HD , class F >
HD IMP::core::find_breadth_first (HD h, F f)
 Find the first node which matches some criteria. More...
 
template<class H , class Out , class F >
Out IMP::core::gather (H h, F f, Out out)
 Gather all the particles in the hierarchy which meet some criteria. More...
 
template<class H , class Out , class K , class V >
Out IMP::core::gather_by_attribute (H h, K k, V v, Out out)
 Gather all the particles in the hierarchy which match on an attribute. More...
 
template<class H , class Out , class K0 , class V0 , class K1 , class V1 >
Out IMP::core::gather_by_attributes (H h, K0 k0, V0 v0, K1 k1, V1 v1, Out out)
 Gather all the particles in the hierarchy which match on two attributes. More...
 
template<class H , class Out , class F >
Out IMP::core::gather_slice (H h, F f, Out out)
 Gather all the particles in the hierarchy which meet some criteria. More...
 
template<class ND >
std::ostream & IMP::core::show (Hierarchy h, std::ostream &out=std::cout)
 Print the hierarchy using a given decorator as to display each node. More...
 
template<class HD , class F >
IMP::core::visit_breadth_first (HD d, F f)
 Apply the visitor to each particle, breadth first. More...
 
template<class HD , class F >
IMP::core::visit_breadth_first_with_data (HD d, F f, typename F::result_type i)
 Apply functor F to each particle, traversing the hierarchy breadth first. More...
 
template<class HD , class F >
IMP::core::visit_depth_first (HD d, F f)
 Apply functor F to each particle, traversing the hierarchy depth first. More...
 
template<class HD , class F >
IMP::core::visit_depth_first_with_data (HD d, F f, typename F::result_type i)
 Apply functor F to each particle, traversing the hierarchy depth first. More...
 

Detailed Description

These functions and classes aid in manipulating particles representing molecules at multiple levels.

Function Documentation

template<class HD , class F >
HD IMP::core::find_breadth_first ( HD  h,
f 
)

See Hierarchy

Definition at line 481 of file core/Hierarchy.h.

template<class H , class Out , class F >
Out IMP::core::gather ( h,
f,
Out  out 
)

See Hierarchy

Definition at line 432 of file core/Hierarchy.h.

+ Here is the call graph for this function:

template<class H , class Out , class K , class V >
Out IMP::core::gather_by_attribute ( h,
k,
v,
Out  out 
)

See Hierarchy

Definition at line 457 of file core/Hierarchy.h.

+ Here is the call graph for this function:

template<class H , class Out , class K0 , class V0 , class K1 , class V1 >
Out IMP::core::gather_by_attributes ( h,
K0  k0,
V0  v0,
K1  k1,
V1  v1,
Out  out 
)

See Hierarchy

Definition at line 469 of file core/Hierarchy.h.

+ Here is the call graph for this function:

template<class H , class Out , class F >
Out IMP::core::gather_slice ( h,
f,
Out  out 
)

Descent in the tree terminates when a node is gathered so that none of its children are explored.

See Hierarchy

Definition at line 446 of file core/Hierarchy.h.

+ Here is the call graph for this function:

template<class ND >
std::ostream& IMP::core::show ( Hierarchy  h,
std::ostream &  out = std::cout 
)

The last argument limits how deep will be printed out.

See Hierarchy

Definition at line 398 of file core/Hierarchy.h.

template<class HD , class F >
F IMP::core::visit_breadth_first ( HD  d,
f 
)
Parameters
[in]dThe Hierarchy for the tree in question
[in]fThe visitor to be applied. This is passed by reference. A branch of the traversal stops when f returns false.

See Hierarchy

Definition at line 286 of file core/Hierarchy.h.

template<class HD , class F >
F IMP::core::visit_breadth_first_with_data ( HD  d,
f,
typename F::result_type  i 
)

This method allows data to be associated with each visited node. The data of the parent is passed to each invocation of the child.

Parameters
[in]dThe Hierarchy for the tree in question
[in]fThe functor to be applied F must define a type Data which is returned by each call. The result of the parent call is passed as the second argument to the operator() of the child. e.g. struct DepthVisitor { typedef int result_type; result_type operator()(kernel::Particle *p, int i) const { if (p==nullptr) return 0; else return i+1; } };
[in]iThe data to be used for d (since it has no relevant parent)
Returns
A copy of the functor passed in. Use this if you care about the functor state.

See Hierarchy

Definition at line 352 of file core/Hierarchy.h.

template<class HD , class F >
F IMP::core::visit_depth_first ( HD  d,
f 
)

See breadth_first_traversal() for documentation.

See Hierarchy

Definition at line 309 of file core/Hierarchy.h.

template<class HD , class F >
F IMP::core::visit_depth_first_with_data ( HD  d,
f,
typename F::result_type  i 
)

See breadth_first_traversal for documentation.

See Hierarchy

Definition at line 375 of file core/Hierarchy.h.