Added Object and Texture loading

This commit is contained in:
2016-05-09 12:20:36 +02:00
parent a08328981c
commit 7ef4292825
47 changed files with 8684 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
#include <Windows.h>
#include <gl/glut.h>
#include <gl/GL.h>
#include <gl/glu.h>
#include <math.h>
#include "ObjModel.h"
float rotation = 0;
vector<pair<int, ObjModel*> > models;
int currentModel = 0;
void display(void)
{
glClearColor(0.6f, 0.6f, 0.9f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, models[currentModel].first*1.1, models[currentModel].first * 2, 0,0, 0, 0, 1,0);
glRotatef(rotation, 0, 1, 0);
models[currentModel].second->draw();
glutSwapBuffers();
}
void reshape(GLint width, GLint height)
{
glViewport(0,0, width, height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70, width/(float)height, 1, 1000);
glMatrixMode(GL_MODELVIEW);
}
void InitGraphics(void)
{
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
models.push_back(pair<int, ObjModel*>(75, new ObjModel("models/car/honda_jazz.obj")));
models.push_back(pair<int, ObjModel*>(1, new ObjModel("models/bloemetje/PrimRoseP.obj")));
models.push_back(pair<int, ObjModel*>(1, new ObjModel("models/cube/cube-textures.obj")));
models.push_back(pair<int, ObjModel*>(35, new ObjModel("models/ship/shipA_OBJ.obj")));
}
void MouseButton(int button, int state, int x, int y)
{
}
void MouseMotion(int x, int y)
{
}
void IdleFunc(void)
{
rotation += 0.25f;
glutPostRedisplay();
}
void Keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case 27: // ESCAPE key
exit (0);
break;
case '[':
currentModel = (currentModel + models.size() - 1) % models.size();
break;
case ']':
currentModel = (currentModel + 1) % models.size();
break;
}
glutPostRedisplay();
}
int main(int argc, char* argv[])
{
glutInit (&argc, argv);
glutInitWindowSize (1024, 768);
glutInitDisplayMode ( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow ("Object loading");
// Initialize OpenGL graphics state
InitGraphics();
// Register callbacks:
glutDisplayFunc (display);
glutReshapeFunc (reshape);
glutKeyboardFunc (Keyboard);
glutMouseFunc (MouseButton);
glutMotionFunc (MouseMotion);
glutIdleFunc (IdleFunc);
// Turn the flow of control over to GLUT
glutMainLoop ();
return 0;
}