00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __EVENTS__H__
00013 #define __EVENTS__H__
00014
00015 #include <wx/string.h>
00016 #include <wx/event.h>
00017 #include <wx/log.h>
00018 #include <vector>
00019 #include "moddefs.h"
00020 #include "common.h"
00021 #include "guienvironment.h"
00022 #include "scene.h"
00023 #include "textparser.h"
00024
00025
00026 namespace VRUT
00027 {
00029 class Event
00030 {
00031 public:
00039 enum EVENT_TYPE
00040 {
00041 EVT_LOWEST = wxID_HIGHEST + 5000,
00042 EVT_ALL,
00043 EVT_EXIT,
00044 EVT_LOG,
00045 EVT_LOG_SET,
00046 EVT_LOG_LEVEL_SET,
00047 EVT_PARAM_SET_DO,
00048 EVT_PARAM_SET,
00049 EVT_PARAM_REGISTER,
00050 EVT_PARAM_UNREGISTER,
00051 EVT_PARAM_GUIREGISTER,
00052 EVT_PARAM_GUIUNREGISTER,
00053 EVT_INPUT_MOUSE,
00054 EVT_INPUT_KEY,
00055 EVT_INPUT_TRACKING,
00056 EVT_MODULE_PREFER,
00057 EVT_MODULE_FORBID,
00058 EVT_MODULE_RELEASE,
00059 EVT_MODULE_RUN,
00060 EVT_SCENE_RAY_PICK,
00061 EVT_SCENE_COLLISION,
00062 EVT_SCENE_IMAGE_ADD,
00063 EVT_SCENE_IMAGE_ADDED,
00064 EVT_SCENE_MATERIAL_ADD,
00065 EVT_SCENE_MATERIAL_ADDED,
00066 EVT_SCENE_GEOMETRY_ADD,
00067 EVT_SCENE_GEOMETRY_ADDED,
00068 EVT_SCENE_NODE_COPY,
00069 EVT_SCENE_NODE_MOVE,
00070 EVT_SCENE_NODE_MOVED,
00071 EVT_SCENE_NODE_INSERT,
00072 EVT_SCENE_NODE_INSERTED,
00073 EVT_SCENE_NODE_REMOVE,
00074 EVT_SCENE_NODE_REMOVED,
00075 EVT_SCENE_NODE_UID_SET,
00076 EVT_SCENE_NODE_UID_CHANGED,
00077 EVT_SCENE_NODE_NAME_SET,
00078 EVT_SCENE_NODE_NAME_CHANGED,
00079 EVT_SCENE_NODE_TRANSFORM_SET,
00080 EVT_SCENE_NODE_TRANSFORM,
00081 EVT_SCENE_NODE_TRANSLATE_ABS,
00082 EVT_SCENE_NODE_TRANSFORMED,
00083 EVT_SCENE_NODE_GEOMETRY_SET,
00084 EVT_SCENE_NODE_GEOMETRY_CHANGED,
00085 EVT_SCENE_NODE_MATERIAL_SET,
00086 EVT_SCENE_NODE_MATERIAL_CHANGED,
00087 EVT_SCENE_NODE_LIGHT_SET,
00088 EVT_SCENE_NODE_LIGHT_CHANGED,
00089 EVT_SCENE_CAM_FIT,
00090 EVT_SCENE_CAM_FIT_NEAR_FAR,
00091 EVT_SCENE_CAM_RESETVIEW,
00092 EVT_SCENE_CAM_PROJECTION_SET,
00093 EVT_SCENE_CAM_PROJECTION_CHANGED,
00094 EVT_SCENE_GRAPHVIZ,
00095 EVT_SCENE_DUMP,
00096 EVT_SCENE_BVH_UPDATE,
00097 EVT_SCENE_BVH_UPDATED,
00098 EVT_IO_SCENE_IMPORT,
00099 EVT_IO_SCENE_IMPORT_DO,
00100 EVT_IO_SCENE_IMPORT_DONE,
00101 EVT_IO_SCENE_EXPORT,
00102 EVT_RENDER_SCENE,
00103 EVT_RENDER_WIN_CREATED,
00104 EVT_RENDER_WIN_CLOSED,
00105 EVT_RENDER_UPDATE,
00106 EVT_RENDER_CACHE_START,
00107 EVT_RENDER_CACHE_STOP,
00108 EVT_RENDER_FRAMERATE,
00109 EVT_RENDER_FULLSCREEN_TOGGLE,
00110 EVT_RENDER_FULLSCREEN_SET,
00111 EVT_GUI_PANE_SHOW,
00112 EVT_GUI_PARAM_SHOW,
00113 EVT_HIGHEST
00114 };
00115
00117 static void AddNodeIdent(NODE_ID id, wxCommandEvent & evt)
00118 {
00119 evt.SetString(wxString::Format(wxT("%s %i"), evt.GetString().c_str(), id));
00120 }
00122 static void AddNodeIdent(const wxString & uid, wxCommandEvent & evt)
00123 {
00124 evt.SetString(wxString::Format(wxT("%s \"%s\""), evt.GetString().c_str(), uid.c_str()));
00125 }
00128 static size_t ExtractNodeIDs(const wxCommandEvent & evt, std::vector<NODE_ID> & ids, const Scene * scene)
00129 {
00130 ids.clear();
00131 if (evt.GetString().IsEmpty())
00132 ids.push_back(evt.GetInt());
00133 else
00134 {
00135 TextParser txtParser(evt.GetString());
00136 while (!txtParser.IsEmpty())
00137 {
00138 if (txtParser.NextCharIs('\"'))
00139 {
00140 if (scene)
00141 ids.push_back(scene->GetNodeID(txtParser.GetWxString()));
00142 else
00143 ids.push_back(NODE_ID_NONE);
00144 }
00145 else
00146 {
00147 long id;
00148 if (txtParser.ParseLong(&id))
00149 ids.push_back(NODE_ID(id));
00150 else
00151 ids.push_back(NODE_ID_NONE);
00152 }
00153 }
00154 }
00155
00156 return ids.size();
00157 }
00159 static NODE_ID ExtractNodeID(const wxCommandEvent & evt, const Scene * scene)
00160 {
00161 return ( evt.GetString().IsEmpty() ? NODE_ID(evt.GetInt()) : scene->GetNodeID(evt.GetString()) );
00162 }
00163
00165 static wxCommandEvent GET_EVT_EXIT()
00166 {
00167 return wxCommandEvent(EVT_EXIT);
00168 }
00170 static wxCommandEvent GET_EVT_LOG(const wxString & msg, const wxLogLevel loglevel)
00171 {
00172 wxCommandEvent evt(EVT_LOG);
00173 evt.SetString(CloneWxString(msg));
00174 evt.SetInt(int(loglevel));
00175 return evt;
00176 }
00178 static wxCommandEvent GET_EVT_LOG_SET(wxLog * log)
00179 {
00180 wxCommandEvent evt(EVT_LOG_SET);
00181 evt.SetClientData(log);
00182 return evt;
00183 }
00185 static wxCommandEvent GET_EVT_LOG_LEVEL_SET(const wxLogLevel loglevel)
00186 {
00187 wxCommandEvent evt(EVT_LOG_LEVEL_SET);
00188 evt.SetInt(int(loglevel));
00189 return evt;
00190 }
00192 static wxCommandEvent GET_EVT_PARAM_SET_DO(const Parameter::ParameterIdentificator & paramIdentificator, const wxString & value, bool forceDefault = false)
00193 {
00194 wxCommandEvent evt(EVT_PARAM_SET_DO);
00195 evt.SetClientData(new wxString(CloneWxString(paramIdentificator.ToString() + wxT("=") + value)));
00196 evt.SetInt(forceDefault ? 1 : 0);
00197 return evt;
00198 }
00200 static wxCommandEvent GET_EVT_PARAM_SET(const Parameter::ParameterIdentificator & paramIdentificator, const wxString & value)
00201 {
00202 wxCommandEvent evt(EVT_PARAM_SET);
00203 evt.SetClientData(new wxString(CloneWxString(paramIdentificator.ToString() + wxT("=") + value)));
00204 return evt;
00205 }
00207 static wxCommandEvent GET_EVT_PARAM_REGISTER(const Parameter::ParameterIdentificator & paramIdentificator, const wxString & value)
00208 {
00209 wxCommandEvent evt(EVT_PARAM_REGISTER);
00210 evt.SetClientData(new wxString(CloneWxString(paramIdentificator.ToString() + wxT("=") + value)));
00211 return evt;
00212 }
00214 static wxCommandEvent GET_EVT_PARAM_UNREGISTER(const Parameter::ParameterIdentificator & paramIdentificator)
00215 {
00216 wxCommandEvent evt(EVT_PARAM_UNREGISTER);
00217 evt.SetClientData(new wxString(CloneWxString(paramIdentificator.ToString())));
00218 return evt;
00219 }
00221 static wxCommandEvent GET_EVT_PARAM_GUIREGISTER(const GUIEnvironment::GUIParamInfo & paramInfo, const wxString & value)
00222 {
00223 wxCommandEvent evt(EVT_PARAM_GUIREGISTER);
00224 evt.SetString(CloneWxString(value));
00225 evt.SetClientData(new GUIEnvironment::GUIParamInfo(paramInfo));
00226 return evt;
00227 }
00229 static wxCommandEvent GET_EVT_PARAM_GUIUNREGISTER(const Parameter::ParameterIdentificator & paramIdentificator)
00230 {
00231 wxCommandEvent evt(EVT_PARAM_GUIUNREGISTER);
00232 evt.SetClientData(new wxString(CloneWxString(paramIdentificator.ToString())));
00233 return evt;
00234 }
00236 static wxCommandEvent GET_EVT_INPUT_TRACKING(void * deviceData)
00237 {
00238 wxCommandEvent evt(EVT_INPUT_TRACKING);
00239 evt.SetClientData(deviceData);
00240 return evt;
00241 }
00243 static wxCommandEvent GET_EVT_MODULE_PREFER(const wxString & moduleName)
00244 {
00245 wxCommandEvent evt(EVT_MODULE_PREFER);
00246 evt.SetString(CloneWxString(moduleName));
00247 return evt;
00248 }
00250 static wxCommandEvent GET_EVT_MODULE_FORBID(const wxString & moduleName)
00251 {
00252 wxCommandEvent evt(EVT_MODULE_FORBID);
00253 evt.SetString(CloneWxString(moduleName));
00254 return evt;
00255 }
00257
00258 static wxCommandEvent GET_EVT_MODULE_RELEASE(const MODULE_ID & mid)
00259 {
00260 wxCommandEvent evt(EVT_MODULE_RELEASE);
00261 evt.SetExtraLong(mid.GetID());
00262 return evt;
00263 }
00265 static wxCommandEvent GET_EVT_MODULE_RUN(const wxString & moduleName)
00266 {
00267 wxCommandEvent evt(EVT_MODULE_RUN);
00268 evt.SetString(CloneWxString(moduleName));
00269 return evt;
00270 }
00272 static wxCommandEvent GET_EVT_SCENE_RAY_PICK(const SCENE_ID sceneID, void * ray)
00273 {
00274 wxCommandEvent evt(EVT_SCENE_RAY_PICK);
00275 evt.SetId(int(sceneID));
00276 evt.SetClientData(ray);
00277 return evt;
00278 }
00280 static wxCommandEvent GET_EVT_SCENE_COLLISION(const SCENE_ID sceneID, void * colReport)
00281 {
00282 wxCommandEvent evt(EVT_SCENE_COLLISION);
00283 evt.SetId(int(sceneID));
00284 evt.SetClientData(colReport);
00285 return evt;
00286 }
00288 static wxCommandEvent GET_EVT_SCENE_IMAGE_ADD(const wxString & texFile)
00289 {
00290 wxCommandEvent evt(EVT_SCENE_IMAGE_ADD);
00291 evt.SetString(CloneWxString(texFile));
00292 return evt;
00293 }
00295 static wxCommandEvent GET_EVT_SCENE_IMAGE_ADDED(const wxString & texFile)
00296 {
00297 wxCommandEvent evt(EVT_SCENE_IMAGE_ADDED);
00298 evt.SetString(CloneWxString(texFile));
00299 return evt;
00300 }
00302 static wxCommandEvent GET_EVT_SCENE_MATERIAL_ADD(const SCENE_ID sceneID, void * material)
00303 {
00304 wxCommandEvent evt(EVT_SCENE_MATERIAL_ADD);
00305 evt.SetId(int(sceneID));
00306 evt.SetClientData(material);
00307 return evt;
00308 }
00310 static wxCommandEvent GET_EVT_SCENE_MATERIAL_ADDED(const SCENE_ID sceneID, const MATERIAL_ID materialID)
00311 {
00312 wxCommandEvent evt(EVT_SCENE_MATERIAL_ADDED);
00313 evt.SetId(int(sceneID));
00314 evt.SetInt(int(materialID));
00315 return evt;
00316 }
00318 static wxCommandEvent GET_EVT_SCENE_GEOMETRY_ADD(const SCENE_ID sceneID, void * geometry)
00319 {
00320 wxCommandEvent evt(EVT_SCENE_GEOMETRY_ADD);
00321 evt.SetId(int(sceneID));
00322 evt.SetClientData(geometry);
00323 return evt;
00324 }
00326 static wxCommandEvent GET_EVT_SCENE_GEOMETRY_ADDED(const SCENE_ID sceneID, const GEOMETRY_ID geometryID)
00327 {
00328 wxCommandEvent evt(EVT_SCENE_GEOMETRY_ADDED);
00329 evt.SetId(int(sceneID));
00330 evt.SetInt(int(geometryID));
00331 return evt;
00332 }
00334 static wxCommandEvent GET_EVT_SCENE_NODE_COPY(const SCENE_ID sceneID, NODE_ID srcID, NODE_ID targetID)
00335 {
00336 wxCommandEvent evt(EVT_SCENE_NODE_COPY);
00337 evt.SetId(int(sceneID));
00338 AddNodeIdent(srcID, evt);
00339 AddNodeIdent(targetID, evt);
00340 return evt;
00341 }
00343 static wxCommandEvent GET_EVT_SCENE_NODE_COPY(const SCENE_ID sceneID, const wxString & srcUid, const wxString & targetUid)
00344 {
00345 wxCommandEvent evt(EVT_SCENE_NODE_COPY);
00346 evt.SetId(int(sceneID));
00347 AddNodeIdent(srcUid, evt);
00348 AddNodeIdent(targetUid, evt);
00349 return evt;
00350 }
00352 static wxCommandEvent GET_EVT_SCENE_NODE_MOVE(const SCENE_ID sceneID, NODE_ID srcID, NODE_ID targetID)
00353 {
00354 wxCommandEvent evt(EVT_SCENE_NODE_MOVE);
00355 evt.SetId(int(sceneID));
00356 AddNodeIdent(srcID, evt);
00357 AddNodeIdent(targetID, evt);
00358 return evt;
00359 }
00361 static wxCommandEvent GET_EVT_SCENE_NODE_MOVE(const SCENE_ID sceneID, const wxString & srcUid, const wxString & targetUid)
00362 {
00363 wxCommandEvent evt(EVT_SCENE_NODE_MOVE);
00364 evt.SetId(int(sceneID));
00365 AddNodeIdent(srcUid, evt);
00366 AddNodeIdent(targetUid, evt);
00367 return evt;
00368 }
00370 static wxCommandEvent GET_EVT_SCENE_NODE_MOVED(const SCENE_ID sceneID, NODE_ID nodeID)
00371 {
00372 wxCommandEvent evt(EVT_SCENE_NODE_MOVED);
00373 evt.SetId(int(sceneID));
00374 evt.SetInt(int(nodeID));
00375 return evt;
00376 }
00378 static wxCommandEvent GET_EVT_SCENE_NODE_INSERT(const SCENE_ID sceneID, void * node, const wxString & parentUid)
00379 {
00380 wxCommandEvent evt(EVT_SCENE_NODE_INSERT);
00381 evt.SetId(int(sceneID));
00382 evt.SetString(CloneWxString(parentUid));
00383 evt.SetClientData(node);
00384 return evt;
00385 }
00387 static wxCommandEvent GET_EVT_SCENE_NODE_INSERT(const SCENE_ID sceneID, void * node, const NODE_ID parentID)
00388 {
00389 wxCommandEvent evt(EVT_SCENE_NODE_INSERT);
00390 evt.SetId(int(sceneID));
00391 evt.SetInt(int(parentID));
00392 evt.SetClientData(node);
00393 return evt;
00394 }
00396 static wxCommandEvent GET_EVT_SCENE_NODE_INSERTED(const SCENE_ID sceneID, const NODE_ID nodeID, const wxString &nodeUid)
00397 {
00398 wxCommandEvent evt(EVT_SCENE_NODE_INSERTED);
00399 evt.SetId(int(sceneID));
00400 evt.SetInt(int(nodeID));
00401 evt.SetString(CloneWxString(nodeUid));
00402 return evt;
00403 }
00405 static wxCommandEvent GET_EVT_SCENE_NODE_REMOVE(const SCENE_ID sceneID, const wxString & nodeUid)
00406 {
00407 wxCommandEvent evt(EVT_SCENE_NODE_REMOVE);
00408 evt.SetId(int(sceneID));
00409 evt.SetString(CloneWxString(nodeUid));
00410 return evt;
00411 }
00413 static wxCommandEvent GET_EVT_SCENE_NODE_REMOVE(const SCENE_ID sceneID, const NODE_ID nodeID)
00414 {
00415 wxCommandEvent evt(EVT_SCENE_NODE_REMOVE);
00416 evt.SetId(int(sceneID));
00417 evt.SetInt(int(nodeID));
00418 return evt;
00419 }
00421 static wxCommandEvent GET_EVT_SCENE_NODE_REMOVED(const SCENE_ID sceneID, const NODE_ID nodeID)
00422 {
00423 wxCommandEvent evt(EVT_SCENE_NODE_REMOVED);
00424 evt.SetId(int(sceneID));
00425 evt.SetInt(int(nodeID));
00426 return evt;
00427 }
00429 static wxCommandEvent GET_EVT_SCENE_NODE_UID_SET(const SCENE_ID sceneID, const wxString & nodeUid, const wxString & newUid)
00430 {
00431 wxCommandEvent evt(EVT_SCENE_NODE_UID_SET);
00432 evt.SetId(int(sceneID));
00433 evt.SetString(CloneWxString(nodeUid));
00434
00435 evt.SetClientData(new wxString(CloneWxString(newUid)));
00436 return evt;
00437 }
00439 static wxCommandEvent GET_EVT_SCENE_NODE_UID_SET(const SCENE_ID sceneID, const NODE_ID nodeID, const wxString & newUid)
00440 {
00441 wxCommandEvent evt(EVT_SCENE_NODE_UID_SET);
00442 evt.SetId(int(sceneID));
00443 evt.SetInt(int(nodeID));
00444
00445 evt.SetClientData(new wxString(CloneWxString(newUid)));
00446 return evt;
00447 }
00449 static wxCommandEvent GET_EVT_SCENE_NODE_UID_CHANGED(const SCENE_ID sceneID, const NODE_ID nodeID)
00450 {
00451 wxCommandEvent evt(EVT_SCENE_NODE_UID_CHANGED);
00452 evt.SetId(int(sceneID));
00453 evt.SetInt(int(nodeID));
00454 return evt;
00455 }
00457 static wxCommandEvent GET_EVT_SCENE_NODE_NAME_SET(const SCENE_ID sceneID, const wxString & nodeUid, const wxString & newName)
00458 {
00459 wxCommandEvent evt(EVT_SCENE_NODE_NAME_SET);
00460 evt.SetId(int(sceneID));
00461 evt.SetString(CloneWxString(nodeUid));
00462
00463 evt.SetClientData(new wxString(CloneWxString(newName)));
00464 return evt;
00465 }
00467 static wxCommandEvent GET_EVT_SCENE_NODE_NAME_SET(const SCENE_ID sceneID, const NODE_ID nodeID, const wxString & newName)
00468 {
00469 wxCommandEvent evt(EVT_SCENE_NODE_NAME_SET);
00470 evt.SetId(int(sceneID));
00471 evt.SetInt(int(nodeID));
00472
00473 evt.SetClientData(new wxString(CloneWxString(newName)));
00474 return evt;
00475 }
00477 static wxCommandEvent GET_EVT_SCENE_NODE_NAME_CHANGED(const SCENE_ID sceneID, const NODE_ID nodeID)
00478 {
00479 wxCommandEvent evt(EVT_SCENE_NODE_NAME_CHANGED);
00480 evt.SetId(int(sceneID));
00481 evt.SetInt(int(nodeID));
00482 return evt;
00483 }
00485 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSFORM_SET(const SCENE_ID sceneID, const wxString & nodeUid, const MATRIX & mat)
00486 {
00487 wxCommandEvent evt(EVT_SCENE_NODE_TRANSFORM_SET);
00488 evt.SetId(int(sceneID));
00489 evt.SetString(CloneWxString(nodeUid));
00490 evt.SetClientData(new MATRIX(mat));
00491 return evt;
00492 }
00494 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSFORM_SET(const SCENE_ID sceneID, const NODE_ID nodeID, const MATRIX & mat)
00495 {
00496 wxCommandEvent evt(EVT_SCENE_NODE_TRANSFORM_SET);
00497 evt.SetId(int(sceneID));
00498 evt.SetInt(int(nodeID));
00499 evt.SetClientData(new MATRIX(mat));
00500 return evt;
00501 }
00503 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSFORM(const SCENE_ID sceneID, const wxString & nodeUid, const MATRIX & mat)
00504 {
00505 wxCommandEvent evt(EVT_SCENE_NODE_TRANSFORM);
00506 evt.SetId(int(sceneID));
00507 evt.SetString(CloneWxString(nodeUid));
00508 evt.SetClientData(new MATRIX(mat));
00509 return evt;
00510 }
00512 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSFORM(const SCENE_ID sceneID, const NODE_ID nodeID, const MATRIX & mat)
00513 {
00514 wxCommandEvent evt(EVT_SCENE_NODE_TRANSFORM);
00515 evt.SetId(int(sceneID));
00516 evt.SetInt(int(nodeID));
00517 evt.SetClientData(new MATRIX(mat));
00518 return evt;
00519 }
00521 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSLATE_ABS(const SCENE_ID sceneID, const wxString & nodeUid, const VECTOR3 & vec)
00522 {
00523 wxCommandEvent evt(EVT_SCENE_NODE_TRANSLATE_ABS);
00524 evt.SetId(int(sceneID));
00525 evt.SetString(CloneWxString(nodeUid));
00526 evt.SetClientData(new VECTOR3(vec));
00527 return evt;
00528 }
00530 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSLATE_ABS(const SCENE_ID sceneID, const NODE_ID nodeID, const VECTOR3 & vec)
00531 {
00532 wxCommandEvent evt(EVT_SCENE_NODE_TRANSLATE_ABS);
00533 evt.SetId(int(sceneID));
00534 evt.SetInt(int(nodeID));
00535 evt.SetClientData(new VECTOR3(vec));
00536 return evt;
00537 }
00539 static wxCommandEvent GET_EVT_SCENE_NODE_TRANSFORMED(const SCENE_ID sceneID, const NODE_ID nodeID)
00540 {
00541 wxCommandEvent evt(EVT_SCENE_NODE_TRANSFORMED);
00542 evt.SetId(int(sceneID));
00543 evt.SetInt(int(nodeID));
00544 return evt;
00545 }
00547 static wxCommandEvent GET_EVT_SCENE_NODE_GEOMETRY_SET(const SCENE_ID sceneID, const wxString & nodeUid, const wxString & geometryName)
00548 {
00549 wxCommandEvent evt(EVT_SCENE_NODE_GEOMETRY_SET);
00550 evt.SetId(int(sceneID));
00551 evt.SetString(CloneWxString(nodeUid));
00552
00553 evt.SetClientData(new wxString(CloneWxString(geometryName)));
00554 return evt;
00555 }
00557 static wxCommandEvent GET_EVT_SCENE_NODE_GEOMETRY_SET(const SCENE_ID sceneID, const NODE_ID nodeID, const wxString & geometryName)
00558 {
00559 wxCommandEvent evt(EVT_SCENE_NODE_GEOMETRY_SET);
00560 evt.SetId(int(sceneID));
00561 evt.SetInt(int(nodeID));
00562
00563 evt.SetClientData(new wxString(CloneWxString(geometryName)));
00564 return evt;
00565 }
00567 static wxCommandEvent GET_EVT_SCENE_NODE_GEOMETRY_CHANGED(const SCENE_ID sceneID, const NODE_ID nodeID)
00568 {
00569 wxCommandEvent evt(EVT_SCENE_NODE_GEOMETRY_CHANGED);
00570 evt.SetId(int(sceneID));
00571 evt.SetInt(int(nodeID));
00572 return evt;
00573 }
00575 static wxCommandEvent GET_EVT_SCENE_NODE_MATERIAL_SET(const SCENE_ID sceneID, const wxString & nodeUid, const wxString & materialName)
00576 {
00577 wxCommandEvent evt(EVT_SCENE_NODE_MATERIAL_SET);
00578 evt.SetId(int(sceneID));
00579 evt.SetString(CloneWxString(nodeUid));
00580
00581 evt.SetClientData(new wxString(CloneWxString(materialName)));
00582 return evt;
00583 }
00585 static wxCommandEvent GET_EVT_SCENE_NODE_MATERIAL_SET(const SCENE_ID sceneID, const NODE_ID nodeID, const wxString & materialName)
00586 {
00587 wxCommandEvent evt(EVT_SCENE_NODE_MATERIAL_SET);
00588 evt.SetId(int(sceneID));
00589 evt.SetInt(int(nodeID));
00590
00591 evt.SetClientData(new wxString(CloneWxString(materialName)));
00592 return evt;
00593 }
00595 static wxCommandEvent GET_EVT_SCENE_NODE_MATERIAL_CHANGED(const SCENE_ID sceneID, const NODE_ID nodeID)
00596 {
00597 wxCommandEvent evt(EVT_SCENE_NODE_MATERIAL_CHANGED);
00598 evt.SetId(int(sceneID));
00599 evt.SetInt(int(nodeID));
00600 return evt;
00601 }
00603 static wxCommandEvent GET_EVT_SCENE_NODE_LIGHT_SET(const SCENE_ID sceneID, const wxString & nodeUid, void * light)
00604 {
00605 wxCommandEvent evt(EVT_SCENE_NODE_LIGHT_SET);
00606 evt.SetId(int(sceneID));
00607 evt.SetString(CloneWxString(nodeUid));
00608 evt.SetClientData(light);
00609 return evt;
00610 }
00612 static wxCommandEvent GET_EVT_SCENE_NODE_LIGHT_SET(const SCENE_ID sceneID, const NODE_ID nodeID, void * light)
00613 {
00614 wxCommandEvent evt(EVT_SCENE_NODE_LIGHT_SET);
00615 evt.SetId(int(sceneID));
00616 evt.SetInt(int(nodeID));
00617 evt.SetClientData(light);
00618 return evt;
00619 }
00621 static wxCommandEvent GET_EVT_SCENE_NODE_LIGHT_CHANGED(const SCENE_ID sceneID, const NODE_ID nodeID)
00622 {
00623 wxCommandEvent evt(EVT_SCENE_NODE_LIGHT_CHANGED);
00624 evt.SetId(int(sceneID));
00625 evt.SetInt(int(nodeID));
00626 return evt;
00627 }
00629 static wxCommandEvent GET_EVT_SCENE_CAM_FIT(const SCENE_ID sceneID, const NODE_ID camID)
00630 {
00631 wxCommandEvent evt(EVT_SCENE_CAM_FIT);
00632 evt.SetId(int(sceneID));
00633 evt.SetInt(int(camID));
00634 return evt;
00635 }
00637 static wxCommandEvent GET_EVT_SCENE_CAM_FIT_NEAR_FAR(const SCENE_ID sceneID, const NODE_ID camID)
00638 {
00639 wxCommandEvent evt(EVT_SCENE_CAM_FIT_NEAR_FAR);
00640 evt.SetId(int(sceneID));
00641 evt.SetInt(int(camID));
00642 return evt;
00643 }
00645 static wxCommandEvent GET_EVT_SCENE_CAM_RESETVIEW(const SCENE_ID sceneID, const NODE_ID camID)
00646 {
00647 wxCommandEvent evt(EVT_SCENE_CAM_RESETVIEW);
00648 evt.SetId(int(sceneID));
00649 evt.SetInt(int(camID));
00650 return evt;
00651 }
00653 static wxCommandEvent GET_EVT_SCENE_CAM_PROJECTION_SET(const SCENE_ID sceneID,
00654 const NODE_ID camID,
00655 unsigned projWidth = 0,
00656 unsigned projHeight = 0,
00657 float projNear = 0.0f,
00658 float projFar = 0.0f,
00659 float projFov = 0.0f)
00660 {
00661 wxCommandEvent evt(EVT_SCENE_CAM_PROJECTION_SET);
00662 evt.SetId(int(sceneID));
00663 evt.SetInt(int(camID));
00664 evt.SetClientData(new wxString(wxString::Format(wxT("%i;%i;%g;%g;%g"), projWidth, projHeight, projNear, projFar, projFov)));
00665 return evt;
00666 }
00668 static wxCommandEvent GET_EVT_SCENE_CAM_PROJECTION_SET(const SCENE_ID sceneID,
00669 const wxString & camNodeUid,
00670 unsigned projWidth = 0,
00671 unsigned projHeight = 0,
00672 float projNear = 0.0f,
00673 float projFar = 0.0f,
00674 float projFov = 0.0f)
00675 {
00676 wxCommandEvent evt(EVT_SCENE_CAM_PROJECTION_SET);
00677 evt.SetId(int(sceneID));
00678 evt.SetString(CloneWxString(camNodeUid));
00679 evt.SetClientData(new wxString(wxString::Format(wxT("%i;%i;%g;%g;%g"), projWidth, projHeight, projNear, projFar, projFov)));
00680 return evt;
00681 }
00683 static wxCommandEvent GET_EVT_SCENE_CAM_PROJECTION_CHANGED(const SCENE_ID sceneID, const NODE_ID camID)
00684 {
00685 wxCommandEvent evt(EVT_SCENE_CAM_PROJECTION_CHANGED);
00686 evt.SetId(int(sceneID));
00687 evt.SetInt(int(camID));
00688 return evt;
00689 }
00691 static wxCommandEvent GET_EVT_SCENE_GRAPHVIZ(const SCENE_ID sceneID)
00692 {
00693 wxCommandEvent evt(EVT_SCENE_GRAPHVIZ);
00694 evt.SetId(int(sceneID));
00695 return evt;
00696 }
00698 static wxCommandEvent GET_EVT_SCENE_DUMP(const SCENE_ID sceneID)
00699 {
00700 wxCommandEvent evt(EVT_SCENE_DUMP);
00701 evt.SetId(int(sceneID));
00702 return evt;
00703 }
00705 static wxCommandEvent GET_EVT_SCENE_BVH_UPDATE(const SCENE_ID sceneID)
00706 {
00707 wxCommandEvent evt(EVT_SCENE_BVH_UPDATE);
00708 evt.SetId(int(sceneID));
00709 return evt;
00710 }
00712 static wxCommandEvent GET_EVT_SCENE_BVH_UPDATED(const SCENE_ID sceneID)
00713 {
00714 wxCommandEvent evt(EVT_SCENE_BVH_UPDATED);
00715 evt.SetId(int(sceneID));
00716 return evt;
00717 }
00719 static wxCommandEvent GET_EVT_IO_SCENE_IMPORT(const wxString & sceneFile)
00720 {
00721 wxCommandEvent evt(EVT_IO_SCENE_IMPORT);
00722 evt.SetString(CloneWxString(sceneFile));
00723 return evt;
00724 }
00726 static wxCommandEvent GET_EVT_IO_SCENE_IMPORT_DO(const SCENE_ID sceneID, const NODE_ID rootID, const wxString & sceneFile)
00727 {
00728 wxCommandEvent evt(EVT_IO_SCENE_IMPORT_DO);
00729 evt.SetId(int(sceneID));
00730 evt.SetInt(int(rootID));
00731 evt.SetString(CloneWxString(sceneFile));
00732 return evt;
00733 }
00735 static wxCommandEvent GET_EVT_IO_SCENE_IMPORT_DONE(const SCENE_ID sceneID)
00736 {
00737 wxCommandEvent evt(EVT_IO_SCENE_IMPORT_DONE);
00738 evt.SetId(int(sceneID));
00739 return evt;
00740 }
00742 static wxCommandEvent GET_EVT_IO_SCENE_EXPORT(const SCENE_ID sceneID, const wxString & sceneFile)
00743 {
00744 wxCommandEvent evt(EVT_IO_SCENE_EXPORT);
00745 evt.SetId(int(sceneID));
00746 evt.SetString(CloneWxString(sceneFile));
00747 return evt;
00748 }
00750 static wxCommandEvent GET_EVT_RENDER_SCENE(const SCENE_ID sceneID)
00751 {
00752 wxCommandEvent evt(EVT_RENDER_SCENE);
00753 evt.SetId(int(sceneID));
00754 return evt;
00755 }
00757 static wxCommandEvent GET_EVT_RENDER_WIN_CREATED(const RENDER_WINDOW_ID windowID)
00758 {
00759 wxCommandEvent evt(EVT_RENDER_WIN_CREATED);
00760 evt.SetId(int(windowID));
00761 return evt;
00762 }
00764 static wxCommandEvent GET_EVT_RENDER_WIN_CLOSED(const RENDER_WINDOW_ID windowID)
00765 {
00766 wxCommandEvent evt(EVT_RENDER_WIN_CLOSED);
00767 evt.SetId(int(windowID));
00768 return evt;
00769 }
00771 static wxCommandEvent GET_EVT_RENDER_UPDATE(const SCENE_ID sceneID)
00772 {
00773 wxCommandEvent evt(EVT_RENDER_UPDATE);
00774 evt.SetId(int(sceneID));
00775 return evt;
00776 }
00778 static wxCommandEvent GET_EVT_RENDER_CACHE_START(const SCENE_ID sceneID)
00779 {
00780 wxCommandEvent evt(EVT_RENDER_CACHE_START);
00781 evt.SetId(int(sceneID));
00782 return evt;
00783 }
00785 static wxCommandEvent GET_EVT_RENDER_CACHE_STOP(const SCENE_ID sceneID)
00786 {
00787 wxCommandEvent evt(EVT_RENDER_CACHE_STOP);
00788 evt.SetId(int(sceneID));
00789 return evt;
00790 }
00792 static wxCommandEvent GET_EVT_RENDER_FRAMERATE(const RENDER_WINDOW_ID windowID, const int fpsX1000)
00793 {
00794 wxCommandEvent evt(EVT_RENDER_FRAMERATE);
00795 evt.SetId(int(windowID));
00796 evt.SetInt(fpsX1000);
00797 return evt;
00798 }
00800 static wxCommandEvent GET_EVT_RENDER_FULLSCREEN_TOGGLE(const RENDER_WINDOW_ID windowID)
00801 {
00802 wxCommandEvent evt(EVT_RENDER_FULLSCREEN_TOGGLE);
00803 evt.SetId(int(windowID));
00804 return evt;
00805 }
00807 static wxCommandEvent GET_EVT_RENDER_FULLSCREEN_SET(const RENDER_WINDOW_ID windowID, const bool fullScreen)
00808 {
00809 wxCommandEvent evt(EVT_RENDER_FULLSCREEN_SET);
00810 evt.SetId(int(windowID));
00811 evt.SetInt(int(fullScreen));
00812 return evt;
00813 }
00815 static wxCommandEvent GET_EVT_GUI_PANE_SHOW(const int paneID, const bool show)
00816 {
00817 wxCommandEvent evt(EVT_GUI_PANE_SHOW);
00818 evt.SetId(paneID);
00819 evt.SetInt(show ? 1 : 0);
00820 return evt;
00821 }
00823 static wxCommandEvent GET_EVT_GUI_PARAM_SHOW(const wxString & fullParamName, const bool show)
00824 {
00825 wxCommandEvent evt(EVT_GUI_PARAM_SHOW);
00826 evt.SetString(CloneWxString(fullParamName));
00827 evt.SetInt(show ? 1 : 0);
00828 return evt;
00829 }
00830 };
00831 };
00832
00833
00834 #endif