+++ /dev/null
-#ifndef MSP_GL_OBJETCINSTANCE_H_
-#define MSP_GL_OBJETCINSTANCE_H_
-
-#include <string>
-#include "object.h"
-#include "placeable.h"
-
-namespace Msp {
-namespace GL {
-
-/**
-Represents a single instance of an Object. Thanks to being derived from
-Placeable in can be positioned without additional effort. Other instance
-parameters can be set by overriding the hook functions.
-
-ObjectInstances can benefit from being put in an InstanceScene, which will
-render all instances of the same object consecutively.
-*/
-class ObjectInstance: public PlacedRenderable
-{
-public:
- class Loader: public DataFile::ObjectLoader<ObjectInstance>
- {
- public:
- Loader(ObjectInstance &);
-
- private:
- void transform();
- };
-
-protected:
- const Object &object;
-
-public:
- ObjectInstance(const Object &);
-
- const Object &get_object() const { return object; }
- virtual IntPtr get_instance_key() const { return reinterpret_cast<IntPtr>(&object); }
-
- virtual const Geometry::BoundingSphere<float, 3> *get_bounding_sphere() const { return object.get_bounding_sphere(); }
-
- virtual void render(Renderer &, const Tag & = Tag()) const;
-
- /** Hook function, called from Object just before rendering the mesh.
- Renderer state will have been pushed before this is called. */
- virtual void setup_render(Renderer &, const Tag &) const;
-
- /** Hook function, called from Object right after rendering the mesh. Since
- Object takes care of pushing Renderer state, this rarely needs to do
- anything. */
- virtual void finish_render(Renderer &, const Tag &) const { }
-
- virtual unsigned get_level_of_detail(const Renderer &) const;
-};
-
-} // namespace GL
-} // namespaec Msp
-
-#endif