]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/object.h
Use constructor delegation instead of init functions when possible
[libs/gl.git] / source / render / object.h
index c97e951c16d04d7186d8c6bdeca2902041e05669..ac62c702b4e1e2f9c6033c40e95e2db812b84735 100644 (file)
@@ -2,7 +2,6 @@
 #define MSP_GL_OBJECT_H_
 
 #include <vector>
-#include "bindable.h"
 #include "renderable.h"
 #include "renderpass.h"
 #include "resourceobserver.h"
@@ -10,11 +9,9 @@
 namespace Msp {
 namespace GL {
 
-class Material;
 class Mesh;
 class ObjectInstance;
 class Technique;
-class Texture;
 
 /**
 Combines a Mesh with a Technique to give it an appearance.  The Technique will
@@ -53,10 +50,10 @@ public:
        class Loader: public LodLoader
        {
        public:
-               Loader(Object &);
-               Loader(Object &, Collection &);
+               Loader(Object &o): Loader(o, 0) { }
+               Loader(Object &o, Collection &c): Loader(o, &c) { }
        private:
-               void init();
+               Loader(Object &, Collection *);
                virtual void finish();
 
                void bounding_sphere_hint(float, float, float, float);
@@ -66,15 +63,15 @@ public:
 private:
        struct LevelOfDetail
        {
-               RefPtr<const Mesh> mesh;
-               RefPtr<const Technique> technique;
+               const Mesh *mesh;
+               const Technique *technique;
        };
 
        std::vector<LevelOfDetail> lods;
        Geometry::BoundingSphere<float, 3> bounding_sphere;
        bool lod0_watched;
 
-       static Matrix identity_matrix;
+       static const Matrix identity_matrix;
 
 public:
        Object();