/// <summary>
        /// RectListの内容をGivenPictureDataに反映させるメソッド
        /// </summary>
        public void RefreshAreaList()
        {
            if (RectList.Count == GivenPictureData.CalcAreas.Count)
            {
                //前回呼び出し時から新規で作られた領域はないものとして処理する
                for (int i = 0; i < RectList.Count; i++)
                {
                    var rectEX = new RectEx(
                        new OpenCvSharp.CPlusPlus.Point(Canvas.GetLeft(RectList[i]), Canvas.GetTop(RectList[i])),
                        new OpenCvSharp.CPlusPlus.Size(RectList[i].Width, RectList[i].Height)
                        );

                    GivenPictureData.CalcAreas[i] = rectEX;
                }
            }
            else
            {
                GivenPictureData.CalcAreas.Clear();

                foreach (var obj in RectList)
                {
                    var rectEX = new RectEx(
                        new OpenCvSharp.CPlusPlus.Point(Canvas.GetLeft(obj), Canvas.GetTop(obj)),
                        new OpenCvSharp.CPlusPlus.Size(obj.Width, obj.Height)
                        );
                }
            }
            RaisePropertyChanged("CalcAreas");
        }
Esempio n. 2
0
        public Rect GetWorldBounds(PointF translation)
        {
            Rect rectangleF = default(Rect);

            foreach (TmxObject @object in Objects)
            {
                Rect worldBounds = @object.GetWorldBounds();
                worldBounds.position += new Vector2(translation.X, translation.Y);
                rectangleF            = RectEx.Union(rectangleF, worldBounds);
            }
            return(rectangleF);
        }
Esempio n. 3
0
    private void DrawLevelButtons()
    {
        int btnCount = levelPrefabs.Count;
        int rowCount = Mathf.CeilToInt((float)btnCount / 6f);

        Rect[] itemBtnPosArray = RectEx.RectGrid(new Rect(0.25f, 14f, 18f, 3f * (float)rowCount), 6, rowCount);

        for (int i = 0; i < btnCount; i++)
        {
            DrawPrefabButton(itemBtnPosArray[i].Multiply(UISize), levelPrefabs[i]);
        }
    }
Esempio n. 4
0
        public override Rect GetWorldBounds()
        {
            Rect rectangleF  = new Rect(base.Position.X, base.Position.Y - base.Size.Height, base.Size.Width, base.Size.Height);
            Rect worldBounds = Tile.ObjectGroup.GetWorldBounds(base.Position);

            if (worldBounds == Rect.zero)
            {
                return(rectangleF);
            }

            return(RectEx.Union(rectangleF, worldBounds));
        }
        public Transform2D(Transform target)
        {
            var bounds = NGUIMath.CalculateRelativeWidgetBounds(target, true);
            var rc     = new RectEx(
                bounds.center.x - bounds.extents.x,
                bounds.center.y - bounds.extents.y,
                bounds.size.x, bounds.size.y);

            this.Size = new Vector2(rc.W, rc.H);

            var s = this.Size;
            var p = target.localPosition;

            p.x     -= s.x * 0.5f;
            p.y     += s.y * 0.5f;
            this.Pos = p;
        }
Esempio n. 6
0
    //public safe method with exception handling and returns a RectEx
    public static RectEx GetWindowRectangle(HandleRef hWnd)
    {
        RECT r = new RECT();

        RectEx result = new RectEx();

        try
        {
            GetWindowRect(hWnd, r);
            result.Left   = r.Left;
            result.Top    = r.Top;
            result.Right  = r.Right;
            result.Bottom = r.Bottom;
            // assign extra fields
        }
        catch (Exception ex)
        {
            // handle ex
        }

        return(result);
    }
Esempio n. 7
0
        public static RectAndFeature GetFeatures(Mat matObj, RectEx rect, int[] stepSizes)
        {
            RectAndFeature returnRect = new RectAndFeature(rect);

            //探索開始点
            int start_x = rect.X + 1;
            int start_y = rect.Y + 1;

            //探索終了点
            int end_x = rect.X + rect.Width - 2;
            int end_y = rect.Y + rect.Height - 2;


            foreach (int step in stepSizes)
            {
                returnRect.Features.AddRange(CalcFeatures(matObj, start_x, start_y, end_x, end_y, step));
            }


            //正規化します
            double allFeaturesAddition = 0;

            for (int i = 0; i < returnRect.Features.Count; i++)
            {
                allFeaturesAddition += Math.Pow(returnRect.Features[i], 2.0);
            }
            double scalar = Math.Sqrt(allFeaturesAddition);

            for (int i = 0; i < returnRect.Features.Count; i++)
            {
                returnRect.Features[i] /= scalar;
            }


            return(returnRect);
        }
Esempio n. 8
0
 public GeoRegion(List <List <Point> > points)
     : this(RectEx.FromShapePoints(points))
 {
 }
Esempio n. 9
0
 public GeoRegion(List <Point> points)
     : this(RectEx.FromPoints(points))
 {
 }
Esempio n. 10
0
    private void DrawToolButtons()
    {
        // Move Buttons
        Rect[] posRotButtons = RectEx.RectGrid(new Rect(0.25f, 0.25f, 8f, 9f), 3, 3);

        if (GUI.Button(posRotButtons[0].Multiply(UISize), new GUIContent("Rotate\nLeft", "Rotates selected objects counter-clockwise")))
        {
            RotateSelectedObjects(new Vector3(0f, -90f, 0f));
        }

        if (GUI.Button(posRotButtons[1].Multiply(UISize), "+Z"))
        {
            MoveSelectedObjects(new Vector3(0f, 0f, 1f));
        }

        if (GUI.Button(posRotButtons[2].Multiply(UISize), new GUIContent("Rotate\nReft", "Rotates selected objects clockwise")))
        {
            RotateSelectedObjects(new Vector3(0f, 90f, 0f));
        }

        if (GUI.Button(posRotButtons[3].Multiply(UISize), "-X"))
        {
            MoveSelectedObjects(new Vector3(-1f, 0f, 0f));
        }

        if (GUI.Button(posRotButtons[4].Multiply(UISize), "Zero"))
        {
            foreach (GameObject selected in Selection.gameObjects)
            {
                Vector3 currentPos = selected.transform.localPosition;
                selected.transform.localPosition = new Vector3(0f, currentPos.y, 0f);
            }
        }

        if (GUI.Button(posRotButtons[5].Multiply(UISize), "+X"))
        {
            MoveSelectedObjects(new Vector3(1f, 0f, 0f));
        }
        if (GUI.Button(posRotButtons[6].Multiply(UISize), "-Y"))
        {
            MoveSelectedObjects(new Vector3(0f, -1f, 0f));
        }
        if (GUI.Button(posRotButtons[7].Multiply(UISize), "-Z"))
        {
            MoveSelectedObjects(new Vector3(0f, 0f, -1f));
        }
        if (GUI.Button(posRotButtons[8].Multiply(UISize), "+Y"))
        {
            MoveSelectedObjects(new Vector3(0f, 1f, 0f));
        }

        // Tool Buttons
        Rect[] toolButtons = RectEx.RectGrid(new Rect(10f, 0.25f, 8f, 9f), 2, 4);

        if (GUI.Button(toolButtons[0].Multiply(UISize), "Rotate UV\nNOT SAFE!"))
        {
            RotateSelectedUVs();
        }

        if (GUI.Button(toolButtons[1].Multiply(UISize), "Primitive\nEditor"))
        {
            PrimitiveEditor.Init();
        }

        GUI.enabled = false;         // Disable unused buttons

        if (GUI.Button(toolButtons[2].Multiply(UISize), "----"))
        {
        }
        if (GUI.Button(toolButtons[3].Multiply(UISize), "----"))
        {
        }
        if (GUI.Button(toolButtons[4].Multiply(UISize), "----"))
        {
        }
        if (GUI.Button(toolButtons[5].Multiply(UISize), "----"))
        {
        }
        if (GUI.Button(toolButtons[6].Multiply(UISize), "----"))
        {
        }
        if (GUI.Button(toolButtons[7].Multiply(UISize), "----"))
        {
        }

        GUI.enabled = true;
    }