public void PointTowards(AttentionEvent e) { showFlicker = true; hAngle = e.hAngle; vAngle = e.vAngle; targetSize = new Vector2(e.width, e.height); //rotateToFaceTarget.SetTarget(hAngle,vAngle); deactivator.UpdateTargetSize(e); }
public void FollowTo(AttentionEvent e) { hidden = false; following = true; hAngle = e.hAngle; vAngle = e.vAngle; targetSize = new Vector2(e.width, e.height); rotateToFaceTarget.SetTarget(hAngle, vAngle); deactivator.UpdateTargetSize(e); }
public static Vector2 GetClosestPointOnTarget(AttentionEvent e, Vector2 eyePositionInPixels) { // rotate the target rectangle until it's centered horizontally in the equirectangular var xDiff = (horizontalResolution / 2f) - e.targetHorPixel; var targetX = horizontalResolution / 2f; // we're moving the target xDiff so it's in the middle //e.targetHorPixel + xDiff; var targetY = e.targetVerPixel; // rotate the eye points Ex and Ey by the same amount var eyeX = eyePositionInPixels.x + xDiff; if (eyeX > horizontalResolution) { eyeX = eyeX - horizontalResolution; // wrap around; } else if (eyeX < 0f) { eyeX = eyeX + horizontalResolution; } var eyeY = eyePositionInPixels.y; // Calculate the closest point on the target to the eye point var largestBoxX = targetX + (e.width / 2f); var smallestBoxX = targetX - (e.width / 2f); var closestPointOnTargetX = Mathf.Min(largestBoxX, Mathf.Max(smallestBoxX, eyeX)); var largestBoxY = targetY + (e.height / 2f); var smallestBoxY = targetY - (e.height / 2f); var closestPointOnTargetY = Mathf.Min(largestBoxY, Mathf.Max(smallestBoxY, eyeY)); // De-rotate this point back into the original frame of reference and return var closestPointOnTargetXRotated = closestPointOnTargetX - xDiff; if (closestPointOnTargetXRotated < 0) { closestPointOnTargetXRotated = closestPointOnTargetXRotated + horizontalResolution; } else if (closestPointOnTargetXRotated > horizontalResolution) { closestPointOnTargetXRotated = closestPointOnTargetXRotated - horizontalResolution; } return(new Vector2(closestPointOnTargetXRotated, closestPointOnTargetY)); }
public void SetTargetBox(AttentionEvent e) { var lon = AngleHelperMethods.PixelCoordToLong(e.targetHorPixel - (e.width / 2f)); var lat = AngleHelperMethods.PixelCoordToLat(e.targetVerPixel - (e.height / 2f)); var pos = AngleHelperMethods.LonLatToPosition(lon, lat); nodePositions[0] = pos; lon = AngleHelperMethods.PixelCoordToLong(e.targetHorPixel - (e.width / 2f)); lat = AngleHelperMethods.PixelCoordToLat(e.targetVerPixel + (e.height / 2f)); pos = AngleHelperMethods.LonLatToPosition(lon, lat); nodePositions[1] = pos; lon = AngleHelperMethods.PixelCoordToLong(e.targetHorPixel + (e.width / 2f)); lat = AngleHelperMethods.PixelCoordToLat(e.targetVerPixel + (e.height / 2f)); pos = AngleHelperMethods.LonLatToPosition(lon, lat); nodePositions[2] = pos; lon = AngleHelperMethods.PixelCoordToLong(e.targetHorPixel + (e.width / 2f)); lat = AngleHelperMethods.PixelCoordToLat(e.targetVerPixel - (e.height / 2f)); pos = AngleHelperMethods.LonLatToPosition(lon, lat); nodePositions[3] = pos; }
public void SetAttentionEvent(AttentionEvent ev) { e = ev; }
public void Clear() { e = null; }
public void UpdateTargetSize(AttentionEvent ev) { targetSize = new Vector2(ev.width, ev.height); e = ev; }
public void Clear() { e = null; targetPreviouslyEntered = false; }