!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / CryEngine / CrySchematyc2 / Script / ScriptEnumerationValue.h
blob4c82a897cc23f80f9447027915e2fb638b3b2301
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 enumeration value.
14 // #SchematycTODO : Does we really need to derive from IAny or should we create a CScriptAny utility class?
15 ////////////////////////////////////////////////////////////////////////////////////////////////////
16 class CScriptEnumerationValue : public IAny
18 public:
20 CScriptEnumerationValue(const IScriptEnumeration* pEnumeration);
21 CScriptEnumerationValue(const CScriptEnumerationValue& 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 private:
40 const IScriptEnumeration* m_pEnumeration; // #SchematycTODO : Wouldn't it be safer to reference by GUID?
41 size_t m_value; // #SchematycTODO : Would it be safer to store a string?