Make the aberration correction specification for targetPosition in SpiceManager explicit by including a seprate class for it

This commit is contained in:
Alexander Bock
2015-11-19 15:33:57 -05:00
parent 11fec9387b
commit 16897bb8d4
18 changed files with 227 additions and 92 deletions
+4 -4
View File
@@ -183,8 +183,8 @@ void RenderableModel::render(const RenderData& data) {
else
_alpha = 1.0f;
glm::dvec3 p;
SpiceManager::ref().getTargetPosition(_target, "SUN", "GALACTIC", "NONE", time, p, lt);
glm::dvec3 p =
SpiceManager::ref().targetPosition(_target, "SUN", "GALACTIC", SpiceManager::AberrationCorrection(), time, lt);
psc tmppos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
glm::vec3 cam_dir = glm::normalize(data.camera.position().vec3() - tmppos.vec3());
_programObject->setUniform("cam_dir", cam_dir);
@@ -246,8 +246,8 @@ void RenderableModel::update(const UpdateData& data) {
openspace::SpiceManager::ref().getPositionTransformMatrix(_source, _destination, _time, _stateMatrix);
double lt;
glm::dvec3 p;
openspace::SpiceManager::ref().getTargetPosition("SUN", _target, "GALACTIC", "NONE", _time, p, lt);
glm::dvec3 p =
openspace::SpiceManager::ref().targetPosition("SUN", _target, "GALACTIC", SpiceManager::AberrationCorrection(), _time, lt);
_sunPosition = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
}
+2 -2
View File
@@ -222,8 +222,8 @@ void RenderablePath::calculatePath(std::string observer) {
//float g = _lineColor[1];
//float b = _lineColor[2];
for (int i = 0; i < segments; i++) {
glm::dvec3 p;
SpiceManager::ref().getTargetPosition(_target, observer, _frame, "NONE", currentTime, p, lightTime);
glm::dvec3 p =
SpiceManager::ref().targetPosition(_target, observer, _frame, SpiceManager::AberrationCorrection(), currentTime, lightTime);
pscPos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
pscPos[3] += 3;
+2 -2
View File
@@ -182,8 +182,8 @@ void RenderablePlanet::render(const RenderData& data)
double lt;
glm::dvec3 p;
openspace::SpiceManager::ref().getTargetPosition("SUN", _target, "GALACTIC", "NONE", _time, p, lt);
glm::dvec3 p =
SpiceManager::ref().targetPosition("SUN", _target, "GALACTIC", SpiceManager::AberrationCorrection(), _time, lt);
psc sun_pos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
// setup the data to the shader
+16 -7
View File
@@ -219,11 +219,11 @@ void RenderableTrail::update(const UpdateData& data) {
glm::dvec3 p;
// Update the floating current time
if (start > data.time)
SpiceManager::ref().getTargetPosition(_target, _observer, _frame, "NONE", start, p, lightTime);
p = SpiceManager::ref().targetPosition(_target, _observer, _frame, SpiceManager::AberrationCorrection(), start, lightTime);
else if (end < data.time)
SpiceManager::ref().getTargetPosition(_target, _observer, _frame, "NONE", end, p, lightTime);
p = SpiceManager::ref().targetPosition(_target, _observer, _frame, SpiceManager::AberrationCorrection(), end, lightTime);
else
SpiceManager::ref().getTargetPosition(_target, _observer, _frame, "NONE", data.time, p, lightTime);
p = SpiceManager::ref().targetPosition(_target, _observer, _frame, SpiceManager::AberrationCorrection(), data.time, lightTime);
psc pscPos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
@@ -246,8 +246,8 @@ void RenderableTrail::update(const UpdateData& data) {
et = start;
else if (end < et)
et = end;
glm::dvec3 p;
SpiceManager::ref().getTargetPosition(_target, _observer, _frame, "NONE", et, p, lightTime);
glm::dvec3 p =
SpiceManager::ref().targetPosition(_target, _observer, _frame, SpiceManager::AberrationCorrection(), et, lightTime);
pscPos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
pscPos[3] += 3;
_vertexArray[i] = { pscPos[0], pscPos[1], pscPos[2], pscPos[3] };
@@ -289,6 +289,7 @@ void RenderableTrail::fullYearSweep(double time) {
_oldTime = time;
_vertexArray.resize(segments+2);
glm::dvec3 p;
for (int i = 0; i < segments+2; i++) {
if (start > time && intervalSet) {
time = start;
@@ -297,8 +298,16 @@ void RenderableTrail::fullYearSweep(double time) {
time = end;
}
glm::dvec3 p;
SpiceManager::ref().getTargetPosition(_target, _observer, _frame, "NONE", time, p, lightTime);
try {
p =
SpiceManager::ref().targetPosition(_target, _observer, _frame, SpiceManager::AberrationCorrection(), time, lightTime);
}
catch (const SpiceManager::SpiceKernelException& e) {
// This fires for PLUTO BARYCENTER and SUN and uses the only value sometimes?
// ---abock
// LERROR(e.what());
}
psc pscPos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z);
pscPos[3] += 3;