35 #ifndef ANA_FUSION_FUSIONFACTORY_H 36 #define ANA_FUSION_FUSIONFACTORY_H 65 virtual int canFusion(
const std::set<AObject *> & ) = 0;
67 virtual AObject*
fusion(
const std::vector<AObject *> & ) = 0;
69 virtual std::string
ID()
const = 0;
89 virtual FusionMethod* chooseMethod(
const std::set<AObject *> & );
90 virtual FusionMethod* chooseMethod( std::vector<AObject *> &,
91 bool allowreorder =
false );
94 virtual std::multimap<int, std::string>
95 allowedMethods(
const std::set<AObject *> & )
const;
97 virtual FusionMethod* method(
const std::string & name )
const;
105 static bool canFusion(
const std::set<AObject *> & );
106 static std::set<std::string> methods();
static FusionFactory * factory()
Base Anatomist object (abstract)
virtual AObject * fusion(const std::vector< AObject *> &)=0
creates the fusion
static std::set< FusionMethod * > _methods
static FusionFactory * _theFactory
virtual bool orderingMatters() const
virtual int canFusion(const std::set< AObject *> &)=0
returns 0 if fusion is not possible on the given objects, or a positive number if it is allowed...
virtual std::string ID() const =0
identifier for the method
virtual std::string generatedObjectType() const =0
Handles creation of various fusion objects.