ezEngine  Release 25.03
ezSkeletonAssetDocument Class Reference
Inheritance diagram for ezSkeletonAssetDocument:

Public Member Functions

 ezSkeletonAssetDocument (ezStringView sDocumentPath)
 
ezStatus WriteResource (ezStreamWriter &inout_stream, const ezEditableSkeleton &skeleton) const
 
virtual ezManipulatorSearchStrategy GetManipulatorSearchStrategy () const override
 Needed by ezManipulatorManager to know where to look for the manipulator attributes. More...
 
const ezEvent< const ezSkeletonAssetEvent & > & Events () const
 
void SetRenderBones (bool bEnable)
 
bool GetRenderBones () const
 
void SetRenderColliders (bool bEnable)
 
bool GetRenderColliders () const
 
void SetRenderJoints (bool bEnable)
 
bool GetRenderJoints () const
 
void SetRenderSwingLimits (bool bEnable)
 
bool GetRenderSwingLimits () const
 
void SetRenderTwistLimits (bool bEnable)
 
bool GetRenderTwistLimits () const
 
void SetRenderPreviewMesh (bool bEnable)
 
bool GetRenderPreviewMesh () const
 
- Public Member Functions inherited from ezSimpleAssetDocument< ezEditableSkeleton >
 ezSimpleAssetDocument (ezStringView sDocumentPath, ezAssetDocEngineConnection engineConnectionType, bool bEnableDefaultLighting=false)
 
 ezSimpleAssetDocument (ezDocumentObjectManager *pObjectManager, ezStringView sDocumentPath, ezAssetDocEngineConnection engineConnectionType, bool bEnableDefaultLighting=false)
 
const ezEditableSkeletonGetProperties () const
 
ezEditableSkeletonGetProperties ()
 
ezDocumentObjectGetPropertyObject ()
 
const ezDocumentObjectGetPropertyObject () const
 
- Public Member Functions inherited from ezAssetDocument
 ezAssetDocument (ezStringView sDocumentPath, ezDocumentObjectManager *pObjectManager, ezAssetDocEngineConnection engineConnectionType)
 
ezAssetDocumentManagerGetAssetDocumentManager () const
 
const ezAssetDocumentInfoGetAssetDocumentInfo () const
 
ezBitflags< ezAssetDocumentFlagsGetAssetFlags () const
 
const ezAssetDocumentTypeDescriptorGetAssetDocumentTypeDescriptor () const
 
ezTransformStatus TransformAsset (ezBitflags< ezTransformFlags > transformFlags, const ezPlatformProfile *pAssetProfile=nullptr)
 Transforms an asset. Typically not called manually but by the curator which takes care of dependencies first. More...
 
ezTransformStatus CreateThumbnail ()
 Updates the thumbnail of the asset. Should never be called manually. Called only by the curator which takes care of dependencies first.
 
ezUInt16 GetAssetTypeVersion () const
 Returns the RTTI type version of this asset document type. E.g. when the algorithm to transform an asset changes, Increase the RTTI version. This will ensure that assets get re-transformed, even though their settings and dependencies might not have changed.
 
EngineStatus GetEngineStatus () const
 Returns the current state of the engine process side of this document.
 
virtual ezVariant GetCreateEngineMetaData () const
 Passed into ezEngineProcessDocumentContext::Initialize on the engine process side. Allows the document to provide additional data to the engine process during context creation.
 
bool SendMessageToEngine (ezEditorEngineDocumentMsg *pMessage) const
 Sends a message to the corresponding ezEngineProcessDocumentContext on the engine process.
 
virtual void HandleEngineMessage (const ezEditorEngineDocumentMsg *pMsg)
 Handles all messages received from the corresponding ezEngineProcessDocumentContext on the engine process.
 
ezEditorEngineConnectionGetEditorEngineConnection () const
 Returns the ezEditorEngineConnection for this document.
 
void AddSyncObject (ezEditorEngineSyncObject *pSync) const
 Registers a sync object for this document. It will be mirrored to the ezEngineProcessDocumentContext on the engine process.
 
void RemoveSyncObject (ezEditorEngineSyncObject *pSync) const
 Removes a previously registered sync object. It will be removed on the engine process side.
 
ezEditorEngineSyncObjectFindSyncObject (const ezUuid &guid) const
 Returns the sync object registered under the given guid.
 
ezEditorEngineSyncObjectFindSyncObject (const ezRTTI *pType) const
 Returns the first sync object registered with the given type.
 
void SyncObjectsToEngine () const
 Sends messages to sync all sync objects to the engine process side.
 
void SendDocumentOpenMessage (bool bOpen)
 
virtual void SetCommonAssetUiState (ezCommonAssetUiState::Enum state, double value)
 Override this to handle a change to a common asset state differently. More...
 
virtual double GetCommonAssetUiState (ezCommonAssetUiState::Enum state) const
 Override this to return custom values for a common asset state.
 
- Public Member Functions inherited from ezDocument
 ezDocument (ezStringView sPath, ezDocumentObjectManager *pDocumentObjectManagerImpl)
 
bool IsModified () const
 
bool IsReadOnly () const
 
const ezUuid GetGuid () const
 
const ezDocumentObjectManagerGetObjectManager () const
 
ezDocumentObjectManagerGetObjectManager ()
 
ezSelectionManagerGetSelectionManager () const
 
ezCommandHistoryGetCommandHistory () const
 
virtual ezObjectAccessorBaseGetObjectAccessor () const
 
virtual void GetSupportedMimeTypesForPasting (ezHybridArray< ezString, 4 > &out_mimeTypes) const
 Whether this document supports pasting the given mime format into it.
 
virtual bool CopySelectedObjects (ezAbstractObjectGraph &out_objectGraph, ezStringBuilder &out_sMimeType) const
 Creates the abstract graph of data to be copied and returns the mime type for the clipboard to identify the data.
 
virtual bool Paste (const ezArrayPtr< PasteInfo > &info, const ezAbstractObjectGraph &objectGraph, bool bAllowPickedPosition, ezStringView sMimeType)
 
void BroadcastInterDocumentMessage (ezReflectedClass *pMessage, ezDocument *pSender)
 This will deliver the message to all open documents. The documents may respond, e.g. by modifying the content of the message.
 
virtual void OnInterDocumentMessage (ezReflectedClass *pMessage, ezDocument *pSender)
 Called on all documents when BroadcastInterDocumentMessage() is called. More...
 
virtual ezEditorInputContextGetEditorInputContextOverride ()
 Allows to return a single input context that currently overrides all others (in priority). More...
 
virtual void DeleteSelectedObjects () const
 
const ezSet< ezString > & GetUnknownObjectTypes () const
 
ezUInt32 GetUnknownObjectTypeInstances () const
 
void SetAddToResetFilesList (bool b)
 If disabled, this document will not be put into the recent files list.
 
bool GetAddToRecentFilesList () const
 Whether this document shall be put into the recent files list.
 
void ShowDocumentStatus (const ezFormatString &msg) const
 Broadcasts a status message event. The window that displays the document may show this in some form, e.g. in the status bar.
 
virtual ezResult ComputeObjectTransformation (const ezDocumentObject *pObject, ezTransform &out_result) const
 Tries to compute the position and rotation for an object in the document. Returns EZ_SUCCESS if it was possible.
 
bool IsMainDocument () const
 Returns whether this document is a main document, i.e. self contained.
 
bool IsSubDocument () const
 Returns whether this document is a sub-document, i.e. is part of another document.
 
const ezDocumentGetMainDocument () const
 In case this is a sub-document, returns the main document this belongs to. Otherwise 'this' is returned.
 
const ezDocumentGetActiveSubDocument () const
 At any given time, only the active sub-document can be edited. This returns the active sub-document which can also be this document itself. Changes to the active sub-document are generally triggered by ezDocumentObjectStructureEvent::Type::AfterReset.
 
ezDocumentGetMainDocument ()
 
ezDocumentGetActiveSubDocument ()
 
ezStringView GetDocumentPath () const
 Returns the absolute path to the document.
 
ezStatus SaveDocument (bool bForce=false)
 Saves the document, if it is modified. If bForce is true, the document will be written, even if it is not considered modified.
 
ezTaskGroupID SaveDocumentAsync (AfterSaveCallback callback, bool bForce=false)
 
void DocumentRenamed (ezStringView sNewDocumentPath)
 
ezStatus LoadDocument ()
 
void EnsureVisible ()
 Brings the corresponding window to the front.
 
ezDocumentManagerGetDocumentManager () const
 
bool HasWindowBeenRequested () const
 
const ezDocumentTypeDescriptorGetDocumentTypeDescriptor () const
 
ezStringView GetDocumentTypeName () const
 Returns the document's type name. Same as GetDocumentTypeDescriptor()->m_sDocumentTypeName.
 
const ezDocumentInfoGetDocumentInfo () const
 
virtual bool CanEngineProcessBeRestarted () const
 Asks the document whether a restart of the engine process is allowed at this time. More...
 
virtual bool ArePrefabsAllowed () const
 Whether the document allows to create prefabs in it. This may note be allowed for prefab documents themselves, to prevent nested prefabs.
 
virtual void UpdatePrefabs ()
 Updates ALL prefabs in the document with the latest changes. Merges the current prefab templates with the instances in the document.
 
void RevertPrefabs (ezArrayPtr< const ezDocumentObject * > selection)
 Resets the given objects to their template prefab state, if they have local modifications.
 
virtual void UnlinkPrefabs (ezArrayPtr< const ezDocumentObject * > selection)
 Removes the link between a prefab instance and its template, turning the instance into a regular object.
 
virtual ezStatus CreatePrefabDocumentFromSelection (ezStringView sFile, const ezRTTI *pRootType, ezDelegate< void(ezAbstractObjectNode *)> adjustGraphNodeCB={}, ezDelegate< void(ezDocumentObject *)> adjustNewNodesCB={}, ezDelegate< void(ezAbstractObjectGraph &graph, ezDynamicArray< ezAbstractObjectNode * > &graphRootNodes)> finalizeGraphCB={})
 
virtual ezStatus CreatePrefabDocument (ezStringView sFile, ezArrayPtr< const ezDocumentObject * > rootObjects, const ezUuid &invPrefabSeed, ezUuid &out_newDocumentGuid, ezDelegate< void(ezAbstractObjectNode *)> adjustGraphNodeCB={}, bool bKeepOpen=false, ezDelegate< void(ezAbstractObjectGraph &graph, ezDynamicArray< ezAbstractObjectNode * > &graphRootNodes)> finalizeGraphCB={})
 
virtual ezUuid ReplaceByPrefab (const ezDocumentObject *pRootObject, ezStringView sPrefabFile, const ezUuid &prefabAsset, const ezUuid &prefabSeed, bool bEnginePrefab)
 
virtual ezUuid RevertPrefab (const ezDocumentObject *pObject)
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Static Public Member Functions

static void PropertyMetaStateEventHandler (ezPropertyMetaStateEvent &e)
 
- Static Public Member Functions inherited from ezDocument
static ezStatus ReadDocument (ezStringView sDocumentPath, ezUniquePtr< ezAbstractObjectGraph > &ref_pHeader, ezUniquePtr< ezAbstractObjectGraph > &ref_pObjects, ezUniquePtr< ezAbstractObjectGraph > &ref_pTypes)
 
static ezStatus ReadAndRegisterTypes (const ezAbstractObjectGraph &types)
 
- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Public Attributes

bool m_bIsTransforming = false
 
- Public Attributes inherited from ezAssetDocument
ezEvent< const ezEditorEngineDocumentMsg * > m_ProcessMessageEvent
 
ezEvent< const ezCommonAssetUiState & > m_CommonAssetUiChangeEvent
 Used to broadcast state change events for common asset states.
 
- Public Attributes inherited from ezDocument
ezUniquePtr< ezObjectMetaData< ezUuid, ezDocumentObjectMetaData > > m_DocumentObjectMetaData
 
ezEvent< const ezDocumentEvent & > m_EventsOne
 
ezEvent< const ezObjectAccessorChangeEvent & > m_ObjectAccessorChangeEvents
 

Protected Member Functions

virtual void UpdateAssetDocumentInfo (ezAssetDocumentInfo *pInfo) const override
 Override this to add custom data (e.g. additional file dependencies) to the info struct. More...
 
virtual ezTransformStatus InternalTransformAsset (ezStreamWriter &stream, ezStringView sOutputTag, const ezPlatformProfile *pAssetProfile, const ezAssetFileHeader &AssetHeader, ezBitflags< ezTransformFlags > transformFlags) override
 Override this and write the transformed file for the given szOutputTag into the given stream. More...
 
virtual ezTransformStatus InternalCreateThumbnail (const ThumbnailInfo &ThumbnailInfo) override
 Override this function to generate a thumbnail. Only called if GetAssetFlags returns ezAssetDocumentFlags::SupportsThumbnail.
 
const ezEditableSkeletonMergeWithNewSkeleton (ezEditableSkeleton &newSkeleton)
 
- Protected Member Functions inherited from ezSimpleAssetDocument< ezEditableSkeleton >
virtual void InitializeAfterLoading (bool bFirstTimeCreation) override
 
virtual ezStatus InternalLoadDocument () override
 
void ApplyNativePropertyChangesToObjectManager (bool bForceIndexBasedRemapping=false)
 
virtual ezDocumentInfoCreateDocumentInfo () override
 
- Protected Member Functions inherited from ezAssetDocument
void EngineConnectionEventHandler (const ezEditorEngineProcessConnection::Event &e)
 
void AddPrefabDependencies (const ezDocumentObject *pObject, ezAssetDocumentInfo *pInfo) const
 Adds all prefab dependencies to the ezAssetDocumentInfo object. Called automatically by UpdateAssetDocumentInfo()
 
void AddReferences (const ezDocumentObject *pObject, ezAssetDocumentInfo *pInfo, bool bInsidePrefab) const
 Crawls through all asset properties of pObject and adds all string properties that have a ezAssetBrowserAttribute as a dependency to pInfo. Automatically called by UpdateAssetDocumentInfo()
 
ezTransformStatus DoTransformAsset (const ezPlatformProfile *pAssetProfile, ezBitflags< ezTransformFlags > transformFlags)
 
ezUInt64 GetDocumentHash () const
 Computes the hash from all document objects.
 
void GetChildHash (const ezDocumentObject *pObject, ezUInt64 &inout_uiHash) const
 Computes the hash for one document object and combines it with the given hash.
 
virtual void InternalGetMetaDataHash (const ezDocumentObject *pObject, ezUInt64 &inout_uiHash) const
 Computes the hash for transform relevant meta data of the given document object and combines it with the given hash.
 
virtual ezTaskGroupID InternalSaveDocument (AfterSaveCallback callback) override
 Overrides the base function to call UpdateAssetDocumentInfo() to update the settings hash.
 
virtual void InternalAfterSaveDocument () override
 Implements auto transform on save. More...
 
virtual void InitializeAfterLoadingAndSaving () override
 
ezString GetThumbnailFilePath (ezStringView sSubAssetName=ezStringView()) const
 Returns the full path to the jpg file in which the thumbnail for this asset is supposed to be.
 
void InvalidateAssetThumbnail (ezStringView sSubAssetName=ezStringView()) const
 Should be called after manually changing the thumbnail, such that the system will reload it.
 
ezStatus RemoteCreateThumbnail (const ThumbnailInfo &thumbnailInfo, ezArrayPtr< ezStringView > viewExclusionTags) const
 Requests the engine side to render a thumbnail, will call SaveThumbnail on success.
 
ezStatus RemoteCreateThumbnail (const ThumbnailInfo &thumbnailInfo) const
 
ezStatus SaveThumbnail (const ezImage &img, const ThumbnailInfo &thumbnailInfo) const
 Saves the given image as the new thumbnail for the asset. More...
 
ezStatus SaveThumbnail (const QImage &img, const ThumbnailInfo &thumbnailInfo) const
 Saves the given image as the new thumbnail for the asset.
 
void AppendThumbnailInfo (ezStringView sThumbnailFile, const ThumbnailInfo &thumbnailInfo) const
 Appends an asset header containing the thumbnail hash to the file. Each thumbnail is appended by it to check up-to-date state.
 
virtual ezTransformStatus InternalTransformAsset (const char *szTargetFile, ezStringView sOutputTag, const ezPlatformProfile *pAssetProfile, const ezAssetFileHeader &AssetHeader, ezBitflags< ezTransformFlags > transformFlags)
 Only override this function, if the transformed file for the given szOutputTag must be written from another process. More...
 
ezStatus RemoteExport (const ezAssetFileHeader &header, const char *szOutputTarget) const
 
- Protected Member Functions inherited from ezDocument
void SetModified (bool b)
 
void SetReadOnly (bool b)
 
virtual void AttachMetaDataBeforeSaving (ezAbstractObjectGraph &graph) const
 
virtual void RestoreMetaDataAfterLoading (const ezAbstractObjectGraph &graph, bool bUndoable)
 
virtual void BeforeClosing ()
 
void SetUnknownObjectTypes (const ezSet< ezString > &Types, ezUInt32 uiInstances)
 
virtual void UpdatePrefabsRecursive (ezDocumentObject *pObject)
 
virtual void UpdatePrefabObject (ezDocumentObject *pObject, const ezUuid &PrefabAsset, const ezUuid &PrefabSeed, ezStringView sBasePrefab)
 

Protected Attributes

ezEvent< const ezSkeletonAssetEvent & > m_Events
 
bool m_bRenderBones = true
 
bool m_bRenderColliders = true
 
bool m_bRenderJoints = false
 
bool m_bRenderSwingLimits = true
 
bool m_bRenderTwistLimits = true
 
bool m_bRenderPreviewMesh = true
 
- Protected Attributes inherited from ezSimpleAssetDocument< ezEditableSkeleton >
ezDocumentObjectMirror m_ObjectMirror
 
ezRttiConverterContext m_Context
 
ezEngineViewLightSettings m_LightSettings
 
- Protected Attributes inherited from ezAssetDocument
ezUniquePtr< ezIPCObjectMirrorEditorm_pMirror
 
EngineStatus m_EngineStatus
 
ezAssetDocEngineConnection m_EngineConnectionType = ezAssetDocEngineConnection::None
 
ezEditorEngineConnectionm_pEngineConnection
 
ezHashTable< ezUuid, ezEditorEngineSyncObject * > m_AllSyncObjects
 
ezDeque< ezEditorEngineSyncObject * > m_SyncObjects
 
ezHybridArray< ezUuid, 32 > m_DeletedObjects
 
ezUInt32 m_uiCommonAssetStateFlags = 0
 
- Protected Attributes inherited from ezDocument
ezUniquePtr< ezDocumentObjectManagerm_pObjectManager
 
ezUniquePtr< ezCommandHistorym_pCommandHistory
 
ezUniquePtr< ezSelectionManagerm_pSelectionManager
 
ezUniquePtr< ezObjectCommandAccessorm_pObjectAccessor
 Default object accessor used by every doc.
 
ezDocumentInfom_pDocumentInfo = nullptr
 
const ezDocumentTypeDescriptorm_pTypeDescriptor = nullptr
 
ezDocumentm_pHostDocument = nullptr
 
ezDocumentm_pActiveSubDocument = nullptr
 

Additional Inherited Members

- Public Types inherited from ezAssetDocument
enum  EngineStatus { EngineStatus::Unsupported, EngineStatus::Disconnected, EngineStatus::Initializing, EngineStatus::Loaded }
 
- Public Types inherited from ezDocument
using AfterSaveCallback = ezDelegate< void(ezDocument *, ezStatus)>
 
- Static Public Attributes inherited from ezDocument
static ezEvent< const ezDocumentEvent & > s_EventsAny
 

Member Function Documentation

◆ GetManipulatorSearchStrategy()

virtual ezManipulatorSearchStrategy ezSkeletonAssetDocument::GetManipulatorSearchStrategy ( ) const
inlineoverridevirtual

Needed by ezManipulatorManager to know where to look for the manipulator attributes.

Override this function for document types that use manipulators. The ezManipulatorManager will assert that the document type doesn't return 'None' once it is in use.

Reimplemented from ezDocument.

◆ InternalTransformAsset()

ezTransformStatus ezSkeletonAssetDocument::InternalTransformAsset ( ezStreamWriter stream,
ezStringView  sOutputTag,
const ezPlatformProfile pAssetProfile,
const ezAssetFileHeader AssetHeader,
ezBitflags< ezTransformFlags transformFlags 
)
overrideprotectedvirtual

Override this and write the transformed file for the given szOutputTag into the given stream.

The stream already contains the ezAssetFileHeader. This is the function to prefer when the asset can be written directly from the editor process. AssetHeader is already written to the stream, but provided as reference.

Parameters
streamData stream to write the asset to.
szOutputTagEither empty for the default output or matches one of the tags defined in ezAssetDocumentInfo::m_Outputs.
szPlatformPlatform for which is the output is to be created. Default is 'Default'.
AssetHeaderHeader already written to the stream, provided for reference.
transformFlagsflags that affect the transform process, see ezTransformFlags.

Implements ezAssetDocument.

◆ UpdateAssetDocumentInfo()

void ezSkeletonAssetDocument::UpdateAssetDocumentInfo ( ezAssetDocumentInfo pInfo) const
overrideprotectedvirtual

Override this to add custom data (e.g. additional file dependencies) to the info struct.

Note
ALWAYS call the base function! It automatically fills out references that it can determine. In most cases that is already sufficient.

Reimplemented from ezAssetDocument.


The documentation for this class was generated from the following files: