Polyphase Game Engine
Loading...
Searching...
No Matches
ActionManager Class Reference

#include <ActionManager.h>

Classes

struct  EmbeddedRawAssetEntry
 

Public Member Functions

 ~ActionManager ()
 
void Update ()
 
void OnSelectedNodeChanged ()
 
NodeSpawnNode (TypeId nodeType, Node *parent)
 
NodeSpawnNode (TypeId nodeType, glm::vec3 position)
 
NodeSpawnBasicNode (const std::string &name, Node *parent, Asset *srcAsset=nullptr, bool setWorldPos=false, glm::vec3 worldPos={ 0.0f, 0.0f, 0.0f })
 
void ExecuteAction (Action *action)
 
void Undo ()
 
void Redo ()
 
void EXE_EditProperty (void *owner, PropertyOwnerType ownerType, const std::string &name, uint32_t index, Datum newValue)
 
void EXE_EditTransform (Node3D *node, const glm::mat4 &transform)
 
void EXE_EditTransforms (const std::vector< Node3D * > &nodes, const std::vector< glm::mat4 > &newTransforms)
 
void EXE_EditWidgetTransforms (const std::vector< Widget * > &widgets, const std::vector< WidgetTransformData > &newTransforms)
 
NodeEXE_SpawnNode (TypeId srcType)
 
NodeEXE_SpawnNode (const char *srcTypeName)
 
NodeEXE_SpawnNode (Scene *srcScene)
 
NodeEXE_SpawnNode (Node *srcNode)
 
void EXE_DeleteNode (Node *node)
 
std::vector< Node * > EXE_SpawnNodes (const std::vector< Node * > &nodes)
 
void EXE_DeleteNodes (const std::vector< Node * > &nodes)
 
void EXE_AttachNode (Node *node, Node *newParent, int32_t childIndex, int32_t boneIndex)
 
void EXE_SetRootNode (Node *newRoot)
 
void EXE_SetWorldRotation (Node3D *node, glm::quat rot)
 
void EXE_SetWorldPosition (Node3D *node, glm::vec3 pos)
 
void EXE_SetWorldScale (Node3D *node, glm::vec3 scale)
 
void EXE_UnlinkScene (Node *node)
 
void EXE_ResetScene (Node *node)
 
void EXE_SetInstanceColors (const std::vector< ActionSetInstanceColorsData > &data)
 
void EXE_SetVoxels (class Voxel3D *voxel, const std::vector< struct VoxelChange > &changes)
 
void EXE_SetTerrainHeights (class Terrain3D *terrain, const std::vector< struct TerrainHeightChange > &changes)
 
void EXE_PaintTiles (class TileMap2D *tileMapNode, const std::vector< struct TilePaintChange > &changes)
 
void EXE_SetInstanceData (InstancedMesh3D *instMesh, int32_t startIndex, const std::vector< MeshInstanceData > &data)
 
void EXE_ReplaceSelectedWithAsset (Asset *asset, const std::vector< Node * > &nodes)
 Replace selected nodes' mesh/material with an asset, or replace with scene instances.
 
void EXE_ReplaceWithInstancedMesh (const std::vector< Node * > &nodes, bool merge)
 Replace selected StaticMesh3D nodes with InstancedMesh3D nodes.
 
void EXE_ReplaceWithStaticMesh (const std::vector< Node * > &nodes)
 Split selected InstancedMesh3D nodes into individual StaticMesh3D nodes.
 
void EXE_ParentSelectedWith (const std::vector< Node * > &nodes, TypeId parentType, ArrayOrientation arrayOrientation=ArrayOrientation::Vertical)
 Create a new parent node of the specified type and reparent all selected nodes under it.
 
void EXE_TimelineAddTrack (Timeline *timeline, TypeId trackType)
 
void EXE_TimelineRemoveTrack (Timeline *timeline, int32_t trackIndex)
 
void EXE_TimelineAddClip (Timeline *timeline, int32_t trackIndex, TypeId clipType, float startTime, float duration)
 
void EXE_TimelineRemoveClip (Timeline *timeline, int32_t trackIndex, int32_t clipIndex)
 
void EXE_TimelineMoveClip (Timeline *timeline, int32_t trackIndex, int32_t clipIndex, float oldStartTime, float newStartTime)
 
void EXE_TimelineBindTrack (Timeline *timeline, int32_t trackIndex, uint64_t oldUuid, uint64_t newUuid, const std::string &oldName, const std::string &newName)
 
void ClearActionHistory ()
 
void ClearActionFuture ()
 
void ResetUndoRedo ()
 
void ExileNode (NodePtr node)
 
void RestoreExiledNode (NodePtr node)
 
void GatherScriptFiles (const std::string &dir, std::vector< std::string > &outFiles)
 
void CreateNewProject (const char *folderPath=nullptr, bool cpp=false, const char *defaultSceneName="SC_Default")
 
void OpenProject (const char *path=nullptr)
 
void WriteProjectLocalPolyphaseConfig ()
 
void OpenScene ()
 
void OpenScene (Scene *scene)
 
void RequestOpenScene (AssetStub *stub)
 
void RequestOpenSceneFromDialog ()
 
void SaveScene (bool saveAs)
 
void RequestSaveScene (bool saveAs)
 
void RequestSaveSelectedAsset ()
 
void RequestResaveAllAssets ()
 
void RequestOpenProject (const char *path)
 
SceneCreateNewScene (const char *sceneName, int sceneType, bool createCamera, bool createSkybox=false, AssetDir *targetDir=nullptr)
 
void SaveSelectedAsset ()
 
void DeleteSelectedNodes ()
 
void DeleteNode (Node *node)
 
void RunScript ()
 
void ImportAsset ()
 
AssetImportAsset (const std::string &path)
 
void ImportTinyLLMModel ()
 
void ImportTinyLLMTokenizer ()
 
void ImportCamera (const CameraImportOptions &options)
 
void ImportScene (const SceneImportOptions &options)
 
void BeginImportScene ()
 
void BeginReimportScene (AssetStub *sceneStub)
 
void BeginReimportAssetWithNewFile (AssetStub *stub)
 
void BeginImportCamera ()
 
void BuildData (Platform platform, bool embedded)
 
void DrawBuildModal ()
 
bool IsBuildRunning () const
 
LocalBuildStateGetBuildState ()
 
void PrepareRelease ()
 
void ClearWorld ()
 
void DeleteAllNodes ()
 
void RecaptureAndSaveAllScenes ()
 
void ResaveAllAssets ()
 
void DeleteAsset (AssetStub *stub)
 
void DeleteAssetDir (AssetDir *dir)
 
bool DuplicateNodes (std::vector< Node * > nodes)
 
void AttachSelectedNodes (Node *newParent, int32_t boneIdx)
 
bool CheckProjectNeedsUpgrade ()
 
void UpgradeProject ()
 

Static Public Member Functions

static void Create ()
 
static void Destroy ()
 
static ActionManagerGet ()
 

Protected Member Functions

 ActionManager ()
 
void GenerateEmbeddedAssetFiles (std::vector< std::pair< AssetStub *, std::string > > &assets, std::vector< EmbeddedRawAssetEntry > &rawAssets, const char *headerPath, const char *sourcePath)
 
void GenerateEmbeddedScriptFiles (std::vector< std::string > files, const char *headerPath, const char *sourcePath)
 
void BuildPhase1 ()
 
void BuildCompileThreadFunc ()
 
void FinalizeLocalBuild ()
 
void AppendBuildOutput (const std::string &text)
 
void CancelBuild ()
 

Protected Attributes

std::vector< Action * > mActionHistory
 
std::vector< Action * > mActionFuture
 
std::vector< NodePtrmExiledNodes
 
LocalBuildState mBuildState
 
bool mShowBuildModal = false
 
std::string mBuildDisplayOutput
 
bool mBuildAutoScroll = true
 
bool mBuildPending = false
 

Static Protected Attributes

static ActionManagersInstance
 

Constructor & Destructor Documentation

◆ ~ActionManager()

ActionManager::~ActionManager ( )

◆ ActionManager()

ActionManager::ActionManager ( )
protected

Member Function Documentation

◆ AppendBuildOutput()

void ActionManager::AppendBuildOutput ( const std::string &  text)
protected

◆ AttachSelectedNodes()

void ActionManager::AttachSelectedNodes ( Node newParent,
int32_t  boneIdx 
)

◆ BeginImportCamera()

void ActionManager::BeginImportCamera ( )

◆ BeginImportScene()

void ActionManager::BeginImportScene ( )

◆ BeginReimportAssetWithNewFile()

void ActionManager::BeginReimportAssetWithNewFile ( AssetStub stub)

◆ BeginReimportScene()

void ActionManager::BeginReimportScene ( AssetStub sceneStub)

◆ BuildCompileThreadFunc()

void ActionManager::BuildCompileThreadFunc ( )
protected

◆ BuildData()

void ActionManager::BuildData ( Platform  platform,
bool  embedded 
)

◆ BuildPhase1()

void ActionManager::BuildPhase1 ( )
protected

◆ CancelBuild()

void ActionManager::CancelBuild ( )
protected

◆ CheckProjectNeedsUpgrade()

bool ActionManager::CheckProjectNeedsUpgrade ( )

◆ ClearActionFuture()

void ActionManager::ClearActionFuture ( )

◆ ClearActionHistory()

void ActionManager::ClearActionHistory ( )

◆ ClearWorld()

void ActionManager::ClearWorld ( )

◆ Create()

static void ActionManager::Create ( )
static

◆ CreateNewProject()

void ActionManager::CreateNewProject ( const char *  folderPath = nullptr,
bool  cpp = false,
const char *  defaultSceneName = "SC_Default" 
)

◆ CreateNewScene()

Scene * ActionManager::CreateNewScene ( const char *  sceneName,
int  sceneType,
bool  createCamera,
bool  createSkybox = false,
AssetDir targetDir = nullptr 
)

◆ DeleteAllNodes()

void ActionManager::DeleteAllNodes ( )

◆ DeleteAsset()

void ActionManager::DeleteAsset ( AssetStub stub)

◆ DeleteAssetDir()

void ActionManager::DeleteAssetDir ( AssetDir dir)

◆ DeleteNode()

void ActionManager::DeleteNode ( Node node)

◆ DeleteSelectedNodes()

void ActionManager::DeleteSelectedNodes ( )

◆ Destroy()

static void ActionManager::Destroy ( )
static

◆ DrawBuildModal()

void ActionManager::DrawBuildModal ( )

◆ DuplicateNodes()

bool ActionManager::DuplicateNodes ( std::vector< Node * >  nodes)

◆ EXE_AttachNode()

void ActionManager::EXE_AttachNode ( Node node,
Node newParent,
int32_t  childIndex,
int32_t  boneIndex 
)

◆ EXE_DeleteNode()

void ActionManager::EXE_DeleteNode ( Node node)

◆ EXE_DeleteNodes()

void ActionManager::EXE_DeleteNodes ( const std::vector< Node * > &  nodes)

◆ EXE_EditProperty()

void ActionManager::EXE_EditProperty ( void *  owner,
PropertyOwnerType  ownerType,
const std::string &  name,
uint32_t  index,
Datum  newValue 
)

◆ EXE_EditTransform()

void ActionManager::EXE_EditTransform ( Node3D node,
const glm::mat4 &  transform 
)

◆ EXE_EditTransforms()

void ActionManager::EXE_EditTransforms ( const std::vector< Node3D * > &  nodes,
const std::vector< glm::mat4 > &  newTransforms 
)

◆ EXE_EditWidgetTransforms()

void ActionManager::EXE_EditWidgetTransforms ( const std::vector< Widget * > &  widgets,
const std::vector< WidgetTransformData > &  newTransforms 
)

◆ EXE_PaintTiles()

void ActionManager::EXE_PaintTiles ( class TileMap2D tileMapNode,
const std::vector< struct TilePaintChange > &  changes 
)

◆ EXE_ParentSelectedWith()

void ActionManager::EXE_ParentSelectedWith ( const std::vector< Node * > &  nodes,
TypeId  parentType,
ArrayOrientation  arrayOrientation = ArrayOrientation::Vertical 
)

Create a new parent node of the specified type and reparent all selected nodes under it.

Parameters
nodesThe selected nodes to reparent.
parentTypeThe type of parent node to create.
arrayOrientationFor ArrayWidget parents, the orientation (Horizontal/Vertical).

◆ EXE_ReplaceSelectedWithAsset()

void ActionManager::EXE_ReplaceSelectedWithAsset ( Asset asset,
const std::vector< Node * > &  nodes 
)

Replace selected nodes' mesh/material with an asset, or replace with scene instances.

Parameters
assetThe asset to apply (StaticMesh, Material, or Scene).
nodesThe nodes to operate on.

◆ EXE_ReplaceWithInstancedMesh()

void ActionManager::EXE_ReplaceWithInstancedMesh ( const std::vector< Node * > &  nodes,
bool  merge 
)

Replace selected StaticMesh3D nodes with InstancedMesh3D nodes.

Parameters
nodesThe selected nodes to convert.
mergeIf true, group by mesh into one InstancedMesh3D each. If false, convert each node 1:1.

◆ EXE_ReplaceWithStaticMesh()

void ActionManager::EXE_ReplaceWithStaticMesh ( const std::vector< Node * > &  nodes)

Split selected InstancedMesh3D nodes into individual StaticMesh3D nodes.

Parameters
nodesThe selected nodes to split.

◆ EXE_ResetScene()

void ActionManager::EXE_ResetScene ( Node node)

◆ EXE_SetInstanceColors()

void ActionManager::EXE_SetInstanceColors ( const std::vector< ActionSetInstanceColorsData > &  data)

◆ EXE_SetInstanceData()

void ActionManager::EXE_SetInstanceData ( InstancedMesh3D instMesh,
int32_t  startIndex,
const std::vector< MeshInstanceData > &  data 
)

◆ EXE_SetRootNode()

void ActionManager::EXE_SetRootNode ( Node newRoot)

◆ EXE_SetTerrainHeights()

void ActionManager::EXE_SetTerrainHeights ( class Terrain3D terrain,
const std::vector< struct TerrainHeightChange > &  changes 
)

◆ EXE_SetVoxels()

void ActionManager::EXE_SetVoxels ( class Voxel3D voxel,
const std::vector< struct VoxelChange > &  changes 
)

◆ EXE_SetWorldPosition()

void ActionManager::EXE_SetWorldPosition ( Node3D node,
glm::vec3  pos 
)

◆ EXE_SetWorldRotation()

void ActionManager::EXE_SetWorldRotation ( Node3D node,
glm::quat  rot 
)

◆ EXE_SetWorldScale()

void ActionManager::EXE_SetWorldScale ( Node3D node,
glm::vec3  scale 
)

◆ EXE_SpawnNode() [1/4]

Node * ActionManager::EXE_SpawnNode ( const char *  srcTypeName)

◆ EXE_SpawnNode() [2/4]

Node * ActionManager::EXE_SpawnNode ( Node srcNode)

◆ EXE_SpawnNode() [3/4]

Node * ActionManager::EXE_SpawnNode ( Scene srcScene)

◆ EXE_SpawnNode() [4/4]

Node * ActionManager::EXE_SpawnNode ( TypeId  srcType)

◆ EXE_SpawnNodes()

std::vector< Node * > ActionManager::EXE_SpawnNodes ( const std::vector< Node * > &  nodes)

◆ EXE_TimelineAddClip()

void ActionManager::EXE_TimelineAddClip ( Timeline timeline,
int32_t  trackIndex,
TypeId  clipType,
float  startTime,
float  duration 
)

◆ EXE_TimelineAddTrack()

void ActionManager::EXE_TimelineAddTrack ( Timeline timeline,
TypeId  trackType 
)

◆ EXE_TimelineBindTrack()

void ActionManager::EXE_TimelineBindTrack ( Timeline timeline,
int32_t  trackIndex,
uint64_t  oldUuid,
uint64_t  newUuid,
const std::string &  oldName,
const std::string &  newName 
)

◆ EXE_TimelineMoveClip()

void ActionManager::EXE_TimelineMoveClip ( Timeline timeline,
int32_t  trackIndex,
int32_t  clipIndex,
float  oldStartTime,
float  newStartTime 
)

◆ EXE_TimelineRemoveClip()

void ActionManager::EXE_TimelineRemoveClip ( Timeline timeline,
int32_t  trackIndex,
int32_t  clipIndex 
)

◆ EXE_TimelineRemoveTrack()

void ActionManager::EXE_TimelineRemoveTrack ( Timeline timeline,
int32_t  trackIndex 
)

◆ EXE_UnlinkScene()

void ActionManager::EXE_UnlinkScene ( Node node)

◆ ExecuteAction()

void ActionManager::ExecuteAction ( Action action)

◆ ExileNode()

void ActionManager::ExileNode ( NodePtr  node)

◆ FinalizeLocalBuild()

void ActionManager::FinalizeLocalBuild ( )
protected

◆ GatherScriptFiles()

void ActionManager::GatherScriptFiles ( const std::string &  dir,
std::vector< std::string > &  outFiles 
)

◆ GenerateEmbeddedAssetFiles()

void ActionManager::GenerateEmbeddedAssetFiles ( std::vector< std::pair< AssetStub *, std::string > > &  assets,
std::vector< EmbeddedRawAssetEntry > &  rawAssets,
const char *  headerPath,
const char *  sourcePath 
)
protected

◆ GenerateEmbeddedScriptFiles()

void ActionManager::GenerateEmbeddedScriptFiles ( std::vector< std::string >  files,
const char *  headerPath,
const char *  sourcePath 
)
protected

◆ Get()

static ActionManager * ActionManager::Get ( )
static

◆ GetBuildState()

LocalBuildState & ActionManager::GetBuildState ( )
inline

◆ ImportAsset() [1/2]

void ActionManager::ImportAsset ( )

◆ ImportAsset() [2/2]

Asset * ActionManager::ImportAsset ( const std::string &  path)

◆ ImportCamera()

void ActionManager::ImportCamera ( const CameraImportOptions &  options)

◆ ImportScene()

void ActionManager::ImportScene ( const SceneImportOptions &  options)

◆ ImportTinyLLMModel()

void ActionManager::ImportTinyLLMModel ( )

◆ ImportTinyLLMTokenizer()

void ActionManager::ImportTinyLLMTokenizer ( )

◆ IsBuildRunning()

bool ActionManager::IsBuildRunning ( ) const

◆ OnSelectedNodeChanged()

void ActionManager::OnSelectedNodeChanged ( )

◆ OpenProject()

void ActionManager::OpenProject ( const char *  path = nullptr)

◆ OpenScene() [1/2]

void ActionManager::OpenScene ( )

◆ OpenScene() [2/2]

void ActionManager::OpenScene ( Scene scene)

◆ PrepareRelease()

void ActionManager::PrepareRelease ( )

◆ RecaptureAndSaveAllScenes()

void ActionManager::RecaptureAndSaveAllScenes ( )

◆ Redo()

void ActionManager::Redo ( )

◆ RequestOpenProject()

void ActionManager::RequestOpenProject ( const char *  path)

◆ RequestOpenScene()

void ActionManager::RequestOpenScene ( AssetStub stub)

◆ RequestOpenSceneFromDialog()

void ActionManager::RequestOpenSceneFromDialog ( )

◆ RequestResaveAllAssets()

void ActionManager::RequestResaveAllAssets ( )

◆ RequestSaveScene()

void ActionManager::RequestSaveScene ( bool  saveAs)

◆ RequestSaveSelectedAsset()

void ActionManager::RequestSaveSelectedAsset ( )

◆ ResaveAllAssets()

void ActionManager::ResaveAllAssets ( )

◆ ResetUndoRedo()

void ActionManager::ResetUndoRedo ( )

◆ RestoreExiledNode()

void ActionManager::RestoreExiledNode ( NodePtr  node)

◆ RunScript()

void ActionManager::RunScript ( )

◆ SaveScene()

void ActionManager::SaveScene ( bool  saveAs)

◆ SaveSelectedAsset()

void ActionManager::SaveSelectedAsset ( )

◆ SpawnBasicNode()

Node * ActionManager::SpawnBasicNode ( const std::string &  name,
Node parent,
Asset srcAsset = nullptr,
bool  setWorldPos = false,
glm::vec3  worldPos = { 0.0f, 0.0f, 0.0f } 
)

◆ SpawnNode() [1/2]

Node * ActionManager::SpawnNode ( TypeId  nodeType,
glm::vec3  position 
)

◆ SpawnNode() [2/2]

Node * ActionManager::SpawnNode ( TypeId  nodeType,
Node parent 
)

◆ Undo()

void ActionManager::Undo ( )

◆ Update()

void ActionManager::Update ( )

◆ UpgradeProject()

void ActionManager::UpgradeProject ( )

◆ WriteProjectLocalPolyphaseConfig()

void ActionManager::WriteProjectLocalPolyphaseConfig ( )

Member Data Documentation

◆ mActionFuture

std::vector<Action*> ActionManager::mActionFuture
protected

◆ mActionHistory

std::vector<Action*> ActionManager::mActionHistory
protected

◆ mBuildAutoScroll

bool ActionManager::mBuildAutoScroll = true
protected

◆ mBuildDisplayOutput

std::string ActionManager::mBuildDisplayOutput
protected

◆ mBuildPending

bool ActionManager::mBuildPending = false
protected

◆ mBuildState

LocalBuildState ActionManager::mBuildState
protected

◆ mExiledNodes

std::vector<NodePtr> ActionManager::mExiledNodes
protected

◆ mShowBuildModal

bool ActionManager::mShowBuildModal = false
protected

◆ sInstance

ActionManager* ActionManager::sInstance
staticprotected

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