From cf170c91555c502bff6bc8198a41c9dc456b3a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 9 Jan 2012 21:49:04 +0100 Subject: [PATCH] Separate accessors for cameras and lights from objects in AbstractImporter. --- src/AbstractImporter.h | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/AbstractImporter.h b/src/AbstractImporter.h index f951c31dd..6377324ba 100644 --- a/src/AbstractImporter.h +++ b/src/AbstractImporter.h @@ -29,6 +29,8 @@ namespace Magnum { class AbstractShaderProgram; class AbstractTexture; class AbstractMaterial; +class Camera; +class Light; class Mesh; class Object; class Scene; @@ -100,7 +102,31 @@ class AbstractImporter: public Corrade::PluginManager::Plugin { */ virtual inline std::shared_ptr scene(size_t id) { return nullptr; } - /** @brief Object count */ + /** @brief Light count */ + virtual inline size_t lightCount() const { return 0; } + + /** + * @brief Light + * @param id Light ID, from range [0, lightCount()). + * + * Returns (shared) pointer to given light or nullptr, if no such + * light exists. + */ + virtual inline std::shared_ptr light(size_t id) { return nullptr; } + + /** @brief Camera count */ + virtual inline size_t cameraCount() const { return 0; } + + /** + * @brief Camera + * @param id Camera ID, from range [0, cameraCount()). + * + * Returns (shared) pointer to given camera or nullptr, if no such + * camera exists. + */ + virtual inline std::shared_ptr camera(size_t id) { return nullptr; } + + /** @brief Object count (without lights and cameras) */ virtual inline size_t objectCount() const { return 0; } /**