Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.22 KB | None | 0 0
  1. #include <GL/glew.h>
  2. #include <GLFW/glfw3.h>
  3. #include "Arbol/TNode.h"
  4. #include "Arbol/TEntity.h"
  5. #include "Arbol/TTransform.h"
  6. #include "Arbol/TLight.h"
  7. #include "Arbol/TCamera.h"
  8. #include "Arbol/TEngine.h"
  9. #include "Arbol/TMesh.h"
  10. #include "Arbol/TShaderProgram.h"
  11. #include "ResourceManager/TResourceMesh.h"
  12. #include "ResourceManager/TResourceTexture.h"
  13.  
  14. // Interfaz
  15. #include "Interfaces/ITEngine.h"
  16.  
  17. #include <glm/gtc/type_ptr.hpp>
  18. #include <glm/gtc/constants.hpp>
  19.  
  20. int main(){
  21.  
  22.     // Creamos el motor
  23.     /*TEngine *rama = new TEngine();
  24.  
  25.     TNode* root = new TNode();
  26.    
  27.     TShaderProgram* shaderProgram = new TShaderProgram("../../media/shaders/vertexShader.glsl", "../../media/shaders/fragmentShader.glsl");
  28.     TNode* shader = new TNode();
  29.     shader->setEntity(shaderProgram);
  30.     root->addChild(shader);
  31.  
  32.     TCamera* cam = new TCamera(0.1f, 1000.0f, 60.0f, 1.77777777f);
  33.     cam->setCameraPosition(glm::vec3(0.0f,0.0f,-5.0f));
  34.     cam->setTargetPosition(glm::vec3(0.0f,1.0f,10.0f));
  35.     TNode* camera = new TNode();
  36.     camera->setEntity(cam);
  37.     root->addChild(camera);
  38.  
  39.     TResourceMesh *meshi = rama->createMesh("../../media/wheel.obj");
  40.     TResourceTexture *texture = rama->createTexture("../../media/tire.png");
  41.     TMesh *mesh = new TMesh(meshi, texture);
  42.     TNode *nepe = new TNode();
  43.     nepe->setEntity(mesh);
  44.     root->addChild(nepe);*/
  45.  
  46.    //FOKLORE-   USANDO LAS RAMAS FUNCIONA PERO PETA AL BORRAR  
  47.    //BORJA-     POS A MI NO ME PETA USANDO RAMAS
  48.  
  49.    
  50.  
  51.     ITEngine* rama = ITEngine::getInstancia();
  52.  
  53.     rama->createShader("../../media/shaders/vertexShader.glsl", "../../media/shaders/fragmentShader.glsl");
  54.     //glUniform1i(cache.getID(OBDEnums::OpenGLIDs::SAMPLER_DIFFUSE), loadedTextures);
  55.     glm::vec3 pos=glm::vec3(0.0f,1.0f,5.0f);
  56.     glm::vec3 tar=glm::vec3(0.0f,0.0f,0.0f);
  57.     viewport v;
  58.     v.near = 0.1f;
  59.     v.far = 1000.0f;
  60.     v.fov = 60.0f;
  61.     v.ratio = 1.77777777f;
  62.     ITCamera *cam = rama->createCamera(pos, tar, v);
  63.  
  64.    
  65.     // Campo
  66.     ITResourceMesh* campo = rama->createMesh("../../media/Campo_muro2.obj", "../../media/cubetexture.png");
  67.     campo->setRotation(0,1,0,0);
  68.     //malla->setRotation(0.f,1.f,0.f,3.14/2);
  69.     //malla->setScale(1.f,2.f,1.f);
  70.     //malla->setPosition(1.f,2.f,1.f);
  71.  
  72.     // Coche
  73.     ITResourceMesh* coche = rama->createMesh("../../media/Coche.obj", "");
  74.     coche->setPosition(0.0f,1.0f,0.0f);
  75.    
  76.     // Ruedas
  77.     ITResourceMesh* wheelUL = rama->createMesh("../../media/wheel.obj", "../../media/tire.png");
  78.     wheelUL->setPosition(1.3f,0.5f,-0.5f);
  79.     //wheelUL->setScale(1.5f,1.5f,1.5f);
  80.     //wheelUL->setRotation(0,0.5,0,180);
  81.     ITResourceMesh* wheelUR = rama->createMesh("../../media/wheel.obj", "../../media/tire.png");
  82.     wheelUR->setPosition(-0.2f,0.5f,-0.5f);
  83.     ITResourceMesh* wheelDL = rama->createMesh("../../media/wheel.obj", "../../media/tire.png");
  84.     wheelDL->setPosition(1.3f,0.5f,-3.0f);
  85.     ITResourceMesh* wheelDR = rama->createMesh("../../media/wheel.obj", "../../media/tire.png");
  86.     wheelDR->setPosition(-0.2f,0.5f,-3.0f);
  87.    
  88.  
  89.     //rama->newHud("MainMenuHUD");
  90.     //rama->getActiveHud()->addElement("fondo", "../../media/GUI/Fondo Menu.png");
  91.     //rama->getActiveHud()->traslateElement("fondo", 1, 1);
  92.     //rama->getActiveHud()->scaleElement("fondo", 1, 1);
  93.     //rama->getActiveHud()->rotateElement("fondo", 45);
  94.     //rama->getActiveHud()->addElement("local", "../../media/GUI/btn_local_normal.png");
  95.     //rama->getActiveHud()->scaleElement("local", 10.0f, 10.0f);
  96.  
  97.     // Capturar la tecla ESC cuando sea presionada
  98.     glfwSetInputMode(rama->getWindow(), GLFW_STICKY_KEYS, GL_TRUE);
  99.  
  100.     while(!glfwWindowShouldClose(rama->getWindow())){
  101.  
  102.         // Limpiamos buffer
  103.         glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
  104.         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  105.  
  106.         // Movimiento camara con teclas
  107.         if (glfwGetKey(rama->getWindow(), GLFW_KEY_W) == GLFW_PRESS) {
  108.             cam->getCamera()->setCameraPosition(cam->getCamera()->getPosition() + glm::vec3(0, 0, -.5f));
  109.             cam->getCamera()->setTargetPosition(cam->getCamera()->getTarget() + glm::vec3(0, 0, -.5f));
  110.         }else if (glfwGetKey(rama->getWindow(), GLFW_KEY_S) == GLFW_PRESS) {
  111.             cam->getCamera()->setCameraPosition(cam->getCamera()->getPosition() + glm::vec3(0, 0, .5f));
  112.             cam->getCamera()->setTargetPosition(cam->getCamera()->getTarget() + glm::vec3(0, 0, .5f));
  113.         }
  114.  
  115.         if (glfwGetKey(rama->getWindow(), GLFW_KEY_A) == GLFW_PRESS) {
  116.             cam->getCamera()->setCameraPosition(cam->getCamera()->getPosition() + glm::vec3(.5f, 0, 0));
  117.             cam->getCamera()->setTargetPosition(cam->getCamera()->getTarget() + glm::vec3(.5f, 0, 0));
  118.  
  119.         }else if (glfwGetKey(rama->getWindow(), GLFW_KEY_D) == GLFW_PRESS) {
  120.             cam->getCamera()->setCameraPosition(cam->getCamera()->getPosition() + glm::vec3(-.5f, 0, 0));
  121.             cam->getCamera()->setTargetPosition(cam->getCamera()->getTarget() + glm::vec3(-.5f, 0, 0));
  122.  
  123.         }
  124.        
  125.  
  126.         rama->draw();
  127.         //rama->drawHudMenus();
  128.  
  129.         // Intercambiamos buffers
  130.         glfwSwapBuffers(rama->getWindow());
  131.         // Comprueba los eventos
  132.         glfwPollEvents();
  133.  
  134.     }
  135.     delete rama;
  136.  
  137.     //delete rama;
  138.  
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement