mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-18 02:49:03 -06:00
Add centered target frame
This commit is contained in:
@@ -25,7 +25,11 @@
|
||||
#include <modules/skybrowser/skybrowsermodule.h>
|
||||
//#include <modules/webbrowser/webbrowsermodule.h>
|
||||
//#include <modules/webbrowser/include/screenspacebrowser.h>
|
||||
#include <modules/base/rendering/screenspaceimagelocal.h>
|
||||
#include <openspace/rendering/screenspacerenderable.h>
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
|
||||
#include <openspace/engine/globals.h>
|
||||
#include <openspace/engine/globalscallbacks.h>
|
||||
@@ -138,6 +142,7 @@ void SkybrowserModule::WWTfollowCamera() const {
|
||||
const SkybrowserModule* module = global::moduleEngine->module<SkybrowserModule>();
|
||||
glm::dvec2 celestCoords = module->convertGalacticToCelestial(viewDirection);
|
||||
|
||||
showTarget();
|
||||
// Execute javascript on browser
|
||||
ScreenSpaceBrowser* browser = dynamic_cast<ScreenSpaceBrowser*>(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser"));
|
||||
std::string script = "window.frames[0].postMessage({event: 'center_on_coordinates', ra : Number(" + std::to_string(celestCoords[0]) + "), dec : Number(" + std::to_string(celestCoords[1]) + "), fov : Number(" + std::to_string(_zoomFactor) + "), instant : false})";
|
||||
@@ -163,6 +168,25 @@ glm::dvec2 SkybrowserModule::convertGalacticToCelestial(glm::dvec3 rGal) const {
|
||||
return glm::dvec2(glm::degrees(ra), glm::degrees(dec));
|
||||
}
|
||||
|
||||
void SkybrowserModule::showTarget() const{
|
||||
|
||||
using namespace std::string_literals;
|
||||
|
||||
|
||||
ghoul::Dictionary node;
|
||||
node.setValue("Type", "ScreenSpaceImageLocal"s);
|
||||
node.setValue("Identifier", "Target"s);
|
||||
node.setValue("TexturePath", "D:/Esters/OpenSpace/modules/skybrowser/target.png"s);
|
||||
node.setValue("Scale", 0.07);
|
||||
|
||||
|
||||
openspace::global::scriptEngine->queueScript(
|
||||
"openspace.addScreenSpaceRenderable(" + ghoul::formatLua(node) + ")",
|
||||
scripting::ScriptEngine::RemoteScripting::Yes
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
std::vector<documentation::Documentation> SkybrowserModule::documentations() const {
|
||||
return {
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
float zoomFactor() const;
|
||||
glm::dvec2 convertGalacticToCelestial(glm::dvec3 coords) const;
|
||||
void WWTfollowCamera() const;
|
||||
|
||||
void showTarget() const;
|
||||
scripting::LuaLibrary luaLibrary() const override;
|
||||
//std::vector<documentation::Documentation> documentations() const override;
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ namespace openspace::skybrowser::luascriptfunctions {
|
||||
ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::followCamera");
|
||||
const SkybrowserModule* module = global::moduleEngine->module<SkybrowserModule>();
|
||||
ScreenSpaceBrowser* browser = dynamic_cast<ScreenSpaceBrowser*>(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser"));
|
||||
|
||||
module->WWTfollowCamera();
|
||||
return 1;
|
||||
}
|
||||
@@ -39,7 +38,6 @@ namespace openspace::skybrowser::luascriptfunctions {
|
||||
int moveBrowser(lua_State* L) {
|
||||
ghoul::lua::checkArgumentsAndThrow(L, 0, "lua::moveBrowser");
|
||||
ScreenSpaceBrowser* browser = dynamic_cast<ScreenSpaceBrowser*>(global::renderEngine->screenSpaceRenderable("ScreenSpaceBowser"));
|
||||
browser->setFaceCameraPropertyToFalse();
|
||||
browser->translate(glm::vec3(-0.8, -0.4, 0.0));
|
||||
return 1;
|
||||
}
|
||||
@@ -50,22 +48,29 @@ namespace openspace::skybrowser::luascriptfunctions {
|
||||
|
||||
const SkybrowserModule* module = global::moduleEngine->module<SkybrowserModule>();
|
||||
|
||||
//std::string _url = "https://wallpaperaccess.com/full/3010132.jpg";
|
||||
// 'https://cdn.wallpapersafari.com/6/92/0nbCPw.jpg'
|
||||
|
||||
using namespace std::string_literals;
|
||||
|
||||
std::string node = "{"
|
||||
"Type = 'ScreenSpaceBrowser',"
|
||||
"Identifier = 'ScreenSpaceBowser',"
|
||||
"Name = 'Screen Space Bowser',"
|
||||
"Url = 'http://localhost:8000/',"
|
||||
"FaceCamera = false"
|
||||
"}";
|
||||
|
||||
/*
|
||||
ghoul::Dictionary node;
|
||||
node.setValue("Type", "ScreenSpaceBrowser"s);
|
||||
node.setValue("Identifier", "ScreenSpaceBowser"s);
|
||||
node.setValue("Name", "Screen Space Bowser"s);
|
||||
node.setValue("Url", "http://localhost:8000/"s);
|
||||
// node.setValue("Dimensions", "glm::ivec2(1000, 1000)");
|
||||
*/
|
||||
|
||||
openspace::global::scriptEngine->queueScript(
|
||||
"openspace.addScreenSpaceRenderable(" + ghoul::formatLua(node) + ")",
|
||||
"openspace.addScreenSpaceRenderable(" + node + ")",
|
||||
scripting::ScriptEngine::RemoteScripting::Yes
|
||||
);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
BIN
modules/skybrowser/target.png
Normal file
BIN
modules/skybrowser/target.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -74,7 +74,6 @@ public:
|
||||
|
||||
void executeJavascript(std::string &script) const;
|
||||
void translate(glm::vec3 translation);
|
||||
void setFaceCameraPropertyToFalse();
|
||||
|
||||
private:
|
||||
class ScreenSpaceRenderHandler : public WebRenderHandler {
|
||||
|
||||
@@ -71,10 +71,6 @@ void ScreenSpaceBrowser::translate(glm::vec3 translation) {
|
||||
_cartesianPosition = glm::translate(glm::mat4(1.f), translation) * glm::vec4(position, 1.0f);
|
||||
}
|
||||
|
||||
void ScreenSpaceBrowser::setFaceCameraPropertyToFalse() {
|
||||
_faceCamera = false;
|
||||
}
|
||||
|
||||
void ScreenSpaceBrowser::ScreenSpaceRenderHandler::draw() {}
|
||||
|
||||
void ScreenSpaceBrowser::ScreenSpaceRenderHandler::render() {}
|
||||
|
||||
Reference in New Issue
Block a user