Esempio n. 1
0
    void Awake()
    {
        //DontDestroyOnLoad(gameObject);

        if (_instance == null)
        {
            _instance = this;
        }

        logMessage = HUD.transform.Find("Log").GetComponent <Text>();
        scoreText  = HUD.transform.Find("Score").GetComponent <Text>();
        nameText   = HUD.transform.Find("Name").GetComponent <Text>();
        dayText    = HUD.transform.Find("Day").GetComponent <Text>();
        clockText  = HUD.transform.Find("Clock").GetComponent <Text>();
        chunkText  = HUD.transform.Find("ChunkPosition").GetComponent <Text>();
        blockText  = HUD.transform.Find("BlockPosition").GetComponent <Text>();
        ballText   = HUD.transform.Find("Balls").GetComponent <Text>();
        pickupText = HUD.transform.Find("Pickups").GetComponent <Text>();

        startGame = HUD.transform.GetComponent <StartGame>();

        camOp = mainCamera.GetComponentInParent <CameraOperator>();

        player.transform.position = new Vector3(0f, -3f, 10f);
        player.GetComponent <Rigidbody>().isKinematic = true;
        playerActive = false;

        RenderSettings.fogDensity = 10f;
        RenderSettings.skybox.SetColor("_Tint", RenderSettings.fogColor);

        StartCoroutine(GetRandomWord());

        // float resolution = 1E9f / Stopwatch.Frequency;
        //Game.Log(String.Format("The minimum measurable time on this system is: {0} nanoseconds", resolution.ToString()));
    }
Esempio n. 2
0
    // Update is called once per frame
    void Update()
    {
        if (GetComponent <Renderer>().isVisible&& Input.GetMouseButton(0))
        {
            Vector3 camPos = Camera.main.WorldToScreenPoint(transform.position);
            camPos.y = CameraOperator.InvertMouseY(camPos.y);
            selected = CameraOperator.selection.Contains(camPos);

            if (selected)
            {
                GetComponent <Renderer>().material.color = Color.red;
            }
            else
            {
                GetComponent <Renderer>().material.color = Color.white;
            }
        }

        if (selected && Input.GetMouseButtonUp(1))
        {
            Vector3 destination = CameraOperator.GetDestination();

            if (destination != Vector3.zero)
            {
                moveToDest    = destination;
                moveToDest.y += floorOffset;
            }
        }

        UpdateMove();
    }
Esempio n. 3
0
 public void Draw(SpriteBatch spriteBatch, CameraOperator cameraOperator)
 {
     spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
                       cameraOperator.Camera.CalculateTransformMatrix(Vector2.One));
     _sprite.Draw(spriteBatch);
     spriteBatch.End();
 }
Esempio n. 4
0
 void Update()
 {
     if (Input.GetMouseButtonDown(1)) //Move click effect
     {
         Instantiate(moveEffectObject, CameraOperator.GetDestination(), moveEffectObject.transform.rotation);
     }
     //Debug.Log(targets.Length);
 }
Esempio n. 5
0
        private void InitCamera()
        {
            m_CameraPicBox     = pictureHost.Child as System.Windows.Forms.PictureBox;
            m_CameraDeviceList = new ComboBox();
            m_pDeviceList      = new MyCamera.MV_CC_DEVICE_INFO_LIST();
            m_pOperator        = new CameraOperator();

            CarmerDeviceListAcq();
        }
Esempio n. 6
0
    internal void OnPanOutComplete()
    {
        CameraOperator.FollowFocusObject();

        if (onComplete != null)
        {
            onComplete();
        }
    }
Esempio n. 7
0
 public void Draw(SpriteBatch spriteBatch, CameraOperator cameraOperator)
 {
     spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
                       cameraOperator.Camera.CalculateTransformMatrix(Vector2.One));
     foreach (Slime slime in SlimeList)
     {
         slime.Draw(spriteBatch);
     }
     spriteBatch.End();
 }
Esempio n. 8
0
        public bool FindCameraDevice()
        {
            bool bRe = false;

            //System.GC.Collect();
            m_CameraListComboBox.Items.Clear();
            int nRet = CameraOperator.EnumDevices(MyCamera.MV_GIGE_DEVICE | MyCamera.MV_USB_DEVICE, ref m_CameraList);

            if (0 != nRet)
            {
                MessageBox.Show("枚举设备失败!");
                bRe = false;
            }

            //在窗体列表中显示设备名
            for (int i = 0; i < m_CameraList.nDeviceNum; i++)
            {
                MyCamera.MV_CC_DEVICE_INFO device = (MyCamera.MV_CC_DEVICE_INFO)Marshal.PtrToStructure(m_CameraList.pDeviceInfo[i], typeof(MyCamera.MV_CC_DEVICE_INFO));
                if (device.nTLayerType == MyCamera.MV_GIGE_DEVICE)
                {
                    IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stGigEInfo, 0);
                    MyCamera.MV_GIGE_DEVICE_INFO gigeInfo = (MyCamera.MV_GIGE_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_GIGE_DEVICE_INFO));
                    if (gigeInfo.chUserDefinedName != "")
                    {
                        m_CameraListComboBox.Items.Add("GigE: " + gigeInfo.chUserDefinedName + " (" + gigeInfo.chSerialNumber + ")");
                    }
                    else
                    {
                        m_CameraListComboBox.Items.Add("GigE: " + gigeInfo.chManufacturerName + " " + gigeInfo.chModelName + " (" + gigeInfo.chSerialNumber + ")");
                    }
                }
                else if (device.nTLayerType == MyCamera.MV_USB_DEVICE)
                {
                    IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stUsb3VInfo, 0);
                    MyCamera.MV_USB3_DEVICE_INFO usbInfo = (MyCamera.MV_USB3_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_USB3_DEVICE_INFO));
                    if (usbInfo.chUserDefinedName != "")
                    {
                        m_CameraListComboBox.Items.Add("USB: " + usbInfo.chUserDefinedName + " (" + usbInfo.chSerialNumber + ")");
                    }
                    else
                    {
                        m_CameraListComboBox.Items.Add("USB: " + usbInfo.chManufacturerName + " " + usbInfo.chModelName + " (" + usbInfo.chSerialNumber + ")");
                    }
                }
            }

            //选择第一项
            if (m_CameraList.nDeviceNum != 0)
            {
                m_CameraListComboBox.SelectedIndex = 0;
                bRe = true;
            }

            return(bRe);
        }
Esempio n. 9
0
        private void btnSearch_Click(object sender, EventArgs e)
        {
            cbxCameras.Items.Clear();
            camerastring = CameraOperator.EnumDevices();
            foreach (var item in camerastring)
            {
                cbxCameras.Items.Add(item.Key);
            }

            ShowButtonState(true, false, false, false, false, false, false, false, false, false);
        }
Esempio n. 10
0
 private void OnDestroy()
 {
     if (_instance == this)
     {
         _instance   = null;
         _camera     = null;
         _focus      = null;
         _averagingA = null;
         _averagingB = null;
     }
 }
Esempio n. 11
0
    protected override void Awake()
    {
        base.Awake();
        // Lock or unlock the cursor.
        Cursor.lockState = m_LockCursor ? CursorLockMode.Locked : CursorLockMode.None;
        Cursor.visible   = !m_LockCursor;
        m_PivotEulers    = m_Pivot.rotation.eulerAngles;

        m_PivotTargetRot     = m_Pivot.transform.localRotation;
        m_TransformTargetRot = transform.localRotation;

        camOp = transform.GetComponent <CameraOperator>();
    }
Esempio n. 12
0
        public void Update(GameTime gameTime, CameraOperator cameraOperator, Entities entities, World world)
        {
            foreach (Coin coin in _coins)
            {
                coin.Update(gameTime);
            }

            _seconds += gameTime.ElapsedGameTime.Milliseconds * 1e-3f;
            if (_seconds > 1f)
            {
                --_seconds;

                RotatableRectangleF cameraViewport = cameraOperator.Camera.Viewport;
                if (_coins.Count == _coins.Capacity)
                {
                    Remove(_coins[0], world);
                }

                //select a way to launch
                if (InfiniteIsland.Random.Next(2) == 0)
                {
                    //Launch from the left
                    _coins.Add(
                        new Coin(
                            position:
                            (cameraViewport.TopLeft +
                             new Vector2(0,
                                         (float)InfiniteIsland.Random.NextDouble() *
                                         cameraViewport.Dimensions.Y * .75f)).ToMeters(),
                            linearVelocity:
                            entities.Player.Body.Wheel.LinearVelocity *
                            new Vector2(1.5f + (float)InfiniteIsland.Random.NextDouble() / 2.5f,
                                        -2 * (float)InfiniteIsland.Random.NextDouble()), world: world));
                }
                else
                {
                    //Launch from the right
                    _coins.Add(
                        new Coin(
                            position:
                            (cameraViewport.TopRight +
                             new Vector2(0, (float)InfiniteIsland.Random.NextDouble() * cameraViewport.Dimensions.Y * .75f)).ToMeters(),
                            linearVelocity:
                            entities.Player.Body.Wheel.LinearVelocity *
                            (new Vector2(
                                 x: 1.5f + (float)InfiniteIsland.Random.NextDouble() / 2.5f,
                                 y: -2 * (float)InfiniteIsland.Random.NextDouble()) - Vector2.UnitX),
                            world: world));
                }
            }
        }
    public void Spawn(EnvironmentCube cube)
    {
        gameObject.SetActive(true);
        transform.position             = cube.GetCoordinates().GetWorldPosition();
        Camera.main.transform.position = new Vector3(transform.position.x, Camera.main.transform.position.y, transform.position.z);

        _currentCube = cube;
        _canMove     = true;
        _health      = MAX_HEALTH;

        CameraOperator.SetFocusObject(transform);
        CameraOperator.SnapToFocus();
        CameraOperator.FollowFocusObject();
    }
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonUp(0))
        {
            Vector3 camPos = Camera.main.WorldToScreenPoint(transform.position);
            camPos.y = CameraOperator.InvertY(camPos.y);
            bool toggle = CameraOperator.selection.Contains(camPos);
            if (toggle)
            {
                //toggle player selected cell
                selected = !selected;

                //do the mirror toggle
                GameObject mirroredCell = null;
                int[]      flippedId    = new int[2];
                flippedId[1] = id[1];
                flippedId[0] = buildAndEnable.width - 1 - id[0];

                /*
                 * int half = buildAndEnable.width/2;
                 * if (id[0] < half){
                 *      flippedId[0] = buildAndEnable.width - 1 - id[0];
                 * } else {
                 *      flippedId[0] =
                 * }*/

                foreach (GameObject c in buildAndEnable.grid)
                {
                    if ((c.GetComponent <Cell>().id[0] == flippedId[0]) && c.GetComponent <Cell>().id[1] == flippedId[1])
                    {
                        c.GetComponent <Cell>().selected = !c.GetComponent <Cell>().selected;
                    }
                }
            }
        }



        if (selected)
        {
            GetComponent <Renderer>().material.color = Color.red;
        }
        else
        {
            GetComponent <Renderer>().material.color = Color.white;
        }
    }
Esempio n. 15
0
    static public void PanToFocus(float duration, float delay = 0.0f, Ease ease = Ease.InOutCubic, DG.Tweening.Core.TweenCallback onComplete = null)
    {
        CameraOperator script = instance;

        if (script != null)
        {
            if (_focus != null && _camera != null)
            {
                UnfollowFocusObject();
                UnaverageBetweenObjects();

                _camera.transform.DOKill();
                _camera.transform.DOMove(script.GetCameraTargetPosition(_focus.position), duration).
                SetDelay(delay).SetEase(ease).OnComplete(onComplete);
            }
        }
    }
Esempio n. 16
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (cbxCameras.Items.Count != 0)
            {
                temp = new CameraOperator();
                MyCamera.MV_CC_DEVICE_INFO cameraInfo;
                camerastring.TryGetValue(cbxCameras.Text, out cameraInfo);
                camera             = new HikvisionCamera(temp, cameraInfo);
                camera.ImageEvent += ImagShow;
                camera.Open();
                camera.IP = cbxCameras.Text;

                ShowButtonState(true, true, true, false, true, true, true, true, true, true);
                txtGain.Text     = camera.GainCur.ToString();
                txtExposure.Text = camera.ShuterCur.ToString();
            }
        }
Esempio n. 17
0
    private void Awake()
    {
        if (_instance == null)
        {
            _instance           = this;
            _instance.hideFlags = HideFlags.HideInInspector | HideFlags.HideInHierarchy;
            _instance.gameObject.AddComponent <ScreenResizeEvent>();

            if (_camera == null)
            {
                SetActiveCamera(Camera.main);
            }
        }
        else
        {
            DestroyImmediate(this);
        }
    }
Esempio n. 18
0
        public Play(Game game) : base(game)
        {
            Cursor         = new Cursor();
            Debug          = new Debug(game, World, this);
            Entities       = new Entities(World, this);
            Terrain        = new Terrain(game.GraphicsDevice, World);
            CameraOperator = new CameraOperator(game.GraphicsDevice.Viewport.Bounds);
            HUD            = new HUD();
            Background     =
                new Background(new Vector2(game.GraphicsDevice.Viewport.Width, game.GraphicsDevice.Viewport.Height));

            Wait.Until(time => Tweening.Tween(
                           start: 0f,
                           end: 1f,
                           progress: time.Alive / 2f,
                           step: value => Factor = value,
                           scale: TweenScales.Quadratic));
        }
Esempio n. 19
0
    void Start()
    {
        functionValues = new float[NumberOfSamples][][];

                for (int i = 0; i<NumberOfSamples; i++) {
                        functionValues [i] = new float[NumberOfSamples][];

                        for (int j = 0; j<NumberOfSamples; j++) {
                                functionValues [i] [j] = new float[NumberOfSamples];

                                for (int k = 0; k<NumberOfSamples; k++) {
                                        functionValues [i] [j] [k] = 0;
                                }
                        }
                }
                cameraman = GetComponent<CameraOperator> ();
                cameraman.enabled = false;
                index = Vector3.zero;
    }
Esempio n. 20
0
    protected void ApplyCameraSettings()
    {
        Camera playerCamera = Camera.main;

        CameraOperator.SetActiveCamera(playerCamera);

        if (crosshair != null)
        {
            crosshair.gameObject.SetActive(false);
        }

        if (cameraScheme == CameraScheme.FirstPerson || cameraScheme == CameraScheme.ThirdPerson)
        {
            playerCamera.fieldOfView = cameraFOV;

            CameraOperator.AttachTo(GetLookTransform());
            playerCamera.transform.localRotation = Quaternion.identity;

            if (cameraScheme == CameraScheme.ThirdPerson)
            {
                playerCamera.transform.localEulerAngles = new Vector3(cameraAngle, 0.0f, 0.0f);
                playerCamera.transform.localPosition    = playerCamera.transform.forward * cameraDistance;
            }
            else
            {
                if (crosshair != null)
                {
                    crosshair.gameObject.SetActive(true);
                }
            }
        }
        else if (cameraScheme == CameraScheme.Overhead)
        {
            if (cameraFollow)
            {
                CameraLookAtFocus();
                CameraFollowFocus();
            }

            playerCamera.transform.position = new Vector3(playerCamera.transform.position.x, cameraHeight, playerCamera.transform.position.z);
        }
    }
Esempio n. 21
0
    public override void OnInspectorGUI()
    {
        controller = (CameraOperator)target;
        Shot prevShot = controller.Shot;
        controller.Shot = (Shot)EditorGUILayout.ObjectField ("Shot", controller.Shot, typeof(Shot), false);

        if (controller.Shot != null) {
            if (controller.Shot != prevShot)
                EditorUtility.SetDirty (controller.Shot);

            bool actorsChanged = false;
            for (int i=0;i<controller.Actors.Length;i++){
                Actor prev = controller.Actors[i];
                controller.Actors[i] = (Actor)EditorGUILayout.ObjectField("Actor "+i,controller.Actors[i],typeof(Actor),true);
                actorsChanged = prev != controller.Actors[i];
            }

            if (actorsChanged && Application.isPlaying)
                controller.SelectShot(controller.Shot,CameraOperator.Transition.Smooth,controller.Actors);

            controller.MovementResponsiveness = EditorGUILayout.Slider("Movement Responsiveness",controller.MovementResponsiveness,0,1);
            controller.RotationResponsiveness = EditorGUILayout.Slider("Rotation Responsiveness",controller.RotationResponsiveness,0,1);

            EditorGUILayout.Separator();

            if (controller.ReadyForEvaluation){
                controller.Shot.GetQuality(controller.Actors,controller.transform.GetComponent<Camera>());

                foreach (Property p in controller.Shot.Properties){
                    string sbj = p.MainSubjectIndex.ToString();
                    if (p.PropertyType == Property.Type.RelativePosition)
                        sbj += " "+(((RelativePosition)p).DesiredPosition).ToString()+" "+((RelativePosition)p).SecondaryActorIndex;

                    EditorGUILayout.LabelField(p.PropertyType+" on "+sbj+" = "+p.Evaluate(controller.Actors));
                }

                for (int i=0;i<controller.Actors.Length;i++)
                    EditorGUILayout.LabelField("Visibility on "+i+" = "+controller.Actors[i].Visibility);
            }

        }
    }
Esempio n. 22
0
        void AdjustCameraCount(int necessaryCameraCount, ref List <CameraInStudio> refCameraList)
        {
            for (int i = refCameraList.Count; i < necessaryCameraCount; i++)
            {
                CameraOperator cameraOperator = uiCameraGenerator.Generate();
                cameraOperator.transform.position = ConstUi.CameraPositionBase + ConstUi.CameraPositionInterval * i;
                CameraInStudio cameraInStudio = new CameraInStudio(ConstCamera.Ui, i, cameraOperator);

                refCameraList.Add(cameraInStudio);
                cameraBank.AddCamera(cameraInStudio);
            }
            for (int i = 0; i < necessaryCameraCount; i++)
            {
                refCameraList[i].CameraOperator.EnableCamera(true);
            }
            for (int i = necessaryCameraCount; i < refCameraList.Count; i++)
            {
                refCameraList[i].CameraOperator.EnableCamera(false);
            }
        }
Esempio n. 23
0
        private SettingForm()
        {
            InitializeComponent();
            tabControl1.TabPages[3].Controls.Add(CameraOperator.GetThis(Global.ContempProductType));

            #region 标记窗体原有尺寸

            hv_hWindowHandle = hWindowControl1.HalconWindow;

            HOperatorSet.SetColor(hv_hWindowHandle, "red");

            m_sHDevEnginePath = Global.di + "\\HE";
            ListControl(this);
            m_iOriFormWidth  = this.Width;
            m_iOriFormHeight = this.Height;

            #endregion

            HOperatorSet.GenEmptyObj(out ho_Image);
            hv_hWindowHandle = hWindowControl1.HalconWindow;
        }
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButton(0) && (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift)))
        {
            Vector3 campos = Camera.main.WorldToScreenPoint(transform.position);
            campos.y = CameraOperator.InverseMouseY(campos.y);
            this.gameObject.GetComponent <QuadracopterRayPointTracker>().selected = CameraOperator.selection.Contains(campos);
        }

        if (this.gameObject.GetComponent <QuadracopterRayPointTracker>().selected) // && droneCam==null)
        {
            this.transform.FindChild("indicator").gameObject.SetActive(true);

            /*  foreach (GameObject drone in GameObject.FindGameObjectsWithTag("drone"))
             * {
             *    if (!drone.GetComponent<QuadracopterRayPointTracker>().selected)
             *    {
             *        droneCam = drone;
             *        drone.GetComponent<QuadracopterRayPointTracker>().selected = true;
             *        drone.GetComponent<QuadCopterController>().agentchosen = true;
             *        drone.transform.parent = this.transform;
             *        drone.transform.position = new Vector3(drone.transform.position.x, drone.transform.position.y + 7, drone.transform.position.z-5);
             *        break;
             *    }
             * }*/
        }
        else //if(!this.gameObject.GetComponent<QuadracopterRayPointTracker>().selected)
        {
            this.transform.FindChild("indicator").gameObject.SetActive(false);

            /* if (droneCam != null)
             * {
             *   droneCam.GetComponent<QuadracopterRayPointTracker>().selected = false;
             *   droneCam.GetComponent<QuadCopterController>().agentchosen = false ;
             *   droneCam.transform.parent = GameObject.Find("drones").transform;
             * }
             * droneCam = null;
             */
        }
    }
Esempio n. 25
0
        public void Draw(SpriteBatch spriteBatch, CameraOperator cameraOperator, bool revealCoins)
        {
            if (revealCoins)
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
                                  cameraOperator.Camera.CalculateTransformMatrix(Vector2.One));
                foreach (Coin coin in _coins)
                {
                    coin.Sprite.Key = coin.Type;
                    Vector2 badOffset = Vector2.Zero;
                    if (coin.Type == Coin.AnimationKeys.Bad)
                    {
                        badOffset = new Vector2(
                            x: (float)(InfiniteIsland.Random.NextDouble() - .5f) * 15,
                            y: (float)(InfiniteIsland.Random.NextDouble() - .5f) * 15);
                        coin.Sprite.Body.Center += badOffset;
                    }

                    coin.Sprite.Body.Pivot  -= Vector2.One * 3;
                    coin.Sprite.Body.Center -= Vector2.One * 3;
                    coin.Draw(spriteBatch);
                    coin.Sprite.Body.Center += Vector2.One * 3;
                    coin.Sprite.Body.Pivot  += Vector2.One * 3;
                    coin.Sprite.Body.Center -= badOffset;
                }
                spriteBatch.End();
            }
            else
            {
                spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
                                  cameraOperator.Camera.CalculateTransformMatrix(Vector2.One));
                foreach (Coin coin in _coins)
                {
                    coin.Sprite.Key = Coin.AnimationKeys.Outline;
                    coin.Draw(spriteBatch);
                }
                spriteBatch.End();
            }
        }
Esempio n. 26
0
        public override void Close()
        {
            try
            {
                IsLink = false;
                if (m_pOperator != null)
                {
                    //停止采集
                    m_pOperator.StopGrabbing();
                    //关闭设备
                    m_pOperator.Close();



                    m_pOperator = null;
                }
            }
            catch (Exception ex)
            {
                Util.WriteLog(this.GetType(), ex);
                Util.Notify("相机关闭异常");
            }
        }
Esempio n. 27
0
    void Update()
    {
        Renderer tmpRender = transform.GetComponentsInChildren <MeshRenderer>()[0].GetComponent <Renderer>();

        if (tmpRender.isVisible && Input.GetMouseButton(0))
        {
            if (!selectedByClick)
            {
                Vector3 campPos = Camera.main.WorldToScreenPoint(transform.position);
                campPos.y = CameraOperator.InvertScreenY(campPos.y);
                selected  = CameraOperator.selection.Contains(campPos);
            }
        }

        if (selected && Input.GetMouseButtonUp(1))
        {
            Vector3 destination = CameraOperator.GetDestination();
            if (destination != Vector3.zero)
            {
                MoveTo(destination);
            }
        }
    }
Esempio n. 28
0
    void selectionManagement()
    {
        if (renderer.isVisible && Input.GetMouseButton(0))
        {
            Vector3 camPos = Camera.main.WorldToScreenPoint(rigidbody.position);
            camPos.y = CameraOperator.InvertMouse(camPos.y);
            selected = CameraOperator.selection.Contains(camPos);
        }

        if (selected)
        {
            transform.GetChild(0).light.intensity = 0.25f;
        }
        else
        {
            transform.GetChild(0).light.intensity = 0f;
        }

        if (selected && Input.GetKeyDown("mouse 1"))
        {
            moveNow = true;
        }
    }
Esempio n. 29
0
    public void DestOffset() //Formation movement
    {
        Vector3 destination = CameraOperator.GetDestination();

        float averageX = 0, averageZ = 0;

        for (int x = 0; x < selectedUnits.Count; x++)
        {
            averageX += selectedUnits[x].transform.position.x;
            averageZ += selectedUnits[x].transform.position.z;
        }

        averageX /= selectedUnits.Count;
        averageZ /= selectedUnits.Count;

        for (int x = 0; x < selectedUnits.Count; x++)
        {
            Vector3 Temp = destination;
            if (selectedUnits[x].transform.position.x <= averageX)
            {
                Temp.x -= averageX - selectedUnits[x].transform.position.x;
            }
            else
            {
                Temp.x += selectedUnits[x].transform.position.x - averageX;
            }
            if (selectedUnits[x].transform.position.z <= averageZ)
            {
                Temp.z -= averageZ - selectedUnits[x].transform.position.z;
            }
            else
            {
                Temp.z += selectedUnits[x].transform.position.z - averageZ;
            }
            selectedUnits[x].SendMessage("SetDest", Temp);
        }
    }
Esempio n. 30
0
 public HikvisionCamera(CameraOperator m_pOperator, int index)
 {
     this.m_pOperator = m_pOperator;
     this.cameraIndex = index;
 }
Esempio n. 31
0
        public static bool Open()
        {
            try
            {
                int cameraCount = 0;
                if ((CameraFlag & CameraFlag.Basler) == CameraFlag.Basler)
                {
                    //#region basler相机遍历查询

                    //List<Basler.Pylon.ICameraInfo> g_allCameras = Basler.Pylon.CameraFinder.Enumerate();

                    //if (g_allCameras.Count > 0)
                    //{
                    //    for (int i = 0; i < g_allCameras.Count; i++)
                    //    {
                    //        Basler.Pylon.Camera g_camera = new Basler.Pylon.Camera(g_allCameras[i]);
                    //        if (true == g_camera.IsOpen)
                    //            g_camera.Close();

                    //        g_camera.Open();
                    //        string id = g_camera.Parameters[Basler.Pylon.PLCamera.DeviceUserID].GetValue();
                    //        int id1;
                    //        if (int.TryParse(id, out id1))
                    //        {
                    //            if (CameraDic.Keys.Contains(id1) == false)
                    //            {
                    //                CameraDic.Add(id1, new BaslerCamera(g_camera, id1));
                    //                cameraCount++;
                    //            }
                    //        }
                    //        else
                    //        {
                    //            Util.Notify("相机ID未设置");
                    //        }
                    //    }
                    //}

                    //#endregion
                }
                if ((CameraFlag & CameraFlag.Hikvision) == CameraFlag.Hikvision)
                {
                    #region 海康相机遍历枚举
                    MyCamera.MV_CC_DEVICE_INFO_LIST m_pDeviceList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
                    int nRet;


                    nRet = CameraOperator.EnumDevices(MyCamera.MV_GIGE_DEVICE | MyCamera.MV_USB_DEVICE, ref m_pDeviceList);
                    if (0 == nRet && m_pDeviceList.nDeviceNum > 0)
                    {
                        for (int i = 0; i < m_pDeviceList.nDeviceNum; i++)
                        {
                            MyCamera.MV_CC_DEVICE_INFO device =
                                (MyCamera.MV_CC_DEVICE_INFO)Marshal.PtrToStructure(m_pDeviceList.pDeviceInfo[i],
                                                                                   typeof(MyCamera.MV_CC_DEVICE_INFO));

                            if (device.nTLayerType == MyCamera.MV_GIGE_DEVICE)
                            {
                                IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stGigEInfo, 0);
                                MyCamera.MV_GIGE_DEVICE_INFO gigeInfo = (MyCamera.MV_GIGE_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_GIGE_DEVICE_INFO));

                                int key;

                                if (int.TryParse(gigeInfo.chUserDefinedName, out key))
                                {
                                    if (CameraDic.Keys.Contains(key) == false)
                                    {
                                        CameraOperator m_pOperator = new CameraOperator();
                                        //打开设备
                                        nRet = m_pOperator.Open(ref device);
                                        //Util.Notify("打开相机");
                                        if (MyCamera.MV_OK == nRet)
                                        {
                                            CameraDic.Add(key, new HikvisionCamera(m_pOperator, key));
                                            cameraCount++;
                                        }
                                    }
                                }
                                else
                                {
                                    Util.Notify("相机ID未设置");
                                }
                            }
                            else if (device.nTLayerType == MyCamera.MV_USB_DEVICE)
                            {
                                IntPtr buffer = Marshal.UnsafeAddrOfPinnedArrayElement(device.SpecialInfo.stUsb3VInfo, 0);
                                MyCamera.MV_USB3_DEVICE_INFO usbInfo = (MyCamera.MV_USB3_DEVICE_INFO)Marshal.PtrToStructure(buffer, typeof(MyCamera.MV_USB3_DEVICE_INFO));

                                int key;

                                if (int.TryParse(usbInfo.chUserDefinedName, out key))
                                {
                                    if (CameraDic.Keys.Contains(key) == false)
                                    {
                                        CameraOperator m_pOperator = new CameraOperator();
                                        //打开设备
                                        nRet = m_pOperator.Open(ref device);
                                        if (MyCamera.MV_OK == nRet)
                                        {
                                            CameraDic.Add(key, new HikvisionCamera(m_pOperator, key));
                                            cameraCount++;
                                        }
                                    }
                                    else
                                    {
                                        Util.Notify("相机ID未设置");
                                    }
                                }
                            }
                        }
                    }

                    #endregion
                }
                if ((CameraFlag & CameraFlag.Mindvision) == CameraFlag.Mindvision)
                {
                    #region 迈徳威视相机遍历枚举

                    CameraSdkStatus     status;
                    tSdkCameraDevInfo[] tCameraDevInfoList;

                    status = MvApi.CameraEnumerateDevice(out tCameraDevInfoList);
                    if (status == CameraSdkStatus.CAMERA_STATUS_SUCCESS)
                    {
                        if (tCameraDevInfoList != null && tCameraDevInfoList.Count() > 0)//此时iCameraCounts返回了实际连接的相机个数。如果大于1,则初始化第一个相机
                        {
                            for (int i = 0; i < tCameraDevInfoList.Count(); i++)
                            {
                                IntPtr m_Grabber;
                                status = MvApi.CameraGrabber_Create(out m_Grabber, ref tCameraDevInfoList[i]);
                                if (status == CameraSdkStatus.CAMERA_STATUS_SUCCESS)
                                {
                                    CameraHandle m_hCamera = 0;             // 句柄
                                    MvApi.CameraGrabber_GetCameraHandle(m_Grabber, out m_hCamera);
                                    byte[] pName = new byte[255];
                                    MvApi.CameraGetFriendlyName(m_hCamera, pName);
                                    string str = System.Text.Encoding.ASCII.GetString(pName).Substring(0, 1);

                                    int key = -1;

                                    if (int.TryParse(str, out key) && CameraDic.Keys.Contains(key) == false)
                                    {
                                        CameraDic.Add(key, new MindCamera(m_hCamera, m_Grabber, key));
                                        cameraCount++;
                                    }
                                    //else
                                    //{
                                    //    Util.Notify("相机ID未设置");
                                    //}
                                }
                            }
                        }
                    }

                    #endregion
                }
                if ((CameraFlag & CameraFlag.Microvision) == CameraFlag.Microvision)
                {
                    #region 维视图像相机相机遍历枚举

                    //个数枚举
                    MVGigE.MVInitLib();
                    int      CamNum = 0;
                    MVSTATUS r      = MVGigE.MVGetNumOfCameras(out CamNum);
                    for (int i = 0; i < CamNum; i++)
                    {
                        IntPtr m_hCam;
                        byte   index = (byte)i;
                        r = MVGigE.MVOpenCamByIndex(index, out m_hCam);
                        if (m_hCam != IntPtr.Zero)
                        {
                            MVCamInfo pCamInfo;
                            MVGigE.MVGetCameraInfo(index, out pCamInfo);

                            string str = pCamInfo.mUserDefinedName;

                            int key = -1;

                            if (int.TryParse(str, out key) && CameraDic.Keys.Contains(key) == false)
                            {
                                CameraDic.Add(key, new MicrovisionCamera(m_hCam, key));
                                cameraCount++;
                            }
                            else
                            {
                                Util.Notify("相机ID未设置");
                            }
                        }
                    }

                    #endregion
                }
                if ((CameraFlag & CameraFlag.ICImaging) == CameraFlag.ICImaging)
                {
                    #region  美精相机遍历查询
                    TIS.Imaging.ICImagingControl cameraFind = new TIS.Imaging.ICImagingControl();

                    foreach (TIS.Imaging.Device Item in cameraFind.Devices)
                    {
                        string cameraName = Item.Name;
                        int    index1     = cameraName.IndexOf("[");
                        if (index1 > -1)
                        {
                            string dat  = cameraName.Substring(index1);
                            string dat1 = dat.Replace("[", "").Replace("]", "");
                            int    id1;
                            if (int.TryParse(dat1, out id1))
                            {
                                if (CameraDic.Keys.Contains(id1) == false)
                                {
                                    TIS.Imaging.ICImagingControl cameraTmp = new TIS.Imaging.ICImagingControl();
                                    cameraTmp.Device = Item.Name;
                                    bool x = cameraTmp.DeviceValid;
                                    CameraDic.Add(id1, new ICImagingCamera(cameraTmp, id1));
                                    cameraCount++;
                                }
                            }
                        }
                    }

                    #endregion
                }
                if ((CameraFlag & CameraFlag.DirectShow) == CameraFlag.DirectShow)
                {
                    #region DirectShow相机 当前只支持一个相机
                    HFramegrabber framegrabber = new HFramegrabber();
                    //HTuple Information = null;
                    //HTuple ValueList = null;
                    //HOperatorSet.InfoFramegrabber("DirectShow", "info_boards",out Information,out ValueList);
                    framegrabber.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, DirectShowColorSpace,
                                                  -1, "false", DirectShowCameraType, DirectShowIndex, 0, -1);
                    CameraDic.Add(1, new DirectShowCamera(framegrabber, 1));
                    #endregion
                }
                if ((CameraFlag & CameraFlag.DaHeng) == CameraFlag.DaHeng)
                {
                    //#region 大恒相机
                    //List<IGXDeviceInfo> listGXDeviceInfo = new List<IGXDeviceInfo>();
                    //IGXFactory IGXFactory1 = IGXFactory.GetInstance();
                    //IGXFactory1.Init();
                    //IGXFactory1.UpdateDeviceList(200, listGXDeviceInfo);
                    //foreach (var item in listGXDeviceInfo)
                    //{
                    //    string name = item.GetUserID();
                    //    int key;

                    //    if (int.TryParse(name, out key))
                    //    {
                    //        if (CameraDic.Keys.Contains(key) == false)
                    //        {
                    //            IGXDevice IGXDevice1 = null;
                    //            IGXDevice1 = IGXFactory1.OpenDeviceBySN(item.GetSN(), GX_ACCESS_MODE.GX_ACCESS_EXCLUSIVE);
                    //            CameraDic.Add(key, new DHCamera(IGXFactory1, IGXDevice1));

                    //        }
                    //    }

                    //}

                    //#endregion
                }

                if ((CameraFlag & CameraFlag.Gige) == CameraFlag.Gige)
                {
                    //#region Gige相机遍历查询

                    HTuple Information = null;
                    HTuple ValueList   = null;
                    HOperatorSet.InfoFramegrabber("GigEVision", "info_boards", out Information, out ValueList);
                    for (int i = 0; i < ValueList.Length; i++)
                    {
                        string valueTmp = ValueList[i];
                        string name     = GetGigeValue(valueTmp, "user_name:");

                        string device = GetGigeValue(valueTmp, "device:");
                        if (name != null && device != null)
                        {
                            int id1;
                            if (int.TryParse(name, out id1))
                            {
                                if (CameraDic.Keys.Contains(id1) == false)
                                {
                                    HFramegrabber grabber = new HFramegrabber();
                                    grabber.OpenFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "default", -1,
                                                             "default", -1, "false", "default", device, 0, -1);
                                    CameraDic.Add(id1, new GigeCamera(grabber, id1));
                                    cameraCount++;
                                }
                            }
                        }
                    }
                    //List<ICameraInfo> g_allCameras = CameraFinder.Enumerate();

                    //if (g_allCameras.Count > 0)
                    //{
                    //    for (int i = 0; i < g_allCameras.Count; i++)
                    //    {
                    //        Basler.Pylon.Camera g_camera = new Basler.Pylon.Camera(g_allCameras[i]);
                    //        if (true == g_camera.IsOpen)
                    //            g_camera.Close();

                    //        g_camera.Open();
                    //        string id = g_camera.Parameters[PLCamera.DeviceUserID].GetValue();
                    //        int id1;
                    //        if (int.TryParse(id, out id1))
                    //        {
                    //            if (CameraDic.Keys.Contains(id1) == false)
                    //            {
                    //                CameraDic.Add(id1, new BaslerCamera(g_camera, id1));
                    //                cameraCount++;
                    //            }
                    //        }
                    //        else
                    //        {
                    //            Util.Notify("相机ID未设置");
                    //        }
                    //    }
                    //}

                    //#endregion
                }
                //打开相机
                foreach (var item in CameraDic.Values)
                {
                    item.Open();
                    Thread.Sleep(30);
                }

                if (CameraInitFinishEvent != null)
                {
                    CameraInitFinishEvent(null, null);
                }
                //else
                //{
                //    Util.Notify("无相机连接");
                //    return false;
                //}
            }
            catch (Exception ex)
            {
                Util.WriteLog(typeof(CameraManger), ex);
                Util.Notify("相机打开出现异常");
                Close();
                return(false);
            }
            return(true);
        }
Esempio n. 32
0
 private void InitCamera()
 {
     m_pDeviceList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
     m_pOperator   = new CameraOperator();
 }