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

context.hh

Go to the documentation of this file.
00001 #ifndef _context_hh_
00002 #define _context_hh_
00003 
00004 #include "vector.hh"
00005 #include "matrix.hh"
00006 
00007 namespace anoid {
00009     namespace context {
00010 
00011         class Context {
00012             protected:
00013                 simple::Matrix _current;
00014             public:
00015                 Context(): _current() {}
00016                 virtual void initWindow(int width, int height) = 0;
00017                 virtual void initFullscreen(int width, int height) = 0;
00018                 virtual void setView() = 0;
00019                 virtual void loadIdentity() = 0;
00020                 virtual void pushMatrix() = 0;
00021                 virtual void popMatrix() = 0;
00022                 virtual void rotate(simple::Matrix &rotation) = 0;
00023                 virtual void scale(simple::Vector &scale) = 0;
00024                 virtual void translate(simple::Vector &translation) = 0;
00025                 virtual int beginFigure() = 0;
00026                 virtual void endFigure() = 0;
00027                 virtual void removeFigure(int id) = 0;
00028                 void drawTriangle(simple::Vector A, simple::Vector B, simple::Vector C, simple::Vector normal) { drawTriangle(A, B, C, normal, 0); }
00029                 void drawQuad(simple::Vector A, simple::Vector B, simple::Vector C, simple::Vector D, simple::Vector normal) { drawQuad(A, B, C, D, normal, 0); }
00030                 virtual void drawTriangle(simple::Vector &A, simple::Vector &B, simple::Vector &C, simple::Vector &normal, int a = 0) = 0;
00031                 virtual void drawQuad(simple::Vector &A, simple::Vector &B, simple::Vector &C, simple::Vector &D, simple::Vector &normal, int a = 0) = 0;
00032                 virtual void drawFigure(int id) = 0;
00033                 virtual simple::Matrix getMatrix() = 0;
00034                 virtual void setMatrix(simple::Matrix &m) = 0;
00035                 virtual void swapBuffers() = 0;
00036                 virtual ~Context() {}
00037         };
00038 
00039     };
00040 };
00041 
00042 #endif

Anoid NG © Michael Westergaard, Martin Stig Stissing, Ronni Michael Laursen, and Kristian Bisgaard Lassen