summaryrefslogtreecommitdiff
path: root/utils/sceneviewer/SceneViewerPanel.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/sceneviewer/SceneViewerPanel.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'utils/sceneviewer/SceneViewerPanel.h')
-rw-r--r--utils/sceneviewer/SceneViewerPanel.h147
1 files changed, 147 insertions, 0 deletions
diff --git a/utils/sceneviewer/SceneViewerPanel.h b/utils/sceneviewer/SceneViewerPanel.h
new file mode 100644
index 0000000..b014422
--- /dev/null
+++ b/utils/sceneviewer/SceneViewerPanel.h
@@ -0,0 +1,147 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Declaration of CSceneViewerPanel
+//
+//=============================================================================
+
+#ifndef SCENEVIEWERPANEL_H_2DF240CE_62EF_4391_B733_37C393E04E9E
+#define SCENEVIEWERPANEL_H_2DF240CE_62EF_4391_B733_37C393E04E9E
+
+// Valve includes
+#include "movieobjects/dmecombinationoperator.h"
+#include "movieobjects/dmedag.h"
+#include "movieobjects/dmemesh.h"
+#include "movieobjects/dmemodel.h"
+#include "movieobjects/dmeanimationlist.h"
+#include "dme_controls/ElementPropertiesTree.h"
+#include "dme_controls/dmecombinationsystemeditorpanel.h"
+#include "dme_controls/AssetBuilder.h"
+#include "dme_controls/ElementPropertiesTree.h"
+#include "vgui_controls/FileOpenStateMachine.h"
+#include "vgui_controls/MenuBar.h"
+#include "vgui_controls/consoledialog.h"
+#include "datamodel/idatamodel.h"
+
+// Local includes
+#include "ClipViewPanel.h"
+
+
+//-----------------------------------------------------------------------------
+// main editor panel
+//-----------------------------------------------------------------------------
+class CSceneViewerPanel : public vgui::Panel, public IDmNotify, public vgui::IFileOpenStateMachineClient
+{
+ DECLARE_CLASS_SIMPLE( CSceneViewerPanel, vgui::Panel );
+
+public:
+
+ CSceneViewerPanel();
+ ~CSceneViewerPanel();
+
+ // Inherited from vgui::Panel
+ virtual void PerformLayout();
+ virtual void OnCommand( char const *cmd );
+ virtual vgui::VPANEL GetCurrentKeyFocus();
+ virtual vgui::VPANEL GetCurrentMouseFocus();
+ virtual void OnKeyCodePressed( vgui::KeyCode code );
+
+ void OnEdit();
+
+ void OnUndo();
+ void OnRedo();
+
+ void OnDescribeUndoStack();
+
+ CDmeDag *GetScene() { return m_pClipViewPanel->GetScene(); }
+
+ MESSAGE_FUNC( OnNew, "New" );
+ MESSAGE_FUNC( OnOpen, "Open" );
+ MESSAGE_FUNC( OnSave, "Save" );
+ MESSAGE_FUNC( OnSaveAs, "SaveAs" );
+ MESSAGE_FUNC( OnSaveCurrentAs, "SaveCurrentAs" );
+ MESSAGE_FUNC( OnExit, "Exit" );
+
+ MESSAGE_FUNC_CHARPTR( OnLoadFile, "LoadFile", fullpath );
+ MESSAGE_FUNC( OnPinAndZoomIt, "PinAndZoomIt" );
+
+ MESSAGE_FUNC( OnShow3DView, "Show3DView" );
+ MESSAGE_FUNC( OnHide3DView, "Hide3DView" );
+ MESSAGE_FUNC( OnShowComboEditor, "ShowComboEditor" );
+ MESSAGE_FUNC( OnHideComboEditor, "HideComboEditor" );
+ MESSAGE_FUNC( OnShowAssetBuilder, "ShowAssetBuilder" );
+ MESSAGE_FUNC( OnHideAssetBuilder, "HideAssetBuilder" );
+ MESSAGE_FUNC( OnShowConsole, "ShowConsole" );
+ MESSAGE_FUNC( OnHideConsole, "HideConsole" );
+ MESSAGE_FUNC( OnShowNerdEditor, "ShowNerdEditor" );
+ MESSAGE_FUNC( OnHideNerdEditor, "HideNerdEditor" );
+ MESSAGE_FUNC( OnCombinationOperatorChanged, "CombinationOperatorChanged" );
+ MESSAGE_FUNC_CHARPTR( OnCommandSubmitted, "CommandSubmitted", command );
+
+ virtual void OnSizeChanged( int newWidth, int newHeight );
+
+protected:
+ // Inherited from IDmNotify
+ virtual void NotifyDataChanged( const char *pReason, int nNotifySource, int nNotifyFlags );
+
+ // Inherited from IFileOpenStateMachineClient
+ virtual void SetupFileOpenDialog( vgui::FileOpenDialog *pDialog, bool bOpenFile, const char *pFileFormat, KeyValues *pContextKeyValues );
+ virtual bool OnReadFileFromDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues );
+ virtual bool OnWriteFileToDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues );
+
+ // Removes all data references from all vgui things
+ void Clear();
+
+ // Loads a Dmx file from disk
+ bool Load( const char *pFilename, CUtlStringMap< Vector > *pOldComboVals = NULL );
+
+ bool Reload();
+
+ // Saves the current state of all delta meshes as a single OBJ
+ bool SaveCurrentAs( const char *pFilename );
+
+ // Sets all of the various editors to reference the right stuff
+ void SetScene();
+
+ // Deals with keybindings
+ void LoadKeyBindings();
+ void ShowKeyBindingsEditor( vgui::Panel *panel, vgui::KeyBindingContextHandle_t handle );
+ void ShowKeyBindingsHelp( vgui::Panel *panel, vgui::KeyBindingContextHandle_t handle, vgui::KeyCode boundKey, int modifiers );
+ vgui::KeyBindingContextHandle_t GetKeyBindingsHandle();
+
+ // Keybindings
+ vgui::KeyBindingContextHandle_t m_KeyBindingsHandle;
+
+private:
+ // Sets up a new mesh dag
+ CDmeModel *CreateNewMeshDag( CDmeMesh **ppMesh, DmFileId_t fileid );
+
+ // Sets up a new mesh animation
+ CDmeAnimationList *CreateNewJointAnimation( CDmeModel *pModel );
+
+ // Sets up a new vertex animation
+ CDmeAnimationList *CreateNewVertexAnimation( CDmeMesh *pMesh, CDmeCombinationOperator *pComboOp );
+
+ void SendFrameToDagRenderPanel( vgui::Panel *pPanel );
+
+ vgui::MenuBar *m_pMenuBar;
+
+ vgui::DHANDLE< vgui::FileOpenDialog > m_hFileOpenDialog;
+ vgui::DHANDLE< CElementPropertiesTree > m_hProperties;
+
+ // Root scene object
+ vgui::Panel *m_pClientArea;
+ CClipViewPanel *m_pClipViewPanel;
+ vgui::DHANDLE< CDmeCombinationSystemEditorFrame > m_pCombinationEditor;
+ vgui::DHANDLE< CAssetBuilderFrame > m_pAssetBuilder;
+ vgui::DHANDLE< CElementPropertiesTree > m_pNerdEditor;
+
+ CDmElement *m_pRoot;
+ vgui::FileOpenStateMachine *m_pFileOpenStateMachine;
+ vgui::CConsoleDialog *m_pConsole;
+ bool m_bConsolePositioned;
+
+ CUtlString m_fileDirectory;
+ CUtlString m_filename;
+};
+
+#endif // defined SCENEVIEWERPANEL_H_2DF240CE_62EF_4391_B733_37C393E04E9E