mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-07 12:10:52 -06:00
Merge branch 'feature/dataplane' of github.com:OpenSpace/OpenSpace-Development into feature/dataplane
This commit is contained in:
@@ -124,6 +124,8 @@ bool DataPlane::isReady() const {
|
||||
};
|
||||
|
||||
void DataPlane::render(){
|
||||
// getiSWAurl(1);
|
||||
|
||||
psc position = _parent->worldPosition();
|
||||
|
||||
glm::mat4 transform = glm::mat4(1.0);
|
||||
@@ -146,16 +148,22 @@ void DataPlane::render(){
|
||||
// transform = glm::rotate(transform, _roatation.value()[1], glm::vec3(0,1,0));
|
||||
// transform = glm::rotate(transform, _roatation.value()[2], glm::vec3(0,0,1));
|
||||
|
||||
glm::vec4 vec(1,0,0,1);
|
||||
vec = transform*vec;
|
||||
glm::vec4 v(1,0,0,1);
|
||||
glm::vec3 v1 = glm::vec3(transform*v);
|
||||
v1 = glm::normalize(v1);
|
||||
|
||||
double lt;
|
||||
glm::vec3 sun_vec =
|
||||
glm::vec3 v2 =
|
||||
SpiceManager::ref().targetPosition("SUN", "Earth", "GALACTIC", {}, _time, lt);
|
||||
sun_vec = glm::normalize(sun_vec);
|
||||
float angle = acos(glm::dot(sun_vec, glm::vec3(vec))/(glm::length(sun_vec)*glm::length(glm::vec3(vec))));
|
||||
glm::vec3 v = glm::cross(sun_vec, glm::vec3(vec));
|
||||
transform = glm::rotate(transform, -angle, v);
|
||||
v2 = glm::normalize(v2);
|
||||
|
||||
float angle = acos(glm::dot(v1,v2));
|
||||
glm::vec3 ref = glm::cross(v1, v2);
|
||||
|
||||
transform = glm::rotate(transform, angle, ref);
|
||||
|
||||
|
||||
// float angle = acos(glm::dot(sun_vec, (vec))/(glm::length(sun_vec)*glm::length(glm::vec3(vec))));
|
||||
position += transform*glm::vec4(_pscOffset.x, _pscOffset.z, _pscOffset.y, _pscOffset.w);
|
||||
|
||||
// std::cout << sun_vec.x << ", " << sun_vec.y << ", " << sun_vec.z << std::endl;
|
||||
|
||||
@@ -26,8 +26,11 @@
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
#include <openspace/scene/scene.h>
|
||||
#include <openspace/scene/scenegraphnode.h>
|
||||
#include <openspace/util/time.h>
|
||||
|
||||
|
||||
namespace openspace{
|
||||
|
||||
DataSurface::DataSurface(std::string path)
|
||||
:_path("path", "Path", path)
|
||||
,_shader(nullptr)
|
||||
@@ -37,6 +40,20 @@ DataSurface::~DataSurface(){}
|
||||
|
||||
bool DataSurface::initialize(){
|
||||
setParent();
|
||||
|
||||
_month["JAN"] = "01";
|
||||
_month["FEB"] = "02";
|
||||
_month["MAR"] = "03";
|
||||
_month["APR"] = "04";
|
||||
_month["MAY"] = "05";
|
||||
_month["JUN"] = "06";
|
||||
_month["JUL"] = "07";
|
||||
_month["AUG"] = "08";
|
||||
_month["SEP"] = "09";
|
||||
_month["OCT"] = "10";
|
||||
_month["NOV"] = "11";
|
||||
_month["DEC"] = "12";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -60,4 +77,29 @@ void DataSurface::setPscUniforms(
|
||||
program->setUniform("camrot", camera->viewRotationMatrix());
|
||||
program->setUniform("scaling", camera->scaling());
|
||||
}
|
||||
|
||||
std::string DataSurface::getiSWAurl(int id){
|
||||
std::string url = "http://iswa2.ccmc.gsfc.nasa.gov/IswaSystemWebApp/iSWACygnetStreamer?timestamp=";
|
||||
std::string t = Time::ref().currentTimeUTC();
|
||||
|
||||
std::stringstream ss(t);
|
||||
std::string token;
|
||||
|
||||
std::getline(ss, token, ' ');
|
||||
url += token + "-";
|
||||
std::getline(ss, token, ' ');
|
||||
url += _month[token] + "-";
|
||||
std::getline(ss, token, 'T');
|
||||
url += token + "%20";
|
||||
std::getline(ss, token, '.');
|
||||
url += token;
|
||||
|
||||
url += "&window=-1&cygnetId=";
|
||||
url += std::to_string(id);
|
||||
|
||||
std::cout << url << std::endl;
|
||||
|
||||
// puts(buffer);
|
||||
return url;
|
||||
}
|
||||
}//namespace openspac
|
||||
@@ -43,6 +43,8 @@ public:
|
||||
virtual void update();
|
||||
|
||||
protected:
|
||||
std::string getiSWAurl(int id);
|
||||
|
||||
void setPscUniforms(ghoul::opengl::ProgramObject* program, const Camera* camera, const PowerScaledCoordinate& position);
|
||||
virtual void setParent() = 0;
|
||||
|
||||
@@ -51,6 +53,7 @@ protected:
|
||||
|
||||
SceneGraphNode* _parent;
|
||||
double _time;
|
||||
std::map<std::string, std::string> _month;
|
||||
};
|
||||
|
||||
}//namespace openspace
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace openspace{
|
||||
|
||||
addDataSurface("${OPENSPACE_DATA}/BATSRUS.cdf");
|
||||
// addDataSurface("${OPENSPACE_DATA}/ENLIL.cdf");
|
||||
//addTextureSurface("${OPENSPACE_DATA}/test.png");
|
||||
addTextureSurface("${OPENSPACE_DATA}/test.png");
|
||||
}
|
||||
bool DataSurfaceContainer::deinitialize(){}
|
||||
bool DataSurfaceContainer::isReady() const {}
|
||||
|
||||
@@ -171,8 +171,9 @@ void TexturePlane::updateTexture(){
|
||||
while(true) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(6000));
|
||||
future = DlManager.downloadFile(
|
||||
std::string("http://placehold.it/" + std::to_string(imageSize) + "x" + std::to_string(imageSize)),
|
||||
absPath("${OPENSPACE_DATA}/dataplane.png"),
|
||||
getiSWAurl(5),
|
||||
// std::string("http://placehold.it/" + std::to_string(imageSize) + "x" + std::to_string(imageSize)),
|
||||
absPath("${OPENSPACE_DATA}/dataplane.jpg"),
|
||||
true,
|
||||
[](const DownloadManager::FileFuture& f){
|
||||
std::cout<<"download finished"<<std::endl;
|
||||
|
||||
@@ -43,7 +43,7 @@ Fragment getFragment() {
|
||||
// diffuse = vec4(1,0,0,1);
|
||||
// }
|
||||
|
||||
if (diffuse.r <= 0.1)
|
||||
if (diffuse.r <= 0.01)
|
||||
discard;
|
||||
|
||||
Fragment frag;
|
||||
|
||||
Reference in New Issue
Block a user