22#ifndef MTROPOLIS_MODIFIER_FACTORY_H
23#define MTROPOLIS_MODIFIER_FACTORY_H
25#include "mtropolis/data.h"
26#include "mtropolis/runtime.h"
56template<
typename TModifier,
typename TModifierData>
63 PlugIn &getPlugIn()
const override;
69template<
typename TModifier,
typename TModifierData>
73template<
typename TModifier,
typename TModifierData>
74Common::SharedPtr<Modifier> PlugInModifierFactory<TModifier, TModifierData>::createModifier(ModifierLoaderContext &context,
const Data::PlugInModifier &plugInModifierData)
const {
77 PlugInModifierLoaderContext plugInContext(context, plugInModifierData, &_plugIn);
79 Modifier *downcastMod =
static_cast<Modifier *
>(modifier.get());
80 if (!downcastMod->loadPlugInHeader(plugInContext) || !modifier->load(plugInContext,
static_cast<const TModifierData &
>(*plugInModifierData.plugInData.get())))
83 if (downcastMod->getName().empty())
84 downcastMod->setName(downcastMod->getDefaultName());
85 downcastMod->setSelfReference(modifier);
91template<
typename TModifier,
typename TModifierData>
96template<
typename TModifier,
typename TModifierData>
97PlugIn& PlugInModifierFactory<TModifier, TModifierData>::getPlugIn()
const {
101SIModifierFactory *getModifierFactoryForDataObjectType(Data::DataObjectTypes::DataObjectType dataObjectType);
Definition: runtime.h:1185
Definition: modifier_factory.h:57
Definition: runtime.h:2355
Definition: modifier_factory.h:44
Definition: modifier_factory.h:40
Definition: modifier_factory.h:30
Definition: modifier_factory.h:48
Definition: modifier_factory.h:36