コード例 #1
0
ファイル: ObjectSelector.cs プロジェクト: JRChow/ar-for-uav
    /// <summary>
    /// Record the new selection region & create pop-up menu.
    /// </summary>
    private void EndDrawing()
    {
        // If the shape drawn is not valid, forget about it.
        if (!IsValidShape())
        {
            _userDrawnShapePoints.Clear();
            return;
        }

        // Generate hull using points drawn by the user.
        var hullLines = HullGenerator.Compute(_userDrawnShapePoints, Concavity, ScaleFactor);

        _userDrawnHullVertices = HullGenerator.CastLineListToPoints(hullLines);
        _userDrawnHullLines    = HullGenerator.CastLineListToVecArrays(hullLines);

        // Stop showing the line drawn by the user.
        _userDrawnShapePoints.Clear();

        // If there's no object selected, create one.
        if (_numObjects == 0)
        {
            SelectionButtonClicked(0);
        }
        else      // If there are already objects, display the pop-up menu and let the user choose.
        {
            Assert.IsTrue(_numObjects > 0);
            CreatePopUpMenu();
        }
    }
コード例 #2
0
ファイル: Program.cs プロジェクト: DmitryMI/TileEngineSfml
        static void Main(string[] args)
        {
            int    width  = 640;
            int    height = 380;
            string image  = "Images\\MultipleFracture.png";

            VideoMode    videoMode    = new VideoMode((uint)width, (uint)height);
            RenderWindow renderWindow = new RenderWindow(videoMode, "Hull generator test");

            GameResources resources = new GameResources("C:\\Users\\Dmitry\\Documents\\GitHub\\TileEngineSfml\\TileEngineSfmlCs\\TileEngineSfmlMapEditor\\Resources");

            GameResources.Instance = resources;
            ResourceEntry entry = resources.GetEntry(image);

            Stream fs = resources.CopyStream(entry);

            Texture texture = new Texture(fs);
            Sprite  sprite  = new Sprite(texture);

            fs.Close();
            fs.Dispose();

            Icon icon = new Icon(image);

            Debug.WriteLine("Generating hulls...");

            List <Polygon> hulls = HullGenerator.GetConvexHulls(icon);

            Debug.WriteLine("Rendering loop starts");

            View view = renderWindow.GetView();

            view.Center = new Vector2f(-8, 0);
            view.Size   = new Vector2f(128, (uint)(128.0f * height / width));
            renderWindow.SetView(view);

            while (renderWindow.IsOpen)
            {
                renderWindow.DispatchEvents();
                renderWindow.Clear();
                renderWindow.Draw(sprite);

                foreach (var polygon in hulls)
                {
                    DrawPolygon(renderWindow, polygon);
                }

                renderWindow.Display();
            }
        }