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_RENDERER_H 00021 #define GEE_RENDERER_H 00022 00023 #include <vee_matrix4.h> 00024 00025 class GEE_Group; 00026 class GEE_Lines3D; 00027 class GEE_ParticleObject; 00028 class GEE_Path3D; 00029 class GEE_PolygonMesh; 00030 class GEE_Profile; 00031 class GEE_Sphere; 00032 class GEE_TransparencyList; 00033 class GEE_TriangleMesh; 00034 00035 class VEE_Object; 00036 00042 class GEE_Renderer 00043 { 00044 public: 00045 GEE_Renderer(); 00046 virtual ~GEE_Renderer(); 00047 00048 virtual void renderGroupStructure(GEE_Group *) = 0; 00049 virtual void renderLines3D(GEE_Lines3D *) = 0; 00050 virtual void renderPath3D(GEE_Path3D *) = 0; 00051 virtual void renderParticleObject(GEE_ParticleObject *) = 0; 00052 virtual void renderPolygonMesh(GEE_PolygonMesh *) = 0; 00053 virtual void renderProfile(GEE_Profile *) = 0; 00054 virtual void renderSphere(GEE_Sphere *) = 0; 00055 virtual void renderTriangleMesh(GEE_TriangleMesh *) = 0; 00056 virtual void renderVeeObject(VEE_Object *, 00057 const VEE_Matrix4 * m = 0, 00058 float scale = 0.0f) = 0; 00059 00060 virtual void pushTransform(const VEE_Matrix4d &) = 0; 00061 virtual void pushTransform(const VEE_Matrix4 &) = 0; 00062 virtual void popTransform() = 0; 00063 virtual void enableTransforms(bool enable) = 0; 00064 virtual bool enableTransforms() = 0; 00065 00066 virtual void renderBackToFront(GEE_TransparencyList *); 00067 virtual void renderFrontToBack(GEE_TransparencyList *); 00068 00069 }; 00070 00071 #endif