X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fobject.h;h=48e3045930559fd354af6d868a935100a2fab09d;hp=3d0415c66daa64b3c8ebb3436b0da037897912e9;hb=49f1812b3e5ad73748015df52d0e4dee17246036;hpb=7da609f539040d11cccc61b838f4b74e06135552 diff --git a/source/object.h b/source/object.h index 3d0415c6..48e30459 100644 --- a/source/object.h +++ b/source/object.h @@ -5,7 +5,7 @@ #include "bindable.h" #include "renderable.h" #include "renderpass.h" -#include "resourcewatcher.h" +#include "resourceobserver.h" namespace Msp { namespace GL { @@ -28,7 +28,7 @@ Objects can have multiple levels of detail. The most detailed level has index 0, with increasing indices having less detail. When rendering an instance, the instance's get_level_of_detail method is called to determine which LoD to use. */ -class Object: public Renderable, private ResourceWatcher +class Object: public Renderable, private ResourceObserver { private: struct LevelOfDetail; @@ -74,6 +74,8 @@ private: Geometry::BoundingSphere bounding_sphere; bool lod0_watched; + static Matrix identity_matrix; + public: Object(); Object(const Mesh *, const Technique *); @@ -105,10 +107,9 @@ public: const Technique *get_technique(unsigned = 0) const; unsigned get_n_lods() const { return lods.size(); } + virtual const Matrix *get_matrix() const { return &identity_matrix; } virtual const Geometry::BoundingSphere *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