]> git.tdb.fi Git - libs/gl.git/blobdiff - source/object.h
Pass the UniformBlockInfo to get_block to avoid an unnecessary lookup
[libs/gl.git] / source / object.h
index e84bc9cf707d5f7c1e0ef10dea9a5c255100a647..69759c80a7fde69b7ffe9ccc2a35abb064a758fa 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007-2008, 2010-2011  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GL_OBJECT_H_
 #define MSP_GL_OBJECT_H_
 
@@ -30,10 +23,6 @@ similar objects.  See class ObjectInstance.
 */
 class Object: public Renderable
 {
-private:
-       std::vector<RefPtr<const Mesh> > meshes;
-       RefPtr<const Technique> technique;
-
 public:
        class Loader: public DataFile::CollectionObjectLoader<Object>
        {
@@ -44,19 +33,26 @@ public:
                void init();
 
        private:
-               void mesh();
-               void mesh(unsigned);
+               void mesh_inline();
+               void mesh_inline_lod(unsigned);
                void mesh(const std::string &);
-               void mesh(unsigned, const std::string &);
-               void technique();
+               void mesh_lod(unsigned, const std::string &);
+               void technique_inline();
                void technique(const std::string &);
        };
 
+private:
+       std::vector<RefPtr<const Mesh> > meshes;
+       RefPtr<const Technique> technique;
+
+public:
        Object();
+       Object(const Mesh *, const Technique *);
        ~Object();
 
        void set_mesh(const Mesh *m) { set_mesh(0, m); }
        void set_mesh(unsigned, const Mesh *);
+       const Mesh *get_mesh(unsigned = 0) const;
        void set_technique(const Technique *);
        const Technique *get_technique() const { return technique.get(); }