anatomist  5.1.2
3D neuroimaging data viewer
anatomist::FusionFactory Class Reference

Handles creation of various fusion objects. More...

#include <anatomist/fusion/fusionFactory.h>

Collaboration diagram for anatomist::FusionFactory:

Public Member Functions

 FusionFactory ()
 
virtual ~FusionFactory ()
 
virtual FusionMethodchooseMethod (const std::set< AObject * > &)
 Chooses one method which can fusion these objects. More...
 
virtual FusionMethodchooseMethod (std::vector< AObject * > &, bool allowreorder=false)
 
virtual std::multimap< int, std::string > allowedMethods (const std::set< AObject * > &) const
 lists all possible fusions on the given objects, classed with a priority More...
 
virtual FusionMethodmethod (const std::string &name) const
 Selects the method with ID name (if any) More...
 

Static Public Member Functions

static FusionFactoryfactory ()
 
static bool registerMethod (FusionMethod *method)
 returns false if the method was already registered More...
 
static bool canFusion (const std::set< AObject * > &)
 is there at least one method which can actually make a fusion with these objects ? More...
 
static std::set< std::string > methods ()
 

Static Protected Attributes

static FusionFactory_theFactory
 
static std::set< FusionMethod * > _methods
 

Detailed Description

Handles creation of various fusion objects.

This is an "open" mechanism with registration procedure to allow new types of fusion

Definition at line 79 of file fusionFactory.h.

Constructor & Destructor Documentation

◆ FusionFactory()

anatomist::FusionFactory::FusionFactory ( )

◆ ~FusionFactory()

virtual anatomist::FusionFactory::~FusionFactory ( )
virtual

Member Function Documentation

◆ allowedMethods()

virtual std::multimap<int, std::string> anatomist::FusionFactory::allowedMethods ( const std::set< AObject * > &  ) const
virtual

lists all possible fusions on the given objects, classed with a priority

◆ canFusion()

static bool anatomist::FusionFactory::canFusion ( const std::set< AObject * > &  )
static

is there at least one method which can actually make a fusion with these objects ?

◆ chooseMethod() [1/2]

virtual FusionMethod* anatomist::FusionFactory::chooseMethod ( const std::set< AObject * > &  )
virtual

Chooses one method which can fusion these objects.

The default factory only takes the first found (random!...)

Returns
0 if none can do so

◆ chooseMethod() [2/2]

virtual FusionMethod* anatomist::FusionFactory::chooseMethod ( std::vector< AObject * > &  ,
bool  allowreorder = false 
)
virtual

◆ factory()

static FusionFactory* anatomist::FusionFactory::factory ( )
inlinestatic

Definition at line 100 of file fusionFactory.h.

References _theFactory.

◆ method()

virtual FusionMethod* anatomist::FusionFactory::method ( const std::string &  name) const
virtual

Selects the method with ID name (if any)

◆ methods()

static std::set<std::string> anatomist::FusionFactory::methods ( )
static

◆ registerMethod()

static bool anatomist::FusionFactory::registerMethod ( FusionMethod method)
static

returns false if the method was already registered

Member Data Documentation

◆ _methods

std::set<FusionMethod *> anatomist::FusionFactory::_methods
staticprotected

Definition at line 110 of file fusionFactory.h.

◆ _theFactory

FusionFactory* anatomist::FusionFactory::_theFactory
staticprotected

Definition at line 109 of file fusionFactory.h.

Referenced by factory().


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