X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fmain.cc;h=2bdbad92e05569ec03f608d923e4f1e264445699;hb=ed91d376224c1efe305d483c05f837820df75b71;hp=8b0fe13393ba2e031bbcb461f614169472f1ac39;hpb=da5cbacf755273da510c37c819a59c7fe9894c4e;p=hair diff --git a/src/main.cc b/src/main.cc index 8b0fe13..2bdbad9 100644 --- a/src/main.cc +++ b/src/main.cc @@ -7,6 +7,10 @@ #include #include "mesh.h" +#include "hair.h" + +#define MAX_NUM_SPAWNS 4 +#define THRESH 0.5 static bool init(); static void cleanup(); @@ -18,6 +22,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 +60,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 +86,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, THRESH)) { + 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); }