#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include int main(){ Engine engine; // this creates the opengl context // the opengl context must exist before any opengl class is used (texture, pipeline, etc..) engine.createWindow("test"); SceneTree scene; /* Exemple creation mesh 2D * Mesh* mesh = new Mesh(); mesh->addRectangle2D(50,50,100,100); PhongMaterial *mat = new PhongMaterial(); mat->diffuse = glm::vec3(1, 0.5, 0); mesh->setMaterial(mat); mesh->initGL(); */ /* Exemple ajout d'un objet a la scene * SparrowShell *shell = new SparrowShell(engine.getWindow(),engine.getInput()); scene.addObject(scene.getRootObject(),shell); */ // the pipeline needs to updates his shaders because the scene changed // this should be handled somewhere else in the future //DeferredPipeline* pipeline = (DeferredPipeline*)scene.getPipeline(); //pipeline->refreshScene(&scene); Font* fonte_des_neiges = Loader::loadFont("../data/consolas.fnt","../data/consolas.png"); RESOURCE_ADD(fonte_des_neiges,Font,"shellfont"); MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!")); scene.addObject(scene.getRootObject(),mnode)*/; mnode = new MeshNode(fonte_des_neiges->getTextMesh("WOW!", glm::vec3(0.5, 0.7, 0.2))); mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(70, 30, 0)), 0.4f, glm::vec3(0, 0, 1))); scene.addObject(scene.getRootObject(),mnode); mnode = new MeshNode(fonte_des_neiges->getTextMesh("Such Text!", glm::vec3(0.7, 0.4, 0.2))); mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(200, 170, 0)), -0.5f, glm::vec3(0, 0, 1))); scene.addObject(scene.getRootObject(),mnode); mnode = new MeshNode(fonte_des_neiges->getTextMesh("Very font!", glm::vec3(0.7, 0.2, 0.8))); mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(260, 300, 0)), 0.1f, glm::vec3(0, 0, 1))); scene.addObject(scene.getRootObject(),mnode); engine.setScene(&scene); engine.start(); /* GraphNode n1 = GraphNode(); n1.setValue(1); GraphNode n2 = GraphNode(); n2.setValue(2); GraphNode n3 = GraphNode(); n3.setValue(3); GraphNode n4 = GraphNode(); n4.setValue(4); GraphNode n5 = GraphNode(); n5.setValue(5); n1.addNeighbours(&n2); n1.addNeighbours(&n3); n2.addNeighbours(&n4); n3.addNeighbours(&n4); n3.addNeighbours(&n2); n3.addNeighbours(&n5); std::vector path = PathFinder::a_star(&n1,&n4,true); std::cout << "Path Size: " << path.size() << std::endl; for(GraphNode* gn: path){ std::cout << gn->getValue() << std::endl; } Loader::setObjDirectory("../data/"); Loader::setMtlDirectory("../data/"); Loader::setTexDirectory("../data/"); std::vector meshes = Loader::loadMesh("sword.obj"); */ }