mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-02 00:44:43 -05:00
Add events when paths are started or finished (closes #1834)
This commit is contained in:
+35
-5
@@ -179,11 +179,6 @@ void log(int i, const EventPointSpacecraft& e) {
|
||||
));
|
||||
}
|
||||
|
||||
void log(int i, const CustomEvent& e) {
|
||||
ghoul_assert(e.type == CustomEvent::Type, "Wrong type");
|
||||
LINFO(fmt::format("[{}] CustomEvent: {} ({})", i, e.subtype, e.payload));
|
||||
}
|
||||
|
||||
void log(int i, const EventRenderableEnabled& e) {
|
||||
ghoul_assert(e.type == EventRenderableEnabled::Type, "Wrong type");
|
||||
LINFO(fmt::format("[{}] EventRenderableEnabled: {}", i, e.node));
|
||||
@@ -194,6 +189,20 @@ void log(int i, const EventRenderableDisabled& e) {
|
||||
LINFO(fmt::format("[{}] EventRenderableDisabled: {}", i, e.node));
|
||||
}
|
||||
|
||||
void log(int i, const EventCameraPathStarted& e) {
|
||||
ghoul_assert(e.type == EventCameraPathStarted::Type, "Wrong type");
|
||||
LINFO(fmt::format("[{}] EventCameraPathStarted", i));
|
||||
}
|
||||
|
||||
void log(int i, const EventCameraPathFinished& e) {
|
||||
ghoul_assert(e.type == EventCameraPathFinished::Type, "Wrong type");
|
||||
LINFO(fmt::format("[{}] EventCameraPathFinished", i));
|
||||
}
|
||||
|
||||
void log(int i, const CustomEvent& e) {
|
||||
ghoul_assert(e.type == CustomEvent::Type, "Wrong type");
|
||||
LINFO(fmt::format("[{}] CustomEvent: {} ({})", i, e.subtype, e.payload));
|
||||
}
|
||||
|
||||
std::string_view toString(Event::Type type) {
|
||||
switch (type) {
|
||||
@@ -217,6 +226,8 @@ std::string_view toString(Event::Type type) {
|
||||
case Event::Type::PointSpacecraft: return "PointSpacecraft";
|
||||
case Event::Type::RenderableEnabled: return "RenderableEnabled";
|
||||
case Event::Type::RenderableDisabled: return "RenderableDisabled";
|
||||
case Event::Type::CameraPathStarted: return "CameraPathStarted";
|
||||
case Event::Type::CameraPathFinished: return "CameraPathFinished";
|
||||
case Event::Type::Custom: return "Custom";
|
||||
default:
|
||||
throw ghoul::MissingCaseException();
|
||||
@@ -281,6 +292,12 @@ Event::Type fromString(std::string_view str) {
|
||||
else if (str == "RenderableDisabled") {
|
||||
return Event::Type::RenderableDisabled;
|
||||
}
|
||||
else if (str == "CameraPathStarted") {
|
||||
return Event::Type::CameraPathStarted;
|
||||
}
|
||||
else if (str == "CameraPathFinished") {
|
||||
return Event::Type::CameraPathFinished;
|
||||
}
|
||||
else if (str == "Custom") {
|
||||
return Event::Type::Custom;
|
||||
}
|
||||
@@ -534,6 +551,12 @@ void logAllEvents(const Event* e) {
|
||||
case Event::Type::RenderableDisabled:
|
||||
log(i, *static_cast<const EventRenderableDisabled*>(e));
|
||||
break;
|
||||
case Event::Type::CameraPathStarted:
|
||||
log(i, *static_cast<const EventCameraPathStarted*>(e));
|
||||
break;
|
||||
case Event::Type::CameraPathFinished:
|
||||
log(i, *static_cast<const EventCameraPathFinished*>(e));
|
||||
break;
|
||||
case Event::Type::Custom:
|
||||
log(i, *static_cast<const CustomEvent*>(e));
|
||||
break;
|
||||
@@ -662,6 +685,13 @@ EventRenderableDisabled::EventRenderableDisabled(const SceneGraphNode* node_)
|
||||
, node(temporaryString(node_->identifier()))
|
||||
{}
|
||||
|
||||
EventCameraPathStarted::EventCameraPathStarted()
|
||||
: Event(Type)
|
||||
{}
|
||||
|
||||
EventCameraPathFinished::EventCameraPathFinished()
|
||||
: Event(Type)
|
||||
{}
|
||||
|
||||
CustomEvent::CustomEvent(std::string_view subtype_, std::string_view payload_)
|
||||
: Event(Type)
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <openspace/engine/globals.h>
|
||||
#include <openspace/engine/moduleengine.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/events/eventengine.h>
|
||||
#include <openspace/navigation/navigationhandler.h>
|
||||
#include <openspace/navigation/navigationstate.h>
|
||||
#include <openspace/navigation/pathnavigator.h>
|
||||
@@ -47,7 +48,6 @@
|
||||
#include <glm/gtx/quaternion.hpp>
|
||||
#include <glm/gtx/vector_angle.hpp>
|
||||
#include <vector>
|
||||
|
||||
#include "pathnavigator_lua.inl"
|
||||
|
||||
namespace {
|
||||
@@ -300,7 +300,8 @@ void PathNavigator::startPath() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!global::openSpaceEngine->setMode(OpenSpaceEngine::Mode::CameraPath)) {
|
||||
bool success = global::openSpaceEngine->setMode(OpenSpaceEngine::Mode::CameraPath);
|
||||
if (!success) {
|
||||
LERROR("Could not start camera path");
|
||||
return; // couldn't switch to camera path mode
|
||||
}
|
||||
@@ -323,6 +324,7 @@ void PathNavigator::startPath() {
|
||||
|
||||
global::navigationHandler->orbitalNavigator().updateOnCameraInteraction();
|
||||
global::navigationHandler->orbitalNavigator().resetVelocities();
|
||||
global::eventEngine->publishEvent<events::EventCameraPathStarted>();
|
||||
}
|
||||
|
||||
void PathNavigator::abortPath() {
|
||||
@@ -453,6 +455,8 @@ void PathNavigator::handlePathEnd() {
|
||||
openspace::scripting::ScriptEngine::RemoteScripting::Yes
|
||||
);
|
||||
}
|
||||
|
||||
global::eventEngine->publishEvent<events::EventCameraPathFinished>();
|
||||
}
|
||||
|
||||
void PathNavigator::findRelevantNodes() {
|
||||
|
||||
Reference in New Issue
Block a user