IMP
2.0.0
The Integrative Modeling Platform
|
A decorator for helping deal with a hierarchy. More...
#include <IMP/core/Hierarchy.h>
Public Types | |
typedef HierarchyTraits | DecoratorTraits |
typedef Decorator | DecoratorTraitsBase |
Public Member Functions | |
Hierarchy (Model *m, ParticleIndex id, const HierarchyTraits &tr) | |
Hierarchy (::IMP::kernel::Particle *p, const HierarchyTraits &tr=get_default_traits()) | |
Hierarchy (const HierarchyTraits &tr) | |
void | add_child (Hierarchy h) const |
void | add_child_at (Hierarchy h, unsigned int pos) |
void | clear_children () |
Hierarchy | get_child (unsigned int i) const |
int | get_child_index () const |
GenericHierarchies | get_children () const |
const DecoratorTraits & | get_decorator_traits () const |
unsigned int | get_number_of_children () const |
Hierarchy | get_parent () const |
const HierarchyTraits & | get_traits () const |
void | remove_child (unsigned int i) |
void | remove_child (Hierarchy h) |
void | show (std::ostream &out=std::cout) const |
Public Member Functions inherited from IMP::kernel::Decorator | |
ParticleIndex | get_particle_index () const |
Particle * | get_particle () const |
Model * | get_model () const |
Returns the Model containing the particle. | |
Decorator (Particle *p) | |
Decorator () | |
Static Public Member Functions | |
static Hierarchy | decorate_particle (::IMP::kernel::Particle *p, const HierarchyTraits &tr=get_default_traits()) |
static const DecoratorTraits & | get_default_decorator_traits () |
static const HierarchyTraits & | get_default_traits () |
Get the default hierarchy traits. | |
static bool | particle_is_instance (Particle *, HierarchyTraits=Hierarchy::get_default_traits()) |
static Hierarchy | setup_particle (Particle *p, HierarchyTraits traits=Hierarchy::get_default_traits()) |
Add the needed attributes to a particle. | |
static Hierarchy | setup_particle (Particle *p, const Particles &children, HierarchyTraits traits=Hierarchy::get_default_traits()) |
Add the needed attributes to a particle and add the particles as children. More... | |
Static Public Member Functions inherited from IMP::kernel::Decorator | |
static bool | particle_is_instance (Particle *p) |
Return true if the particle can be cast to the decorator. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<class HD , class F > | |
HD | find_breadth_first (HD h, F f) |
Find the first node which matches some criteria. | |
template<class H , class Out , class F > | |
Out | gather (H h, F f, Out out) |
Gather all the particles in the hierarchy which meet some criteria. | |
template<class H , class Out , class K , class V > | |
Out | gather_by_attribute (H h, K k, V v, Out out) |
Gather all the particles in the hierarchy which match on an attribute. | |
template<class H , class Out , class K0 , class V0 , class K1 , class V1 > | |
Out | 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. | |
template<class H , class Out , class F > | |
Out | gather_slice (H h, F f, Out out) |
Gather all the particles in the hierarchy which meet some criteria. More... | |
GenericHierarchies | get_all_descendants (Hierarchy mhd) |
Get all the particles in the subtree. | |
GenericHierarchies | get_internal (Hierarchy mhd) |
Get all the non-leaves of the bit of hierarchy. | |
GenericHierarchies | get_leaves (Hierarchy mhd) |
Get all the leaves of the bit of hierarchy. More... | |
Hierarchy | get_root (Hierarchy h) |
Return the root of the hierarchy. More... | |
template<class ND > | |
std::ostream & | 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 > | |
F | visit_breadth_first (HD d, F f) |
Apply the visitor to each particle, breadth first. More... | |
template<class HD , class F > | |
F | 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 > | |
F | visit_depth_first (HD d, F f) |
Apply functor F to each particle, traversing the hierarchy depth first. More... | |
template<class HD , class F > | |
F | 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... | |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::kernel::Decorator | |
Decorator (Model *m, ParticleIndex pi) | |
Decorator (Particle *p) | |
See HierarchyTraits for an example of how to define a custom hierarchy and Hierarchy for a hierarchy for molecules.
Definition at line 82 of file core/Hierarchy.h.
Hierarchy IMP::core::Hierarchy::get_parent | ( | ) | const |
Definition at line 129 of file core/Hierarchy.h.
|
static |
Check if the particle has the needed attributes for a cast to succeed
Definition at line 121 of file core/Hierarchy.h.
|
static |
The particles can be, but don't have to be Hierarchy particles already.
Definition at line 101 of file core/Hierarchy.h.
|
related |
The leaves are returned in the obvious order (first child before second child).
Definition at line 590 of file core/Hierarchy.h.