BsCmdRecordSO.h 894 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsEditorCommand.h"
  4. #include "BsUndoRedo.h"
  5. namespace BansheeEngine
  6. {
  7. class CmdRecordSO : public EditorCommand
  8. {
  9. struct SceneObjProxy
  10. {
  11. GameObjectInstanceDataPtr instanceData;
  12. Vector<GameObjectInstanceDataPtr> componentInstanceData;
  13. Vector<SceneObjProxy> children;
  14. };
  15. public:
  16. ~CmdRecordSO();
  17. static void execute(const HSceneObject& sceneObject);
  18. void commit();
  19. void revert();
  20. private:
  21. friend class UndoRedo;
  22. CmdRecordSO(const HSceneObject& sceneObject);
  23. void recordSO(const HSceneObject& sceneObject);
  24. void clear();
  25. SceneObjProxy createProxy(const HSceneObject& sceneObject);
  26. void restoreIds(const HSceneObject& restored);
  27. HSceneObject mSceneObject;
  28. SceneObjProxy mSceneObjectProxy;
  29. UINT8* mSerializedObject;
  30. UINT32 mSerializedObjectSize;
  31. UINT64 mSerializedObjectParentId;
  32. };
  33. }