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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
/*!
@file
@author Albert Semenov
@date 08/2008
*/
#ifndef DEMO_KEEPER_H_
#define DEMO_KEEPER_H_
#include "Base/BaseDemoManager.h"
#include "GraphView.h"
#include "AnimationGraph.h"
#include "AnimationGraphFactory.h"
#include "AnimationNodeFactory.h"
#include "GraphNodeFactory.h"
#include "OpenSaveFileDialog.h"
#include "ContextMenu.h"
namespace demo
{
class DemoKeeper :
public base::BaseDemoManager
{
public:
DemoKeeper();
private:
void createScene() override;
void destroyScene() override;
void setupResources() override;
void notifyFrameStarted(float _time);
void createGrapView();
void notifyNodeClosed(wraps::BaseGraphView* _sender, wraps::BaseGraphNode* _node);
void notifyConnectPoint(wraps::BaseGraphView* _sender, wraps::BaseGraphConnection* _from, wraps::BaseGraphConnection* _to);
void notifyDisconnectPoint(wraps::BaseGraphView* _sender, wraps::BaseGraphConnection* _from, wraps::BaseGraphConnection* _to);
void notifyInvalidateNode(BaseAnimationNode* _sender);
void notifyMouseButtonReleased(MyGUI::Widget* _sender, int _left, int _top, MyGUI::MouseButton _id);
void notifyMenuCtrlAccept(wraps::ContextMenu* _sender, const std::string& _id);
void SaveGraph();
void LoadGraph();
void ClearGraph();
void notifyEndDialog(tools::Dialog* _dialog, bool _result);
void saveToFile(const std::string& _filename);
void loadFromFile(const std::string& _filename);
BaseAnimationNode* createNode(const std::string& _type, const std::string& _name);
BaseAnimationNode* getNodeByName(const std::string& _name);
void connectPoints(BaseAnimationNode* _node_from, BaseAnimationNode* _node_to, const std::string& _name_from, const std::string& _name_to);
void disconnectPoints(BaseAnimationNode* _node_from, BaseAnimationNode* _node_to, const std::string& _name_from, const std::string& _name_to);
private:
GraphView* mGraphView;
animation::AnimationGraphFactory mGraphFactory;
animation::AnimationNodeFactory mNodeFactory;
animation::AnimationGraph* mGraph;
GraphNodeFactory mGraphNodeFactory;
tools::OpenSaveFileDialog* mFileDialog;
bool mFileDialogSave;
wraps::ContextMenu* mContextMenu;
typedef std::vector<BaseAnimationNode*> VectorBaseAnimationNode;
VectorBaseAnimationNode mNodes;
MyGUI::IntPoint mClickPosition;
};
} // namespace demo
#endif // DEMO_KEEPER_H_
|