Changeset 395 for cafu/trunk

Show
Ignore:
Timestamp:
09/27/11 11:52:41 (8 months ago)
Author:
Carsten
Message:

Model Editor:

  • Fixed minor bug in ChannelInspectorT.
  • Revised and rearranged code for creating new skins, GUI fixtures and channels.
  • Added skin inspector (a text explaining how skins are edited).
Location:
cafu/trunk/CaWE/ModelEditor
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • cafu/trunk/CaWE/ModelEditor/ChannelInspector.cpp

    r394 r395  
    155155        ok=m_Parent->SubmitCommand(new CommandRenameT(m_ModelDoc, CHAN, ChanNr, Event.GetValue().GetString())); 
    156156    } 
    157     else if (PropName.StartsWith("Joint.")) 
     157    else if (PropName.StartsWith("Joints.")) 
    158158    { 
    159159        ok=m_Parent->SubmitCommand(new CommandUpdateChannelT(m_ModelDoc, ChanNr, Event.GetProperty()->GetIndexInParent(), Event.GetValue().GetBool())); 
  • cafu/trunk/CaWE/ModelEditor/ChildFrame.cpp

    r394 r395  
    9393      m_ChannelInspector(NULL), 
    9494      m_SkinsList(NULL), 
    95    // m_SkinInspector(NULL), 
     95     m_SkinInspector(NULL), 
    9696      m_GuiFixturesList(NULL), 
    9797      m_GuiFixtureInspector(NULL), 
     
    152152    ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR, "GUI Fixture Inspector", "Show or hide the GUI fixture inspector"); 
    153153    ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_SKINS_LIST,           "Skins List",            "Show or hide the skins list"); 
    154  // ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR,       "Skin Inspector",        "Show or hide the skin inspector"); 
     154   ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR,       "Skin Inspector",        "Show or hide the skin inspector"); 
    155155    ViewMenu->AppendSeparator(); 
    156156    ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_SCENE_SETUP,          "Scene Setup",           "Show or hide the scene setup inspector"); 
     
    168168    ModelMenu->AppendSeparator(); 
    169169    ModelMenu->Append(ID_MENU_MODEL_TRANSFORM, "&Transform...\tCtrl+T", "Transform the model"); 
     170    ModelMenu->Append(ID_MENU_MODEL_SKIN_ADD, "Add skin", "Adds a new skin to the model"); 
    170171    ModelMenu->Append(ID_MENU_MODEL_GUIFIXTURE_ADD, "Add GUI fixture", "Adds a new GUI fixture to the model"); 
    171  // ModelMenu->Append(ID_MENU_MODEL_SKIN_ADD, "Add skin", "Adds a new skin to the model"); 
    172  // ModelMenu->Append(ID_MENU_MODEL_CHANNEL_ADD, "Add channel", "Adds a new animation channel to the model"); 
     172    ModelMenu->Append(ID_MENU_MODEL_CHANNEL_ADD, "Add channel", "Adds a new animation channel to the model"); 
    173173    ModelMenu->Append(-1, "Run benchmark", "Move the camera along a predefined path and determine the time taken")->Enable(false); 
    174174    ModelMenu->AppendSeparator(); 
     
    215215    m_MeshesList=new ElementsPanelT(this, wxSize(230, 400), MESH); 
    216216    m_AUIManager.AddPane(m_MeshesList, wxAuiPaneInfo(). 
    217                          Name("MeshesList").Caption("Meshes List"). 
     217                         Name("MeshesList").Caption("Meshes"). 
    218218                         Left().Position(3)); 
    219219 
     
    225225    m_AnimsList=new ElementsPanelT(this, wxSize(230, 400), ANIM); 
    226226    m_AUIManager.AddPane(m_AnimsList, wxAuiPaneInfo(). 
    227                          Name("AnimsList").Caption("Animations List"). 
     227                         Name("AnimsList").Caption("Animations"). 
    228228                         Left().Position(5)); 
    229229 
     
    235235    m_ChannelsList=new ElementsPanelT(this, wxSize(230, 150), CHAN); 
    236236    m_AUIManager.AddPane(m_ChannelsList, wxAuiPaneInfo(). 
    237                          Name("ChannelsList").Caption("Channels List"). 
     237                         Name("ChannelsList").Caption("Channels"). 
    238238                         Left().Position(7)); 
    239239 
     
    245245    m_GuiFixturesList=new ElementsPanelT(this, wxSize(230, 150), GFIX); 
    246246    m_AUIManager.AddPane(m_GuiFixturesList, wxAuiPaneInfo(). 
    247                          Name("GuiFixturesList").Caption("Gui Fixtures List"). 
     247                         Name("GuiFixturesList").Caption("Gui Fixtures"). 
    248248                         Left().Position(9)); 
    249249 
     
    260260    m_SubmodelsPanel=new SubmodelsPanelT(this, wxSize(230, 150)); 
    261261    m_AUIManager.AddPane(m_SubmodelsPanel, wxAuiPaneInfo(). 
    262                          Name("SubmodelsPanel").Caption("Submodels List"). 
     262                         Name("SubmodelsPanel").Caption("Submodels"). 
    263263                         Right().Position(1)); 
    264264 
    265265    m_SkinsList=new ElementsPanelT(this, wxSize(230, 150), SKIN); 
    266266    m_AUIManager.AddPane(m_SkinsList, wxAuiPaneInfo(). 
    267                          Name("SkinsList").Caption("Skins List"). 
     267                         Name("SkinsList").Caption("Skins"). 
    268268                         Right().Position(2)); 
     269 
     270    m_SkinInspector=new wxStaticText(this, wxID_ANY, "\nSkins are used to assign alternative materials to the meshes in the model.\n\nTo use a skin, select it in the Skins list, then use the Mesh Inspector to assign a material to the mesh in the selected skin.", wxDefaultPosition, wxSize(260, 180)); 
     271    m_AUIManager.AddPane(m_SkinInspector, wxAuiPaneInfo(). 
     272                         Name("SkinInspector").Caption("Skin Inspector"). 
     273                         Float().Hide()); 
    269274 
    270275    m_TransformDialog=new TransformDialogT(this, wxSize(248, 240)); 
     
    348353 
    349354 
     355bool ModelEditor::ChildFrameT::SubmitNewSkin() 
     356{ 
     357    CafuModelT::SkinT Skin; 
     358 
     359    Skin.Name="New Skin"; 
     360    while (Skin.Materials.Size()       < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.Materials.PushBack(NULL); 
     361    while (Skin.RenderMaterials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.RenderMaterials.PushBack(NULL); 
     362 
     363    return SubmitCommand(new CommandAddT(m_ModelDoc, Skin)); 
     364} 
     365 
     366 
     367bool ModelEditor::ChildFrameT::SubmitNewGuiFixture() 
     368{ 
     369    ArrayT<CafuModelT::GuiFixtureT> GuiFixtures; 
     370 
     371    GuiFixtures.PushBackEmpty(); 
     372    GuiFixtures[0].Name="New GUI Fixture"; 
     373 
     374    return SubmitCommand(new CommandAddT(m_ModelDoc, GuiFixtures)); 
     375} 
     376 
     377 
     378bool ModelEditor::ChildFrameT::SubmitNewChannel() 
     379{ 
     380    CafuModelT::ChannelT Channel; 
     381 
     382    Channel.Name="New Channel"; 
     383    return SubmitCommand(new CommandAddT(m_ModelDoc, Channel)); 
     384} 
     385 
     386 
    350387void ModelEditor::ChildFrameT::SaveMaterials(const wxString& OldBaseName, const wxString& BaseName) 
    351388{ 
     
    598635         if (List==m_JointsHierarchy) Insp=m_JointInspector; 
    599636    else if (List==m_MeshesList)      Insp=m_MeshInspector; 
     637    else if (List==m_SkinsList)       Insp=m_SkinInspector; 
    600638    else if (List==m_AnimsList)       Insp=m_AnimInspector; 
    601639    else if (List==m_ChannelsList)    Insp=m_ChannelInspector; 
     
    747785        case ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR:    PaneToggleShow(m_AUIManager.GetPane(m_ChannelInspector   )); break; 
    748786        case ID_MENU_VIEW_AUIPANE_SKINS_LIST:           PaneToggleShow(m_AUIManager.GetPane(m_SkinsList          )); break; 
    749      // case ID_MENU_VIEW_AUIPANE_SKINS_INSPECTOR:      PaneToggleShow(m_AUIManager.GetPane(m_SkinsInspector     )); break; 
     787        case ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR:       PaneToggleShow(m_AUIManager.GetPane(m_SkinInspector      )); break; 
    750788        case ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST:     PaneToggleShow(m_AUIManager.GetPane(m_GuiFixturesList    )); break; 
    751789        case ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR: PaneToggleShow(m_AUIManager.GetPane(m_GuiFixtureInspector)); break; 
     
    783821        case ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR:    UE.Check(m_AUIManager.GetPane(m_ChannelInspector   ).IsShown()); break; 
    784822        case ID_MENU_VIEW_AUIPANE_SKINS_LIST:           UE.Check(m_AUIManager.GetPane(m_SkinsList          ).IsShown()); break; 
    785      // case ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR:       UE.Check(m_AUIManager.GetPane(m_SkinInspector      ).IsShown()); break; 
     823       case ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR:       UE.Check(m_AUIManager.GetPane(m_SkinInspector      ).IsShown()); break; 
    786824        case ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST:     UE.Check(m_AUIManager.GetPane(m_GuiFixturesList    ).IsShown()); break; 
    787825        case ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR: UE.Check(m_AUIManager.GetPane(m_GuiFixtureInspector).IsShown()); break; 
     
    840878        } 
    841879 
     880        case ID_MENU_MODEL_SKIN_ADD: 
     881        { 
     882            SubmitNewSkin(); 
     883            break; 
     884        } 
     885 
    842886        case ID_MENU_MODEL_GUIFIXTURE_ADD: 
    843887        { 
    844             ArrayT<CafuModelT::GuiFixtureT> GuiFixtures; 
    845  
    846             GuiFixtures.PushBackEmpty(); 
    847             GuiFixtures[0].Name="New GUI Fixture"; 
    848  
    849             SubmitCommand(new CommandAddT(m_ModelDoc, GuiFixtures)); 
    850             break; 
    851         } 
    852  
    853         // case ID_MENU_MODEL_SKIN_ADD: 
    854         // { 
    855         //     break; 
    856         // } 
    857  
    858         // case ID_MENU_MODEL_CHANNEL_ADD: 
    859         // { 
    860         //     break; 
    861         // } 
     888            SubmitNewGuiFixture(); 
     889            break; 
     890        } 
     891 
     892        case ID_MENU_MODEL_CHANNEL_ADD: 
     893        { 
     894            SubmitNewChannel(); 
     895            break; 
     896        } 
    862897 
    863898        case ID_MENU_MODEL_LOAD_SUBMODEL: 
  • cafu/trunk/CaWE/ModelEditor/ChildFrame.hpp

    r394 r395  
    6767        bool SubmitCommand(CommandT* Command); 
    6868 
     69        /// Creates a new skin, calls SubmitCommand() accordingly and returns its result. 
     70        bool SubmitNewSkin(); 
     71 
     72        /// Creates a new GUI fixture, calls SubmitCommand() accordingly and returns its result. 
     73        bool SubmitNewGuiFixture(); 
     74 
     75        /// Creates a new animation channel, calls SubmitCommand() accordingly and returns its result. 
     76        bool SubmitNewChannel(); 
     77 
    6978        /// Saves the model under the known or a new file name. 
    7079        /// @param AskForFileName   Whether the method should ask the user to enter a new file name, used for "Save as...". 
     
    113122        ChannelInspectorT* m_ChannelInspector; 
    114123        ElementsPanelT*    m_SkinsList; 
    115      // SkinInspectorT*    m_SkinInspector; 
     124        wxStaticText*      m_SkinInspector; 
    116125        ElementsPanelT*    m_GuiFixturesList; 
    117126        GuiFixInspectorT*  m_GuiFixtureInspector; 
     
    140149            ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR, 
    141150            ID_MENU_VIEW_AUIPANE_SKINS_LIST, 
    142          // ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR, 
     151           ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR, 
    143152            ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST, 
    144153            ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR, 
     
    156165            ID_MENU_MODEL_TRANSFORM, 
    157166            ID_MENU_MODEL_GUIFIXTURE_ADD, 
    158          // ID_MENU_MODEL_SKIN_ADD, 
    159          // ID_MENU_MODEL_CHANNEL_ADD, 
     167           ID_MENU_MODEL_SKIN_ADD, 
     168           ID_MENU_MODEL_CHANNEL_ADD, 
    160169            ID_MENU_MODEL_LOAD_SUBMODEL, 
    161170            ID_MENU_MODEL_UNLOAD_SUBMODELS 
  • cafu/trunk/CaWE/ModelEditor/ElementsList.cpp

    r394 r395  
    326326        case ID_MENU_ADD_NEW: 
    327327        { 
    328             if (m_TYPE==SKIN) 
    329             { 
    330                 CafuModelT::SkinT Skin; 
    331  
    332                 Skin.Name="New Skin"; 
    333                 while (Skin.Materials.Size()       < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.Materials.PushBack(NULL); 
    334                 while (Skin.RenderMaterials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.RenderMaterials.PushBack(NULL); 
    335  
    336                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Skin)); 
    337             } 
    338             else if (m_TYPE==GFIX) 
    339             { 
    340                 ArrayT<CafuModelT::GuiFixtureT> GuiFixtures; 
    341  
    342                 GuiFixtures.PushBackEmpty(); 
    343                 GuiFixtures[0].Name="New GUI Fixture"; 
    344  
    345                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, GuiFixtures)); 
    346             } 
    347             else if (m_TYPE==CHAN) 
    348             { 
    349                 CafuModelT::ChannelT Channel; 
    350  
    351                 Channel.Name="New Channel"; 
    352                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Channel)); 
     328            switch (m_TYPE) 
     329            { 
     330                case SKIN: m_MainFrame->SubmitNewSkin();       break; 
     331                case GFIX: m_MainFrame->SubmitNewGuiFixture(); break; 
     332                case CHAN: m_MainFrame->SubmitNewChannel();    break; 
     333                default: break; 
    353334            } 
    354335            break; 
     
    476457        case ID_BUTTON_ADD: 
    477458        { 
    478             if (m_TYPE==SKIN) 
    479             { 
    480                 CafuModelT::SkinT Skin; 
    481  
    482                 Skin.Name="New Skin"; 
    483                 while (Skin.Materials.Size()       < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.Materials.PushBack(NULL); 
    484                 while (Skin.RenderMaterials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.RenderMaterials.PushBack(NULL); 
    485  
    486                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Skin)); 
    487             } 
    488             else if (m_TYPE==GFIX) 
    489             { 
    490                 ArrayT<CafuModelT::GuiFixtureT> GuiFixtures; 
    491  
    492                 GuiFixtures.PushBackEmpty(); 
    493                 GuiFixtures[0].Name="New GUI Fixture"; 
    494  
    495                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, GuiFixtures)); 
    496             } 
    497             else if (m_TYPE==CHAN) 
    498             { 
    499                 CafuModelT::ChannelT Channel; 
    500  
    501                 Channel.Name="New Channel"; 
    502                 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Channel)); 
     459            switch (m_TYPE) 
     460            { 
     461                case SKIN: m_MainFrame->SubmitNewSkin();       break; 
     462                case GFIX: m_MainFrame->SubmitNewGuiFixture(); break; 
     463                case CHAN: m_MainFrame->SubmitNewChannel();    break; 
     464                default: break; 
    503465            } 
    504466            break;