Changeset 69 in flair-src for trunk/lib/FlairSimulator/src/Gui_impl.cpp
- Timestamp:
- Sep 2, 2016, 5:48:40 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairSimulator/src/Gui_impl.cpp
r15 r69 22 22 #include "Model.h" 23 23 #include "Model_impl.h" 24 #include "AnimPoursuite.h"25 24 #include <Object.h> 26 25 #include <Euler.h> … … 40 39 public: 41 40 // This is the one method that we have to implement 42 virtualbool OnEvent(const SEvent &event) {41 bool OnEvent(const SEvent &event) { 43 42 // Remember whether each key is down or up 44 43 if (event.EventType == EET_KEY_INPUT_EVENT) 45 44 KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown; 46 45 47 // Send all other events to camera48 if (event.EventType == EET_MOUSE_INPUT_EVENT && camera)49 // return camera->OnEvent(event);50 return camera->MouseMoved(event, cursorControl->getRelativePosition());51 52 46 if (model) 53 47 return model->OnEvent(event); … … 57 51 58 52 // This is used to check whether a key is being held down 59 virtualbool IsKeyDown(EKEY_CODE keyCode) {53 bool IsKeyDown(EKEY_CODE keyCode) { 60 54 if (KeyIsDown[keyCode] == true) { 61 55 KeyIsDown[keyCode] = false; … … 66 60 } 67 61 68 MyEventReceiver(ICursorControl *cursorControl) { 69 this->cursorControl = cursorControl; 70 camera = NULL; 62 MyEventReceiver(void) { 71 63 model = NULL; 72 64 for (u32 i = 0; i < KEY_KEY_CODES_COUNT; ++i) 73 65 KeyIsDown[i] = false; 74 66 } 75 void SetCamera(AnimPoursuite *camera) { this->camera = camera; }76 67 void SetModel(Model *model) { this->model = model; } 77 68 … … 79 70 // We use this array to store the current state of each key 80 71 bool KeyIsDown[KEY_KEY_CODES_COUNT]; 81 AnimPoursuite *camera;82 72 Model *model; 83 ICursorControl *cursorControl;84 73 }; 85 74 … … 96 85 device = createDevice(driver_type, dimension2d<u32>(app_width, app_height), 97 86 16, false, false, false); 98 receiver = new MyEventReceiver( device->getCursorControl());87 receiver = new MyEventReceiver(); 99 88 device->setEventReceiver(receiver); 100 89 device->getLogger()->setLogLevel(ELL_NONE); … … 109 98 smgr->setAmbientLight(video::SColorf(1, 1, 1)); 110 99 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);*/ 111 113 /* 112 114 env = device->getGUIEnvironment(); … … 185 187 int cam_id = 0; 186 188 187 receiver->SetCamera(models.at(cam_id)->pimpl_->animator);188 189 receiver->SetModel(models.at(cam_id)); 189 190 … … 199 200 } 200 201 for (size_t j = 0; j < models.size(); j++) { 201 if (i == j) 202 continue; 202 if (i == j) continue; 203 203 models.at(i)->pimpl_->MetaTriangleSelector()->addTriangleSelector( 204 204 models.at(j)->pimpl_->TriangleSelector()); … … 247 247 248 248 // vue poursuite 249 smgr->setActiveCamera(models.at(cam_id)-> pimpl_->camera);249 smgr->setActiveCamera(models.at(cam_id)->getFollowMeCamera()->getCameraSceneNode()); 250 250 driver->setViewPort(core::rect<s32>(0, 0, scene_width, scene_height)); 251 251 smgr->drawAll(); // commente voir plus bas … … 279 279 // mais a priori souci avec models.at(i)->pimpl_->CheckCollision(); 280 280 // (setelipsoid?) 281 smgr->setActiveCamera(models.at(cam_id)-> pimpl_->camera);281 smgr->setActiveCamera(models.at(cam_id)->getFollowMeCamera()->getCameraSceneNode()); 282 282 driver->setViewPort(core::rect<s32>(0, 0, scene_width, scene_height)); 283 283 smgr->drawAll(); … … 294 294 if (receiver->IsKeyDown(KEY_PRIOR)) { 295 295 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; 299 297 receiver->SetModel(models.at(cam_id)); 300 298 setWindowCaption(models.at(cam_id), fps); … … 302 300 if (receiver->IsKeyDown(KEY_NEXT)) { 303 301 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; 307 303 receiver->SetModel(models.at(cam_id)); 308 304 setWindowCaption(models.at(cam_id), fps); … … 355 351 } 356 352 357 receiver->SetCamera(NULL);358 353 receiver->SetModel(NULL); 359 354 }
Note:
See TracChangeset
for help on using the changeset viewer.