!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / ScriptStructureValue.h
blobbd01ffbc66e9d393e4bc42882e75838911307152
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 //#include <CrySchematyc2/AggregateTypeId.h>
6 //#include <CrySchematyc2/IEnvRegistry.h>
7 //#include <CrySchematyc2/IEnvTypeDesc.h>
8 //#include <CrySchematyc2/Deprecated/DocUtils.h>
9 #include <CrySchematyc2/Script/IScriptFile.h>
11 namespace Schematyc2
13 // Script structure value.
14 // #SchematycTODO : Does we really need to derive from IAny or should we create a CScriptAny utility class?
15 ////////////////////////////////////////////////////////////////////////////////////////////////////
16 class CScriptStructureValue : public IAny
18 public:
20 CScriptStructureValue(const IScriptStructure* pStructure);
21 CScriptStructureValue(const CScriptStructureValue& rhs);
23 // IAny
24 virtual CTypeInfo GetTypeInfo() const override;
25 virtual uint32 GetSize() const override;
26 virtual bool Copy(const IAny& rhs) override;
27 virtual IAny* Clone(void* pPlacement) const override;
28 virtual IAnyPtr Clone() const override;
29 virtual bool ToString(const CharArrayView& str) const override;
30 virtual GameSerialization::IContextPtr BindSerializationContext(Serialization::IArchive& archive) const override;
31 virtual bool Serialize(Serialization::IArchive& archive, const char* szName, const char* szLabel) override;
32 virtual IAnyExtension* QueryExtension(EAnyExtension extension) override;
33 virtual const IAnyExtension* QueryExtension(EAnyExtension extension) const override;
34 virtual void* ToVoidPtr() override;
35 virtual const void* ToVoidPtr() const override;
36 // ~IAny
38 void Serialize(Serialization::IArchive& archive);
40 private:
42 typedef std::map<string, IAnyPtr> FieldMap; // #SchematycTODO : Replace map with vector to preserve order!
44 void Refresh();
46 const IScriptStructure* m_pStructure; // #SchematycTODO : Wouldn't it be safer to reference by GUID?
47 FieldMap m_fields;