X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fzsortedscene.h;h=cb21061bae301db5f7851c54130112d29e04c011;hp=f7a7f6a25227102c40716d2a99c435cfac49ed1a;hb=HEAD;hpb=120fd27fdb0b1302ef8d4367446f93cc1a116b7b diff --git a/source/zsortedscene.h b/source/zsortedscene.h deleted file mode 100644 index f7a7f6a2..00000000 --- a/source/zsortedscene.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef MSP_GL_ZSORTEDSCENE_H_ -#define MSP_GL_ZSORTEDSCENE_H_ - -#include -#include -#include "scene.h" - -namespace Msp { -namespace GL { - -enum SortOrder -{ - FRONT_TO_BACK, - BACK_TO_FRONT -}; - -enum DepthReference -{ - CLOSEST, - CENTER, - FURTHEST -}; - -/** -Sorts renderables by their distance from the camera before rendering. Requires -renderables to have a matrix. -*/ -class ZSortedScene: public Scene -{ -private: - struct SortedRenderable - { - Renderable *renderable; - bool in_frustum; - float depth; - - SortedRenderable(Renderable *); - - bool operator<(const SortedRenderable &o) const { return depth RenderableSet; - typedef std::vector SortedArray; - - RenderableSet renderables; - SortOrder order; - DepthReference reference; - mutable SortedArray sorted_cache; - -public: - ZSortedScene(); - - virtual void add(Renderable &); - virtual void remove(Renderable &); - - /// Sets the sort order. Default is back to front. - void set_order(SortOrder); - - /// Sets the reference point for sorting. Default is furthest from camera. - void set_reference(DepthReference); - -private: - void populate_cache() const; - -public: - virtual void setup_frame(Renderer &); - virtual void finish_frame(); - - virtual void render(Renderer &, const Tag &) const; -}; - -} // namespace GL -} // namespace Msp - -#endif