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: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 Particle * | get_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) | |
|
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.
|
pure virtual |
Return the set of containers used when refining.
Implemented in IMP::core::TableRefiner, IMP::core::ChildrenRefiner, IMP::core::LeavesRefiner, IMP::atom::BondEndpointsRefiner, and IMP::core::FixedRefiner.
|
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.
|
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.
|
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.
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.