Changeset 394 for cafu/trunk
- Timestamp:
- 09/26/11 13:37:46 (8 months ago)
- Location:
- cafu/trunk
- Files:
-
- 4 added
- 15 modified
-
CaWE/ModelEditor/ChannelInspector.cpp (added)
-
CaWE/ModelEditor/ChannelInspector.hpp (added)
-
CaWE/ModelEditor/ChildFrame.cpp (modified) (10 diffs)
-
CaWE/ModelEditor/ChildFrame.hpp (modified) (4 diffs)
-
CaWE/ModelEditor/Commands/Add.cpp (modified) (6 diffs)
-
CaWE/ModelEditor/Commands/Add.hpp (modified) (2 diffs)
-
CaWE/ModelEditor/Commands/Delete.cpp (modified) (6 diffs)
-
CaWE/ModelEditor/Commands/Delete.hpp (modified) (1 diff)
-
CaWE/ModelEditor/Commands/Rename.cpp (modified) (3 diffs)
-
CaWE/ModelEditor/Commands/UpdateChannel.cpp (added)
-
CaWE/ModelEditor/Commands/UpdateChannel.hpp (added)
-
CaWE/ModelEditor/ElementTypes.hpp (modified) (1 diff)
-
CaWE/ModelEditor/ElementsList.cpp (modified) (7 diffs)
-
CaWE/ModelEditor/ElementsList.hpp (modified) (1 diff)
-
CaWE/ModelEditor/ModelDocument.cpp (modified) (1 diff)
-
CaWE/ModelEditor/ModelDocument.hpp (modified) (2 diffs)
-
CaWE/ModelEditor/ObserverPattern.cpp (modified) (1 diff)
-
CaWE/ModelEditor/ObserverPattern.hpp (modified) (2 diffs)
-
Libs/Models/Model_cmdl.hpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cafu/trunk/CaWE/ModelEditor/ChildFrame.cpp
r393 r394 22 22 #include "ChildFrame.hpp" 23 23 #include "AnimInspector.hpp" 24 #include "ChannelInspector.hpp" 24 25 #include "ElementsList.hpp" 25 26 #include "GlobalsInspector.hpp" … … 89 90 m_AnimsList(NULL), 90 91 m_AnimInspector(NULL), 92 m_ChannelsList(NULL), 93 m_ChannelInspector(NULL), 91 94 m_SkinsList(NULL), 95 // m_SkinInspector(NULL), 92 96 m_GuiFixturesList(NULL), 93 97 m_GuiFixtureInspector(NULL), … … 143 147 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_ANIMS_LIST, "Animations List", "Show or hide the animations list"); 144 148 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_ANIM_INSPECTOR, "Animation Inspector", "Show or hide the animation inspector"); 149 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_CHANNELS_LIST, "Channels List", "Show or hide the animation channels list"); 150 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR, "Channel Inspector", "Show or hide the animation channel inspector"); 145 151 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST, "GUI Fixtures List", "Show or hide the GUI fixtures list"); 146 152 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR, "GUI Fixture Inspector", "Show or hide the GUI fixture inspector"); 147 153 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"); 148 155 ViewMenu->AppendSeparator(); 149 156 ViewMenu->AppendCheckItem(ID_MENU_VIEW_AUIPANE_SCENE_SETUP, "Scene Setup", "Show or hide the scene setup inspector"); … … 162 169 ModelMenu->Append(ID_MENU_MODEL_TRANSFORM, "&Transform...\tCtrl+T", "Transform the model"); 163 170 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"); 164 173 ModelMenu->Append(-1, "Run benchmark", "Move the camera along a predefined path and determine the time taken")->Enable(false); 165 174 ModelMenu->AppendSeparator(); … … 224 233 Float().Hide()); 225 234 235 m_ChannelsList=new ElementsPanelT(this, wxSize(230, 150), CHAN); 236 m_AUIManager.AddPane(m_ChannelsList, wxAuiPaneInfo(). 237 Name("ChannelsList").Caption("Channels List"). 238 Left().Position(7)); 239 240 m_ChannelInspector=new ChannelInspectorT(this, wxSize(260, 320)); 241 m_AUIManager.AddPane(m_ChannelInspector, wxAuiPaneInfo(). 242 Name("ChannelInspector").Caption("Channel Inspector"). 243 Float().Hide()); 244 226 245 m_GuiFixturesList=new ElementsPanelT(this, wxSize(230, 150), GFIX); 227 246 m_AUIManager.AddPane(m_GuiFixturesList, wxAuiPaneInfo(). 228 247 Name("GuiFixturesList").Caption("Gui Fixtures List"). 229 Left().Position( 7));248 Left().Position(9)); 230 249 231 250 m_GuiFixtureInspector=new GuiFixInspectorT(this, wxSize(260, 320)); … … 282 301 AnimToolbar->AddTool(ID_MENU_MODEL_TRANSFORM, "Transform", wxArtProvider::GetBitmap("transform-rotate-right", wxART_TOOLBAR), "Transform model"); 283 302 AnimToolbar->AddTool(ID_MENU_MODEL_GUIFIXTURE_ADD, "Add GUI fixture", wxArtProvider::GetBitmap("window-new", wxART_TOOLBAR), "Add GUI fixture"); 303 // AnimToolbar->AddTool(ID_MENU_MODEL_SKIN_ADD, "Add skin", wxArtProvider::GetBitmap("window-new", wxART_TOOLBAR), "Add skin"); 304 // AnimToolbar->AddTool(ID_MENU_MODEL_CHANNEL_ADD, "Add channel", wxArtProvider::GetBitmap("window-new", wxART_TOOLBAR), "Add channel"); 284 305 AnimToolbar->Realize(); 285 306 … … 578 599 else if (List==m_MeshesList) Insp=m_MeshInspector; 579 600 else if (List==m_AnimsList) Insp=m_AnimInspector; 601 else if (List==m_ChannelsList) Insp=m_ChannelInspector; 580 602 else if (List==m_GuiFixturesList) Insp=m_GuiFixtureInspector; 581 603 … … 722 744 case ID_MENU_VIEW_AUIPANE_ANIMS_LIST: PaneToggleShow(m_AUIManager.GetPane(m_AnimsList )); break; 723 745 case ID_MENU_VIEW_AUIPANE_ANIM_INSPECTOR: PaneToggleShow(m_AUIManager.GetPane(m_AnimInspector )); break; 746 case ID_MENU_VIEW_AUIPANE_CHANNELS_LIST: PaneToggleShow(m_AUIManager.GetPane(m_ChannelsList )); break; 747 case ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR: PaneToggleShow(m_AUIManager.GetPane(m_ChannelInspector )); break; 724 748 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; 725 750 case ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST: PaneToggleShow(m_AUIManager.GetPane(m_GuiFixturesList )); break; 726 751 case ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR: PaneToggleShow(m_AUIManager.GetPane(m_GuiFixtureInspector)); break; … … 755 780 case ID_MENU_VIEW_AUIPANE_ANIMS_LIST: UE.Check(m_AUIManager.GetPane(m_AnimsList ).IsShown()); break; 756 781 case ID_MENU_VIEW_AUIPANE_ANIM_INSPECTOR: UE.Check(m_AUIManager.GetPane(m_AnimInspector ).IsShown()); break; 782 case ID_MENU_VIEW_AUIPANE_CHANNELS_LIST: UE.Check(m_AUIManager.GetPane(m_ChannelsList ).IsShown()); break; 783 case ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR: UE.Check(m_AUIManager.GetPane(m_ChannelInspector ).IsShown()); break; 757 784 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; 758 786 case ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST: UE.Check(m_AUIManager.GetPane(m_GuiFixturesList ).IsShown()); break; 759 787 case ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR: UE.Check(m_AUIManager.GetPane(m_GuiFixtureInspector).IsShown()); break; … … 822 850 break; 823 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 // } 824 862 825 863 case ID_MENU_MODEL_LOAD_SUBMODEL: -
cafu/trunk/CaWE/ModelEditor/ChildFrame.hpp
r393 r394 35 35 { 36 36 class AnimInspectorT; 37 class ChannelInspectorT; 37 38 class ElementsPanelT; 38 39 class GlobalsInspectorT; … … 109 110 ElementsPanelT* m_AnimsList; 110 111 AnimInspectorT* m_AnimInspector; 112 ElementsPanelT* m_ChannelsList; 113 ChannelInspectorT* m_ChannelInspector; 111 114 ElementsPanelT* m_SkinsList; 115 // SkinInspectorT* m_SkinInspector; 112 116 ElementsPanelT* m_GuiFixturesList; 113 117 GuiFixInspectorT* m_GuiFixtureInspector; … … 133 137 ID_MENU_VIEW_AUIPANE_ANIMS_LIST, 134 138 ID_MENU_VIEW_AUIPANE_ANIM_INSPECTOR, 139 ID_MENU_VIEW_AUIPANE_CHANNELS_LIST, 140 ID_MENU_VIEW_AUIPANE_CHANNEL_INSPECTOR, 135 141 ID_MENU_VIEW_AUIPANE_SKINS_LIST, 142 // ID_MENU_VIEW_AUIPANE_SKIN_INSPECTOR, 136 143 ID_MENU_VIEW_AUIPANE_GUIFIXTURES_LIST, 137 144 ID_MENU_VIEW_AUIPANE_GUIFIXTURE_INSPECTOR, … … 149 156 ID_MENU_MODEL_TRANSFORM, 150 157 ID_MENU_MODEL_GUIFIXTURE_ADD, 158 // ID_MENU_MODEL_SKIN_ADD, 159 // ID_MENU_MODEL_CHANNEL_ADD, 151 160 ID_MENU_MODEL_LOAD_SUBMODEL, 152 161 ID_MENU_MODEL_UNLOAD_SUBMODELS -
cafu/trunk/CaWE/ModelEditor/Commands/Add.cpp
r390 r394 47 47 48 48 49 CommandAddT::CommandAddT(ModelDocumentT* ModelDoc, const CafuModelT::ChannelT& Channel) 50 : m_ModelDoc(ModelDoc), 51 m_Type(CHAN), 52 m_Channels() 53 { 54 m_Channels.PushBack(Channel); 55 } 56 57 49 58 bool CommandAddT::Do() 50 59 { … … 56 65 switch (m_Type) 57 66 { 67 case JOINT: 68 // If we supported adding joints, note that we had to update all channels as well. 69 break; 70 58 71 case MESH: 59 72 // If we supported adding meshes, note that we had to add a … … 77 90 break; 78 91 92 case CHAN: 93 for (unsigned long ChannelNr=0; ChannelNr<m_Channels.Size(); ChannelNr++) 94 { 95 Indices.PushBack(m_ModelDoc->GetModel()->m_Channels.Size()); 96 m_ModelDoc->GetModel()->m_Channels.PushBack(m_Channels[ChannelNr]); 97 } 98 break; 99 79 100 default: 80 101 break; … … 100 121 switch (m_Type) 101 122 { 123 case JOINT: 124 // For undoing the addition of joints, note that we had to update all channels as well. 125 break; 126 102 127 case MESH: 103 128 // For undoing the addition of a mesh, note that we had to remove … … 118 143 m_ModelDoc->GetModel()->m_GuiFixtures.DeleteBack(); 119 144 Indices.InsertAt(0, m_ModelDoc->GetModel()->m_GuiFixtures.Size()); 145 } 146 break; 147 148 case CHAN: 149 for (unsigned long ChannelNr=0; ChannelNr<m_Channels.Size(); ChannelNr++) 150 { 151 m_ModelDoc->GetModel()->m_Channels.DeleteBack(); 152 Indices.InsertAt(0, m_ModelDoc->GetModel()->m_Channels.Size()); 120 153 } 121 154 break; … … 157 190 break; 158 191 } 192 193 case CHAN: 194 { 195 Name=(m_Channels.Size()==1) ? wxString("Add channel") : wxString::Format("Add %lu channels", m_Channels.Size()); 196 break; 197 } 159 198 } 160 199 -
cafu/trunk/CaWE/ModelEditor/Commands/Add.hpp
r383 r394 40 40 CommandAddT(ModelDocumentT* ModelDoc, const CafuModelT::SkinT& Skin); 41 41 CommandAddT(ModelDocumentT* ModelDoc, const ArrayT<CafuModelT::GuiFixtureT>& GuiFixtures); 42 CommandAddT(ModelDocumentT* ModelDoc, const CafuModelT::ChannelT& Channel); 42 43 43 44 // CommandT implementation. … … 57 58 ArrayT<CafuModelT::SkinT> m_Skins; ///< The added skins (if m_Type==SKIN). 58 59 ArrayT<CafuModelT::GuiFixtureT> m_GuiFixtures; ///< The added GUI fixtures (if m_Type==GFIX). 60 ArrayT<CafuModelT::ChannelT> m_Channels; ///< The added channels (if m_Type==CHAN). 59 61 }; 60 62 } -
cafu/trunk/CaWE/ModelEditor/Commands/Delete.cpp
r383 r394 65 65 m_MeshInfos(), 66 66 m_Anims(), 67 m_Channels(), 67 68 m_Skins(), 68 69 m_GuiFixtures(), … … 78 79 case JOINT: m_Joints .PushBack(m_ModelDoc->GetModel()->GetJoints() [i]); break; 79 80 case ANIM: m_Anims .PushBack(m_ModelDoc->GetModel()->GetAnims() [i]); break; 81 case CHAN: m_Channels .PushBack(m_ModelDoc->GetModel()->GetChannels() [i]); break; 80 82 case SKIN: m_Skins .PushBack(m_ModelDoc->GetModel()->GetSkins() [i]); break; 81 83 case GFIX: m_GuiFixtures.PushBack(m_ModelDoc->GetModel()->GetGuiFixtures()[i]); break; … … 147 149 // - decide what to with meshes whose weights refer to the joint or one of its children (probably refuse to delete the joint), 148 150 // - unload the submodel (if any), 151 // - delete the joint also from the anim channels, 149 152 // - delete the joint also from the anim joints (this is easy), and restore the deleted anim joints on undo (not so easy). 150 153 // (It might help though to restrict deleting joints to one joint at a time.) … … 175 178 case JOINT: m_ModelDoc->GetModel()->m_Joints .RemoveAtAndKeepOrder(i); break; 176 179 case ANIM: m_ModelDoc->GetModel()->m_Anims .RemoveAtAndKeepOrder(i); break; 180 case CHAN: m_ModelDoc->GetModel()->m_Channels .RemoveAtAndKeepOrder(i); break; 177 181 case SKIN: m_ModelDoc->GetModel()->m_Skins .RemoveAtAndKeepOrder(i); break; 178 182 case GFIX: m_ModelDoc->GetModel()->m_GuiFixtures.RemoveAtAndKeepOrder(i); break; … … 215 219 case JOINT: m_ModelDoc->GetModel()->m_Joints .InsertAt(i, m_Joints [INr]); break; 216 220 case ANIM: m_ModelDoc->GetModel()->m_Anims .InsertAt(i, m_Anims [INr]); break; 221 case CHAN: m_ModelDoc->GetModel()->m_Channels .InsertAt(i, m_Channels [INr]); break; 217 222 case SKIN: m_ModelDoc->GetModel()->m_Skins .InsertAt(i, m_Skins [INr]); break; 218 223 case GFIX: m_ModelDoc->GetModel()->m_GuiFixtures.InsertAt(i, m_GuiFixtures[INr]); break; … … 255 260 case MESH: Name+=(m_Indices.Size()==1) ? "mesh" : "meshes"; break; 256 261 case ANIM: Name+=(m_Indices.Size()==1) ? "animation" : "animations"; break; 262 case CHAN: Name+=(m_Indices.Size()==1) ? "channel" : "channels"; break; 257 263 case SKIN: Name+=(m_Indices.Size()==1) ? "skin" : "skins"; break; 258 264 case GFIX: Name+=(m_Indices.Size()==1) ? "GUI fixture" : "GUI fixtures"; break; -
cafu/trunk/CaWE/ModelEditor/Commands/Delete.hpp
r383 r394 65 65 ArrayT<MeshInfoT> m_MeshInfos; ///< Information about the deleted meshes (if m_Type==MESH). 66 66 ArrayT<CafuModelT::AnimT> m_Anims; ///< The deleted anims (if m_Type==ANIM). 67 ArrayT<CafuModelT::ChannelT> m_Channels; ///< The deleted channels (if m_Type==CHAN). 67 68 ArrayT<CafuModelT::SkinT> m_Skins; ///< The deleted skins (if m_Type==SKIN). 68 69 ArrayT<CafuModelT::GuiFixtureT> m_GuiFixtures; ///< The deleted GUI fixtures (if m_Type==GFIX). -
cafu/trunk/CaWE/ModelEditor/Commands/Rename.cpp
r383 r394 77 77 case MESH: return "Rename mesh"; 78 78 case ANIM: return "Rename anim"; 79 case CHAN: return "Rename channel"; 79 80 case SKIN: return "Rename skin"; 80 81 case GFIX: return "Rename GUI fixture"; … … 93 94 case MESH: return m_ModelDoc->GetModel()->m_Meshes [m_ElemNr].Name; 94 95 case ANIM: return m_ModelDoc->GetModel()->m_Anims [m_ElemNr].Name; 96 case CHAN: return m_ModelDoc->GetModel()->m_Channels [m_ElemNr].Name; 95 97 case SKIN: return m_ModelDoc->GetModel()->m_Skins [m_ElemNr].Name; 96 98 case GFIX: return m_ModelDoc->GetModel()->m_GuiFixtures[m_ElemNr].Name; … … 110 112 case MESH: m_ModelDoc->UpdateAllObservers_MeshChanged (m_ElemNr); break; 111 113 case ANIM: m_ModelDoc->UpdateAllObservers_AnimChanged (m_ElemNr); break; 114 case CHAN: m_ModelDoc->UpdateAllObservers_ChannelChanged (m_ElemNr); break; 112 115 case SKIN: m_ModelDoc->UpdateAllObservers_SkinChanged (m_ElemNr); break; 113 116 case GFIX: m_ModelDoc->UpdateAllObservers_GuiFixtureChanged(m_ElemNr); break; -
cafu/trunk/CaWE/ModelEditor/ElementTypes.hpp
r383 r394 32 32 MESH =1, 33 33 ANIM =2, 34 SKIN =3, 35 GFIX =4 34 CHAN =3, 35 SKIN =4, 36 GFIX =5 36 37 }; 37 38 } -
cafu/trunk/CaWE/ModelEditor/ElementsList.cpp
r393 r394 50 50 : wxListView(Parent, wxID_ANY, wxDefaultPosition, Size, wxLC_REPORT | wxLC_EDIT_LABELS), 51 51 m_TYPE(Type), 52 m_NUM_DEFAULT_ITEMS(m_TYPE==SKIN ? 1 : 0),52 m_NUM_DEFAULT_ITEMS(m_TYPE==SKIN || m_TYPE==CHAN ? 1 : 0), 53 53 m_ModelDoc(MainFrame->GetModelDoc()), 54 54 m_MainFrame(MainFrame), 55 55 m_IsRecursiveSelfNotify(false) 56 56 { 57 wxASSERT(m_TYPE==MESH || m_TYPE==SKIN || m_TYPE==GFIX || m_TYPE==ANIM );57 wxASSERT(m_TYPE==MESH || m_TYPE==SKIN || m_TYPE==GFIX || m_TYPE==ANIM || m_TYPE==CHAN); 58 58 59 59 // TODO: Make it up to the caller code to call this? … … 146 146 147 147 148 void ElementsListT::Notify_ChannelChanged(SubjectT* Subject, unsigned int ChannelNr) 149 { 150 if (m_IsRecursiveSelfNotify) return; 151 if (m_TYPE!=CHAN) return; 152 153 InitListItems(); 154 } 155 156 148 157 void ElementsListT::Notify_SkinChanged(SubjectT* Subject, unsigned int SkinNr) 149 158 { … … 218 227 219 228 if (Sel.Find(ElemNr)!=-1) Select(ElemNr); 229 } 230 break; 231 232 case CHAN: 233 InsertItem(0, "all (default)"); 234 SetItem(0, 1, "-1"); 235 if (Sel.Size()==0) Select(0); 236 237 for (unsigned long ElemNr=0; ElemNr<m_ModelDoc->GetModel()->GetChannels().Size(); ElemNr++) 238 { 239 InsertItem(ElemNr+1, m_ModelDoc->GetModel()->GetChannels()[ElemNr].Name); 240 SetItem(ElemNr+1, 1, wxString::Format("%lu", ElemNr)); 241 242 if (Sel.Find(ElemNr)!=-1) Select(ElemNr+1); 220 243 } 221 244 break; … … 277 300 if (m_TYPE!=SKIN) Menu.Append(ID_MENU_INSPECT_EDIT, "Inspect / Edit\tEnter"); 278 301 Menu.Append(ID_MENU_RENAME, "Rename\tF2"); 279 if (m_TYPE==GFIX ) Menu.Append(ID_MENU_ADD_NEW, "Add/create new");302 if (m_TYPE==GFIX || m_TYPE==SKIN || m_TYPE==CHAN) Menu.Append(ID_MENU_ADD_NEW, "Add/create new"); 280 303 281 304 /* if (m_TYPE==MESH) … … 321 344 322 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)); 323 353 } 324 354 break; … … 465 495 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, GuiFixtures)); 466 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)); 503 } 467 504 break; 468 505 } … … 487 524 case ID_BUTTON_ADD: 488 525 { 489 UE.Enable(m_TYPE==SKIN || m_TYPE==GFIX );526 UE.Enable(m_TYPE==SKIN || m_TYPE==GFIX || m_TYPE==CHAN); 490 527 break; 491 528 } -
cafu/trunk/CaWE/ModelEditor/ElementsList.hpp
r393 r394 54 54 void Notify_MeshChanged(SubjectT* Subject, unsigned int MeshNr); 55 55 void Notify_AnimChanged(SubjectT* Subject, unsigned int AnimNr); 56 void Notify_ChannelChanged(SubjectT* Subject, unsigned int ChannelNr); 56 57 void Notify_SkinChanged(SubjectT* Subject, unsigned int SkinNr); 57 58 void Notify_GuiFixtureChanged(SubjectT* Subject, unsigned int GuiFixtureNr); -
cafu/trunk/CaWE/ModelEditor/ModelDocument.cpp
r383 r394 127 127 void ModelEditor::ModelDocumentT::SetSelection(ModelElementTypeT Type, const ArrayT<unsigned int>& NewSel) 128 128 { 129 wxASSERT(Type< 5);129 wxASSERT(Type<6); 130 130 m_Selection[Type]=NewSel; 131 131 -
cafu/trunk/CaWE/ModelEditor/ModelDocument.hpp
r383 r394 102 102 103 103 const CafuModelT* GetModel() const { return m_Model; } 104 const ArrayT<unsigned int>& GetSelection(ModelElementTypeT Type) const { wxASSERT(Type< 5); return m_Selection[Type]; }104 const ArrayT<unsigned int>& GetSelection(ModelElementTypeT Type) const { wxASSERT(Type<6); return m_Selection[Type]; } 105 105 const BoundingBox3fT& GetSequenceBB() const { return m_SequenceBB; } 106 106 int GetSelSkinNr() const; ///< Return the index number of the currently selected skin, or -1 when no skin (that is, the default skin) is selected. … … 137 137 138 138 CafuModelT* m_Model; ///< The model that is being edited. 139 ArrayT<unsigned int> m_Selection[ 5]; ///< The selected joints, meshes, animations, skins and GUI fixtures.139 ArrayT<unsigned int> m_Selection[6]; ///< The selected joints, meshes, animations, channels, skins and GUI fixtures. 140 140 BoundingBox3fT m_SequenceBB; ///< The bounding-box encompassing all frames of the currently selected animation sequence(s). 141 141 ArrayT<EditorMaterialI*> m_EditorMaterials; ///< One editor material for each material in the model (its material manager). -
cafu/trunk/CaWE/ModelEditor/ObserverPattern.cpp
r383 r394 102 102 103 103 104 void SubjectT::UpdateAllObservers_ChannelChanged(unsigned int ChannelNr) 105 { 106 for (unsigned long ObsNr=0; ObsNr<m_Observers.Size(); ObsNr++) 107 m_Observers[ObsNr]->Notify_ChannelChanged(this, ChannelNr); 108 } 109 110 104 111 void SubjectT::UpdateAllObservers_SkinChanged(unsigned int SkinNr) 105 112 { -
cafu/trunk/CaWE/ModelEditor/ObserverPattern.hpp
r388 r394 79 79 virtual void Notify_AnimChanged(SubjectT* Subject, unsigned int AnimNr) { } 80 80 81 /// Notifies the observer that an animation channel has changed. 82 /// @param Subject The model document with the model in which the channel has changed. 83 /// @param ChannelNr The number of the anim channel that has changed. 84 virtual void Notify_ChannelChanged(SubjectT* Subject, unsigned int ChannelNr) { } 85 81 86 /// Notifies the observer that a skin has changed. 82 87 /// @param Subject The model document with the model in which the skin has changed. … … 130 135 virtual void UpdateAllObservers_MeshChanged(unsigned int MeshNr); 131 136 virtual void UpdateAllObservers_AnimChanged(unsigned int AnimNr); 137 virtual void UpdateAllObservers_ChannelChanged(unsigned int ChannelNr); 132 138 virtual void UpdateAllObservers_SkinChanged(unsigned int SkinNr); 133 139 virtual void UpdateAllObservers_GuiFixtureChanged(unsigned int GuiFixtureNr); -
cafu/trunk/Libs/Models/Model_cmdl.hpp
r391 r394 48 48 namespace ModelEditor { class CommandTransformJointT; } 49 49 namespace ModelEditor { class CommandUpdateAnimT; } 50 namespace ModelEditor { class CommandUpdateChannelT; } 50 51 namespace ModelEditor { class CommandUpdateGuiFixtureT; } 51 52 … … 323 324 friend class ModelEditor::CommandTransformJointT; 324 325 friend class ModelEditor::CommandUpdateAnimT; 326 friend class ModelEditor::CommandUpdateChannelT; 325 327 friend class ModelEditor::CommandUpdateGuiFixtureT; 326 328
