Changeset 404 for cafu/trunk
- Timestamp:
- 10/09/11 23:19:43 (8 months ago)
- Location:
- cafu/trunk/Libs
- Files:
-
- 3 removed
- 3 modified
-
Models/Model_mdl.cpp (deleted)
-
Models/Model_mdl.h (deleted)
-
Models/Model_mdl.hpp (deleted)
-
Models/Model_proxy.cpp (modified) (2 diffs)
-
SConscript (modified) (1 diff)
-
SceneGraph/FaceNode.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cafu/trunk/Libs/Models/Model_proxy.cpp
r382 r404 24 24 #include "Loader_lwo.hpp" 25 25 #include "Loader_md5.hpp" 26 #include "Loader_mdl.hpp" 26 27 #include "Model_cmdl.hpp" 27 28 #include "Model_dlod.hpp" 28 29 #include "Model_dummy.hpp" 29 #include "Model_mdl.hpp"30 30 #include "Model_proxy.hpp" 31 31 #include "String.hpp" … … 120 120 try 121 121 { 122 const int Flags=ModelLoaderT::REMOVE_DEGEN_TRIANGLES | ModelLoaderT::REMOVE_UNUSED_VERTICES | ModelLoaderT::REMOVE_UNUSED_WEIGHTS; 123 122 124 // TODO: This duplicates the code in CaWE/ModelEditor/ModelDocument.cpp and should be combined elsewhere, e.g. into class ModelLoaderT. 123 if (cf::String::EndsWith(FileName, "ase" )) { LoaderAseT Loader(FileName); NewModel=new CafuModelT(Loader); } 124 else if (cf::String::EndsWith(FileName, "cmdl" )) { LoaderCafuT Loader(FileName); NewModel=new CafuModelT(Loader); } 125 // Better yet: Use the type system with the loaders, and be able to iterate over them. 126 // if (cf::String::EndsWith(FileName, "3ds" )) { LoaderFbxT Loader(FileName); NewModel=new CafuModelT(Loader); } 127 /*else*/ if (cf::String::EndsWith(FileName, "ase" )) { LoaderAseT Loader(FileName); NewModel=new CafuModelT(Loader); } 128 else if (cf::String::EndsWith(FileName, "cmdl" )) { LoaderCafuT Loader(FileName); NewModel=new CafuModelT(Loader); } 129 // else if (cf::String::EndsWith(FileName, "dae" )) { LoaderFbxT Loader(FileName); NewModel=new CafuModelT(Loader); } 130 // else if (cf::String::EndsWith(FileName, "dxf" )) { LoaderFbxT Loader(FileName); NewModel=new CafuModelT(Loader); } 131 // else if (cf::String::EndsWith(FileName, "fbx" )) { LoaderFbxT Loader(FileName); NewModel=new CafuModelT(Loader); } 125 132 else if (cf::String::EndsWith(FileName, "dlod" )) NewModel=new ModelDlodT(FileName); 126 else if (cf::String::EndsWith(FileName, "mdl" )) NewModel=new ModelMdlT (FileName); 127 else if (cf::String::EndsWith(FileName, "md5" )) { LoaderMd5T Loader(FileName); NewModel=new CafuModelT(Loader); } 128 else if (cf::String::EndsWith(FileName, "md5mesh")) { LoaderMd5T Loader(FileName); NewModel=new CafuModelT(Loader); } 129 else if (cf::String::EndsWith(FileName, "lwo" )) { LoaderLwoT Loader(FileName); NewModel=new CafuModelT(Loader); } 133 else if (cf::String::EndsWith(FileName, "lwo" )) { LoaderLwoT Loader(FileName); NewModel=new CafuModelT(Loader); } 134 else if (cf::String::EndsWith(FileName, "mdl" )) { LoaderHL1mdlT Loader(FileName, Flags); NewModel=new CafuModelT(Loader); } // Need these flags in order to pass all assertions in the CafuModelT code. 135 else if (cf::String::EndsWith(FileName, "md5" )) { LoaderMd5T Loader(FileName); NewModel=new CafuModelT(Loader); } 136 else if (cf::String::EndsWith(FileName, "md5mesh")) { LoaderMd5T Loader(FileName); NewModel=new CafuModelT(Loader); } 137 // else if (cf::String::EndsWith(FileName, "obj" )) { LoaderFbxT Loader(FileName); NewModel=new CafuModelT(Loader); } 130 138 else throw ModelT::LoadError(); 139 140 // LoaderAssimpT Loader(fn, Flags); 141 // NewModel=new CafuModelT(Loader); 131 142 } 132 143 catch (const ModelT::LoadError&) -
cafu/trunk/Libs/SConscript
r400 r404 15 15 Models/Loader.cpp Models/Loader_ase.cpp Models/Loader_cmdl.cpp Models/Loader_lwo.cpp Models/Loader_md5.cpp 16 16 Models/Loader_mdl.cpp Models/AnimPose.cpp 17 Models/Model_cmdl.cpp Models/Model_dlod.cpp Models/Model_dummy.cpp Models/Model_ mdl.cpp Models/Model_proxy.cpp17 Models/Model_cmdl.cpp Models/Model_dlod.cpp Models/Model_dummy.cpp Models/Model_proxy.cpp 18 18 Network/Network.cpp ParticleEngine/ParticleEngineMS.cpp PlatformAux.cpp Terrain/Terrain.cpp 19 19 TextParser/TextParser.cpp -
cafu/trunk/Libs/SceneGraph/FaceNode.cpp
r285 r404 605 605 606 606 // Render the silhouette quads. 607 static MatSys::MeshT SilhouetteMesh(MatSys::MeshT::QuadStrip , MatSys::MeshT::CCW);607 static MatSys::MeshT SilhouetteMesh(MatSys::MeshT::QuadStrip); 608 608 SilhouetteMesh.Vertices.Overwrite(); 609 609 SilhouetteMesh.Vertices.PushBackEmpty(2*Mesh.Vertices.Size()+2); … … 633 633 634 634 // Render the occluders near cap (front-facing wrt. the light source). 635 // (The MatSys expects vertices for front-facing polygons to be specified in CCW order.636 // However, as we are considering a *back-facing* polygon as a occluder (oriented CW when looked at from behind),637 // we have to reverse the order of its vertices in order to turn it into a CCW ordered, front-facing polygon.)638 static MatSys::MeshT M_front(MatSys::MeshT::TriangleFan, MatSys::MeshT::CCW); 639 M_front.Vertices.Overwrite();640 M_front.Vertices.PushBackEmpty(Mesh.Vertices.Size());635 // As we are considering a *back-facing* polygon as a occluder (oriented CCW when looked at from behind), 636 // we have to reverse the order of its vertices in order to turn it into a CW ordered, front-facing polygon. 637 static MatSys::MeshT CapMesh(MatSys::MeshT::TriangleFan); // The default winding order is "CW". 638 639 CapMesh.Vertices.Overwrite(); 640 CapMesh.Vertices.PushBackEmpty(Mesh.Vertices.Size()); 641 641 642 642 for (unsigned long VertexNr=0; VertexNr<Mesh.Vertices.Size(); VertexNr++) 643 M_front.Vertices[M_front.Vertices.Size()-VertexNr-1].SetOrigin(Mesh.Vertices[VertexNr].Origin[0],643 CapMesh.Vertices[CapMesh.Vertices.Size()-VertexNr-1].SetOrigin(Mesh.Vertices[VertexNr].Origin[0], 644 644 Mesh.Vertices[VertexNr].Origin[1], 645 645 Mesh.Vertices[VertexNr].Origin[2], 1.0); 646 646 647 647 // What a pity the order isn't the other way round. Could then simply write: MatSys::Renderer->RenderMesh(Mesh); 648 MatSys::Renderer->RenderMesh( M_front);648 MatSys::Renderer->RenderMesh(CapMesh); 649 649 650 650 … … 652 652 // As we are already dealing with a back-facing polygon, the vertex order is already as required, 653 653 // we just have to project them to infinity as seen from the light source. 654 static MatSys::MeshT M_back(MatSys::MeshT::TriangleFan, MatSys::MeshT::CCW);655 M_back.Vertices.Overwrite();656 M_back.Vertices.PushBackEmpty(Mesh.Vertices.Size());657 658 654 for (unsigned long VertexNr=0; VertexNr<Mesh.Vertices.Size(); VertexNr++) 659 M_back.Vertices[VertexNr].SetOrigin(Mesh.Vertices[VertexNr].Origin[0]-LightPos.x,660 Mesh.Vertices[VertexNr].Origin[1]-LightPos.y,661 Mesh.Vertices[VertexNr].Origin[2]-LightPos.z, 0.0);662 663 MatSys::Renderer->RenderMesh( M_back);655 CapMesh.Vertices[VertexNr].SetOrigin(Mesh.Vertices[VertexNr].Origin[0]-LightPos.x, 656 Mesh.Vertices[VertexNr].Origin[1]-LightPos.y, 657 Mesh.Vertices[VertexNr].Origin[2]-LightPos.z, 0.0); 658 659 MatSys::Renderer->RenderMesh(CapMesh); 664 660 } 665 661
