summaryrefslogtreecommitdiffhomepage
path: root/ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h
diff options
context:
space:
mode:
Diffstat (limited to 'ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h')
-rw-r--r--ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h b/ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h
new file mode 100644
index 0000000..c3e4593
--- /dev/null
+++ b/ovr_sdk_win_23.0.0/LibOVR/Include/Extras/OVR_StereoProjection.h
@@ -0,0 +1,71 @@
+/************************************************************************************
+
+Filename : OVR_StereoProjection.h
+Content : Stereo projection functions
+Created : November 30, 2013
+Authors : Tom Fosyth
+
+Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
+
+Licensed under the Oculus Master SDK License Version 1.0 (the "License");
+you may not use the Oculus VR Rift SDK except in compliance with the License,
+which is provided at the time of installation or download, or which
+otherwise accompanies this software in either electronic or hard copy form.
+
+You may obtain a copy of the License at
+
+https://developer.oculus.com/licenses/oculusmastersdk-1.0
+
+Unless required by applicable law or agreed to in writing, the Oculus VR SDK
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+*************************************************************************************/
+
+#ifndef OVR_StereoProjection_h
+#define OVR_StereoProjection_h
+
+#include "Extras/OVR_Math.h"
+
+namespace OVR {
+
+//-----------------------------------------------------------------------------------
+// ***** Stereo Enumerations
+
+// StereoEye specifies which eye we are rendering for; it is used to
+// retrieve StereoEyeParams.
+enum StereoEye { StereoEye_Left, StereoEye_Right, StereoEye_Center };
+
+//-----------------------------------------------------------------------------------
+// ***** Propjection functions
+
+Matrix4f CreateProjection(
+ bool rightHanded,
+ bool isOpenGL,
+ FovPort fov,
+ StereoEye eye,
+ float zNear = 0.01f,
+ float zFar = 10000.0f,
+ bool flipZ = false,
+ bool farAtInfinity = false);
+
+Matrix4f CreateOrthoSubProjection(
+ bool rightHanded,
+ StereoEye eyeType,
+ float tanHalfFovX,
+ float tanHalfFovY,
+ float unitsX,
+ float unitsY,
+ float distanceFromCamera,
+ float interpupillaryDistance,
+ Matrix4f const& projection,
+ float zNear = 0.0f,
+ float zFar = 0.0f,
+ bool flipZ = false,
+ bool farAtInfinity = false);
+
+} // namespace OVR
+
+#endif // OVR_StereoProjection_h