add keypress for recentering (doesnt work)
This commit is contained in:
parent
113ea1b349
commit
fb2c379ccf
1 changed files with 20 additions and 9 deletions
|
@ -224,6 +224,10 @@ public class ZEDManager : MonoBehaviour
|
||||||
[HideInInspector]
|
[HideInInspector]
|
||||||
public bool estimateInitialPosition = true;
|
public bool estimateInitialPosition = true;
|
||||||
|
|
||||||
|
//public bool headfree = false;
|
||||||
|
public bool zLockZED = false;
|
||||||
|
public bool ZLockCam = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -1856,6 +1860,7 @@ public class ZEDManager : MonoBehaviour
|
||||||
|
|
||||||
if (UnityEngine.XR.XRDevice.isPresent && isStereoRig) //AR pass-through mode.
|
if (UnityEngine.XR.XRDevice.isPresent && isStereoRig) //AR pass-through mode.
|
||||||
{
|
{
|
||||||
|
|
||||||
if (calibrationHasChanged) //If the HMD offset calibration file changed during runtime.
|
if (calibrationHasChanged) //If the HMD offset calibration file changed during runtime.
|
||||||
{
|
{
|
||||||
AdjustZEDRigCameraPosition(); //Re-apply the ZED's offset from the VR headset.
|
AdjustZEDRigCameraPosition(); //Re-apply the ZED's offset from the VR headset.
|
||||||
|
@ -1877,10 +1882,9 @@ public class ZEDManager : MonoBehaviour
|
||||||
//Rotate Image plane with zed rotation
|
//Rotate Image plane with zed rotation
|
||||||
r = zedOrientation;
|
r = zedOrientation;
|
||||||
|
|
||||||
|
|
||||||
zedRigDisplayer.transform.localRotation = r; //(Mod) zedRigDisplayer should move/rotate the image plane
|
zedRigDisplayer.transform.localRotation = r; //(Mod) zedRigDisplayer should move/rotate the image plane
|
||||||
//zedRigDisplayer.transform.localEulerAngles = new Vector3(r.x,r.y,0);
|
//zedRigDisplayer.transform.localEulerAngles = new Vector3(r.x,r.y,0);
|
||||||
//TODO: rotation von hmd soll zedRigDisplayer weiterhin beeinflussen (r.z nicht übernehmen evtl?)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1939,18 +1943,25 @@ public class ZEDManager : MonoBehaviour
|
||||||
// # Versuch Z Rotation der ZED transformiert auf Rotation des camRig uebertragen #
|
// # Versuch Z Rotation der ZED transformiert auf Rotation des camRig uebertragen #
|
||||||
//rotationTransformhelper.transform.rotation = zedRigDisplayer.transform.localRotation;
|
//rotationTransformhelper.transform.rotation = zedRigDisplayer.transform.localRotation;
|
||||||
//rotationTransformhelper.transform.localEulerAngles = new Vector3(-zedRigDisplayer.transform.eulerAngles.x, -zedRigDisplayer.transform.eulerAngles.y, 0);
|
//rotationTransformhelper.transform.localEulerAngles = new Vector3(-zedRigDisplayer.transform.eulerAngles.x, -zedRigDisplayer.transform.eulerAngles.y, 0);
|
||||||
|
|
||||||
bool enableZLockZED = true;
|
|
||||||
bool enableZLockCam = false;
|
|
||||||
|
|
||||||
camRigDisplayer.transform.localRotation = Quaternion.identity;
|
camRigDisplayer.transform.localRotation = Quaternion.identity;
|
||||||
if (enableZLockZED)
|
if (Input.GetKeyDown("space"))
|
||||||
|
{ //Restoring position does currently not work
|
||||||
|
Debug.Log("fix");
|
||||||
|
//camRigDisplayer.transform.localRotation = zedRigDisplayer.transform.rotation; //moves camera image to origin (not view point)
|
||||||
|
camRigDisplayer.transform.localRotation = zedRigDisplayer.transform.rotation;
|
||||||
|
camRigDisplayer.transform.Rotate(-camLeft.transform.rotation.eulerAngles);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (zLockZED)
|
||||||
{
|
{
|
||||||
Vector3 zedDirection = new Vector3(0, 0, 1); //Create Vector towars Z+
|
Vector3 zedDirection = new Vector3(0, 0, 1); //Create Vector towars Z+
|
||||||
zedDirection = zedRigDisplayer.transform.rotation * zedDirection; //rotate vector by zedRigRotation (vector should point towards +Z of zedRigDisplayer)
|
zedDirection = zedRigDisplayer.transform.rotation * zedDirection; //rotate vector by zedRigRotation (vector should point towards +Z of zedRigDisplayer)
|
||||||
camRigDisplayer.transform.localRotation = Quaternion.AngleAxis(zedRigDisplayer.transform.localEulerAngles.z, zedDirection); //rotate only around zedDirection.z with respect to original coordinate system
|
camRigDisplayer.transform.localRotation = Quaternion.AngleAxis(zedRigDisplayer.transform.localEulerAngles.z, zedDirection); //rotate only around zedDirection.z with respect to original coordinate system
|
||||||
}
|
}
|
||||||
if (enableZLockCam)
|
if (ZLockCam)
|
||||||
{
|
{
|
||||||
//same for camera Z rotation compensation
|
//same for camera Z rotation compensation
|
||||||
Vector3 hmdDirection = new Vector3(0, 0, 1); //Create Vector towars Z+
|
Vector3 hmdDirection = new Vector3(0, 0, 1); //Create Vector towars Z+
|
||||||
|
@ -1993,7 +2004,7 @@ public class ZEDManager : MonoBehaviour
|
||||||
arRig.CollectPose(); //Save headset pose with current timestamp.
|
arRig.CollectPose(); //Save headset pose with current timestamp.
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector3 rotatePointAroundAxis(Vector3 point, float angle, Vector3 axis)
|
Vector3 RotatePointAroundAxis(Vector3 point, float angle, Vector3 axis)
|
||||||
{
|
{
|
||||||
Quaternion q = Quaternion.AngleAxis(angle, axis);
|
Quaternion q = Quaternion.AngleAxis(angle, axis);
|
||||||
return q * point; //Note: q must be first (point * q wouldn't compile)
|
return q * point; //Note: q must be first (point * q wouldn't compile)
|
||||||
|
|
Loading…
Reference in a new issue