void dropCallback(GLFWwindow* window, int count, const char** paths) { sceneFile = "file://" + std::string(paths[0]); sceneYaml.clear(); loadSceneFile(); }
void run() { loadSceneFile(true); double lastTime = glfwGetTime(); // Loop until the user closes the window while (!glfwWindowShouldClose(main_window)) { double currentTime = glfwGetTime(); double delta = currentTime - lastTime; lastTime = currentTime; // Render map->update(delta); map->render(); // Swap front and back buffers glfwSwapBuffers(main_window); // Poll for and process events if (platform->isContinuousRendering()) { glfwPollEvents(); } else { glfwWaitEvents(); } } }
void MainWindow::openSceneFile(){ QString filename = QFileDialog::getOpenFileName(this, tr("Open SimpleTracer scenefile"), ".", tr("SimpleTracer scenefiles (*.sts)")); if(!filename.isEmpty()) loadSceneFile(filename); }
void keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) { if (action == GLFW_PRESS) { switch (key) { case GLFW_KEY_1: Tangram::toggleDebugFlag(Tangram::DebugFlags::freeze_tiles); break; case GLFW_KEY_2: Tangram::toggleDebugFlag(Tangram::DebugFlags::proxy_colors); break; case GLFW_KEY_3: Tangram::toggleDebugFlag(Tangram::DebugFlags::tile_bounds); break; case GLFW_KEY_4: Tangram::toggleDebugFlag(Tangram::DebugFlags::tile_infos); break; case GLFW_KEY_5: Tangram::toggleDebugFlag(Tangram::DebugFlags::labels); break; case GLFW_KEY_6: Tangram::toggleDebugFlag(Tangram::DebugFlags::draw_all_labels); break; case GLFW_KEY_7: Tangram::toggleDebugFlag(Tangram::DebugFlags::tangram_infos); break; case GLFW_KEY_8: Tangram::toggleDebugFlag(Tangram::DebugFlags::tangram_stats); break; case GLFW_KEY_9: Tangram::toggleDebugFlag(Tangram::DebugFlags::selection_buffer); break; case GLFW_KEY_BACKSPACE: recreate_context = true; break; case GLFW_KEY_R: loadSceneFile(); break; case GLFW_KEY_Z: map->setZoomEased(map->getZoom() + 1.f, 1.5f); break; case GLFW_KEY_N: map->setRotationEased(0.f, 1.f); break; case GLFW_KEY_S: if (pixel_scale == 1.0) { pixel_scale = 2.0; } else if (pixel_scale == 2.0) { pixel_scale = 0.75; } else { pixel_scale = 1.0; } map->setPixelScale(pixel_scale); break; case GLFW_KEY_P: map->updateSceneAsync({SceneUpdate{"cameras", "{ main_camera: { type: perspective } }"}}); break; case GLFW_KEY_I: map->updateSceneAsync({SceneUpdate{"cameras", "{ main_camera: { type: isometric } }"}}); break; case GLFW_KEY_M: map->loadSceneYamlAsync("{ scene: { background: { color: red } } }", std::string("")); break; case GLFW_KEY_G: static bool geoJSON = false; if (!geoJSON) { map->updateSceneAsync({ SceneUpdate{"sources.osm.type", "GeoJSON"}, SceneUpdate{"sources.osm.url", "https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.json"} }); } else { map->updateSceneAsync({ SceneUpdate{"sources.osm.type", "MVT"}, SceneUpdate{"sources.osm.url", "https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.mvt"} }); } geoJSON = !geoJSON; break; case GLFW_KEY_ESCAPE: glfwSetWindowShouldClose(window, true); break; case GLFW_KEY_F1: map->setPosition(-74.00976419448854, 40.70532700869127); map->setZoom(16); break; case GLFW_KEY_F2: map->setPosition(8.82, 53.08); map->setZoom(14); break; case GLFW_KEY_F3: map->onMemoryWarning(); break; default: break; } } }
void GameState::loadPhyScene() { loadSceneFile("scene_fangjian.xml", NXU::FT_XML); }