]> git.tdb.fi Git - libs/gl.git/blobdiff - source/object.h
Style update: add spaces around assignment operators
[libs/gl.git] / source / object.h
index d81c4ade6fa0453aadbd5fd27cb5a212204df36d..bff41bf108e3f153fb6383f8fd09eb8dc91ec3bc 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id$
 
 This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2008, 2010  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
@@ -9,9 +9,9 @@ Distributed under the LGPL
 #define MSP_GL_OBJECT_H_
 
 #include <vector>
-#include "misc.h"
-#include "objectpass.h"
+#include "bindable.h"
 #include "renderable.h"
+#include "renderpass.h"
 
 namespace Msp {
 namespace GL {
@@ -31,18 +31,23 @@ similar objects.  See class ObjectInstance.
 class Object: public Renderable
 {
 private:
-       std::vector<const Mesh *> meshes;
-       bool own_technique;
-       const Technique *technique;
+       std::vector<Mesh *> meshes;
+       Technique *technique;
+       bool own_mesh:1;
+       bool own_technique:1;
 
 public:
        class Loader: public DataFile::CollectionObjectLoader<Object>
        {
        public:
+               Loader(Object &);
                Loader(Object &, Collection &);
+       private:
+               void init();
 
        private:
                void lod_mesh(unsigned, const std::string &);
+               void mesh();
                void mesh(const std::string &);
                void technique();
        };
@@ -55,14 +60,14 @@ public:
        /**
        Renders the object.  A tag can be provided to render a non-default pass.
        */
-       virtual void render(const Tag &tag=Tag()) const;
+       virtual void render(const Tag &tag = Tag()) const;
 
        /**
        Renders the object with an instance.  The instance's hook functions are
        called before and after drawing the mesh.  A tag may also be given to render
        a non-default pass.
        */
-       virtual void render(const ObjectInstance &, const Tag &tag=Tag()) const;
+       virtual void render(const ObjectInstance &, const Tag &tag = Tag()) const;
 
        /**
        Renders multiple instances of the object in one go.  This may improve
@@ -71,9 +76,9 @@ public:
        mesh.
        */
        template<typename Iter>
-       void render(Iter begin, Iter end, const Tag &tag=Tag()) const
+       void render(Iter begin, Iter end, const Tag &tag = Tag()) const
        {
-               const RenderPass *pass=get_pass(tag);
+               const RenderPass *pass = get_pass(tag);
                if(!pass)
                        return;