IMP logo
Classes | Public Member Functions
IMP::Refiner Class Reference

Detailed Description

Abstract class to implement hierarchical methods.

The job of this class is to take a single particle and, if appropriate, return a list of particles. These lists can reflect existing relationships, such as the IMP::core::LeavesRefiner or arbitrary relationships set up for a particular purpose, such as IMP::core::TableRefiner.

Implementors should see IMP_REFINER().

+ Inheritance diagram for IMP::Refiner:

List of all members.

Classes

struct  Accessor
 a collection of Refiner objects More...

Public Member Functions

 Refiner (std::string name="Refiner %1%")
virtual bool get_can_refine (Particle *) const
 Return true if this refiner can refine that particle.
virtual ContainersTemp get_input_containers (Particle *) const =0
 Return the set of containers used when refining.
virtual ParticlesTemp get_input_particles (Particle *) const =0
 Return the set of particles used when refining particle p.
virtual unsigned int get_number_of_refined (Particle *a) const =0
virtual const ParticlesTemp get_refined (Particle *a) const =0
 Refine the passed particle into a set of particles.
virtual Particleget_refined (Particle *a, unsigned int i) const =0
 Get the ith refined particle.
- Public Member Functions inherited from IMP::base::Object
std::size_t __hash__ () const
virtual std::string get_type_name () const =0
 Return a string identifying the type of the object.
virtual IMP::base::VersionInfo get_version_info () const =0
 Get information about the module and version of the object.
void set_check_level (CheckLevel l)
void set_log_level (LogLevel l)
 Set the logging level used in this object.
void set_was_used (bool tf) const
void show (std::ostream &out=std::cout) const
const std::string & get_name () const
void set_name (std::string name)

Iterating through the set of refined particles

Using iterators can be more efficient than using the bulk get_refined(), however it is not necessarily so.

typedef
internal::IndexingIterator
< Accessor
RefinedIterator
RefinedIterator refined_begin (Particle *a) const
RefinedIterator refined_end (Particle *a) const

Additional Inherited Members

- Protected Member Functions inherited from IMP::base::Object
 Object (std::string name)

Member Function Documentation

virtual bool IMP::Refiner::get_can_refine ( Particle ) const
virtual

Return true if this refiner can refine that particle.

This should not throw, so be careful what fields are touched.

Reimplemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.

virtual ContainersTemp IMP::Refiner::get_input_containers ( Particle ) const
pure virtual
virtual ParticlesTemp IMP::Refiner::get_input_particles ( Particle ) const
pure virtual

Return the set of particles used when refining particle p.

Implemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.

virtual unsigned int IMP::Refiner::get_number_of_refined ( Particle a) const
pure virtual

As a precondition can_refine_particle(a) should be true.

Implemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.

virtual const ParticlesTemp IMP::Refiner::get_refined ( Particle a) const
pure virtual

Refine the passed particle into a set of particles.

As a precondition can_refine_particle(a) should be true.

Implemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.

virtual Particle* IMP::Refiner::get_refined ( Particle a,
unsigned int  i 
) const
pure virtual

Get the ith refined particle.

As a precondition can_refine_particle(a) should be true.

Implemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.


The documentation for this class was generated from the following file:

Generated on Tue May 22 2012 23:33:24 for IMP by doxygen 1.8.1