#include "stdafx.h" #include "ObjectEditor.h" #include "MainFrame.h" #include "MapEditorView.h" #include "ObjectTransformDialog.h" #include "ObjectPropertyDialog.h" #include "ObjectInfoDialog.h" #include "Doing/DoingManager.h" #include "Doing/ObjectCreating.h" #include "Engine/SceneManager.h" #include "Engine/StaticSceneNode.h" bool cObjectEditor::CreateObject( const char* pathName ) { /// ÇöÀç °æ·Î¸¦ ¼³Á¤ cString path; GetFilePath( &path, pathName ); SetCurrentDirectory( path.Cstr() ); /// Àå¸é ³ëµå¸¦ »ý¼º cStaticSceneNodeParam param; param.mPathName = pathName; cStaticSceneNode* n = SCENEMAN->CreateStatic( param ); if( n ) { /// ½ÇÇà Á¤º¸¸¦ ¼öÁý cObjectCreatingInfo undo; undo.mNode = n; /// ½ÇÇà Á¤º¸¸¦ Ãß°¡ DOINGMAN->PushObjectCreating( undo ); /// »ý¼º ™V¿¡ Ãß°¡ mCreatedSet.Insert( n ); /// »ý¼ºµÈ ¿ÀºêÁ§Æ®¸¦ ¼±Åà mObjectGroup->Select( n, false ); mTransformDialog->UpdateObject( mObjectGroup ); mPropertyDialog->UpdateObject( mObjectGroup ); /// ºä¸¦ °»½Å VIEW->Update(); /// º¯°æ ¿©ºÎ¸¦ ¼³Á¤ MAIN->SetSceneModified( true ); /// Á¤º¸ ´ÙÀ̾ó·Î±×¸¦ °»½Å mInfoDialog->UpdateNumObjects( mCreatedSet.GetSize() ); } return n != 0; } void cObjectEditor::Undo( const cObjectCreating& doing ) { /// ¿ÀºêÁ§Æ®¸¦ Á×ÀÓ Kill( doing.mUndo.mNode ); } void cObjectEditor::Redo( const cObjectCreating& doing ) { /// Á×ÀÎ ¿ÀºêÁ§Æ®¸¦ ´Ù½Ã »ì¸² -_-; Rebirth( doing.mUndo.mNode ); }