Here it is, my tri renderer!
Renderer.h
#include <vector>#include "Vector3.h"struct BasicTri { Vector3 P1; Vector3 P2; Vector3 P3; int Texture; BasicTri() { } BasicTri(const BasicTri& t) { P1 = t.P1; P2 = t.P2; P3 = t.P3; Texture = t.Texture; } BasicTri& operator=(const BasicTri& t) { if( &t != this ){ P1 = t.P1; P2 = t.P2; P3 = t.P3; Texture = t.Texture; } return *this; } };extern std::vector<BasicTri*> mBasicTri;class GLRenderer{public: void AddBasicTriToRenderer(BasicTri* t) { // then add to the vector mBasicTri.push_back(t); } void RenderBasicTriangles(void);};
Renderer.cpp
#include <windows.h>#include <gl\gl.h>#include <gl\glu.h>#include <gl\glaux.h>#include "NeHeGL.h" #include "Renderer.h" std::vector<BasicTri*> mBasicTri;void GLRenderer::RenderBasicTriangles(){ if (!mBasicTri.size()) { return; } std::vector<BasicTri*>::iterator ptr; for (ptr = mBasicTri.begin(); ptr != mBasicTri.end(); ptr++) { BasicTri * temp = *ptr; glBegin(GL_TRIANGLES); glVertex3f(temp->P1.x,temp->P1.y,temp->P1.z); glVertex3f(temp->P2.x,temp->P2.y,temp->P2.z); glVertex3f(temp->P3.x,temp->P3.y,temp->P3.z); glEnd(); } }
Vector3.h
class Vector3{public: float x, y, z; Vector3() { } Vector3(float x, float y, float z);// And so on};
Vector3.cpp
#include "Vector3.h"Vector3::Vector3(float X, float Y, float Z) { x = X; y = Y; z = Z; }
----------------------------------------------------------Rating me down will only make me stronger.----------------------------------------------------------