Try to port over focused monitor updates
This commit is contained in:
parent
9224d394b4
commit
29cebd5d9b
|
|
@ -32,6 +32,7 @@ Node {
|
||||||
let focusedIndex = -1;
|
let focusedIndex = -1;
|
||||||
const lookingAtIndex = displays.findFocusedMonitor(
|
const lookingAtIndex = displays.findFocusedMonitor(
|
||||||
displays.eusToNwuQuat(orientations[0]),
|
displays.eusToNwuQuat(orientations[0]),
|
||||||
|
displays.eusToNwuVector(effect.posePosition),
|
||||||
breezyDesktop.monitorPlacements.map(monitorVectors => monitorVectors.centerLook),
|
breezyDesktop.monitorPlacements.map(monitorVectors => monitorVectors.centerLook),
|
||||||
breezyDesktop.focusedMonitorIndex,
|
breezyDesktop.focusedMonitorIndex,
|
||||||
smoothFollowEnabled,
|
smoothFollowEnabled,
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,11 @@ QtObject {
|
||||||
return Qt.vector3d(-vector.y, vector.z, -vector.x);
|
return Qt.vector3d(-vector.y, vector.z, -vector.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function eusToNwuVector(vector) {
|
||||||
|
// Converts EUS vector to NWU vector
|
||||||
|
return Qt.vector3d(-vector.z, -vector.x, vector.y);
|
||||||
|
}
|
||||||
|
|
||||||
function eusToNwuQuat(quaternion) {
|
function eusToNwuQuat(quaternion) {
|
||||||
// Converts EUS quaternion to NWU quaternion
|
// Converts EUS quaternion to NWU quaternion
|
||||||
return Qt.quaternion(quaternion.scalar, -quaternion.z, -quaternion.x, quaternion.y);
|
return Qt.quaternion(quaternion.scalar, -quaternion.z, -quaternion.x, quaternion.y);
|
||||||
|
|
@ -384,13 +389,14 @@ QtObject {
|
||||||
return Math.max(upPercentage, westPercentage);
|
return Math.max(upPercentage, westPercentage);
|
||||||
}
|
}
|
||||||
|
|
||||||
function findFocusedMonitor(quaternion, monitorVectors, currentFocusedIndex, smoothFollowEnabled, fovDetails, monitorsDetails) {
|
function findFocusedMonitor(quaternion, position, monitorVectors, currentFocusedIndex, smoothFollowEnabled, fovDetails, monitorsDetails) {
|
||||||
if (currentFocusedIndex !== -1 && smoothFollowEnabled) return currentFocusedIndex;
|
if (currentFocusedIndex !== -1 && smoothFollowEnabled) return currentFocusedIndex;
|
||||||
|
|
||||||
var lookVector = Qt.vector3d(1.0, 0.0, 0.0); // NWU vector pointing to the center of the screen
|
var lookVector = Qt.vector3d(1.0, 0.0, 0.0); // NWU vector pointing to the center of the screen
|
||||||
var rotatedLookVector = quaternion.times(lookVector);
|
var rotatedLookVector = quaternion.times(lookVector);
|
||||||
|
|
||||||
// Use curved or flat conversion functions depending on wrapping scheme
|
// TODO - right now we're using the curved functions to figure out distances even for flat monitors
|
||||||
|
// because it will account for the monitors facing towards us, but this will lose some accuracy
|
||||||
var upConversionFns = fovDetails.monitorWrappingScheme === "vertical" ? fovConversionFns.curved : fovConversionFns.flat;
|
var upConversionFns = fovDetails.monitorWrappingScheme === "vertical" ? fovConversionFns.curved : fovConversionFns.flat;
|
||||||
var lookUpPixels = upConversionFns.angleToLength(
|
var lookUpPixels = upConversionFns.angleToLength(
|
||||||
fovDetails.defaultDistanceVerticalRadians,
|
fovDetails.defaultDistanceVerticalRadians,
|
||||||
|
|
@ -408,13 +414,17 @@ QtObject {
|
||||||
rotatedLookVector.x
|
rotatedLookVector.x
|
||||||
);
|
);
|
||||||
|
|
||||||
|
function vectorRelativeToPosition(vector) {
|
||||||
|
return vector.minus(position);
|
||||||
|
}
|
||||||
|
|
||||||
// Check current focused monitor first
|
// Check current focused monitor first
|
||||||
if (currentFocusedIndex !== -1) {
|
if (currentFocusedIndex !== -1) {
|
||||||
var focusedDistance = getMonitorDistance(
|
var focusedDistance = getMonitorDistance(
|
||||||
fovDetails,
|
fovDetails,
|
||||||
lookUpPixels,
|
lookUpPixels,
|
||||||
lookWestPixels,
|
lookWestPixels,
|
||||||
monitorVectors[currentFocusedIndex],
|
vectorRelativeToPosition(monitorVectors[currentFocusedIndex]),
|
||||||
monitorsDetails[currentFocusedIndex],
|
monitorsDetails[currentFocusedIndex],
|
||||||
upConversionFns.angleToLength,
|
upConversionFns.angleToLength,
|
||||||
westConversionFns.angleToLength
|
westConversionFns.angleToLength
|
||||||
|
|
@ -434,7 +444,7 @@ QtObject {
|
||||||
fovDetails,
|
fovDetails,
|
||||||
lookUpPixels,
|
lookUpPixels,
|
||||||
lookWestPixels,
|
lookWestPixels,
|
||||||
monitorVectors[i],
|
vectorRelativeToPosition(monitorVectors[i]),
|
||||||
monitorsDetails[i],
|
monitorsDetails[i],
|
||||||
upConversionFns.angleToLength,
|
upConversionFns.angleToLength,
|
||||||
westConversionFns.angleToLength
|
westConversionFns.angleToLength
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue