private void CameraSelected(object sender, RoutedEventArgs e)
        {
            Viewport3D     viewport3D     = (Viewport3D)this.FindName("mainViewport");
            ComboBoxItem   comboBoxItem   = (ComboBoxItem)sender;
            CameraSelector cameraSelector = new CameraSelector(comboBoxItem, viewport3D);

            InitializeComponent();
        }
示例#2
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        CameraSelector selector = (CameraSelector)target;

        if (GUILayout.Button("Next"))
        {
            selector.Next();
        }
    }
示例#3
0
 // Start is called before the first frame update
 void Start()
 {
     //for (int i = 0; i < _cameras.Length; i++)
     //{
     //    if (i != 0)
     //    {
     //        _cameras[i].gameObject.SetActive(false);
     //    }
     //}
     _cameraSelector = FindObjectOfType <CameraSelector>();
 }
示例#4
0
 // Token: 0x060055C3 RID: 21955 RVA: 0x001D8CAC File Offset: 0x001D70AC
 public override void InitializeCameras(CameraSelector selector)
 {
     this.eyeCamera.gameObject.SetActive(false);
     this.eyeCamera.cullingMask     = selector.cameraLayers;
     this.eyeCamera.farClipPlane    = selector.DefaultDrawDistance;
     this.eyeCamera.clearFlags      = selector.clearFlags;
     this.eyeCamera.depth           = (float)selector.depth;
     this.eyeCamera.backgroundColor = selector.clearColor;
     this.eyeCamera.renderingPath   = selector.renderingPath;
     this.postCamera.depth          = (float)(selector.depth + 1);
     this.screenCamera = this.eyeCamera;
 }
        /// <summary>
        /// https://codelabs.developers.google.com/codelabs/camerax-getting-started#3
        /// </summary>
        private void StartCamera()
        {
            var cameraProviderFuture = ProcessCameraProvider.GetInstance(this);

            cameraProviderFuture.AddListener(new Runnable(() =>
            {
                // Used to bind the lifecycle of cameras to the lifecycle owner
                var cameraProvider = (ProcessCameraProvider)cameraProviderFuture.Get();

                // Preview
                var preview = new Preview.Builder().Build();
                preview.SetSurfaceProvider(viewFinder.CreateSurfaceProvider());

                // Take Photo
                this.imageCapture = new ImageCapture.Builder().Build();

                // Frame by frame analyze
                var imageAnalyzer = new ImageAnalysis.Builder().Build();
                imageAnalyzer.SetAnalyzer(cameraExecutor, new LuminosityAnalyzer(luma =>
                                                                                 Log.Debug(TAG, $"Average luminosity: {luma}")
                                                                                 ));

                // Select back camera as a default, or front camera otherwise
                CameraSelector cameraSelector = null;
                if (cameraProvider.HasCamera(CameraSelector.DefaultBackCamera) == true)
                {
                    cameraSelector = CameraSelector.DefaultBackCamera;
                }
                else if (cameraProvider.HasCamera(CameraSelector.DefaultFrontCamera) == true)
                {
                    cameraSelector = CameraSelector.DefaultFrontCamera;
                }
                else
                {
                    throw new System.Exception("Camera not found");
                }

                try
                {
                    // Unbind use cases before rebinding
                    cameraProvider.UnbindAll();

                    // Bind use cases to camera
                    cameraProvider.BindToLifecycle(this, cameraSelector, preview, imageCapture, imageAnalyzer);
                }
                catch (Exception exc)
                {
                    Log.Debug(TAG, "Use case binding failed", exc);
                    Toast.MakeText(this, $"Use case binding failed: {exc.Message}", ToastLength.Short).Show();
                }
            }), ContextCompat.GetMainExecutor(this)); //GetMainExecutor: returns an Executor that runs on the main thread.
        }
示例#6
0
 // Token: 0x060055D9 RID: 21977 RVA: 0x001D9214 File Offset: 0x001D7614
 public override void InitializeCameras(CameraSelector selector)
 {
     Camera[] componentsInChildren = base.GetComponentsInChildren <Camera>();
     foreach (Camera camera in componentsInChildren)
     {
         camera.gameObject.SetActive(false);
         camera.cullingMask     = selector.cameraLayers;
         camera.farClipPlane    = selector.DefaultDrawDistance;
         camera.clearFlags      = selector.clearFlags;
         camera.depth           = (float)selector.depth;
         camera.backgroundColor = selector.clearColor;
         camera.renderingPath   = selector.renderingPath;
     }
     this.screenCamera = this.CameraStereo.GetComponent <Camera>();
 }
示例#7
0
 // Token: 0x0600559E RID: 21918 RVA: 0x001D8518 File Offset: 0x001D6918
 public virtual void InitializeCameras(CameraSelector selector)
 {
     Camera[] componentsInChildren = base.GetComponentsInChildren <Camera>();
     foreach (Camera camera in componentsInChildren)
     {
         camera.cullingMask     = selector.cameraLayers;
         camera.farClipPlane    = selector.DefaultDrawDistance;
         camera.clearFlags      = selector.clearFlags;
         camera.depth           = (float)selector.depth;
         camera.backgroundColor = selector.clearColor;
         camera.renderingPath   = selector.renderingPath;
     }
     this.screenCamera = componentsInChildren[0];
     this.SetStereoContentPresent();
 }
示例#8
0
    void Start()
    {
        if (kinematics == null)
        {
            kinematics = GetComponent <DifferentialKinematics>();
        }
        if (WorldCameraSelector == null)
        {
            WorldCameraSelector = GetComponent <CameraSelector>();
        }

        if (RobotCamera == null)
        {
            RobotCamera = Camera.main;
        }
        if (RobotLidar == null)
        {
            RobotLidar = GetComponent <Lidar>();
        }

        receiveBytes = new byte[921600];

        Connected  = false;
        ClientName = "";

        GetCameraImage();

        IPAddress ipAddress = IPAddress.Parse("127.0.0.1");

        tcpServer = new TcpListener(ipAddress, Port);
        tcpServer.Server.SendTimeout    = 1000;
        tcpServer.Server.ReceiveTimeout = 1000;
        tcpServer.Start();
        running = true;
        thread  = new Thread(new ThreadStart(ServerThread));
        thread.Start();
    }
示例#9
0
 void Awake()
 {
     _rigidbody      = GetComponent <Rigidbody>();
     _cameraSelector = FindObjectOfType <CameraSelector>();
 }
示例#10
0
 private void Start()
 {
     cameraSelector = GetComponent <CameraSelector>();
 }
示例#11
0
        public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(_propScanFrequency);
            EditorGUILayout.PropertyField(_propScanHiddenCameras);
            EditorGUILayout.PropertyField(_propSelectBy);
            if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Name)
            {
                EditorGUILayout.PropertyField(_propName);
            }
            else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Tag)
            {
                EditorGUILayout.PropertyField(_propTag);
            }
            else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.Manual)
            {
                EditorGUILayout.PropertyField(_propCamera);
            }
#if !SUPPORT_SCENE_VIEW_GIZMOS_CAPTURE
            else if (_propSelectBy.enumValueIndex == (int)CameraSelector.SelectByMode.EditorSceneView)
            {
                GUI.color = Color.yellow;
                GUILayout.TextArea("Warning: Scene View capture only currently supports gizmo capture up to Unity 2018.2.x");
                GUI.color = Color.white;
            }
#endif
            if (Application.isPlaying)
            {
                EditorGUILayout.Separator();

                GUILayout.Label("Cameras:");

                CameraSelector selector = (this.target) as CameraSelector;

                // Display buttons for all possible cameras
                for (int i = 0; i < selector.CameraCacheCount; i++)
                {
                    if (selector.Camera != selector.CameraCache[i])
                    {
                        if (GUILayout.Button(selector.CameraCache[i].name))
                        {
                            selector.Camera = selector.CameraCache[i];
                        }
                    }
                    else
                    {
                        GUI.color = Color.green;
                        GUILayout.Button(selector.Camera.name);
                        GUI.color = Color.white;
                    }
                }

                EditorGUILayout.Separator();
                if (_propScanFrequency.enumValueIndex != (int)CameraSelector.ScanFrequencyMode.Frame)
                {
                    if (GUILayout.Button("Update Camera List"))
                    {
                        selector.UpdateCameraCache();
                    }
                }
            }

            serializedObject.ApplyModifiedProperties();
        }
 void Awake()
 {
     // Save a reference to the component as our singleton instance
     instance = this;
 }
示例#13
0
        /// <summary>
        /// 初始化并绑定摄像头
        /// </summary>
        /// <param name="lifecycleOwner"></param>
        public void InitAndStartCamera(ILifecycleOwner lifecycleOwner, Action <bool, string> InitCallBack)
        {
            var cameraProviderFuture = ProcessCameraProvider.GetInstance(this.Context);

            cameraExecutor = Executors.NewSingleThreadExecutor();

            cameraProviderFuture.AddListener(new Java.Lang.Runnable(() =>
            {
                // Used to bind the lifecycle of cameras to the lifecycle owner
                var cameraProvider = (ProcessCameraProvider)cameraProviderFuture.Get();

                // Preview
                var preview = new Preview.Builder()
                              .Build();
                preview.SetSurfaceProvider(_CameraPreView.SurfaceProvider);

                // Take Photo
                this._ImageCapture = new ImageCapture.Builder()
                                     .SetTargetResolution(new Size(CaptureImageSize_Width, CaptureImageSize_Height))
                                     .Build();

                // Frame by frame analyze(Not Use Now)
                var imageAnalyzer         = new ImageAnalysis.Builder().Build();
                imageAnalysisFrameProcess = new ImageAnalysisFrameProcess();
                imageAnalyzer.SetAnalyzer(cameraExecutor, imageAnalysisFrameProcess);
                //imageAnalyzer.SetAnalyzer(cameraExecutor, new LuminosityAnalyzer(luma =>
                //    Log.Debug("", $"Average luminosity: {luma}")
                //    ));

                #region Select back camera as a default, or front camera otherwise
                CameraSelector cameraSelector = null;
                //if (cameraProvider.HasCamera(CameraSelector.DefaultBackCamera) == true)
                //    cameraSelector = CameraSelector.DefaultBackCamera;
                //else if (cameraProvider.HasCamera(CameraSelector.DefaultFrontCamera) == true)
                //    cameraSelector = CameraSelector.DefaultFrontCamera;
                //else
                //    throw new System.Exception("Camera not found");
                switch (CameraFacing)
                {
                case CameraFacing.Back:
                    if (cameraProvider.HasCamera(CameraSelector.DefaultBackCamera) == true)
                    {
                        cameraSelector = CameraSelector.DefaultBackCamera;
                    }
                    else
                    {
                        if (cameraProvider.HasCamera(CameraSelector.DefaultFrontCamera) == true)
                        {
                            cameraSelector = CameraSelector.DefaultFrontCamera;
                        }
                        else
                        {
                            InitCallBack?.Invoke(false, "Not found any camera device");
                            return;
                        }
                    }
                    break;

                case CameraFacing.Front:
                    {
                        if (cameraProvider.HasCamera(CameraSelector.DefaultFrontCamera) == true)
                        {
                            cameraSelector = CameraSelector.DefaultFrontCamera;
                        }
                        else
                        {
                            if (cameraProvider.HasCamera(CameraSelector.DefaultBackCamera) == true)
                            {
                                cameraSelector = CameraSelector.DefaultBackCamera;
                            }
                            else
                            {
                                InitCallBack?.Invoke(false, "Not found any camera device");
                                return;
                            }
                        }
                    }
                    break;
                }
                #endregion
                try
                {
                    // Unbind use cases before rebinding
                    cameraProvider.UnbindAll();
                    // Bind use cases to camera
                    var camera        = cameraProvider.BindToLifecycle(lifecycleOwner, cameraSelector, preview, _ImageCapture, imageAnalyzer);
                    _CameraController = camera.CameraControl;
                    _CameraInfo       = camera.CameraInfo;
                    InitCallBack?.Invoke(true, "");
                }
                catch (Exception exc)
                {
                    Toast.MakeText(this.Context, $"Use case binding failed: {exc.Message}", ToastLength.Short).Show();
                }
            }), AndroidX.Core.Content.ContextCompat.GetMainExecutor(this.Context));
        }
示例#14
0
 void Start()
 {
     _cameraSelector = FindObjectOfType <CameraSelector>();
 }