+ void set_mesh(const Mesh *m) { set_mesh(0, m); }
+ void set_mesh(unsigned, const Mesh *);
+private:
+ void update_bounding_sphere();
+public:
+ const Mesh *get_mesh(unsigned = 0) const;
+ void set_technique(const Technique *);
+ const Technique *get_technique() const { return technique.get(); }
+
+ virtual const Geometry::BoundingSphere<float, 3> *get_bounding_sphere() const { return &bounding_sphere; }
+
+ virtual void render(const Tag &tag = Tag()) const;
+
+ virtual void render(Renderer &, const Tag & = Tag()) const;
+
+ /** Renders an instance of the object. The instance's hook functions are
+ called before and after drawing the mesh. */
+ virtual void render(Renderer &, const ObjectInstance &, const Tag & = Tag()) const;