nuclear@12: /* nuclear@12: eqemu - electronic queue system emulator nuclear@12: Copyright (C) 2014 John Tsiombikas , nuclear@12: Eleni-Maria Stea nuclear@12: nuclear@12: This program is free software: you can redistribute it and/or modify nuclear@12: it under the terms of the GNU General Public License as published by nuclear@12: the Free Software Foundation, either version 3 of the License, or nuclear@12: (at your option) any later version. nuclear@12: nuclear@12: This program is distributed in the hope that it will be useful, nuclear@12: but WITHOUT ANY WARRANTY; without even the implied warranty of nuclear@12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nuclear@12: GNU General Public License for more details. nuclear@12: nuclear@12: You should have received a copy of the GNU General Public License nuclear@12: along with this program. If not, see . nuclear@12: */ nuclear@3: #ifndef SCENE_H_ nuclear@3: #define SCENE_H_ nuclear@3: nuclear@3: #include nuclear@3: #include nuclear@3: #include "mesh.h" nuclear@3: #include "object.h" nuclear@3: nuclear@3: class Scene { nuclear@3: private: nuclear@3: std::vector objects; nuclear@3: std::vector meshes; nuclear@3: nuclear@3: bool load_obj(FILE *fp); // defined in objfile.cc nuclear@3: nuclear@3: public: nuclear@3: ~Scene(); nuclear@3: nuclear@3: bool load(const char *fname); nuclear@3: nuclear@3: void add_object(Object *obj); nuclear@3: void add_mesh(Mesh *mesh); nuclear@3: nuclear@3: int get_num_objects() const; nuclear@3: int get_num_meshes() const; nuclear@3: nuclear@3: Object *get_object(int idx) const; nuclear@3: Mesh *get_mesh(int idx) const; nuclear@3: nuclear@4: Object *get_object(const char *name) const; nuclear@6: bool remove_object(Object *obj); nuclear@4: nuclear@3: void update(long msec); nuclear@3: void render() const; nuclear@3: }; nuclear@3: nuclear@3: #endif // SCENE_H_