105 lines
3.2 KiB
C++
105 lines
3.2 KiB
C++
#include <engine.h>
|
|
#include <input.h>
|
|
#include <scene.h>
|
|
#include <mesh.h>
|
|
#include <deferredpipeline.h>
|
|
#include <phongmaterial.h>
|
|
#include <resourcemanager.h>
|
|
#include <sparrowrenderer.h>
|
|
#include <scenetree.h>
|
|
#include <texture.h>
|
|
|
|
#include <tools/graph.h>
|
|
#include <tools/pathfinder.h>
|
|
#include <tools/loader.h>
|
|
|
|
#include <tools/font.h>
|
|
|
|
#include <sparrowshell.h>
|
|
|
|
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<GraphNode*> 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<Mesh*> meshes = Loader::loadMesh("sword.obj");
|
|
*/
|
|
|
|
|
|
|
|
}
|