nuclear@0: #include "goat3d.h" nuclear@0: #include "goat3d_impl.h" nuclear@0: nuclear@0: Scene::Scene() nuclear@0: : name("unnamed"), ambient(0.05, 0.05, 0.05) nuclear@0: { nuclear@0: } nuclear@0: nuclear@0: Scene::~Scene() nuclear@0: { nuclear@0: clear(); nuclear@0: } nuclear@0: nuclear@0: void Scene::clear() nuclear@0: { nuclear@0: for(size_t i=0; iname = name; nuclear@0: } nuclear@0: nuclear@0: const char *Scene::get_name() const nuclear@0: { nuclear@0: return name.c_str(); nuclear@0: } nuclear@8: nuclear@8: void Scene::set_ambient(const Vector3 &amb) nuclear@8: { nuclear@8: ambient = amb; nuclear@8: } nuclear@8: nuclear@8: const Vector3 &Scene::get_ambient() const nuclear@8: { nuclear@8: return ambient; nuclear@8: } nuclear@8: nuclear@8: void Scene::add_material(Material *mat) nuclear@8: { nuclear@8: materials.push_back(mat); nuclear@8: } nuclear@8: nuclear@8: Material *Scene::get_material(int idx) const nuclear@8: { nuclear@8: return idx >=0 && idx < (int)materials.size() ? materials[idx] : 0; nuclear@8: } nuclear@8: nuclear@8: Material *Scene::get_material(const char *name) const nuclear@8: { nuclear@8: for(size_t i=0; iname == std::string(name)) { nuclear@8: return materials[i]; nuclear@8: } nuclear@8: } nuclear@8: return 0; nuclear@8: } nuclear@8: nuclear@8: void Scene::add_mesh(Mesh *mesh) nuclear@8: { nuclear@8: meshes.push_back(mesh); nuclear@8: } nuclear@8: nuclear@8: Mesh *Scene::get_mesh(int idx) const nuclear@8: { nuclear@8: return idx >= 0 && idx < (int)meshes.size() ? meshes[idx] : 0; nuclear@8: } nuclear@8: nuclear@8: Mesh *Scene::get_mesh(const char *name) const nuclear@8: { nuclear@8: for(size_t i=0; iname == std::string(name)) { nuclear@8: return meshes[i]; nuclear@8: } nuclear@8: } nuclear@8: return 0; nuclear@8: } nuclear@8: nuclear@8: void Scene::add_light(Light *light) nuclear@8: { nuclear@8: lights.push_back(light); nuclear@8: } nuclear@8: nuclear@8: Light *Scene::get_light(int idx) const nuclear@8: { nuclear@8: return idx >= 0 && idx < (int)lights.size() ? lights[idx] : 0; nuclear@8: } nuclear@8: nuclear@8: Light *Scene::get_light(const char *name) const nuclear@8: { nuclear@8: for(size_t i=0; iname == std::string(name)) { nuclear@8: return lights[i]; nuclear@8: } nuclear@8: } nuclear@8: return 0; nuclear@8: } nuclear@8: nuclear@8: void Scene::add_camera(Camera *cam) nuclear@8: { nuclear@8: cameras.push_back(cam); nuclear@8: } nuclear@8: nuclear@8: Camera *Scene::get_camera(int idx) const nuclear@8: { nuclear@8: return idx >= 0 && idx < (int)cameras.size() ? cameras[idx] : 0; nuclear@8: } nuclear@8: nuclear@8: Camera *Scene::get_camera(const char *name) const nuclear@8: { nuclear@8: for(size_t i=0; iname == std::string(name)) { nuclear@8: return cameras[i]; nuclear@8: } nuclear@8: } nuclear@8: return 0; nuclear@8: } nuclear@8: nuclear@8: void Scene::add_node(Node *node) nuclear@8: { nuclear@8: nodes.push_back(node); nuclear@8: } nuclear@8: nuclear@8: Node *Scene::get_node(int idx) const nuclear@8: { nuclear@8: return idx >= 0 && idx < (int)nodes.size() ? nodes[idx] : 0; nuclear@8: } nuclear@8: nuclear@8: Node *Scene::get_node(const char *name) const nuclear@8: { nuclear@8: for(size_t i=0; iget_name(), name) == 0) { nuclear@8: return nodes[i]; nuclear@8: } nuclear@8: } nuclear@8: return 0; nuclear@8: } nuclear@8: nuclear@8: bool Scene::load(goat3d_io *io) nuclear@8: { nuclear@8: return false; nuclear@8: } nuclear@8: nuclear@8: bool Scene::save(goat3d_io *io) const nuclear@8: { nuclear@8: return false; nuclear@8: }