public void Create()
 {
     running    = false;
     xrResponse = new XRResponseRef();
     xrConfig   = new XRConfigurationRef();
     XRCreate();
 }
 void XRGetCurrentRealityEditor()
 {
     if (xrResponse == null)
     {
         xrResponse = new XRResponseRef();
     }
     xrResponse.ptr = new c8_XRResponse(0);
     xrResponse.ptr.eventIdTimeMicros            = 600000000000;
     xrResponse.ptr.lightingGlobalExposure       = 0.0f;
     xrResponse.ptr.cameraExtrinsicRotationW     = 1.0f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[0]  = 2.92424f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[5]  = 1.64488f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[9]  = 0.0015625f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[10] = -1.0006f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[11] = -1.0f;
     xrResponse.ptr.cameraIntrinsicMatrix44f[14] = -0.60018f;
 }
            public void getCurrentRealityXR(ref XRResponseRef r)
            {
                AndroidJavaObject jr = androidXR.Call <AndroidJavaObject>("getCurrentRealityXR");

                r.ptr.eventIdTimeMicros = jr.Call <long>("eventIdTimeMicros");

                r.ptr.lightingGlobalExposure = jr.Call <float>("lightingGlobalExposure");

                r.ptr.cameraExtrinsicPositionX = jr.Call <float>("cameraExtrinsicPositionX");
                r.ptr.cameraExtrinsicPositionY = jr.Call <float>("cameraExtrinsicPositionY");
                r.ptr.cameraExtrinsicPositionZ = jr.Call <float>("cameraExtrinsicPositionZ");
                r.ptr.cameraExtrinsicRotationW = jr.Call <float>("cameraExtrinsicRotationW");
                r.ptr.cameraExtrinsicRotationX = jr.Call <float>("cameraExtrinsicRotationX");
                r.ptr.cameraExtrinsicRotationY = jr.Call <float>("cameraExtrinsicRotationY");
                r.ptr.cameraExtrinsicRotationZ = jr.Call <float>("cameraExtrinsicRotationZ");
                r.ptr.cameraIntrinsicMatrix44f = jr.Call <float[]>("cameraIntrinsicMatrix44f");

                r.ptr.surfacesSetSurfacesCount           = jr.Call <Int32>("surfacesSetSurfacesCount");
                r.ptr.surfacesSetSurfacesIdTimeMicros    = jr.Call <long[]>("surfacesSetSurfacesIdTimeMicros");
                r.ptr.surfacesSetSurfacesFacesBeginIndex =
                    jr.Call <Int32[]>("surfacesSetSurfacesFacesBeginIndex");
                r.ptr.surfacesSetSurfacesFacesEndIndex      = jr.Call <Int32[]>("surfacesSetSurfacesFacesEndIndex");
                r.ptr.surfacesSetSurfacesVerticesBeginIndex =
                    jr.Call <Int32[]>("surfacesSetSurfacesVerticesBeginIndex");
                r.ptr.surfacesSetSurfacesVerticesEndIndex =
                    jr.Call <Int32[]>("surfacesSetSurfacesVerticesEndIndex");

                r.ptr.surfacesSetFacesCount = jr.Call <Int32>("surfacesSetFacesCount");
                r.ptr.surfacesSetFaces      = jr.Call <Int32[]>("surfacesSetFaces");

                r.ptr.surfacesSetVerticesCount = jr.Call <Int32>("surfacesSetVerticesCount");
                r.ptr.surfacesSetVertices      = jr.Call <float[]>("surfacesSetVertices");

                r.ptr.surfacesActiveSurfaceIdTimeMicros = jr.Call <Int64>("surfacesActiveSurfaceIdTimeMicros");
                r.ptr.surfacesActiveSurfaceActivePointX = jr.Call <float>("surfacesActiveSurfaceActivePointX");
                r.ptr.surfacesActiveSurfaceActivePointX = jr.Call <float>("surfacesActiveSurfaceActivePointY");
                r.ptr.surfacesActiveSurfaceActivePointX = jr.Call <float>("surfacesActiveSurfaceActivePointZ");
            }