rendered paste body#ifndef drawer_hpp
#define drawer_hpp
#include <gl/gl.h>
#include <math.h>
class Drawer
{
private:
float fMinX;
float fMinY;
float fHeight;
float fWidth;
float fDistX;
float fDistY;
int iScreenHeight;
int iScreenWidth;
float fRadian;
float fTimes;
int iOriginX;
int iOriginY;
float *faObjectMap;
public:
//Constructor
Drawer(float fScreeMaxX,float fScreenMaxY,float fScreenMinX,float fScreenMinY,
int iScreenX,int iScreenY,int iCenterX,int iCenterY);
//Formulas
float Wrangle(float fX, float fY,float fT);
//Drawers
void Draw(int iT);
};
Drawer::Drawer(float fScreenMaxX,float fScreenMaxY,float fScreenMinX,float fScreenMinY,int iScreenX,
int iScreenY,int iCenterX,int iCenterY)
{
fMinX = fScreenMinX;
fMinY = fScreenMinY;
fHeight = fScreenMaxY - fScreenMinY;
fWidth = fScreenMaxX - fScreenMinX;
iScreenHeight = iScreenX;
iScreenWidth = iScreenY;
fDistX = fWidth/iScreenX;
fDistY = fHeight/iScreenY;
fRadian = 180.0f/ 3.14159265f;
iOriginX = iCenterX;
iOriginY = iCenterX;
faObjectMap = new float[iScreenHeight*iScreenWidth];
}
float Drawer::Wrangle(float fX, float fY,float fT)
{
return 0.0f;
}
void Drawer::Draw(int iT)
{
int j = 0;
int i = 0;
while(i < iScreenHeight - 1)
{
j=0;
while(j < iScreenWidth)
{
faObjectMap[i*iScreenWidth + j] = Wrangle((float)(i-iOriginX),(float)(0-iOriginY),iT);
j++;
}
i++;
}
i = 0;
glColor3f(0.0f,0.0f,1.0f);
while(i < iScreenHeight - 1)
{
j = 0;
glBegin(GL_TRIANGLE_STRIP);
//glColor3f(1.0f-(float)i/128.0f,0.0f,0.0f);
//Draws function map on the screen from the array created earlier
glVertex3f(fMinX + (j * fDistX),fMinY + ((i+1) * fDistY),faObjectMap[i*iScreenWidth+j]);
glVertex3f(fMinX + (j * fDistX),fMinY + (i * fDistY),faObjectMap[i*iScreenWidth+j]);
j=1;
while(j < iScreenWidth)
{
glVertex3f(fMinX + (j * fDistX),fMinY + ((i+1) * fDistY),faObjectMap[i*iScreenWidth+j]);
glVertex3f(fMinX + (j * fDistX),fMinY + ((i) * fDistY),faObjectMap[i*iScreenWidth+j]);
j++;
}
glEnd();
i++;
}
}
#endif