goat3d

annotate src/goat3d.cc @ 0:2918358f5e6d

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 17 Aug 2013 16:10:26 +0300
parents
children cd71f0b92f44
rev   line source
nuclear@0 1 #include "goat3d.h"
nuclear@0 2 #include "goat3d_impl.h"
nuclear@0 3
nuclear@0 4 static void delete_node_tree(Node *n);
nuclear@0 5
nuclear@0 6 Scene::Scene()
nuclear@0 7 : name("unnamed"), ambient(0.05, 0.05, 0.05)
nuclear@0 8 {
nuclear@0 9 }
nuclear@0 10
nuclear@0 11 Scene::~Scene()
nuclear@0 12 {
nuclear@0 13 clear();
nuclear@0 14 }
nuclear@0 15
nuclear@0 16 void Scene::clear()
nuclear@0 17 {
nuclear@0 18 for(size_t i=0; i<materials.size(); i++) {
nuclear@0 19 delete materials[i];
nuclear@0 20 }
nuclear@0 21 materials.clear();
nuclear@0 22
nuclear@0 23 for(size_t i=0; i<meshes.size(); i++) {
nuclear@0 24 delete meshes[i];
nuclear@0 25 }
nuclear@0 26 meshes.clear();
nuclear@0 27
nuclear@0 28 for(size_t i=0; i<lights.size(); i++) {
nuclear@0 29 delete lights[i];
nuclear@0 30 }
nuclear@0 31 lights.clear();
nuclear@0 32
nuclear@0 33 for(size_t i=0; i<cameras.size(); i++) {
nuclear@0 34 delete cameras[i];
nuclear@0 35 }
nuclear@0 36 cameras.clear();
nuclear@0 37
nuclear@0 38 for(size_t i=0; i<nodes.size(); i++) {
nuclear@0 39 delete_node_tree(nodes[i]);
nuclear@0 40 }
nuclear@0 41 nodes.clear();
nuclear@0 42
nuclear@0 43 name = "unnamed";
nuclear@0 44 }
nuclear@0 45
nuclear@0 46 static void delete_node_tree(Node *n)
nuclear@0 47 {
nuclear@0 48 for(int i=0; i<n->get_num_children(); i++) {
nuclear@0 49 delete_node_tree(n->get_child(i));
nuclear@0 50 }
nuclear@0 51 delete n;
nuclear@0 52 }
nuclear@0 53
nuclear@0 54 void Scene::set_name(const char *name)
nuclear@0 55 {
nuclear@0 56 this->name = name;
nuclear@0 57 }
nuclear@0 58
nuclear@0 59 const char *Scene::get_name() const
nuclear@0 60 {
nuclear@0 61 return name.c_str();
nuclear@0 62 }