00001 /* -*- C++ -*- */ 00002 00003 /* COPYRIGHT 00004 * 00005 * This file is part of the Visual Effects Engine - VEE 00006 * 00007 * Read the "VEE-LICENSE" file for the license. 00008 * 00009 * Authors & Copyright: 00010 * 00011 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00012 * Janne Kontkanen 2001-2004 00013 * 00014 * Additional copyrights: Tekes 2003-2004 00015 * 00016 * firstname.lastname@hut.fi 00017 * 00018 */ 00019 00020 #ifndef GEE_ENGINE_H 00021 #define GEE_ENGINE_H 00022 00023 #include <gee_collector_renderer.h> 00024 #include <gee_gallery.h> 00025 #include <gee_operator.h> 00026 #include <gee_transparency_list.h> 00027 #include <gee_world.h> 00028 00031 class GEE_Engine 00032 { 00033 public: 00034 GEE_Engine(); 00035 ~GEE_Engine(); 00036 00037 void addOperator(GEE_Operator *); 00038 00039 void update(GEE_TimeStamp); 00040 void rewind(GEE_TimeStamp); 00041 void toBegin(); 00042 00043 void undo(bool update = true, uint n = 1); 00044 void redo(bool update = true, uint n = 1); 00045 00046 bool read(const char *, bool merge = false, bool clean = true); 00047 bool write(const char *); 00048 bool mergeGalleriesFrom(const char *); 00049 00050 GEE_World & world() { return m_world; } 00051 GEE_OperatorManager & actions() { return m_actions; } 00052 GEE_Gallery & gallery() { return m_gallery; } 00053 00054 void setGarbageBin(VEE_GarbageBin * bin); 00055 00056 void collectObjects(bool clearOld = true); 00057 void clear(); 00058 00059 GEE_CollectorRenderer & collector() { return m_collector; } 00060 00061 protected: 00062 00063 static void remapThese(GEE_OperatorManager &, GEE_World &, GEE_Gallery &); 00064 00065 GEE_Gallery m_gallery; 00066 GEE_World m_world; 00067 GEE_OperatorManager m_actions; 00068 GEE_TimeStamp m_prevTime; 00069 GEE_CollectorRenderer m_collector; 00070 00071 static bool m_debug; 00072 }; 00073 00074 #endif