X-Git-Url: http://git.mutantstargoat.com?p=hair;a=blobdiff_plain;f=src%2Fmain.cc;h=750a2d893f17899e861fea4a1be70aaf0acd14ad;hp=8b0fe13393ba2e031bbcb461f614169472f1ac39;hb=43078ddde36cc81375cddfe45f47f806b9d19307;hpb=da5cbacf755273da510c37c819a59c7fe9894c4e diff --git a/src/main.cc b/src/main.cc index 8b0fe13..750a2d8 100644 --- a/src/main.cc +++ b/src/main.cc @@ -7,6 +7,9 @@ #include #include "mesh.h" +#include "hair.h" + +#define MAX_NUM_SPAWNS 500 static bool init(); static void cleanup(); @@ -18,6 +21,7 @@ static void motion(int x, int y); static std::vector meshes; static Mesh *mesh_head; +static Hair hair; int win_width, win_height; float cam_theta, cam_phi = 25, cam_dist = 8; @@ -55,7 +59,7 @@ static bool init() glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); - glClearColor(1, 0.5, 0.5, 1); + glClearColor(0.5, 0.5, 0.5, 1); meshes = load_meshes("data/head.fbx"); if (meshes.empty()) { fprintf(stderr, "Failed to load mesh.\n"); @@ -81,12 +85,24 @@ static bool init() mesh_head = meshes[i]; } } + if(!mesh_head) { + fprintf(stderr, "Failed to find the head mesh.\n"); + return false; + } + + if(!hair.init(mesh_head, MAX_NUM_SPAWNS, 0.1)) { + fprintf(stderr, "Failed to initialize hair\n"); + return false; + } return true; } static void cleanup() { + for(size_t i=0; idraw(); } + hair.draw(); + glutSwapBuffers(); assert(glGetError() == GL_NO_ERROR); }