+++ /dev/null
-#ifndef MSP_GL_OBJETCINSTANCE_H_
-#define MSP_GL_OBJETCINSTANCE_H_
-
-#include <string>
-#include "renderable.h"
-
-namespace Msp {
-namespace GL {
-
-class Object;
-class ProgramData;
-
-/**
-Represents a single instance of an Object. A derived class can overload the
-hook functions to specify a model matrix and other instance-specific parameters
-for the rendered objects.
-
-ObjectInstances can benefit from being put in an InstanceScene, which will
-render all instances of the same object consecutively.
-*/
-class ObjectInstance: public Renderable
-{
-protected:
- const Object &object;
-
-public:
- ObjectInstance(const Object &);
-
- const Object &get_object() const { return object; }
- virtual long get_instance_key() const { return reinterpret_cast<long>(&object); }
-
- virtual void render(const Tag &tag = Tag()) const;
- 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 { return 0; }
-};
-
-} // namespace GL
-} // namespaec Msp
-
-#endif