3#include <EditorPluginScene/EditorPluginSceneDLL.h>
5#include <EditorFramework/Document/GameObjectDocument.h>
26 enum class DocumentType
43 void GroupSelection();
46 void DuplicateSpecial();
49 void DeltaTransform();
53 void SnapObjectToCamera();
57 void AttachToObject();
60 void DetachFromParent();
66 plStatus CreateEmptyObject(
bool bAttachToParent,
bool bAtPickedPosition);
68 void DuplicateSelection();
69 void ToggleHideSelectedObjects();
70 void ShowOrHideSelectedObjects(ShowOrHide action);
71 void ShowOrHideAllObjects(ShowOrHide action);
72 void HideUnselectedObjects();
75 bool IsPrefab()
const {
return m_DocumentType == DocumentType::Prefab; }
78 bool IsObjectEditorPrefab(
const plUuid&
object,
plUuid* out_pPrefabAssetGuid =
nullptr)
const;
81 bool IsObjectEnginePrefab(
const plUuid&
object,
plUuid* out_pPrefabAssetGuid =
nullptr)
const;
101 virtual plUuid ReplaceByPrefab(
114 GameMode::Enum GetGameMode()
const {
return m_GameMode; }
118 void StartSimulateWorld();
119 void TriggerGameModePlay(
bool bUsePickedPositionAsStart);
125 void ExportSceneGeometry(
126 const char* szFile,
bool bOnlySelection,
int iExtractionMode ,
const plMat3& mTransform);
140 template <
typename T>
141 const T* GetSettings()
const
143 return plDynamicCast<const T*>(GetSettingsBase());
150 plStatus RemoveExposedParameter(plInt32 iIndex);
159 void StoreFavoriteCamera(plUInt8 uiSlot);
164 void RestoreFavoriteCamera(plUInt8 uiSlot);
167 plResult JumpToLevelCamera(plUInt8 uiSlot,
bool bImmediate);
170 plResult CreateLevelCamera(plUInt8 uiSlot);
174 return plManipulatorSearchStrategy::ChildrenOfSelectedObject;
180 void SetGameMode(GameMode::Enum mode);
182 virtual void InitializeAfterLoading(
bool bFirstTimeCreation)
override;
186 template <
typename Func>
191 for (
auto pChild : pObject->GetChildren())
193 ApplyRecursive<Func>(pChild, f);
198 void EnsureSettingsObjectExist();
211 void SyncObjectHiddenState();
216 void UpdateObjectDebugTargets();
218 DocumentType m_DocumentType = DocumentType::Scene;
220 GameMode::Enum m_GameMode;
222 GameModeData m_GameModeData[3];
Definition AbstractObjectGraph.h:115
Definition AbstractObjectGraph.h:17
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
virtual void UpdateAssetDocumentInfo(plAssetDocumentInfo *pInfo) const
Override this to add custom data (e.g. additional file dependencies) to the info struct.
Definition AssetDocument.cpp:380
virtual plTransformStatus InternalTransformAsset(plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags)=0
Override this and write the transformed file for the given szOutputTag into the given stream.
virtual plTransformStatus InternalCreateThumbnail(const ThumbnailInfo &thumbnailInfo)
Override this function to generate a thumbnail. Only called if GetAssetFlags returns plAssetDocumentF...
Definition AssetDocument.cpp:745
Definition AssetDocumentInfo.h:7
virtual void OnInterDocumentMessage(plReflectedClass *pMessage, plDocument *pSender)
Called on all documents when BroadcastInterDocumentMessage() is called.
Definition Document.h:179
virtual bool CopySelectedObjects(plAbstractObjectGraph &out_objectGraph, plStringBuilder &out_sMimeType) const
Creates the abstract graph of data to be copied and returns the mime type for the clipboard to identi...
Definition Document.h:163
virtual void GetSupportedMimeTypesForPasting(plHybridArray< plString, 4 > &out_mimeTypes) const
Whether this document supports pasting the given mime format into it.
Definition Document.h:161
virtual void UnlinkPrefabs(const plDeque< const plDocumentObject * > &selection)
Removes the link between a prefab instance and its template, turning the instance into a regular obje...
Definition DocumentPrefab.cpp:39
virtual void UpdatePrefabs()
Updates ALL prefabs in the document with the latest changes. Merges the current prefab templates with...
Definition DocumentPrefab.cpp:10
virtual bool CanEngineProcessBeRestarted() const
Asks the document whether a restart of the engine process is allowed at this time.
Definition Document.h:145
Definition DocumentObjectBase.h:11
Definition DocumentObjectMirror.h:34
Definition DynamicArray.h:81
Base class for all messages that are tied to some document.
Definition EngineProcessMessages.h:151
Definition EngineProcessMessages.h:549
Definition GameObjectDocument.h:95
virtual void HandleEngineMessage(const plEditorEngineDocumentMsg *pMsg) override
Handles all messages received from the corresponding plEngineProcessDocumentContext on the engine pro...
Definition GameObjectDocument.cpp:1070
Send between editor documents, such that one document can know about objects in another document.
Definition EngineProcessMessages.h:579
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition EngineProcessMessages.h:474
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition RttiConverter.h:33
Definition SceneDocument.h:22
bool IsPrefab() const
Whether this document represents a prefab or a scene.
Definition SceneDocument.h:75
virtual plManipulatorSearchStrategy GetManipulatorSearchStrategy() const override
Needed by plManipulatorManager to know where to look for the manipulator attributes.
Definition SceneDocument.h:172
virtual bool ArePrefabsAllowed() const override
Nested prefabs are not allowed.
Definition SceneDocument.h:84
Definition SceneObjectManager.h:11
Interface for binary out (write) streams.
Definition Stream.h:107
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition SceneDocument.h:12
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
A generic delegate class which supports static functions and member functions.
Definition Delegate.h:76
Definition EngineProcessConnection.h:63
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
An plResult with an additional message for the reason of failure.
Definition Status.h:12