All pastes #903770 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-14 13:53 UTC
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