//System.Threading.Thread grab_thread = null; //volatile bool running = true; //volatile bool isCalculated = false; //System.Threading.Mutex protect; //void grab() //{ // while (running) // { // if (isCalculated == false && zedCamera.Grab(sl.zed.ZEDCamera.SENSING_MODE.FILL) == 0) // { // isCalculated = true; // } // } //} // Use this for initialization void Awake() { zedCamera = sl.zed.ZEDCamera.GetInstance(); //Initialize the camera in performance mode. if (!init) { //Create a camera zedCamera.CreateCamera(resolutionMode, requestedFPS); Debug.Log("ZED SDK Version " + sl.zed.ZEDCamera.GetSDKVersion()); sl.zed.ZEDCamera.ERRCODE e = zedCamera.Init(computingMode); if (e != sl.zed.ZEDCamera.ERRCODE.SUCCESS) { throw new Exception("Initialization failed " + e.ToString()); } init = true; } pos = IdentityMatrix(); if (this.tracking) { //Enables the tracking if (!(this.tracking = zedCamera.EnableTracking(pos, false))) { throw new Exception("Error, tracking not available"); } } //grab_thread = new System.Threading.Thread(grab); //grab_thread.Start(); //System.Threading.Mutex protect = new System.Threading.Mutex(); }
void OnApplicationQuit() { if (zedCamera != null) { zedCamera.Destroy(); } zedCamera = null; }
void OnApplicationQuit() { //running = false; //grab_thread.Join(); if (zedCamera != null) { zedCamera.Destroy(); } zedCamera = null; }
void Start() { mainCamera = GetComponent <Camera>(); mat = screen.GetComponent <Renderer>().material; sl.zed.ZEDCamera zedCamera = sl.zed.ZEDCamera.GetInstance(); if (zedCamera.CameraIsReady && gameObject.transform.parent.GetComponent <ZEDManager>().tracking) { mainCamera.ResetProjectionMatrix(); mainCamera.projectionMatrix = zedCamera.Projection; scale(screen.gameObject, zedCamera.GetFOV()); } else { scale(screen.gameObject, mainCamera.fieldOfView * Mathf.Deg2Rad); } mat.SetTexture("_MainTex", zedCamera.CreateTextureImageType(sl.zed.ZEDCamera.SIDE.LEFT)); }
void Start() { mainCamera = GetComponent <Camera>(); //Set textures to the shader matRGB = screen.GetComponent <Renderer>().material; sl.zed.ZEDCamera zedCamera = sl.zed.ZEDCamera.GetInstance(); //Create two textures and fill them with the ZED computed images if (side == sl.zed.ZEDCamera.SIDE.LEFT_GREY || side == sl.zed.ZEDCamera.SIDE.RIGHT_GREY || side == sl.zed.ZEDCamera.SIDE.LEFT_UNRECTIFIED_GREY || side == sl.zed.ZEDCamera.SIDE.RIGHT_UNRECTIFIED_GREY) { matRGB.SetInt("_isGrey", 1); } else { matRGB.SetInt("_isGrey", 0); } camZedLeft = zedCamera.CreateTextureImageType(side); depthXYZZed = zedCamera.CreateTextureMeasureType(sl.zed.ZEDCamera.MEASURE.XYZ); matRGB.SetTexture("_CameraTex", camZedLeft); matRGB.SetTexture("_DepthXYZTex", depthXYZZed); Matrix4x4 projectionMatrixQuad = zedCamera.Projection; projectionMatrixQuad[0, 2] = 0; projectionMatrixQuad[1, 2] = 0; matRGB.SetMatrix("_ProjectionMatrix", sl.zed.ZEDCamera.FormatProjectionMatrix(projectionMatrixQuad, mainCamera.actualRenderingPath)); //Set a new projection matrix to this camera, it's used by the tracking if (zedCamera.CameraIsReady && gameObject.transform.parent.GetComponent <ZEDManager>().tracking) { mainCamera.ResetProjectionMatrix(); mainCamera.fieldOfView = (zedCamera.GetFOV() / Mathf.PI) * 180.0f; mainCamera.projectionMatrix = zedCamera.Projection; scale(screen.gameObject, zedCamera.GetFOV()); } else { scale(screen.gameObject, mainCamera.fieldOfView * Mathf.Deg2Rad); } }
public ZEDEditor() { zedCamera = sl.zed.ZEDCamera.GetInstance(); }