Changeset 390
- Timestamp:
- 09/21/11 11:37:12 (8 months ago)
- Location:
- cafu/trunk
- Files:
-
- 5 modified
- 2 moved
-
CaWE/ModelEditor/Commands/Add.cpp (modified) (3 diffs)
-
CaWE/ModelEditor/Commands/SetMaterial.cpp (moved) (moved from cafu/trunk/CaWE/ModelEditor/Commands/SetMeshMaterial.cpp) (8 diffs)
-
CaWE/ModelEditor/Commands/SetMaterial.hpp (moved) (moved from cafu/trunk/CaWE/ModelEditor/Commands/SetMeshMaterial.hpp) (2 diffs)
-
CaWE/ModelEditor/MeshInspector.cpp (modified) (3 diffs)
-
CaWE/ModelEditor/SkinsList.cpp (modified) (2 diffs)
-
Libs/Models/Model_cmdl.cpp (modified) (2 diffs)
-
Libs/Models/Model_cmdl.hpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cafu/trunk/CaWE/ModelEditor/Commands/Add.cpp
r384 r390 32 32 m_Skins() 33 33 { 34 wxASSERT(Skin.Materials.Size() == m_ModelDoc->GetModel()->GetMeshes().Size()); 35 wxASSERT(Skin.RenderMaterials.Size() == m_ModelDoc->GetModel()->GetMeshes().Size()); 36 34 37 m_Skins.PushBack(Skin); 35 38 } … … 53 56 switch (m_Type) 54 57 { 58 case MESH: 59 // If we supported adding meshes, note that we had to add a 60 // new "NULL" material (and render material) to each skin as well. 61 break; 62 55 63 case SKIN: 56 64 for (unsigned long SkinNr=0; SkinNr<m_Skins.Size(); SkinNr++) … … 92 100 switch (m_Type) 93 101 { 102 case MESH: 103 // For undoing the addition of a mesh, note that we had to remove 104 // the related material (and render material) in each skin as well. 105 break; 106 94 107 case SKIN: 95 108 for (unsigned long SkinNr=0; SkinNr<m_Skins.Size(); SkinNr++) -
cafu/trunk/CaWE/ModelEditor/Commands/SetMaterial.cpp
r383 r390 20 20 */ 21 21 22 #include "SetM eshMaterial.hpp"22 #include "SetMaterial.hpp" 23 23 #include "../ModelDocument.hpp" 24 24 #include "MaterialSystem/Renderer.hpp" … … 29 29 30 30 31 CommandSetM eshMaterialT::CommandSetMeshMaterialT(ModelDocumentT* ModelDoc, unsigned int MeshNr, int SkinNr, const wxString& NewName)31 CommandSetMaterialT::CommandSetMaterialT(ModelDocumentT* ModelDoc, unsigned int MeshNr, int SkinNr, const wxString& NewName) 32 32 : m_ModelDoc(ModelDoc), 33 33 m_MeshNr(MeshNr), … … 39 39 40 40 41 bool CommandSetM eshMaterialT::Do()41 bool CommandSetMaterialT::Do() 42 42 { 43 43 wxASSERT(!m_Done); … … 60 60 } 61 61 62 m_ModelDoc->UpdateAllObservers_MeshChanged(m_MeshNr); 62 if (m_SkinNr<0) m_ModelDoc->UpdateAllObservers_MeshChanged(m_MeshNr); 63 else m_ModelDoc->UpdateAllObservers_SkinChanged(m_SkinNr); 64 63 65 m_Done=true; 64 66 return true; … … 66 68 67 69 68 void CommandSetM eshMaterialT::Undo()70 void CommandSetMaterialT::Undo() 69 71 { 70 72 wxASSERT(m_Done); … … 81 83 } 82 84 83 m_ModelDoc->UpdateAllObservers_MeshChanged(m_MeshNr); 85 if (m_SkinNr<0) m_ModelDoc->UpdateAllObservers_MeshChanged(m_MeshNr); 86 else m_ModelDoc->UpdateAllObservers_SkinChanged(m_SkinNr); 87 84 88 m_Done=false; 85 89 } 86 90 87 91 88 MaterialT*& CommandSetM eshMaterialT::GetMaterial()92 MaterialT*& CommandSetMaterialT::GetMaterial() 89 93 { 90 94 if (m_SkinNr<0) … … 95 99 96 100 97 MatSys::RenderMaterialT*& CommandSetM eshMaterialT::GetRenderMaterial()101 MatSys::RenderMaterialT*& CommandSetMaterialT::GetRenderMaterial() 98 102 { 99 103 if (m_SkinNr<0) … … 104 108 105 109 106 wxString CommandSetM eshMaterialT::GetName() const110 wxString CommandSetMaterialT::GetName() const 107 111 { 108 112 return "Assign material"; -
cafu/trunk/CaWE/ModelEditor/Commands/SetMaterial.hpp
r383 r390 20 20 */ 21 21 22 #ifndef _MODELEDITOR_SET_M ESH_MATERIAL_HPP_23 #define _MODELEDITOR_SET_M ESH_MATERIAL_HPP_22 #ifndef _MODELEDITOR_SET_MATERIAL_HPP_ 23 #define _MODELEDITOR_SET_MATERIAL_HPP_ 24 24 25 25 #include "../../CommandPattern.hpp" … … 34 34 class ModelDocumentT; 35 35 36 class CommandSetMeshMaterialT : public CommandT 36 /// This command sets a new material for a given mesh in a given skin. 37 class CommandSetMaterialT : public CommandT 37 38 { 38 39 public: 39 40 40 CommandSetM eshMaterialT(ModelDocumentT* ModelDoc, unsigned int MeshNr, int SkinNr, const wxString& NewName);41 CommandSetMaterialT(ModelDocumentT* ModelDoc, unsigned int MeshNr, int SkinNr, const wxString& NewName); 41 42 42 43 // CommandT implementation. -
cafu/trunk/CaWE/ModelEditor/MeshInspector.cpp
r383 r390 24 24 #include "ModelDocument.hpp" 25 25 #include "Commands/Rename.hpp" 26 #include "Commands/SetM eshMaterial.hpp"26 #include "Commands/SetMaterial.hpp" 27 27 28 28 #include "../EditorMaterial.hpp" … … 177 177 178 178 Append(new MaterialPropertyT(wxString::Format("Material (%s)", m_ModelDoc->GetSelSkinString()), 179 wxPG_LABEL, Mat ? Mat->Name : "<NULL>", m_ModelDoc));179 "Material", Mat ? Mat->Name : "<NULL>", m_ModelDoc)); 180 180 181 181 wxPGProperty* UseGivenTS=Append(new wxBoolProperty("Use given TS", wxPG_LABEL, false)); … … 225 225 226 226 if (PropName=="Name" ) ok=m_Parent->SubmitCommand(new CommandRenameT(m_ModelDoc, MESH, MeshNr, Event.GetValue().GetString())); 227 else if (PropName=="Material") ok=m_Parent->SubmitCommand(new CommandSetM eshMaterialT(m_ModelDoc, MeshNr, m_ModelDoc->GetSelSkinNr(), Event.GetValue().GetString()));227 else if (PropName=="Material") ok=m_Parent->SubmitCommand(new CommandSetMaterialT(m_ModelDoc, MeshNr, m_ModelDoc->GetSelSkinNr(), Event.GetValue().GetString())); 228 228 else 229 229 { -
cafu/trunk/CaWE/ModelEditor/SkinsList.cpp
r383 r390 195 195 196 196 Skin.Name="New Skin"; 197 while (Skin.Materials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.Materials.PushBack(NULL); 198 while (Skin.RenderMaterials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.RenderMaterials.PushBack(NULL); 197 199 198 200 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Skin)); … … 326 328 327 329 Skin.Name="New Skin"; 330 while (Skin.Materials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.Materials.PushBack(NULL); 331 while (Skin.RenderMaterials.Size() < m_ModelDoc->GetModel()->GetMeshes().Size()) Skin.RenderMaterials.PushBack(NULL); 328 332 329 333 m_MainFrame->SubmitCommand(new CommandAddT(m_ModelDoc, Skin)); -
cafu/trunk/Libs/Models/Model_cmdl.cpp
r382 r390 239 239 // if (m_Meshes.Size()==0) throw ModelT::LoadError(); // Consider models with no meshes as valid, skeleton-only meshes are sometimes useful for testing. 240 240 241 // Make sure that each skin has as many materials as there are meshes. 242 for (unsigned long SkinNr=0; SkinNr<m_Skins.Size(); SkinNr++) 243 { 244 SkinT& Skin=m_Skins[SkinNr]; 245 246 while (Skin.Materials.Size() > m_Meshes.Size()) Skin.Materials.DeleteBack(); 247 while (Skin.Materials.Size() < m_Meshes.Size()) Skin.Materials.PushBack(NULL); 248 249 while (Skin.RenderMaterials.Size() > m_Meshes.Size()) Skin.RenderMaterials.DeleteBack(); 250 while (Skin.RenderMaterials.Size() < m_Meshes.Size()) Skin.RenderMaterials.PushBack(NULL); 251 } 252 241 253 InitMeshes(); 242 254 … … 255 267 SkinT& Skin=m_Skins[SkinNr]; 256 268 257 assert(Skin.Materials.Size() ==m_Meshes.Size());258 assert(Skin. Materials.Size()==Skin.RenderMaterials.Size());269 assert(Skin.Materials.Size() ==m_Meshes.Size()); 270 assert(Skin.RenderMaterials.Size()==m_Meshes.Size()); 259 271 260 272 for (unsigned long MatNr=0; MatNr<Skin.Materials.Size(); MatNr++) -
cafu/trunk/Libs/Models/Model_cmdl.hpp
r383 r390 39 39 namespace ModelEditor { class CommandSetAnimFPST; } 40 40 namespace ModelEditor { class CommandSetAnimNextT; } 41 namespace ModelEditor { class CommandSetM eshMaterialT; }41 namespace ModelEditor { class CommandSetMaterialT; } 42 42 namespace ModelEditor { class CommandTransformJointT; } 43 43 namespace ModelEditor { class CommandUpdateAnimT; } … … 292 292 friend class ModelEditor::CommandSetAnimFPST; 293 293 friend class ModelEditor::CommandSetAnimNextT; 294 friend class ModelEditor::CommandSetM eshMaterialT;294 friend class ModelEditor::CommandSetMaterialT; 295 295 friend class ModelEditor::CommandTransformJointT; 296 296 friend class ModelEditor::CommandUpdateAnimT;
