!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / ScriptGraphBase.h
blobd7c7bbded5ef6575f952f69fdab52ba543cbeddf
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include <CrySchematyc2/Script/IScriptGraph.h>
7 #include "Deprecated/DocGraphBase.h"
8 #include "Script/ScriptElementBase.h"
9 #include "Script/ScriptVariableDeclaration.h"
11 namespace Schematyc2
13 class CScriptGraphBase : public IScriptGraphExtension
15 public:
17 CScriptGraphBase(IScriptElement& element);
19 // IScriptExtension
20 virtual EScriptExtensionId GetId_New() const override;
21 virtual void Refresh_New(const SScriptRefreshParams& params) override;
22 virtual void Serialize_New(Serialization::IArchive& archive) override;
23 virtual void RemapGUIDs_New(IGUIDRemapper& guidRemapper) override;
24 // ~IScriptExtension
26 // IScriptGraph
27 virtual SGUID GetContextGUID() const override;
28 virtual IScriptElement& GetElement_New() override;
29 virtual const IScriptElement& GetElement_New() const override;
30 virtual void SetPos(Vec2 pos) override;
31 virtual Vec2 GetPos() const override;
32 virtual size_t GetInputCount() const override;
33 virtual const char* GetInputName(size_t inputIdx) const override;
34 virtual IAnyConstPtr GetInputValue(size_t inputIdx) const override;
35 virtual size_t GetOutputCount() const override;
36 virtual const char* GetOutputName(size_t outputIdx) const override;
37 virtual IAnyConstPtr GetOutputValue(size_t outputIdx) const override;
38 virtual void RefreshAvailableNodes(const CAggregateTypeId& inputTypeId) override;
39 virtual size_t GetAvailableNodeCount() override;
40 virtual const char* GetAvailableNodeName(size_t availableNodeIdx) const override;
41 virtual EScriptGraphNodeType GetAvailableNodeType(size_t availableNodeIdx) const override;
42 virtual SGUID GetAvailableNodeContextGUID(size_t availableNodeIdx) const override;
43 virtual SGUID GetAvailableNodeRefGUID(size_t availableNodeIdx) const override;
44 virtual IScriptGraphNode* AddNode(EScriptGraphNodeType type, const SGUID& contextGUID = SGUID(), const SGUID& refGUID = SGUID(), Vec2 pos = Vec2()) override;
45 virtual void RemoveNode(const SGUID& guid) override;
46 virtual IScriptGraphNode* GetNode(const SGUID& guid) override;
47 virtual const IScriptGraphNode* GetNode(const SGUID& guid) const override;
48 virtual void VisitNodes(const ScriptGraphNodeVisitor& visitor) override;
49 virtual void VisitNodes(const ScriptGraphNodeConstVisitor& visitor) const override;
50 virtual bool CanAddLink(const SGUID& srcNodeGUID, const char* szScOutputName, const SGUID& dstNodeGUID, const char* szDstInputName) const override;
51 virtual IScriptGraphLink* AddLink(const SGUID& srcNodeGUID, const char* szScOutputName, const SGUID& dstNodeGUID, const char* szDstInputName) override;
52 virtual void RemoveLink(size_t linkIdx) override;
53 virtual void RemoveLinks(const SGUID& nodeGUID) override;
54 virtual size_t GetLinkCount() const override;
55 virtual size_t FindLink(const SGUID& srcGUID, const char* szSrcOutputName, const SGUID& dstNodeGUID, const char* szDstInputName) const override;
56 virtual IScriptGraphLink* GetLink(size_t linkIdx) override;
57 virtual const IScriptGraphLink* GetLink(size_t linkIdx) const override;
58 virtual void VisitLinks(const ScriptGraphLinkVisitor& visitor) override;
59 virtual void VisitLinks(const ScriptGraphLinkConstVisitor& visitor) const override;
60 virtual void RemoveBrokenLinks() override;
61 virtual SScriptGraphSignals& Signals() override;
62 // ~IScriptGraph
64 // IScriptGraphExtension
65 virtual uint32 GetNodeCount() const override;
66 virtual bool AddNode_New(const IScriptGraphNodePtr& pNode) override;
67 virtual void PopulateNodeCreationMenu(IScriptGraphNodeCreationMenu& nodeCreationMenu) override;
68 virtual void VisitInputLinks(const ScriptGraphLinkVisitor& visitor, const SGUID& dstNodeGUID, const char* szDstInputName) override;
69 virtual void VisitInputLinks(const ScriptGraphLinkConstVisitor& visitor, const SGUID& dstNodeGUID, const char* szDstInputName) const override;
70 virtual void VisitOutputLinks(const ScriptGraphLinkVisitor& visitor, const SGUID& srcNodeGUID, const char* szSrcOutputName) override;
71 virtual void VisitOutputLinks(const ScriptGraphLinkConstVisitor& visitor, const SGUID& srcNodeGUID, const char* szSrcOutputName) const override;
72 virtual bool GetLinkSrc(const IScriptGraphLink& link, IScriptGraphNode*& pNode, uint32& outputIdx) override;
73 virtual bool GetLinkSrc(const IScriptGraphLink& link, const IScriptGraphNode*& pNode, uint32& outputIdx) const override;
74 virtual bool GetLinkDst(const IScriptGraphLink& link, IScriptGraphNode*& pNode, uint32& inputIdx) override;
75 virtual bool GetLinkDst(const IScriptGraphLink& link, const IScriptGraphNode*& pNode, uint32& inputIdx) const override;
76 // ~IScriptGraphExtension
78 private:
80 typedef std::map<SGUID, IScriptGraphNodePtr> Nodes;
81 typedef std::vector<CScriptGraphLinkPtr> Links;
83 IScriptElement& m_element;
84 Vec2 m_pos;
85 Nodes m_nodes;
86 Links m_links;
87 SScriptGraphSignals m_signals;