summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-02-15 22:53:54 +0200
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2021-02-16 12:06:13 +0200
commitfa35eeecd7854b92e52f7bac2dc31bfc07ce012b (patch)
treefc03188f58113e2f8bcd3742bbe45058b801e940 /indra/llui
parent7b6c7c249645a0d3e9626c793b29348e9a549582 (diff)
SL-14725 Add elevation and azimuth to local lighting
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llvirtualtrackball.cpp15
1 files changed, 1 insertions, 14 deletions
diff --git a/indra/llui/llvirtualtrackball.cpp b/indra/llui/llvirtualtrackball.cpp
index 15847a7282..728e86af08 100644
--- a/indra/llui/llvirtualtrackball.cpp
+++ b/indra/llui/llvirtualtrackball.cpp
@@ -352,7 +352,6 @@ LLQuaternion LLVirtualTrackball::getRotation() const
void LLVirtualTrackball::getAzimuthAndElevation(const LLQuaternion &quat, F32 &azimuth, F32 &elevation)
{
// LLQuaternion has own function to get azimuth, but it doesn't appear to return correct values (meant for 2d?)
- const LLVector3 VectorZero(10000.0f, 0.0f, 0.0f);
LLVector3 point = VectorZero * quat;
if (!is_approx_zero(point.mV[VX]) || !is_approx_zero(point.mV[VY]))
@@ -371,19 +370,7 @@ void LLVirtualTrackball::getAzimuthAndElevation(const LLQuaternion &quat, F32 &a
azimuth += F_PI * 2;
}
- if (abs(point.mV[VY]) > abs(point.mV[VX]) && !is_approx_zero(point.mV[VY])) // to avoid precision drop
- {
- elevation = atanl((F64)point.mV[VZ] / (F64)abs(point.mV[VY]));
- }
- else if (!is_approx_zero(point.mV[VX]))
- {
- elevation = atanl((F64)point.mV[VZ] / (F64)abs(point.mV[VX]));
- }
- else
- {
- // both VX and VY are near zero, VZ should be high
- elevation = point.mV[VZ] > 0 ? F_PI_BY_TWO : -F_PI_BY_TWO;
- }
+ elevation = asin(point.mV[VZ]); // because VectorZero is '1'
}
// static