Changeset 69 in flair-src for trunk/lib/FlairSimulator/src/Gui_impl.cpp


Ignore:
Timestamp:
09/02/16 17:48:40 (8 years ago)
Author:
Sanahuja Guillaume
Message:

refonte camera simu

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/FlairSimulator/src/Gui_impl.cpp

    r15 r69  
    2222#include "Model.h"
    2323#include "Model_impl.h"
    24 #include "AnimPoursuite.h"
    2524#include <Object.h>
    2625#include <Euler.h>
     
    4039public:
    4140  // This is the one method that we have to implement
    42   virtual bool OnEvent(const SEvent &event) {
     41  bool OnEvent(const SEvent &event) {
    4342    // Remember whether each key is down or up
    4443    if (event.EventType == EET_KEY_INPUT_EVENT)
    4544      KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
    4645
    47     // Send all other events to camera
    48     if (event.EventType == EET_MOUSE_INPUT_EVENT && camera)
    49       // return camera->OnEvent(event);
    50       return camera->MouseMoved(event, cursorControl->getRelativePosition());
    51 
    5246    if (model)
    5347      return model->OnEvent(event);
     
    5751
    5852  // This is used to check whether a key is being held down
    59   virtual bool IsKeyDown(EKEY_CODE keyCode) {
     53  bool IsKeyDown(EKEY_CODE keyCode) {
    6054    if (KeyIsDown[keyCode] == true) {
    6155      KeyIsDown[keyCode] = false;
     
    6660  }
    6761
    68   MyEventReceiver(ICursorControl *cursorControl) {
    69     this->cursorControl = cursorControl;
    70     camera = NULL;
     62  MyEventReceiver(void) {
    7163    model = NULL;
    7264    for (u32 i = 0; i < KEY_KEY_CODES_COUNT; ++i)
    7365      KeyIsDown[i] = false;
    7466  }
    75   void SetCamera(AnimPoursuite *camera) { this->camera = camera; }
    7667  void SetModel(Model *model) { this->model = model; }
    7768
     
    7970  // We use this array to store the current state of each key
    8071  bool KeyIsDown[KEY_KEY_CODES_COUNT];
    81   AnimPoursuite *camera;
    8272  Model *model;
    83   ICursorControl *cursorControl;
    8473};
    8574
     
    9685  device = createDevice(driver_type, dimension2d<u32>(app_width, app_height),
    9786                        16, false, false, false);
    98   receiver = new MyEventReceiver(device->getCursorControl());
     87  receiver = new MyEventReceiver();
    9988  device->setEventReceiver(receiver);
    10089  device->getLogger()->setLogLevel(ELL_NONE);
     
    10998  smgr->setAmbientLight(video::SColorf(1, 1, 1));
    11099
     100/*
     101   // camera
     102  camera = smgr->addCameraSceneNode();
     103
     104  camera->setAspectRatio(
     105      (float)scene_width / (float)scene_height); // on force a cause du view port
     106
     107  camera->setUpVector(vector3df(0, 0, 1));
     108
     109  FixedCamera* animator = new FixedCamera(vector3df(1,1,1));
     110  camera->addAnimator(animator);
     111
     112  camera->setFarValue(8000);*/
    111113  /*
    112114env = device->getGUIEnvironment();
     
    185187  int cam_id = 0;
    186188
    187   receiver->SetCamera(models.at(cam_id)->pimpl_->animator);
    188189  receiver->SetModel(models.at(cam_id));
    189190
     
    199200    }
    200201    for (size_t j = 0; j < models.size(); j++) {
    201       if (i == j)
    202         continue;
     202      if (i == j) continue;
    203203      models.at(i)->pimpl_->MetaTriangleSelector()->addTriangleSelector(
    204204          models.at(j)->pimpl_->TriangleSelector());
     
    247247
    248248    // vue poursuite
    249     smgr->setActiveCamera(models.at(cam_id)->pimpl_->camera);
     249    smgr->setActiveCamera(models.at(cam_id)->getFollowMeCamera()->getCameraSceneNode());
    250250    driver->setViewPort(core::rect<s32>(0, 0, scene_width, scene_height));
    251251    smgr->drawAll(); // commente voir plus bas
     
    279279    // mais a priori souci avec models.at(i)->pimpl_->CheckCollision();
    280280    // (setelipsoid?)
    281     smgr->setActiveCamera(models.at(cam_id)->pimpl_->camera);
     281    smgr->setActiveCamera(models.at(cam_id)->getFollowMeCamera()->getCameraSceneNode());
    282282    driver->setViewPort(core::rect<s32>(0, 0, scene_width, scene_height));
    283283    smgr->drawAll();
     
    294294    if (receiver->IsKeyDown(KEY_PRIOR)) {
    295295      cam_id++;
    296       if (cam_id >= (int)models.size())
    297         cam_id = 0;
    298       receiver->SetCamera(models.at(cam_id)->pimpl_->animator);
     296      if (cam_id >= (int)models.size()) cam_id = 0;
    299297      receiver->SetModel(models.at(cam_id));
    300298      setWindowCaption(models.at(cam_id), fps);
     
    302300    if (receiver->IsKeyDown(KEY_NEXT)) {
    303301      cam_id--;
    304       if (cam_id < 0)
    305         cam_id = models.size() - 1;
    306       receiver->SetCamera(models.at(cam_id)->pimpl_->animator);
     302      if (cam_id < 0) cam_id = models.size() - 1;
    307303      receiver->SetModel(models.at(cam_id));
    308304      setWindowCaption(models.at(cam_id), fps);
     
    355351  }
    356352
    357   receiver->SetCamera(NULL);
    358353  receiver->SetModel(NULL);
    359354}
Note: See TracChangeset for help on using the changeset viewer.