1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
#include "AnimationNodeFactory.h"
#include "FadeController.h"
#include "LoopController.h"
#include "Group2Controller.h"
#include "EventController.h"
#include "WeightController.h"
#include "PositionController.h"
#include "SkeletonState.h"
//#include "SoundState.h"
namespace animation
{
AnimationNodeFactory::AnimationNodeFactory()
{
addConstruct("FadeController", new AnimationNodeConstruct<FadeController>());
addConstruct("LoopController", new AnimationNodeConstruct<LoopController>());
addConstruct("Group2Controller", new AnimationNodeConstruct<Group2Controller>());
addConstruct("EventController", new AnimationNodeConstruct<EventController>());
addConstruct("WeightController", new AnimationNodeConstruct<WeightController>());
addConstruct("PositionController", new AnimationNodeConstruct<PositionController>());
addConstruct("SkeletonState", new AnimationNodeConstruct<SkeletonState>());
//addConstruct("SoundState", new AnimationNodeConstruct<SoundState>());
}
AnimationNodeFactory::~AnimationNodeFactory()
{
for (auto& mConstruct : mConstructs)
delete mConstruct.second;
mConstructs.clear();
}
IAnimationNode* AnimationNodeFactory::createNode(
std::string_view _type,
std::string_view _name,
IAnimationGraph* _holder)
{
MapConstruct::iterator item = mConstructs.find(_type);
if (item == mConstructs.end())
return nullptr;
return (*item).second->create(_name, _holder);
}
void AnimationNodeFactory::addConstruct(std::string_view _type, IAnimationNodeConstruct* _construct)
{
MyGUI::mapSet(mConstructs, _type, _construct);
}
} // namespace animation
|