public void AddTeapots(SceneGraph parent, int children) { int childs = children; Mesh m1 = new Mesh(parent.pos + new Vector3(-13/childs, 0, 0), 0.5f/childs, "../../assets/teapot.obj"); Mesh m2 = new Mesh(parent.pos + new Vector3(13/childs, 0, 0), 0.5f/childs, "../../assets/teapot.obj"); Mesh m3 = new Mesh(parent.pos + new Vector3(0, 0, -13/childs), 0.5f/childs, "../../assets/teapot.obj"); Mesh m4 = new Mesh(parent.pos + new Vector3(0, 0, 13/childs), 0.5f/childs, "../../assets/teapot.obj"); parent.AddChildNode(m1); parent.AddChildNode(m2); parent.AddChildNode(m3); parent.AddChildNode(m4); if (childs < 2) { AddTeapots(m1, childs+1); AddTeapots(m2, childs+1); AddTeapots(m3, childs+1); AddTeapots(m4, childs+1); } }
// initialize public void Init() { // load teapot mesh = new Mesh(new Vector3(0,0,0), 1, "../../assets/teapot.obj"); floor = new Mesh(new Vector3(0, 0, 0), 1, "../../assets/floor.obj"); text = new Mesh(new Vector3(0, 10, 0), 1, "../../assets/text.obj"); // initialize stopwatch timer = new Stopwatch(); timer.Reset(); timer.Start(); // create shaders shader = new Shader("../../shaders/vs.glsl", "../../shaders/fs.glsl"); // load a texture wood = new Texture("../../assets/wood.jpg"); root = new SceneGraph(new Vector3(0,1,0), 1); root.AddChildNode(mesh); mesh.AddChildNode(floor); mesh.AddChildNode(text); AddTeapots(mesh, 1); }