!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorSchematyc2 / Bridge / Public / Bridge_IDomainContext.h
blob63ac454f1a751c0c4769d0ffc18bc9a5c53847e4
1 // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
3 // #SchematycTODO : Do we need to replace stack_string with CharArrayView?
5 #pragma once
7 #include "CrySchematyc2/IDomainContext.h"
9 namespace Bridge {
11 struct IScriptFile;
13 struct SDomainContextScope
15 inline SDomainContextScope(const IScriptFile* _pScriptFile = nullptr, const Schematyc2::SGUID& _guid = Schematyc2::SGUID())
16 : pScriptFile(_pScriptFile)
17 , guid(_guid)
20 const IScriptFile* pScriptFile;
21 Schematyc2::SGUID guid;
24 struct IDomainContext
26 virtual ~IDomainContext() {}
28 virtual const SDomainContextScope& GetScope() const = 0;
29 virtual Schematyc2::IFoundationConstPtr GetEnvFoundation() const = 0;
30 virtual const Schematyc2::IScriptClass* GetScriptClass() const = 0;
32 // #SchematycTODO : Do we need concept of all or usable for env elements?
34 virtual void VisitEnvFunctions(const Schematyc2::EnvFunctionVisitor& visitor) const = 0;
35 virtual void VisitEnvGlobalFunctions(const Schematyc2::EnvGlobalFunctionVisitor& visitor) const = 0;
36 virtual void VisitEnvAbstractInterfaces(const Schematyc2::EnvAbstractInterfaceVisitor& visitor) const = 0;
37 virtual void VisitEnvComponentFactories(const Schematyc2::EnvComponentFactoryVisitor& visitor) const = 0;
38 virtual void VisitEnvComponentMemberFunctions(const Schematyc2::EnvComponentMemberFunctionVisitor& visitor) const = 0;
39 virtual void VisitEnvActionMemberFunctions(const Schematyc2::EnvActionMemberFunctionVisitor& visitor) const = 0;
41 virtual void VisitScriptEnumerations(const Schematyc2::ScriptEnumerationConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
42 virtual void VisitScriptStates(const Schematyc2::ScriptStateConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
43 virtual void VisitScriptStateMachines(const Schematyc2::ScriptStateMachineConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
44 virtual void VisitScriptVariables(const Schematyc2::ScriptVariableConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
45 virtual void VisitScriptProperties(const Schematyc2::ScriptPropertyConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
46 virtual void VisitScriptComponentInstances(const Schematyc2::ScriptComponentInstanceConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
47 virtual void VisitScriptActionInstances(const Schematyc2::ScriptActionInstanceConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
48 virtual void VisitDocGraphs(const Schematyc2::DocGraphConstVisitor& visitor, Schematyc2::EDomainScope scope) const = 0;
50 virtual const Schematyc2::IScriptStateMachine* GetScriptStateMachine(const Schematyc2::SGUID& guid) const = 0;
51 virtual const Schematyc2::IScriptComponentInstance* GetScriptComponentInstance(const Schematyc2::SGUID& guid) const = 0;
52 virtual const Schematyc2::IScriptActionInstance* GetScriptActionInstance(const Schematyc2::SGUID& guid) const = 0;
53 virtual const Schematyc2::IDocGraph* GetDocGraph(const Schematyc2::SGUID& guid) const = 0;
55 virtual bool QualifyName(const Schematyc2::IGlobalFunction& envGlobalFunction, stack_string& output) const = 0;
56 virtual bool QualifyName(const Schematyc2::IScriptComponentInstance& scriptComponentInstance, const Schematyc2::IEnvFunctionDescriptor& envFunctionDescriptor, Schematyc2::EDomainQualifier qualifier, stack_string& output) const = 0;
57 virtual bool QualifyName(const Schematyc2::IAbstractInterface& envAbstractInterface, stack_string& output) const = 0;
58 virtual bool QualifyName(const Schematyc2::IAbstractInterfaceFunction& envAbstractInterfaceFunction, stack_string& output) const = 0;
59 virtual bool QualifyName(const Schematyc2::IComponentFactory& envComponentFactory, stack_string& output) const = 0;
60 virtual bool QualifyName(const Schematyc2::IScriptComponentInstance& scriptComponentInstance, const Schematyc2::IComponentMemberFunction& envComponentMemberFunction, Schematyc2::EDomainQualifier qualifier, stack_string& output) const = 0;
61 virtual bool QualifyName(const Schematyc2::IScriptActionInstance& scriptActionInstance, const Schematyc2::IActionMemberFunction& envActionMemberFunction, Schematyc2::EDomainQualifier qualifier, stack_string& output) const = 0;
62 virtual bool QualifyName(const Schematyc2::IScriptElement& scriptElement, Schematyc2::EDomainQualifier qualifier, stack_string& output) const = 0;
65 DECLARE_SHARED_POINTERS(IDomainContext)