/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EditorPlugins/Assets/EditorPluginAssets/AnimationGraphAsset/AnimationGraphAsset.h
81 строка
4 KB
C-Core
Array usage cleanup (#1864)
11 мар 2026, 23:44
Не верифицирован
11 мар 2026, 23:44
f7cb730
Код
Авторство
О чём код?
#pragma once #include <Core/ResourceManager/ResourceHandle.h> #include <EditorFramework/Assets/AssetDocument.h> #include <EditorFramework/Assets/SimpleAssetDocument.h> #include <RendererCore/AnimationSystem/AnimGraph/AnimGraphPins.h> #include <RendererCore/AnimationSystem/AnimGraph/AnimGraphResource.h> #include <ToolsFoundation/VisualGraph/VisualGraphObjectManager.h> using ezAnimationClipResourceHandle = ezTypedResourceHandle<class ezAnimationClipResource>; class ezAnimGraphInstance; class ezAnimGraphNode; /// Visual graph pin for animation graph nodes. /// /// Stores animation-specific pin metadata such as the animation data type and whether it supports multiple inputs. class ezAnimationGraphNodePin : public ezVisualGraphPin { EZ_ADD_DYNAMIC_REFLECTION(ezAnimationGraphNodePin, ezVisualGraphPin); public: ezAnimationGraphNodePin(Type type, const char* szName, const ezColorGammaUB& color, const ezDocumentObject* pObject); ~ezAnimationGraphNodePin(); bool m_bMultiInputPin = false; ezAnimGraphPin::Type m_DataType = ezAnimGraphPin::Invalid; }; /// Object manager for animation graphs. /// /// Manages animation graph nodes and their connections. Handles dynamic pin creation for nodes /// that support variable numbers of inputs, and validates connections based on animation data types. class ezAnimationGraphNodeManager : public ezVisualGraphObjectManager { public: virtual bool InternalIsNode(const ezDocumentObject* pObject) const override; virtual void InternalCreatePins(const ezDocumentObject* pObject, NodeInternal& ref_node) override; virtual void GetCreateableTypes(ezDynamicArray<const ezRTTI*>& out_types) const override; virtual ezStatus InternalCanConnect(const ezVisualGraphPin& source, const ezVisualGraphPin& target, CanConnectResult& out_result) const override; private: virtual bool InternalIsDynamicPinProperty(const ezDocumentObject* pObject, const ezAbstractProperty* pProp) const override; }; class ezAnimationGraphAssetProperties : public ezReflectedClass { EZ_ADD_DYNAMIC_REFLECTION(ezAnimationGraphAssetProperties, ezReflectedClass); public: ezDynamicArray<ezString> m_IncludeGraphs; ezDynamicArray<ezAnimationClipMapping> m_AnimationClipMapping; }; class ezAnimationGraphAssetDocument : public ezSimpleAssetDocument<ezAnimationGraphAssetProperties> { EZ_ADD_DYNAMIC_REFLECTION(ezAnimationGraphAssetDocument, ezSimpleAssetDocument<ezAnimationGraphAssetProperties>); public: ezAnimationGraphAssetDocument(ezStringView sDocumentPath); protected: struct PinCount { ezUInt16 m_uiInputCount = 0; ezUInt16 m_uiInputIdx = 0; ezUInt16 m_uiOutputCount = 0; ezUInt16 m_uiOutputIdx = 0; }; virtual ezTransformStatus InternalTransformAsset(ezStreamWriter& stream, ezStringView sOutputTag, const ezPlatformProfile* pAssetProfile, const ezAssetFileHeader& AssetHeader, ezBitflags<ezTransformFlags> transformFlags) override; virtual void GetSupportedMimeTypesForPasting(ezDynamicArray<ezString>& out_mimeTypes) const override; virtual bool CopySelectedObjects(ezAbstractObjectGraph& out_objectGraph, ezStringBuilder& out_MimeType) const override; virtual bool Paste(const ezArrayPtr<PasteInfo>& info, const ezAbstractObjectGraph& objectGraph, bool bAllowPickedPosition, ezStringView sMimeType) override; virtual void InternalGetMetaDataHash(const ezDocumentObject* pObject, ezUInt64& inout_uiHash) const override; virtual void AttachMetaDataBeforeSaving(ezAbstractObjectGraph& graph) const override; virtual void RestoreMetaDataAfterLoading(const ezAbstractObjectGraph& graph, bool bUndoable) override; };