Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

Renderer.h

00001 /*************************************************************************** 00002 * This file is part of OpenCAL: Open Computer Animation Library * 00003 * I created OpenCAL as my master's thesis Computer Science (multimedia) * 00004 * at the tUL university in Diepenbeek, Belgium * 00005 * * 00006 * Copyright (C) 2003-2004 by Jeroen Dierckx * 00007 * jeroen.dierckx@student.luc.ac.be * 00008 * * 00009 ***************************************************************************/ 00010 00011 #ifndef OPENCAL_RENDERER_H 00012 #define OPENCAL_RENDERER_H 00013 00014 // Includes 00015 #include <OpenCAL/global.h> 00016 00017 00018 namespace OpenCAL 00019 { 00020 // Forward declarations 00021 //class System; 00022 class TriangleMesh; 00023 namespace Utils { class Material; class Texture; class Camera; class Vector3; class Quaternion; } 00024 using OpenCAL::Utils::Material; 00025 using OpenCAL::Utils::Texture; 00026 using OpenCAL::Utils::Camera; 00027 using OpenCAL::Utils::Vector3; 00028 using OpenCAL::Utils::Quaternion; 00029 00033 class OPENCAL_API Renderer 00034 { 00035 protected: 00036 // Member variables 00037 //System *m_system; 00038 00039 public: 00040 // Constructors and destructor 00041 Renderer(); 00042 virtual ~Renderer(); 00043 00044 // Transformation functions 00045 virtual void resetTransformation() = 0; 00046 virtual void pushTransformation() = 0; 00047 virtual void popTransformation() = 0; 00048 virtual void rotate(const Quaternion &rotation) = 0; 00049 virtual void translate(const Vector3 &translation) = 0; 00050 virtual void applyCamera(const Camera &camera) = 0; 00051 virtual void unapplyCamera(const Camera &camera) = 0; 00052 00053 // Material functions 00054 virtual void setMaterial(const Material *material, bool back = false) = 0; 00055 00056 // Texture functions 00057 virtual void initializeTexture(const Texture *texture) = 0; 00058 virtual void setTexture(const Texture *texture) = 0; 00059 virtual void setNoTexture() = 0; 00060 00061 // Initialize functions 00062 virtual void initializeMesh(const TriangleMesh *mesh) = 0; 00063 00064 // Render functions 00065 virtual void renderPoint(const Vector3 &position, float thickness = 1.0f) = 0; 00066 virtual void renderLine(const Vector3 &from, const Vector3 &to, float thickness = 1.0f) = 0; 00067 virtual void renderPlane() = 0; 00068 virtual void renderSphere(float radius) = 0; 00069 virtual void renderMesh(const TriangleMesh *mesh) = 0; 00070 00071 // Get functions 00072 00073 // Set functions 00074 00075 // Other functions 00076 virtual void initialize() {} 00077 }; 00078 } 00079 00080 #endif // OPENCAL_RENDERER_H

Generated on Sun Aug 15 19:19:23 2004 for OpenCAL: Open Computer Animation Library by doxygen 1.3.8