Plasma Engine  2.0
Loading...
Searching...
No Matches
plScene2Document Class Reference
Inheritance diagram for plScene2Document:

Public Member Functions

 plScene2Document (plStringView sDocumentPath)
 
Scene Data Accessors
const plDocumentObjectManagerGetSceneObjectManager () const
 
plDocumentObjectManagerGetSceneObjectManager ()
 
plSelectionManagerGetSceneSelectionManager () const
 
plCommandHistoryGetSceneCommandHistory () const
 
plObjectAccessorBaseGetSceneObjectAccessor () const
 
const plObjectMetaData< plUuid, plDocumentObjectMetaData > * GetSceneDocumentObjectMetaData () const
 
plObjectMetaData< plUuid, plDocumentObjectMetaData > * GetSceneDocumentObjectMetaData ()
 
const plObjectMetaData< plUuid, plGameObjectMetaData > * GetSceneGameObjectMetaData () const
 
plObjectMetaData< plUuid, plGameObjectMetaData > * GetSceneGameObjectMetaData ()
 
Layer Functions
plSelectionManagerGetLayerSelectionManager () const
 
plStatus CreateLayer (const char *szName, plUuid &out_layerGuid)
 
plStatus DeleteLayer (const plUuid &layerGuid)
 
const plUuidGetActiveLayer () const
 
plStatus SetActiveLayer (const plUuid &layerGuid)
 
bool IsLayerLoaded (const plUuid &layerGuid) const
 
plStatus SetLayerLoaded (const plUuid &layerGuid, bool bLoaded)
 
void GetAllLayers (plDynamicArray< plUuid > &out_layerGuids)
 
void GetLoadedLayers (plDynamicArray< plSceneDocument * > &out_layers) const
 
bool IsLayerVisible (const plUuid &layerGuid) const
 
plStatus SetLayerVisible (const plUuid &layerGuid, bool bVisible)
 
const plDocumentObjectGetLayerObject (const plUuid &layerGuid) const
 
plSceneDocumentGetLayerDocument (const plUuid &layerGuid) const
 
bool IsAnyLayerModified () const
 
Base Class Functions
virtual void InitializeAfterLoading (bool bFirstTimeCreation) override
 
virtual void InitializeAfterLoadingAndSaving () override
 
virtual const plDocumentObjectGetSettingsObject () const override
 
virtual void HandleEngineMessage (const plEditorEngineDocumentMsg *pMsg) override
 Handles all messages received from the corresponding plEngineProcessDocumentContext on the engine process.
 
virtual plTaskGroupID InternalSaveDocument (AfterSaveCallback callback) override
 Overrides the base function to call UpdateAssetDocumentInfo() to update the settings hash.
 
virtual void SendGameWorldToEngine () override
 Sends the current state of the scene to the engine process. This is typically done after scene load or when the world might have deviated on the engine side (after play the game etc.)
 
- Public Member Functions inherited from plSceneDocument
 plSceneDocument (plStringView sDocumentPath, DocumentType documentType)
 
void GroupSelection ()
 
void DuplicateSpecial ()
 Opens the Duplicate Special dialog.
 
void DeltaTransform ()
 Opens the 'Delta Transform' dialog.
 
void SnapObjectToCamera ()
 Moves all selected objects to the editor camera position.
 
void AttachToObject ()
 Attaches all selected objects to the selected object.
 
void DetachFromParent ()
 Detaches all selected objects from their current parent.
 
void CopyReference ()
 Puts the GUID of the single selected object into the clipboard.
 
plStatus CreateEmptyObject (bool bAttachToParent, bool bAtPickedPosition)
 Creates a new empty object, either top-level (selection empty) or as a child of the selected item.
 
void DuplicateSelection ()
 
void ToggleHideSelectedObjects ()
 
void ShowOrHideSelectedObjects (ShowOrHide action)
 
void ShowOrHideAllObjects (ShowOrHide action)
 
void HideUnselectedObjects ()
 
bool IsPrefab () const
 Whether this document represents a prefab or a scene.
 
bool IsObjectEditorPrefab (const plUuid &object, plUuid *out_pPrefabAssetGuid=nullptr) const
 Determines whether the given object is an editor prefab.
 
bool IsObjectEnginePrefab (const plUuid &object, plUuid *out_pPrefabAssetGuid=nullptr) const
 Determines whether the given object is an engine prefab.
 
virtual bool ArePrefabsAllowed () const override
 Nested prefabs are not allowed.
 
virtual void GetSupportedMimeTypesForPasting (plHybridArray< plString, 4 > &out_mimeTypes) const override
 Whether this document supports pasting the given mime format into it.
 
virtual bool CopySelectedObjects (plAbstractObjectGraph &out_objectGraph, plStringBuilder &out_sMimeType) const override
 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 plArrayPtr< PasteInfo > &info, const plAbstractObjectGraph &objectGraph, bool bAllowPickedPosition, plStringView sMimeType) override
 
bool DuplicateSelectedObjects (const plArrayPtr< PasteInfo > &info, const plAbstractObjectGraph &objectGraph, bool bSetSelected)
 
bool CopySelectedObjects (plAbstractObjectGraph &ref_graph, plMap< plUuid, plUuid > *out_pParents) const
 
bool PasteAt (const plArrayPtr< PasteInfo > &info, const plVec3 &vPos)
 
bool PasteAtOrignalPosition (const plArrayPtr< PasteInfo > &info, const plAbstractObjectGraph &objectGraph)
 
virtual void UpdatePrefabs () override
 Updates ALL prefabs in the document with the latest changes. Merges the current prefab templates with the instances in the document.
 
virtual void UnlinkPrefabs (const plDeque< const plDocumentObject * > &selection) override
 Removes the link to the prefab template, making the editor prefab a simple object.
 
virtual plUuid ReplaceByPrefab (const plDocumentObject *pRootObject, plStringView sPrefabFile, const plUuid &prefabAsset, const plUuid &prefabSeed, bool bEnginePrefab) override
 
virtual plUuid RevertPrefab (const plDocumentObject *pObject) override
 Reverts all selected editor prefabs to their original template state.
 
virtual void ConvertToEditorPrefab (const plDeque< const plDocumentObject * > &selection)
 Converts all objects in the selection that are engine prefabs to their respective editor prefab representation.
 
virtual void ConvertToEnginePrefab (const plDeque< const plDocumentObject * > &selection)
 Converts all objects in the selection that are editor prefabs to their respective engine prefab representation.
 
virtual plStatus CreatePrefabDocumentFromSelection (plStringView sFile, const plRTTI *pRootType, plDelegate< void(plAbstractObjectNode *)> adjustGraphNodeCB={}, plDelegate< void(plDocumentObject *)> adjustNewNodesCB={}, plDelegate< void(plAbstractObjectGraph &graph, plDynamicArray< plAbstractObjectNode * > &graphRootNodes)> finalizeGraphCB={}) override
 
GameMode::Enum GetGameMode () const
 
virtual bool CanEngineProcessBeRestarted () const override
 Asks the document whether a restart of the engine process is allowed at this time.
 
void StartSimulateWorld ()
 
void TriggerGameModePlay (bool bUsePickedPositionAsStart)
 
bool StopGameMode ()
 Stops the world simulation, if it is running. Returns true, when the simulation needed to be stopped.
 
plTransformStatus ExportScene (bool bCreateThumbnail)
 
void ExportSceneGeometry (const char *szFile, bool bOnlySelection, int iExtractionMode, const plMat3 &mTransform)
 
void HandleGameModeMsg (const plGameModeMsgToEditor *pMsg)
 
void HandleObjectStateFromEngineMsg (const plPushObjectStateMsgToEditor *pMsg)
 
void SendObjectMsg (const plDocumentObject *pObj, plObjectTagMsgToEngine *pMsg)
 
void SendObjectMsgRecursive (const plDocumentObject *pObj, plObjectTagMsgToEngine *pMsg)
 
const plSceneDocumentSettingsBaseGetSettingsBase () const
 
template<typename T >
const T * GetSettings () const
 
plStatus CreateExposedProperty (const plDocumentObject *pObject, const plAbstractProperty *pProperty, plVariant index, plExposedSceneProperty &out_key) const
 
plStatus AddExposedParameter (const char *szName, const plDocumentObject *pObject, const plAbstractProperty *pProperty, plVariant index)
 
plInt32 FindExposedParameter (const plDocumentObject *pObject, const plAbstractProperty *pProperty, plVariant index)
 
plStatus RemoveExposedParameter (plInt32 iIndex)
 
void StoreFavoriteCamera (plUInt8 uiSlot)
 Stores the current editor camera position in a user preference. Slot can be 0 to 9.
 
void RestoreFavoriteCamera (plUInt8 uiSlot)
 Applies the previously stored camera position from slot 0 to 9 to the current camera position.
 
plResult JumpToLevelCamera (plUInt8 uiSlot, bool bImmediate)
 Searches for an plCameraComponent with the 'EditorShortcut' property set to uiSlot and moves the editor camera to that position.
 
plResult CreateLevelCamera (plUInt8 uiSlot)
 Creates an object with an plCameraComponent at the current editor camera position and sets the 'EditorShortcut' property to uiSlot.
 
virtual plManipulatorSearchStrategy GetManipulatorSearchStrategy () const override
 Needed by plManipulatorManager to know where to look for the manipulator attributes.
 
- Public Member Functions inherited from plGameObjectDocument
 plGameObjectDocument (plStringView sDocumentPath, plDocumentObjectManager *pObjectManager, plAssetDocEngineConnection engineConnectionType=plAssetDocEngineConnection::FullObjectMirroring)
 
virtual plEditorInputContextGetEditorInputContextOverride () override
 Allows to return a single input context that currently overrides all others (in priority).
 
void SelectionManagerEventHandler (const plSelectionManagerEvent &e)
 
void ObjectPropertyEventHandler (const plDocumentObjectPropertyEvent &e)
 
void ObjectStructureEventHandler (const plDocumentObjectStructureEvent &e)
 
void ObjectEventHandler (const plDocumentObjectEvent &e)
 
void TriggerShowSelectionInScenegraph () const
 
void TriggerFocusOnSelection (bool bAllViews) const
 
void TriggerSnapPivotToGrid () const
 
void TriggerSnapEachObjectToGrid () const
 
void SnapCameraToObject ()
 Moves the editor camera to the same position as the selected object.
 
void MoveCameraHere ()
 Moves the camera to the current picking position.
 
plStatus CreateGameObjectHere ()
 Creates an empty game object at the current picking position.
 
void ScheduleSendObjectSelection ()
 
void SendObjectSelection ()
 Sends the current object selection, but only if it was modified or specifically tagged for resending with ScheduleSendObjectSelection().
 
bool GetAddAmbientLight () const
 
void SetAddAmbientLight (bool b)
 
float GetSimulationSpeed () const
 
void SetSimulationSpeed (float f)
 
bool GetRenderSelectionOverlay () const
 
void SetRenderSelectionOverlay (bool b)
 
bool GetRenderVisualizers () const
 
void SetRenderVisualizers (bool b)
 
bool GetRenderShapeIcons () const
 
void SetRenderShapeIcons (bool b)
 
bool GetPickTransparent () const
 
void SetPickTransparent (bool b)
 
void DetermineNodeName (const plDocumentObject *pObject, const plUuid &prefabGuid, plStringBuilder &out_sResult, QIcon *out_pIcon=nullptr) const
 Generates a good name for pObject. Queries the "Name" property, child components and asset properties, if necessary.
 
void QueryCachedNodeName (const plDocumentObject *pObject, plStringBuilder &out_sResult, plUuid *out_pPrefabGuid=nullptr, QIcon *out_pIcon=nullptr) const
 Similar to DetermineNodeName() but prefers to return the last cached value from scene meta data. This is more efficient, but may give an outdated result.
 
void GenerateFullDisplayName (const plDocumentObject *pRoot, plStringBuilder &out_sFullPath) const
 Creates a full "path" to a scene object for display in UIs. No guarantee for uniqueness.
 
void SetActiveEditTool (const plRTTI *pEditToolType)
 Makes an edit tool of the given type active. Allocates a new one, if necessary. Only works when SetEditToolConfigDelegate() is set.
 
plGameObjectEditToolGetActiveEditTool () const
 Returns the currently active edit tool (nullptr for none).
 
bool IsActiveEditTool (const plRTTI *pEditToolType) const
 Checks whether an edit tool of the given type, or nullptr for none, is active.
 
void SetEditToolConfigDelegate (plDelegate< void(plGameObjectEditTool *)> configDelegate)
 Needs to be called by some higher level code (usually the DocumentWindow) to react to newly created edit tools to configure them (call plGameObjectEditTool::ConfigureTool()).
 
void SetGizmoWorldSpace (bool bWorldSpace)
 
bool GetGizmoWorldSpace () const
 
void SetGizmoMoveParentOnly (bool bMoveParent)
 
bool GetGizmoMoveParentOnly () const
 
void ComputeTopLevelSelectedGameObjects (plDeque< plSelectedGameObject > &out_selection)
 Finds all objects that are selected at the top level, ie. none of their parents is selected.
 
void SetGlobalTransform (const plDocumentObject *pObject, const plTransform &t, plUInt8 uiTransformationChanges) const
 Sets the new global transformation of the given object. The transformationChanges bitmask (of type TransformationChanges) allows to tell the system that, e.g. only translation has changed and thus some work can be spared.
 
void SetGlobalTransformParentOnly (const plDocumentObject *pObject, const plTransform &t, plUInt8 uiTransformationChanges) const
 Same as SetGlobalTransform, except that all children will keep their current global transform (thus their local transforms are adjusted)
 
plTransform GetGlobalTransform (const plDocumentObject *pObject) const
 Returns a cached value for the global transform of the given object, if available. Otherwise it calls ComputeGlobalTransform().
 
plTransform ComputeGlobalTransform (const plDocumentObject *pObject) const
 Computes the global transform of the parent and combines it with the local transform of the given object. This function does not return a cached value, but always computes it. It does update the internal cache for later reads though.
 
virtual plResult ComputeObjectTransformation (const plDocumentObject *pObject, plTransform &out_result) const override
 Traverses the pObject hierarchy up until it hits an plGameObject, then computes the global transform of that.
 
- Public Member Functions inherited from plAssetDocument
 plAssetDocument (plStringView sDocumentPath, plDocumentObjectManager *pObjectManager, plAssetDocEngineConnection engineConnectionType)
 
EngineStatus GetEngineStatus () const
 Returns the current state of the engine process side of this document.
 
virtual plVariant GetCreateEngineMetaData () const
 Passed into plEngineProcessDocumentContext::Initialize on the engine process side. Allows the document to provide additional data to the engine process during context creation.
 
bool SendMessageToEngine (plEditorEngineDocumentMsg *pMessage) const
 Sends a message to the corresponding plEngineProcessDocumentContext on the engine process.
 
plEditorEngineConnectionGetEditorEngineConnection () const
 Returns the plEditorEngineConnection for this document.
 
void AddSyncObject (plEditorEngineSyncObject *pSync) const
 Registers a sync object for this document. It will be mirrored to the plEngineProcessDocumentContext on the engine process.
 
void RemoveSyncObject (plEditorEngineSyncObject *pSync) const
 Removes a previously registered sync object. It will be removed on the engine process side.
 
plEditorEngineSyncObjectFindSyncObject (const plUuid &guid) const
 Returns the sync object registered under the given guid.
 
plEditorEngineSyncObjectFindSyncObject (const plRTTI *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 (plCommonAssetUiState::Enum state, double value)
 Override this to handle a change to a common asset state differently.
 
virtual double GetCommonAssetUiState (plCommonAssetUiState::Enum state) const
 Override this to return custom values for a common asset state.
 
plAssetDocumentManagerGetAssetDocumentManager () const
 
const plAssetDocumentInfoGetAssetDocumentInfo () const
 
plBitflags< plAssetDocumentFlagsGetAssetFlags () const
 
const plAssetDocumentTypeDescriptorGetAssetDocumentTypeDescriptor () const
 
plTransformStatus TransformAsset (plBitflags< plTransformFlags > transformFlags, const plPlatformProfile *pAssetProfile=nullptr)
 Transforms an asset. Typically not called manually but by the curator which takes care of dependencies first.
 
plTransformStatus CreateThumbnail ()
 Updates the thumbnail of the asset. Should never be called manually. Called only by the curator which takes care of dependencies first.
 
plUInt16 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.
 
- Public Member Functions inherited from plDocument
 plDocument (plStringView sPath, plDocumentObjectManager *pDocumentObjectManagerImpl)
 
bool IsModified () const
 
bool IsReadOnly () const
 
const plUuid GetGuid () const
 
const plDocumentObjectManagerGetObjectManager () const
 
plDocumentObjectManagerGetObjectManager ()
 
plSelectionManagerGetSelectionManager () const
 
plCommandHistoryGetCommandHistory () const
 
virtual plObjectAccessorBaseGetObjectAccessor () const
 
void BroadcastInterDocumentMessage (plReflectedClass *pMessage, plDocument *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 DeleteSelectedObjects () const
 
const plSet< plString > & GetUnknownObjectTypes () const
 
plUInt32 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 plFormatString &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.
 
plStringView GetDocumentPath () const
 Returns the absolute path to the document.
 
plStatus 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.
 
plTaskGroupID SaveDocumentAsync (AfterSaveCallback callback, bool bForce=false)
 
void DocumentRenamed (plStringView sNewDocumentPath)
 
plStatus LoadDocument ()
 
void EnsureVisible ()
 Brings the corresponding window to the front.
 
plDocumentManagerGetDocumentManager () const
 
bool HasWindowBeenRequested () const
 
const plDocumentTypeDescriptorGetDocumentTypeDescriptor () const
 
plStringView GetDocumentTypeName () const
 Returns the document's type name. Same as GetDocumentTypeDescriptor()->m_sDocumentTypeName.
 
const plDocumentInfoGetDocumentInfo () const
 
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 plDocumentGetMainDocument () const
 In case this is a sub-document, returns the main document this belongs to. Otherwise 'this' is returned.
 
const plDocumentGetActiveSubDocument () 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 plDocumentObjectStructureEvent::Type::AfterReset.
 
plDocumentGetMainDocument ()
 
plDocumentGetActiveSubDocument ()
 
void RevertPrefabs (const plDeque< const plDocumentObject * > &selection)
 Resets the given objects to their template prefab state, if they have local modifications.
 
virtual plStatus CreatePrefabDocument (plStringView sFile, plArrayPtr< const plDocumentObject * > rootObjects, const plUuid &invPrefabSeed, plUuid &out_newDocumentGuid, plDelegate< void(plAbstractObjectNode *)> adjustGraphNodeCB={}, bool bKeepOpen=false, plDelegate< void(plAbstractObjectGraph &graph, plDynamicArray< plAbstractObjectNode * > &graphRootNodes)> finalizeGraphCB={})
 
- Public Member Functions inherited from plReflectedClass
virtual const plRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const plRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
PL_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Public Attributes

plEvent< const plScene2LayerEvent & > m_LayerEvents
 
- Public Attributes inherited from plGameObjectDocument
plEvent< const plGameObjectEvent & > m_GameObjectEvents
 
plUniquePtr< plObjectMetaData< plUuid, plGameObjectMetaData > > m_GameObjectMetaData
 
- Public Attributes inherited from plAssetDocument
plEvent< const plEditorEngineDocumentMsg * > m_ProcessMessageEvent
 
plEvent< const plCommonAssetUiState & > m_CommonAssetUiChangeEvent
 Used to broadcast state change events for common asset states.
 
- Public Attributes inherited from plDocument
plUniquePtr< plObjectMetaData< plUuid, plDocumentObjectMetaData > > m_DocumentObjectMetaData
 
plEvent< const plDocumentEvent & > m_EventsOne
 
plEvent< const plObjectAccessorChangeEvent & > m_ObjectAccessorChangeEvents
 

Friends

class plSceneLayer
 

Additional Inherited Members

- Public Types inherited from plSceneDocument
enum class  DocumentType { Scene , Prefab , Layer }
 
enum class  ShowOrHide { Show , Hide }
 
- Public Types inherited from plAssetDocument
enum class  EngineStatus { Unsupported , Disconnected , Initializing , Loaded }
 
- Public Types inherited from plDocument
using AfterSaveCallback = plDelegate<void(plDocument*, plStatus)>
 
- Static Public Member Functions inherited from plGameObjectDocument
static plTransform QueryLocalTransform (const plDocumentObject *pObject)
 Retrieves the local transform property values from the object and combines it into one plTransform.
 
static plSimdTransform QueryLocalTransformSimd (const plDocumentObject *pObject)
 
- Static Public Member Functions inherited from plDocument
static plStatus ReadDocument (plStringView sDocumentPath, plUniquePtr< plAbstractObjectGraph > &ref_pHeader, plUniquePtr< plAbstractObjectGraph > &ref_pObjects, plUniquePtr< plAbstractObjectGraph > &ref_pTypes)
 
static plStatus ReadAndRegisterTypes (const plAbstractObjectGraph &types)
 
- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 
- Static Public Attributes inherited from plGameObjectDocument
static plEvent< const plGameObjectDocumentEvent & > s_GameObjectDocumentEvents
 
- Static Public Attributes inherited from plDocument
static plEvent< const plDocumentEvent & > s_EventsAny
 
- Protected Member Functions inherited from plSceneDocument
void SetGameMode (GameMode::Enum mode)
 
virtual void UpdatePrefabObject (plDocumentObject *pObject, const plUuid &PrefabAsset, const plUuid &PrefabSeed, plStringView sBasePrefab) override
 
virtual void UpdateAssetDocumentInfo (plAssetDocumentInfo *pInfo) const override
 Override this to add custom data (e.g. additional file dependencies) to the info struct.
 
template<typename Func >
void ApplyRecursive (const plDocumentObject *pObject, Func f)
 
void EnsureSettingsObjectExist ()
 
void DocumentObjectMetaDataEventHandler (const plObjectMetaData< plUuid, plDocumentObjectMetaData >::EventData &e)
 
void EngineConnectionEventHandler (const plEditorEngineProcessConnection::Event &e)
 
void ToolsProjectEventHandler (const plToolsProjectEvent &e)
 
plStatus RequestExportScene (const char *szTargetFile, const plAssetFileHeader &header)
 
virtual plTransformStatus InternalTransformAsset (const char *szTargetFile, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
 Only override this function, if the transformed file for the given szOutputTag must be written from another process.
 
virtual plTransformStatus InternalTransformAsset (plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
 Override this and write the transformed file for the given szOutputTag into the given stream.
 
plTransformStatus InternalCreateThumbnail (const ThumbnailInfo &ThumbnailInfo) override
 Override this function to generate a thumbnail. Only called if GetAssetFlags returns plAssetDocumentFlags::SupportsThumbnail.
 
void SyncObjectHiddenState ()
 
void SyncObjectHiddenState (plDocumentObject *pObject)
 
void UpdateObjectDebugTargets ()
 Finds all objects that are actively being 'debugged' (or visualized) by the editor and thus should get the debug visualization flag in the runtime.
 
virtual void OnInterDocumentMessage (plReflectedClass *pMessage, plDocument *pSender) override
 Communication with other document types.
 
void GatherObjectsOfType (plDocumentObject *pRoot, plGatherObjectsOfTypeMsgInterDoc *pMsg) const
 
- Protected Member Functions inherited from plGameObjectDocument
void SubscribeGameObjectEventHandlers ()
 
void UnsubscribeGameObjectEventHandlers ()
 
void GameObjectDocumentEventHandler (const plGameObjectDocumentEvent &e)
 
void InvalidateGlobalTransformValue (const plDocumentObject *pObject) const
 
virtual void AttachMetaDataBeforeSaving (plAbstractObjectGraph &graph) const override
 
virtual void RestoreMetaDataAfterLoading (const plAbstractObjectGraph &graph, bool bUndoable) override
 
- Protected Member Functions inherited from plAssetDocument
void EngineConnectionEventHandler (const plEditorEngineProcessConnection::Event &e)
 
void AddPrefabDependencies (const plDocumentObject *pObject, plAssetDocumentInfo *pInfo) const
 Adds all prefab dependencies to the plAssetDocumentInfo object. Called automatically by UpdateAssetDocumentInfo()
 
void AddReferences (const plDocumentObject *pObject, plAssetDocumentInfo *pInfo, bool bInsidePrefab) const
 Crawls through all asset properties of pObject and adds all string properties that have a plAssetBrowserAttribute as a dependency to pInfo. Automatically called by UpdateAssetDocumentInfo()
 
virtual plDocumentInfoCreateDocumentInfo () override
 
plTransformStatus DoTransformAsset (const plPlatformProfile *pAssetProfile, plBitflags< plTransformFlags > transformFlags)
 
plUInt64 GetDocumentHash () const
 Computes the hash from all document objects.
 
void GetChildHash (const plDocumentObject *pObject, plUInt64 &inout_uiHash) const
 Computes the hash for one document object and combines it with the given hash.
 
virtual void InternalGetMetaDataHash (const plDocumentObject *pObject, plUInt64 &inout_uiHash) const
 Computes the hash for transform relevant meta data of the given document object and combines it with the given hash.
 
virtual void InternalAfterSaveDocument () override
 Implements auto transform on save.
 
plString GetThumbnailFilePath (plStringView sSubAssetName=plStringView()) const
 Returns the full path to the jpg file in which the thumbnail for this asset is supposed to be.
 
void InvalidateAssetThumbnail (plStringView sSubAssetName=plStringView()) const
 Should be called after manually changing the thumbnail, such that the system will reload it.
 
plStatus RemoteCreateThumbnail (const ThumbnailInfo &thumbnailInfo, plArrayPtr< plStringView > viewExclusionTags) const
 Requests the engine side to render a thumbnail, will call SaveThumbnail on success.
 
plStatus RemoteCreateThumbnail (const ThumbnailInfo &thumbnailInfo) const
 
plStatus SaveThumbnail (const plImage &img, const ThumbnailInfo &thumbnailInfo) const
 Saves the given image as the new thumbnail for the asset.
 
plStatus SaveThumbnail (const QImage &img, const ThumbnailInfo &thumbnailInfo) const
 Saves the given image as the new thumbnail for the asset.
 
void AppendThumbnailInfo (plStringView 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.
 
plStatus RemoteExport (const plAssetFileHeader &header, const char *szOutputTarget) const
 
- Protected Member Functions inherited from plDocument
void SetModified (bool b)
 
void SetReadOnly (bool b)
 
virtual plStatus InternalLoadDocument ()
 
virtual void BeforeClosing ()
 
void SetUnknownObjectTypes (const plSet< plString > &Types, plUInt32 uiInstances)
 
virtual void UpdatePrefabsRecursive (plDocumentObject *pObject)
 
- Protected Attributes inherited from plSceneDocument
DocumentType m_DocumentType = DocumentType::Scene
 
GameMode::Enum m_GameMode
 
GameModeData m_GameModeData [3]
 
plDocumentObjectMirror m_ObjectMirror
 
plRttiConverterContext m_Context
 
- Protected Attributes inherited from plGameObjectDocument
GameModeData m_CurrentMode
 
plEventSubscriptionID m_SelectionManagerEventHandlerID
 
plEventSubscriptionID m_ObjectPropertyEventHandlerID
 
plEventSubscriptionID m_ObjectStructureEventHandlerID
 
plEventSubscriptionID m_ObjectEventHandlerID
 
- Protected Attributes inherited from plAssetDocument
plUniquePtr< plIPCObjectMirrorEditorm_pMirror
 
EngineStatus m_EngineStatus
 
plAssetDocEngineConnection m_EngineConnectionType = plAssetDocEngineConnection::None
 
plEditorEngineConnectionm_pEngineConnection
 
plHashTable< plUuid, plEditorEngineSyncObject * > m_AllSyncObjects
 
plDeque< plEditorEngineSyncObject * > m_SyncObjects
 
plHybridArray< plUuid, 32 > m_DeletedObjects
 
plUInt32 m_uiCommonAssetStateFlags = 0
 
- Protected Attributes inherited from plDocument
plUniquePtr< plDocumentObjectManagerm_pObjectManager
 
plUniquePtr< plCommandHistorym_pCommandHistory
 
plUniquePtr< plSelectionManagerm_pSelectionManager
 
plUniquePtr< plObjectCommandAccessorm_pObjectAccessor
 Default object accessor used by every doc.
 
plDocumentInfom_pDocumentInfo = nullptr
 
const plDocumentTypeDescriptorm_pTypeDescriptor = nullptr
 
plDocumentm_pHostDocument = nullptr
 
plDocumentm_pActiveSubDocument = nullptr
 

Member Function Documentation

◆ GetSettingsObject()

const plDocumentObject * plScene2Document::GetSettingsObject ( ) const
overridevirtual

This function is overwritten so that after redirecting to the active document this still accesses the original content and is not redirected.

Reimplemented from plSceneDocument.

◆ HandleEngineMessage()

void plScene2Document::HandleEngineMessage ( const plEditorEngineDocumentMsg * pMsg)
overridevirtual

Handles all messages received from the corresponding plEngineProcessDocumentContext on the engine process.

Reimplemented from plSceneDocument.

◆ InitializeAfterLoading()

void plScene2Document::InitializeAfterLoading ( bool bFirstTimeCreation)
overridevirtual

Reimplemented from plSceneDocument.

◆ InitializeAfterLoadingAndSaving()

void plScene2Document::InitializeAfterLoadingAndSaving ( )
overridevirtual

Reimplemented from plAssetDocument.

◆ InternalSaveDocument()

plTaskGroupID plScene2Document::InternalSaveDocument ( AfterSaveCallback callback)
overridevirtual

Overrides the base function to call UpdateAssetDocumentInfo() to update the settings hash.

Reimplemented from plAssetDocument.

◆ SendGameWorldToEngine()

void plScene2Document::SendGameWorldToEngine ( )
overridevirtual

Sends the current state of the scene to the engine process. This is typically done after scene load or when the world might have deviated on the engine side (after play the game etc.)

Reimplemented from plGameObjectDocument.


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