Ejemplo n.º 1
0
        public void applyProjectionMatrix(ulong givenTimestamp, float screenWidth, float screenHeight)
        {
            Debug.Log("Trying to pull with timestamp " + givenTimestamp);
            SimpleMatrix3x3 matrix = new SimpleMatrix3x3();

            if (m_matrixPull.getMatrix3x3(matrix, givenTimestamp))
            {
                intrinsics = UbiMeasurementUtils.ubitrackToUnity(matrix);

                projectionMatrix = CameraUtils.constructProjectionMatrix3x3(intrinsics.data(), screenWidth, screenHeight, nearClipping, farClipping);

                if (Flip_X_Y)
                {
                    Matrix4x4 rotMat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, -90), Vector3.one);
                    projectionMatrix = rotMat * projectionMatrix;
                }

                //Debug.Log(projectionMatrix);
                if (GetComponent <Camera>() != null)
                {
                    GetComponent <Camera>().projectionMatrix = projectionMatrix;
                    //Debug.Log("set projection matrix of camera");
                }
            }
            else
            {
                throw new Exception("unable to get 3x3 matrix");
            }
        }
Ejemplo n.º 2
0
        public void applyProjectionMatrix()
        {
            SimpleMatrix3x3 matrix = new SimpleMatrix3x3();

            if (m_matrixPull.getMatrix3x3(matrix, UbiMeasurementUtils.getUbitrackTimeStamp()))
            {
                intrinsics = UbiMeasurementUtils.ubitrackToUnity(matrix);

                projectionMatrix = CameraUtils.constructProjectionMatrix3x3(intrinsics.data(), standardWidth, standardHeight, nearClipping, farClipping);

                if (Flip_X_Y)
                {
                    Matrix4x4 rotMat = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(0, 0, -90), Vector3.one);
                    projectionMatrix = rotMat * projectionMatrix;
                }

                //Debug.Log(projectionMatrix);
                if (GetComponent <Camera>() != null)
                {
                    GetComponent <Camera>().projectionMatrix = projectionMatrix;
                    //Debug.Log("set projection matrix of camera");
                }
            }
            else
            {
                throw new Exception("unable to get 3x3 matrix");
            }
        }
        public static void ubitrack3x4MatrixToFloatArray(SimpleMatrix3x3 ubiMatrix, ref float[] matrix)
        {
            doubleArrayClass dac = doubleArrayClass.frompointer(ubiMatrix.values);

            for (int i = 0; i < 9; i++)
            {
                matrix[i] = (float)dac.getitem(i);
            }
        }
 public override void utStart()
 {
     base.utStart();
     SimpleMatrix3x3 matrix = new SimpleMatrix3x3();
     if (m_matrixPull.getMatrix3x3(matrix, UbiMeasurementUtils.getUbitrackTimeStamp()))
     {
         Measurement<float[]> intrinsics = UbiMeasurementUtils.ubitrackToUnity(matrix);
         
         Matrix4x4 mProj;
         mProj = CameraUtils.constructProjectionMatrix3x3(intrinsics.data(), standardWidth, standardHeight, nearClipping, farClipping);
      
         GetComponent<Camera>().projectionMatrix = mProj;
     }
     else
     {
         throw new Exception("unable to get 3x3 matrix");
     }
 }
 internal static Measurement <float[]> ubitrackToUnity(SimpleMatrix3x3 newMatrix)
 {
     float[] data = new float[12];
     ubitrack3x4MatrixToFloatArray(newMatrix, ref data);
     return(new Measurement <float[]>(data, newMatrix.timestamp));
 }
Ejemplo n.º 6
0
 internal static Measurement<float[]> ubitrackToUnity(SimpleMatrix3x3 newMatrix)
 {
     float[] data = new float[12];
     ubitrack3x4MatrixToFloatArray(newMatrix, ref data);
     return new Measurement<float[]>(data, newMatrix.timestamp);
 }
Ejemplo n.º 7
0
 public static void ubitrack3x4MatrixToFloatArray(SimpleMatrix3x3 ubiMatrix, ref float[] matrix)
 {
     doubleArrayClass dac = doubleArrayClass.frompointer(ubiMatrix.values);        
     for (int i = 0; i < 9; i++)
     {
         matrix[i] = (float)dac.getitem(i);
     }       
 }