1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
5 #include <CrySchematyc2/Script/IScriptGraph.h>
9 class CScriptGraphNodeBase
: public IScriptGraphNode
15 SPort(EScriptGraphPortFlags _flags
, const char* _szName
, const CAggregateTypeId
& _typeId
);
17 EScriptGraphPortFlags flags
;
19 CAggregateTypeId typeId
;
22 typedef std::vector
<SPort
> PortVector
;
26 CScriptGraphNodeBase(); // #SchematycTODO : Do we really need a default constructor?
27 CScriptGraphNodeBase(const SGUID
& guid
);
28 CScriptGraphNodeBase(const SGUID
& guid
, const Vec2
& pos
);
31 virtual void Attach(IScriptGraphExtension
& graph
) override
;
32 virtual void SetGUID(const SGUID
& guid
) override
;
33 virtual SGUID
GetGUID() const override
;
34 virtual void SetName(const char* szName
) override
;
35 virtual const char* GetName() const override
;
36 virtual EScriptGraphNodeType
GetType() const override
;
37 virtual SGUID
GetContextGUID() const override
;
38 virtual SGUID
GetRefGUID() const override
;
39 virtual void SetPos(Vec2 pos
) override
;
40 virtual Vec2
GetPos() const override
;
41 virtual size_t GetInputCount() const override
;
42 virtual uint32
FindInput(const char* szName
) const override
;
43 virtual const char* GetInputName(size_t inputIdx
) const override
;
44 virtual EScriptGraphPortFlags
GetInputFlags(size_t inputIdx
) const override
;
45 virtual CAggregateTypeId
GetInputTypeId(size_t inputIdx
) const override
;
46 virtual size_t GetOutputCount() const override
;
47 virtual uint32
FindOutput(const char* szName
) const override
;
48 virtual const char* GetOutputName(size_t outputIdx
) const override
;
49 virtual EScriptGraphPortFlags
GetOutputFlags(size_t outputIdx
) const override
;
50 virtual CAggregateTypeId
GetOutputTypeId(size_t outputIdx
) const override
;
51 virtual IAnyConstPtr
GetCustomOutputDefault() const override
;
52 virtual size_t AddCustomOutput(const IAny
& value
) override
;
53 virtual void EnumerateOptionalOutputs(const ScriptGraphNodeOptionalOutputEnumerator
& enumerator
) override
;
54 virtual size_t AddOptionalOutput(const char* szName
, EScriptGraphPortFlags flags
, const CAggregateTypeId
& typeId
) override
;
55 virtual void RemoveOutput(size_t outputIdx
) override
;
56 virtual void Refresh(const SScriptRefreshParams
& params
) override
;
57 virtual void Serialize(Serialization::IArchive
& archive
) override
;
58 virtual void RemapGUIDs(IGUIDRemapper
& guidRemapper
) override
;
59 virtual void PreCompileSequence(IDocGraphSequencePreCompiler
& preCompiler
, size_t outputIdx
) const override
;
60 virtual void LinkSequence(IDocGraphSequenceLinker
& linker
, size_t outputIdx
, const LibFunctionId
& functionId
) const override
;
61 virtual void Compile(IDocGraphNodeCompiler
& compiler
, EDocGraphSequenceStep sequenceStep
, size_t portIdx
) const override
;
66 IScriptGraphExtension
* GetGraph(); // #SchematycTODO : Move this function to the IScriptGraphNode interface? Should we return a reference?
67 const IScriptGraphExtension
* GetGraph() const; // #SchematycTODO : Move this function to the IScriptGraphNode interface? Should we return a reference?
68 const char* GetDebugLabel() const; // #SchematycTODO : Move this function to the IScriptGraphNode interface?
69 size_t AddInput(EScriptGraphPortFlags flags
, const char* szName
, const CAggregateTypeId
& typeId
= CAggregateTypeId());
70 void SetInputTypeId(size_t inputIdx
, const CAggregateTypeId
& typeId
); // #SchematycTODO : Remove!!!
71 void RemoveInput(size_t inputIdx
);
72 size_t AddOutput(EScriptGraphPortFlags flags
, const char* szName
, const CAggregateTypeId
& typeId
= CAggregateTypeId());
73 void SetOutputTypeId(size_t outputIdx
, const CAggregateTypeId
& typeId
); // #SchematycTODO : Remove!!!
77 void SerializeBasicInfo(Serialization::IArchive
& archive
);
78 void SerializeDebugLabel(Serialization::IArchive
& archive
);
79 void Edit(Serialization::IArchive
& archive
);
83 IScriptGraphExtension
* m_pGraph
;