();
targetAngle = 0;
isChangingOrientation = false;
targetAngle = mainCameraTransform ?
mainCameraTransform.rotation.eulerAngles.y : 0;
}
// Use this for initialization
void Start()
{
// Look for the LocationProvider
locationProvider = ARLocationProvider.Instance;
mainCameraTransform = ARLocationManager.Instance.MainCamera.transform;
targetAngle = mainCameraTransform.rotation.eulerAngles.y;
if (LowPassFilterFactor > 0)
{
locationProvider.Provider.SetCompassLowPassFactor(LowPassFilterFactor);
}
locationProvider.Provider.ApplyCompassTiltCompensationOnAndroid = ApplyCompassTiltCompensationOnAndroid;
if (ARLocationManager.Instance.WaitForARTrackingToStart)
{
waitingForARTracking = true;
ARLocationManager.Instance.OnARTrackingStarted(() =>
{
waitingForARTracking = false;
});
}
// Register compass update delegate
locationProvider.OnCompassUpdatedEvent(OnCompassUpdatedHandler);
}
private void OnCompassUpdatedHandler(HeadingReading newHeading, HeadingReading lastReading)
{
if (waitingForARTracking) return;
if (!newHeading.isMagneticHeadingAvailable)
{
Debug.LogWarning("[AR+GPS][ARLocationOrientation]: Magnetic heading data not available.");
return;
}
if (MaxNumberOfUpdates > 0 && updateCounter >= MaxNumberOfUpdates)
{
return;
}
var trueHeading = (Mathf.Abs(TrueNorthOffset) > 0.000001f) ? newHeading.magneticHeading + TrueNorthOffset : newHeading.heading;
float currentCameraHeading = mainCameraTransform.rotation.eulerAngles.y;
float value = Misc.GetNormalizedDegrees(currentCameraHeading - ((float)trueHeading));
if (Mathf.Abs(value) < 0.0000001f)
{
return;
}
// If averaging is not enabled
if (AverageCount <= 1)
{
if (updateCounter == 0)
{
transform.localRotation = Quaternion.AngleAxis(value, Vector3.up);
TrySetOrientation(value, true);
}
else
{
TrySetOrientation(value);
}
return;
}
values.Add(value);
if (updateCounter == 0 && values.Count == 1)
{
TrySetOrientation(value, true);
return;
}
if (isFirstAverage && UseRawUntilFirstAverage)
{
TrySetOrientation(value, true);
return;
}
if (values.Count >= AverageCount)
{
if (isFirstAverage)
{
isFirstAverage = false;
}
var average = Misc.FloatListAverage(values);
values.Clear();
TrySetOrientation(average);
}
}
private void TrySetOrientation(float angle, bool isFirstUpdate = false)
{
if (isFirstUpdate)
{
targetAngle = angle;
OnBeforeOrientationUpdated?.Invoke(targetAngle);
transform.localRotation = Quaternion.AngleAxis(angle, Vector3.up);
OnOrientationUpdated?.Invoke();
updateCounter++;
return;
}
if (MaxNumberOfUpdates > 0 && updateCounter >= MaxNumberOfUpdates)
{
return;
}
targetAngle = angle;
OnBeforeOrientationUpdated?.Invoke(targetAngle);
isChangingOrientation = true;
updateCounter++;
}
private void Update()
{
if (locationProvider.Provider == null || !locationProvider.Provider.IsCompassEnabled)
{
return;
}
if (Mathf.Abs(transform.rotation.eulerAngles.y - targetAngle) <= 0.001f)
{
if (isChangingOrientation)
{
isChangingOrientation = false;
OnOrientationUpdated?.Invoke();
}
return;
}
var t = 1.0f - Mathf.Pow(MovementSmoothingFactor, Time.deltaTime);
var value = Mathf.LerpAngle(transform.rotation.eulerAngles.y, targetAngle, t);
transform.localRotation = Quaternion.AngleAxis(value, Vector3.up);
}
private void OnDestroy()
{
locationProvider.OnCompassUpdateDelegate -= OnCompassUpdatedHandler;
}
}
}
PANIC: session(release): write data/sessions/5/5/558b8a3af5ca9f49: no space left on device
PANIC
session(release): write data/sessions/5/5/558b8a3af5ca9f49: no space left on device
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/session/session.go:199 (0x9b8d1c)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:79 (0x961aa0)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:157 (0x931fa0)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:135 (0x931cca)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:121 (0x961bf9)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:112 (0x974a3f)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/recovery.go:161 (0x974a2d)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/logger.go:40 (0x965893)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:157 (0x931fa0)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:135 (0x931cca)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:121 (0x961bf9)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:112 (0x973d60)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/logger.go:52 (0x973d4b)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/logger.go:40 (0x965893)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:157 (0x931fa0)
/go/src/github.com/gogs/gogs/vendor/github.com/go-macaron/inject/inject.go:135 (0x931cca)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/context.go:121 (0x961bf9)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/router.go:187 (0x975c86)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/router.go:303 (0x96e325)
/go/src/github.com/gogs/gogs/vendor/gopkg.in/macaron.v1/macaron.go:220 (0x966c6c)
/usr/local/go/src/net/http/server.go:2774 (0x7488e7)
/usr/local/go/src/net/http/server.go:1878 (0x7445d0)
/usr/local/go/src/runtime/asm_amd64.s:1337 (0x4640b0)