]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/zsortedscene.cpp
Use default member initializers for simple types
[libs/gl.git] / source / render / zsortedscene.cpp
index 46b14dbb6a672dbfd044b1ffa7463695e9212244..b9833dadff84ed31f5418bd2a526b3a905d9cd51 100644 (file)
@@ -7,11 +7,6 @@ using namespace std;
 namespace Msp {
 namespace GL {
 
-ZSortedScene::ZSortedScene():
-       order(BACK_TO_FRONT),
-       reference(FURTHEST)
-{ }
-
 void ZSortedScene::add(Renderable &r)
 {
        if(renderables.insert(&r).second && !sorted_cache.empty())
@@ -46,17 +41,17 @@ void ZSortedScene::populate_cache() const
 void ZSortedScene::setup_frame(Renderer &renderer)
 {
        populate_cache();
-       for(SortedArray::const_iterator i=sorted_cache.begin(); i!=sorted_cache.end(); ++i)
-               i->renderable->setup_frame(renderer);
+       for(const SortedRenderable &r: sorted_cache)
+               r.renderable->setup_frame(renderer);
 }
 
 void ZSortedScene::finish_frame()
 {
-       for(SortedArray::const_iterator i=sorted_cache.begin(); i!=sorted_cache.end(); ++i)
-               i->renderable->finish_frame();
+       for(const SortedRenderable &r: sorted_cache)
+               r.renderable->finish_frame();
 }
 
-void ZSortedScene::render(Renderer &renderer, const Tag &tag) const
+void ZSortedScene::render(Renderer &renderer, Tag tag) const
 {
        if(renderables.empty())
                return;
@@ -66,8 +61,8 @@ void ZSortedScene::render(Renderer &renderer, const Tag &tag) const
        const Camera *camera = renderer.get_camera();
        if(!camera)
        {
-               for(SortedArray::const_iterator i=sorted_cache.begin(); i!=sorted_cache.end(); ++i)
-                       renderer.render(*i->renderable, tag);
+               for(const SortedRenderable &r: sorted_cache)
+                       renderer.render(*r.renderable, tag);
                return;
        }
 
@@ -77,25 +72,25 @@ void ZSortedScene::render(Renderer &renderer, const Tag &tag) const
        float sign = 1.0f-order*2.0f;
 
        bool use_frustum = setup_frustum(renderer);
-       for(SortedArray::iterator i=sorted_cache.begin(); i!=sorted_cache.end(); ++i)
+       for(SortedRenderable &r: sorted_cache)
        {
-               i->in_frustum = (!use_frustum || !frustum_cull(*i->renderable));
-               if(!i->in_frustum)
+               r.in_frustum = (!use_frustum || !frustum_cull(*r.renderable));
+               if(!r.in_frustum)
                        continue;
 
-               if(const Matrix *matrix = i->renderable->get_matrix())
+               if(const Matrix *matrix = r.renderable->get_matrix())
                {
-                       if(const Geometry::BoundingSphere<float, 3> *bsphere = i->renderable->get_bounding_sphere())
-                               i->depth = dot(*matrix*bsphere->get_center()-camera_pos, look_dir)+bsphere->get_radius()*radius_factor;
+                       if(const Geometry::BoundingSphere<float, 3> *bsphere = r.renderable->get_bounding_sphere())
+                               r.depth = dot(*matrix*bsphere->get_center()-camera_pos, look_dir)+bsphere->get_radius()*radius_factor;
                        else
-                               i->depth = dot(*matrix*Vector3()-camera_pos, look_dir);
-                       i->depth *= sign;
+                               r.depth = dot(*matrix*Vector3()-camera_pos, look_dir);
+                       r.depth *= sign;
                }
                else
-                       i->depth = 0;
+                       r.depth = 0;
        }
 
-       for(SortedArray::iterator i=sorted_cache.begin(), j=i; i!=sorted_cache.end(); ++i)
+       for(auto i=sorted_cache.begin(), j=i; i!=sorted_cache.end(); ++i)
                if(i->in_frustum)
                {
                        if(i!=j)
@@ -104,7 +99,7 @@ void ZSortedScene::render(Renderer &renderer, const Tag &tag) const
                        if(j!=sorted_cache.begin() && *j<*(j-1))
                        {
                                SortedRenderable sr = *j;
-                               SortedArray::iterator k = j-1;
+                               auto k = j-1;
                                *j = *k;
                                while(k!=sorted_cache.begin() && sr<*(k-1))
                                {
@@ -117,7 +112,7 @@ void ZSortedScene::render(Renderer &renderer, const Tag &tag) const
                        ++j;
                }
 
-       for(SortedArray::const_iterator i=sorted_cache.begin(); (i!=sorted_cache.end() && i->in_frustum); ++i)
+       for(auto i=sorted_cache.begin(); (i!=sorted_cache.end() && i->in_frustum); ++i)
                renderer.render(*i->renderable, tag);
 }