Fix issue in Rocket.lua script.
[Cafu-Engine.git] / Libs / Models / Loader_dummy.cpp
blob6949392f9aa776ad27c302f2dfce4307fba59aa3
1 /*
2 Cafu Engine, http://www.cafu.de/
3 Copyright (c) Carsten Fuchs and other contributors.
4 This project is licensed under the terms of the MIT license.
5 */
7 #include "Loader_dummy.hpp"
8 #include "MaterialSystem/Material.hpp"
9 #include "Math3D/Angles.hpp"
12 LoaderDummyT::LoaderDummyT(const std::string& FileName, int Flags)
13 : ModelLoaderT(FileName, Flags)
18 namespace
20 void AddVertex(CafuModelT::MeshT& Mesh, const Vector3fT& Pos, float u, float v)
22 Mesh.Weights.PushBackEmpty();
23 CafuModelT::MeshT::WeightT& Weight=Mesh.Weights[Mesh.Weights.Size()-1];
25 Weight.JointIdx=0;
26 Weight.Weight =0.0f;
27 Weight.Pos =Pos;
29 Mesh.Vertices.PushBackEmpty();
30 CafuModelT::MeshT::VertexT& Vertex=Mesh.Vertices[Mesh.Vertices.Size()-1];
32 Vertex.u =u;
33 Vertex.v =v;
34 Vertex.FirstWeightIdx=Mesh.Weights.Size()-1;
35 Vertex.NumWeights =1;
40 void LoaderDummyT::Load(ArrayT<CafuModelT::JointT>& Joints, ArrayT<CafuModelT::MeshT>& Meshes, ArrayT<CafuModelT::AnimT>& Anims, MaterialManagerImplT& MaterialMan)
42 // Create a default "identity" joint.
43 // That single joint is used for (shared by) all weights of all meshes.
44 Joints.PushBackEmpty();
46 Joints[0].Name ="root";
47 Joints[0].Parent=-1;
48 // Joints[0].Pos =Vector3fT();
49 // Joints[0].Qtr =Vector3fT(); // Identity quaternion...
50 Joints[0].Scale =Vector3fT(1.0f, 1.0f, 1.0f);
52 Meshes.PushBackEmpty();
53 CafuModelT::MeshT& Mesh=Meshes[0];
55 Mesh.Name ="cone";
56 Mesh.Material=MaterialMan.RegisterMaterial(CreateDefaultMaterial("dummy"));
58 const float Height=64.0f;
59 const float Radius=16.0f;
60 const unsigned int Facets=5;
62 AddVertex(Mesh, Vector3fT(0, 0, Height), 0, 0);
64 for (unsigned int i=0; i<Facets; i++)
66 const float f=float(i) / Facets;
67 const float a=float(2.0 * cf::math::AnglesT<double>::PI) * f;
69 AddVertex(Mesh, Vector3fT(cos(a)*Radius, sin(a)*Radius, 0), f, 1.0f);
72 for (unsigned int i=0; i<Facets; i++)
74 Mesh.Triangles.PushBack(CafuModelT::MeshT::TriangleT(0, ((i+1) % Facets)+1, i+1));
75 Mesh.Triangles[i].SmoothGroups=0x01;
78 for (unsigned int i=2; i<Facets; i++)
80 Mesh.Triangles.PushBack(CafuModelT::MeshT::TriangleT(1, i, i+1));
85 void LoaderDummyT::Load(ArrayT<CafuModelT::SkinT>& Skins, const MaterialManagerImplT& MaterialMan)
90 void LoaderDummyT::Load(ArrayT<CafuModelT::GuiFixtureT>& GuiFixtures)
95 void LoaderDummyT::Load(ArrayT<CafuModelT::ChannelT>& Channels)
100 bool LoaderDummyT::Load(unsigned int Level, CafuModelT*& DlodModel, float& DlodDist)
102 return false;