Beispiel #1
0
        protected override void Open()
        {
            IShape bombShape = ShapeFactory.CreateSprite(Cache <SurfacePolygons> .GetItem("rocket.png"), 2, 16, 3);

            dispose += DemoHelper.RegisterBombLaunching(DemoInfo, bombShape, 120);
            dispose += DemoHelper.RegisterMousePicking(DemoInfo);
            IShape shape = ShapeFactory.CreateColoredCircle(8, 15);

            DemoHelper.AddGrid(DemoInfo, shape, 40,
                               new BoundingRectangle(200, 200, 1100, 1100),
                               5, 5);



            Body b = DemoHelper.AddShape(DemoInfo, bombShape, 400, new ALVector2D(0, 0, 0));

            DemoHelper.RegisterBodyTracking(DemoInfo, b, Matrix2x3.FromRotationZ(-MathHelper.PiOver2));
            DemoHelper.RegisterBodyMovement(DemoInfo, b, new ALVector2D(50000, 50000, 0));
            DemoHelper.AddStarField(DemoInfo, 1000, new BoundingRectangle(-1000, -1000, 2300, 2300));
        }
Beispiel #2
0
        public void ShouldDeclineLoanApplication()
        {
            var applyPage =
                BrowserHost.Instance.NavigateToInitialPage <LoanApplicationController, LoanApplicationPage>(
                    x => x.Apply());

            var applicationDetails = new LoanApplication
            {
                FirstName    = "Gentry",
                LastName     = "Smith",
                Age          = 16,
                AnnualIncome = 20000
            };

            var declinePage = applyPage.SubmitApplication <DeclinedPage>(applicationDetails);

            Assert.That(declinePage.DeclinedMessage, Is.EqualTo("Sorry Gentry - We are unable to offer you a loan at this time."));

            DemoHelper.Wait(5000);
        }
Beispiel #3
0
            public override ColoredMesh GetMesh()
            {
                // Here we gonna generate mesh with duplicated triangles to avoid vertex color interpolation.
                Vector3F[] initialPositions = DemoHelper.GenerateSinPoints(Resolution);
                int[]      initialIndices   = GridHelper.GetStructuredTriangleListIndices(0, Resolution, Resolution, 1);

                var vertices = new List <Vector3F>();
                var normals  = new List <Vector3F>();
                var indices  = new List <int>();
                var colors   = new List <Vector3F>();

                int index = 0;

                void SubmitVertex(Vector3F position, Vector3F normal, Vector3F color)
                {
                    vertices.Add(position);
                    normals.Add(normal);
                    colors.Add(color);
                    indices.Add(index++);
                }

                int triangleCount = initialIndices.Length / 3;

                for (int i = 0; i < triangleCount; i++)
                {
                    Vector3F color = DemoHelper.GetRandomColor();
                    Vector3F
                        p0          = initialPositions[initialIndices[i * 3]],
                        p1          = initialPositions[initialIndices[i * 3 + 1]],
                        p2          = initialPositions[initialIndices[i * 3 + 2]];
                    Vector3F normal = NormalProcessor.GetNormal(p0, p1, p2);

                    SubmitVertex(p0, normal, color);
                    SubmitVertex(p1, normal, color);
                    SubmitVertex(p2, normal, color);
                }

                int[] indicesArray = indices.ToArray();
                return(new ColoredMesh(vertices.ToArray(), colors.ToArray(), normals.ToArray(),
                                       indicesArray, GridHelper.GetWireframeIndices(indicesArray)));
            }
        protected override void OnGLRender(object sender, EventArgs args)
        {
            _pcx.SmoothMode  = SmoothMode.Smooth;
            _pcx.StrokeColor = PixelFarm.Drawing.Color.Blue;
            _pcx.Clear(PixelFarm.Drawing.Color.White);
            _pcx.ClearColorBuffer();
            //-------------------------------
            if (!_isInit)
            {
                _glbmp  = DemoHelper.LoadTexture(RootDemoPath.Path + @"\leaves.jpg");
                _isInit = true;
            }
            if (_surface1.IsValid)
            {
                if (_frameBufferNeedUpdate)
                {
                    //------------------------------------------------------------------------------------
                    //framebuffer
                    _pcx.AttachToRenderSurface(_surface1);
                    //after make the frameBuffer current
                    //then all drawing command will apply to frameBuffer
                    //do draw to frame buffer here
                    _pcx.Clear(PixelFarm.Drawing.Color.Red);
                    _pcx.DrawImageWithConv3x3(_glbmp, Mat3x3ConvGen.emboss, 0, 0);
                    _pcx.AttachToRenderSurface(null);

                    //after release current, we move back to default frame buffer again***
                    _frameBufferNeedUpdate = false;
                }
                //_pcx.DrawFrameBuffer(_frameBuffer, 0, 0, true);
                _pcx.DrawImage(_surface1.GetGLBitmap(), 0, 0);
            }
            else
            {
                _pcx.Clear(PixelFarm.Drawing.Color.Blue);
            }
            //-------------------------------
            SwapBuffers();
        }
        protected override void OnReadyForInitGLShaderProgram()
        {
            //---------------------
            var atlasBuilder = new Typography.Rendering.SimpleFontAtlasBuilder();

            using (System.IO.FileStream fs = new System.IO.FileStream(RootDemoPath.Path + @"\a_total.xml", System.IO.FileMode.Open))
            {
                fontAtlas = atlasBuilder.LoadAtlasInfo(fs);
            }


            var actualImg = DemoHelper.LoadImage(RootDemoPath.Path + @"\a_total.png");

            //var bmpdata = totalImg.LockBits(new System.Drawing.Rectangle(0, 0, totalImg.Width, totalImg.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, totalImg.PixelFormat);
            //var buffer = new int[totalImg.Width * totalImg.Height];
            //System.Runtime.InteropServices.Marshal.Copy(bmpdata.Scan0, buffer, 0, buffer.Length);
            //totalImg.UnlockBits(bmpdata);
            var glyph = new Typography.Rendering.GlyphImage(totalImg.Width, totalImg.Height);

            glyph.SetImageBuffer(PixelFarm.Agg.ActualImage.CopyImgBuffer(actualImg), false);
            fontAtlas.TotalGlyph = glyph;
        }
Beispiel #6
0
        public void ShouldAcceptLoanApplication()
        {
            var applyPage =
                BrowserHost.Instance.NavigateToInitialPage <LoanApplicationController, LoanApplicationPage>(
                    x => x.Apply());

            var applicationDetails = new LoanApplication
            {
                FirstName    = "Gentry",
                LastName     = "Smith",
                Age          = 42,
                AnnualIncome = 999999999
            };

            var acceptPage = applyPage.SubmitApplication <AcceptedPage>(applicationDetails);

            var acceptMessageText = acceptPage.AcceptedMessage;

            Assert.That(acceptMessageText, Is.EqualTo("Congratulations Gentry - Your application was accepted!"));

            DemoHelper.Wait(5000);
        }
Beispiel #7
0
        protected override void Open()
        {
            dispose += DemoHelper.BasicDemoSetup(DemoInfo);
            //  dispose += DemoHelper.CreateTank(DemoInfo, new Vector2D(50, 0));

            Scene.Engine.AddLogic(new GravityField(new Vector2D(0, 1000), new Lifespan()));


            DemoHelper.AddFloor(DemoInfo, new ALVector2D(0, new Vector2D(700, 750)));

            IShape shape = ShapeFactory.CreateSprite(Cache <SurfacePolygons> .GetItem("block.png"), 3, 7, 4);

            DemoHelper.AddShape(DemoInfo, shape, 20, new ALVector2D(0, 300, 700));

            DemoHelper.AddGrid(
                DemoInfo, shape, 20,
                new BoundingRectangle(440, 450, 500, 730),
                1, 1);


            //  Body ball = DemoHelper.AddCircle(DemoInfo, 80, 20, 4000, new ALVector2D(0, 1028, 272));
        }
Beispiel #8
0
        protected override void Open()
        {
            dispose += DemoHelper.BasicDemoSetup(DemoInfo);

            Rectangle         rect1 = Viewport.Rectangle;
            BoundingRectangle rect  = new BoundingRectangle(rect1.Left, rect1.Top, rect1.Right, rect1.Bottom);

            rect.Min.X -= 75;
            rect.Min.Y -= 75;
            rect.Max.X += 75;
            rect.Max.Y += 75;
            DemoHelper.AddShell(DemoInfo, rect, 100, Scalar.PositiveInfinity).ForEach(delegate(Body b) { b.IgnoresGravity = true; });
            rect.Min.X += 110;
            rect.Min.Y += 110;
            rect.Max.X -= 110;
            rect.Max.Y -= 110;
            IShape shape = ShapeFactory.CreateColoredCircle(3, 7);

            DemoHelper.AddGrid(DemoInfo, shape, 40,
                               rect,
                               1, 1).ForEach(delegate(Body b) { b.State.Velocity.Linear = new Vector2D(DemoHelper.Rand.Next(-100, 100), DemoHelper.Rand.Next(-100, 100)); });
        }
Beispiel #9
0
        protected override void OnGLRender(object sender, EventArgs args)
        {
            _glsx.SmoothMode  = SmoothMode.Smooth;
            _glsx.StrokeColor = PixelFarm.Drawing.Color.Blue;
            _glsx.ClearColorBuffer();
            if (!resInit)
            {
                // msdf_bmp = LoadTexture(@"..\msdf_75.png");
                //msdf_bmp = LoadTexture(@"d:\\WImageTest\\a001_x1_66.png");
                msdf_bmp = DemoHelper.LoadTexture(totalImg);
                //msdf_bmp = LoadTexture(@"d:\\WImageTest\\a001_x1.png");
                //msdf_bmp = LoadTexture(@"d:\\WImageTest\\msdf_65.png");

                resInit = true;
            }

            painter.Clear(PixelFarm.Drawing.Color.White);
            //var f = painter.CurrentFont;

            //painter.DrawString("hello!", 0, 20);
            //canvas2d.DrawImageWithSubPixelRenderingMsdf(msdf_bmp, 200, 500, 15f);

            Typography.Rendering.TextureFontGlyphData glyphData;

            byte[] codepoint = System.Text.Encoding.UTF8.GetBytes("AB");
            fontAtlas.TryGetGlyphDataByCodePoint(codepoint[0], out glyphData);
            PixelFarm.Drawing.Rectangle r = ConvToRect(glyphData.Rect);
            //canvas2d.DrawSubImageWithMsdf(msdf_bmp, ref r, 100, 500);
            _glsx.DrawSubImageWithMsdf(msdf_bmp, ref r, 100, 500);

            fontAtlas.TryGetGlyphDataByCodePoint(codepoint[1], out glyphData);
            PixelFarm.Drawing.Rectangle r2 = ConvToRect(glyphData.Rect);
            _glsx.DrawSubImageWithMsdf(msdf_bmp, ref r2, 100 + r.Width - 10, 500);

            //full image
            _glsx.DrawImage(msdf_bmp, 100, 300);
            SwapBuffers();
        }
Beispiel #10
0
        protected override void OnGLRender(object sender, EventArgs args)
        {
            _glsx.SmoothMode  = SmoothMode.Smooth;
            _glsx.StrokeColor = PixelFarm.Drawing.Color.Blue;
            _glsx.Clear(PixelFarm.Drawing.Color.White);
            _glsx.ClearColorBuffer();
            //-------------------------------
            if (!isInit)
            {
                glbmp  = DemoHelper.LoadTexture(RootDemoPath.Path + @"\leaves.jpg");
                isInit = true;
            }
            if (frameBuffer.FrameBufferId > 0)
            {
                if (frameBufferNeedUpdate)
                {
                    //------------------------------------------------------------------------------------
                    //framebuffer
                    _glsx.AttachFrameBuffer(frameBuffer);
                    //after make the frameBuffer current
                    //then all drawing command will apply to frameBuffer
                    //do draw to frame buffer here
                    _glsx.Clear(PixelFarm.Drawing.Color.Red);
                    _glsx.DrawImageWithConv3x3(glbmp, Mat3x3ConvGen.emboss, 0, 300);
                    _glsx.DetachFrameBuffer();

                    //after release current, we move back to default frame buffer again***
                    frameBufferNeedUpdate = false;
                }
                _glsx.DrawFrameBuffer(frameBuffer, 15, 300);
            }
            else
            {
                _glsx.Clear(PixelFarm.Drawing.Color.Blue);
            }
            //-------------------------------
            SwapBuffers();
        }
        static List <string> Dump(string fileName)
        {
            var      result   = new List <string>();
            Assembly assembly = typeof(PersonGenerator).Assembly;
            var      file     = assembly.GetManifestResourceStream(DemoHelper.GetPath(assembly.GetName().Name + ".Data.", assembly) + fileName);

            if (file != null)
            {
                var reader = new XmlTextReader(file);
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Text)
                    {
                        string nodeValue = reader.Value;
                        if (!string.IsNullOrEmpty(nodeValue))
                        {
                            result.Add(reader.Value);
                        }
                    }
                }
            }
            return(result);
        }
        private void DrawerCode_OnOpened(object sender, RoutedEventArgs e)
        {
            var typeKey = ViewModelLocator.Instance.Main.DemoInfoCurrent.Key;
            var demoKey = ViewModelLocator.Instance.Main.DemoItemCurrent.TargetCtlName;

            if (Equals(_currentDemoKey, demoKey))
            {
                return;
            }
            _currentDemoKey = demoKey;

            if (ViewModelLocator.Instance.Main.SubContent is FrameworkElement demoCtl)
            {
                var xamlPath   = $"UserControl/{typeKey}/{demoCtl.GetType().Name}.xaml";
                var dc         = demoCtl.DataContext;
                var dcTypeName = dc.GetType().Name;
                var vmPath     = $"ViewModel/{dcTypeName}";

                EditorXaml.Text = DemoHelper.GetCode(xamlPath);
                EditorCs.Text   = DemoHelper.GetCode($"{xamlPath}.cs");
                EditorVm.Text   = DemoHelper.GetCode($"{vmPath}.cs");
            }
        }
Beispiel #13
0
        static int Main(string[] args)
        {
            Observer  observer;
            AstroTime time;

            DemoHelper.ParseArgs("culminate", args, out observer, out time);

            var bodies = new Body[]
            {
                Body.Sun, Body.Moon, Body.Mercury, Body.Venus, Body.Mars,
                Body.Jupiter, Body.Saturn, Body.Uranus, Body.Neptune, Body.Pluto
            };

            Console.WriteLine("search   : {0}", time);
            foreach (Body body in bodies)
            {
                HourAngleInfo evt = Astronomy.SearchHourAngle(body, observer, 0.0, time);
                Console.WriteLine("{0,-8} : {1}  altitude={2:##0.00}  azimuth={3:##0.00}",
                                  body, evt.time, evt.hor.altitude, evt.hor.azimuth);
            }

            return(0);
        }
Beispiel #14
0
        static int Main(string[] args)
        {
            AstroTime time;

            switch (args.Length)
            {
            case 0:
                time = new AstroTime(DateTime.Now);
                break;

            case 1:
                time = DemoHelper.ParseTime("lunar_eclipse", args[0]);
                break;

            default:
                Console.WriteLine("USAGE: lunar_eclipse [date]");
                return(1);
            }

            int count = 0;
            LunarEclipseInfo eclipse = Astronomy.SearchLunarEclipse(time);

            for (;;)
            {
                if (eclipse.kind != EclipseKind.Penumbral)
                {
                    PrintEclipse(eclipse);
                    if (++count == 10)
                    {
                        break;
                    }
                }
                eclipse = Astronomy.NextLunarEclipse(eclipse.peak);
            }

            return(0);
        }
Beispiel #15
0
        public override void Do(IDemoChartControl chartControl)
        {
            // Create check marker.
            var crossMarker = new CrossMarker
            {
                Name            = "Marker",
                IsLegendVisible = false
            };

            // Randomize points.
            Vector3F[] points = DemoHelper.GenerateRandomPoints(100, new Vector3F(0f, 0f, 0f), new Vector3F(5f, 5f, 0f));

            // Create series markers.
            var series = new Series
            {
                Reader      = new DefaultPositionMaskDataReader(points),
                Thickness   = 0,
                MarkerColor = Colors.DarkRed,
                MarkerStyle = MarkerStyle.Circle,
                MarkerSize  = 8,
                Name        = "Points"
            };

            // Create snap target.
            var snapTarget = new PointCollectionSnapTarget(points);

            // Regsiter event listener.
            chartControl.ActionController.RegisterHandler(1, eventListener = new ChartEventListener(crossMarker, snapTarget));

            // Setup chart view options.
            chartControl.ContextView.Camera2D.Projection = Projection2DTypes.XPosYPos;
            chartControl.ContextView.Mode2D = true;
            chartControl.ViewResetOptions.ResetOnDataChanged = false;

            // Setup chart data source.
            chartControl.DataSource = new RenderData[] { crossMarker, series };
        }
        public void CreateBooking()
        {
            int existingBookings = 0;
            var homePage         = new HomePage(_driverFixture.Driver);

            homePage.NavigateTo();
            existingBookings = homePage.GetTotalLatestBookings();
            DemoHelper.Pause();
            homePage.EnterfristName("Scott");
            DemoHelper.Pause();
            homePage.EnterLastName("Andrew");
            DemoHelper.Pause();
            homePage.EnterPrice("150");
            DemoHelper.Pause();
            homePage.ChooseDeposit(false);
            DemoHelper.Pause();
            homePage.EnterCheckInDate(DateTime.Now);
            DemoHelper.Pause();
            homePage.EnterCheckOutDate(DateTime.Now.AddDays(2));
            DemoHelper.Pause();
            homePage.ClickSave(existingBookings);
            DemoHelper.Pause(10000);
            Assert.AreEqual(homePage.GetTotalLatestBookings() - 1, existingBookings);
        }
Beispiel #17
0
        public override void Do(IDemoChartControl chartControl)
        {
            // We take the same data as for surfaces for demo purposes, in current case it contains redundant x, y values.
            Vector3F[] xyzPoints = DemoHelper.GenerateSinPoints(Resolution);

            // Extract only values from z array.
            float[] values = DemoHelper.ExtractZValues(xyzPoints);

            // Create geometry.
            var geometry = new RectTextureGeometry
            {
                Origin     = Vector3F.Zero,
                DirectionX = Vector3F.UnitX,
                DirectionY = Vector3F.UnitY,
                Size       = new Vector2F(1f, 1f)
            };

            var rasterData = new ValueRasterData
            {
                // Linear interpolation.
                InterpolationType = RasterDataInterpolationType.Linear,
                // Float data reader specification (values, data stride/width and value axis bounds).
                Reader = new FloatIntensityImage2DReader(values, Resolution, new OneAxisBounds(-1f, 1f)),
                // Set geometry.
                Geometry = geometry,
                // Set name.
                Name = "Surface"
            };

            // Setup view settings.
            chartControl.ContextView.Mode2D = true;
            chartControl.ContextView.Camera2D.Projection = Projection2DTypes.XPosYPos;

            // Set chart data source.
            chartControl.DataSource = rasterData;
        }
Beispiel #18
0
        protected override void Open()
        {
            dispose += DemoHelper.BasicDemoSetup(DemoInfo);


            Scene.Engine.AddLogic(new GravityField(new Vector2D(0, 1000), new Lifespan()));

            for (int x = 0; x < 400; x += 45)
            {
                DemoHelper.AddRectangle(DemoInfo, 80, 15, 90, new ALVector2D(0, x, 145));
            }

            DemoHelper.AddLine(DemoInfo, new Vector2D(-40, 200), new Vector2D(400, 200), 30, Scalar.PositiveInfinity).IgnoresGravity = true;

            DemoHelper.AddLine(DemoInfo, new Vector2D(400, 150), new Vector2D(430, 150), 30, Scalar.PositiveInfinity).IgnoresGravity = true;
            DemoHelper.AddLine(DemoInfo, new Vector2D(430, 150), new Vector2D(600, 200), 30, Scalar.PositiveInfinity).IgnoresGravity = true;
            DemoHelper.AddLine(DemoInfo, new Vector2D(600, 200), new Vector2D(700, 300), 30, Scalar.PositiveInfinity).IgnoresGravity = true;

            DemoHelper.AddLine(DemoInfo, new Vector2D(1200, 200), new Vector2D(800, 420), 30, Scalar.PositiveInfinity).IgnoresGravity = true;
            DemoHelper.AddLine(DemoInfo, new Vector2D(800, 420), new Vector2D(700, 470), 30, Scalar.PositiveInfinity).IgnoresGravity  = true;
            DemoHelper.AddLine(DemoInfo, new Vector2D(700, 470), new Vector2D(600, 486), 30, Scalar.PositiveInfinity).IgnoresGravity  = true;
            DemoHelper.AddLine(DemoInfo, new Vector2D(600, 486), new Vector2D(570, 486), 30, Scalar.PositiveInfinity).IgnoresGravity  = true;

            Scalar rest = DemoHelper.Coefficients.Restitution;

            DemoHelper.Coefficients.Restitution = 1;
            DemoHelper.AddCircle(DemoInfo, 20, 20, 300, new ALVector2D(0, 409, 115));


            for (int x = 160; x < 500; x += 42)
            {
                Body b = DemoHelper.AddCircle(DemoInfo, 20, 20, 300, new ALVector2D(0, x, 450));
                Scene.Engine.AddJoint(new FixedHingeJoint(b, b.State.Position.Linear - new Vector2D(0, 500), new Lifespan()));
            }
            DemoHelper.Coefficients.Restitution = rest;
        }
        public UwpMyRidesPage()
        {
            InitializeComponent();

            DemoHelper.CenterMapInDefaultLocation(Map);
        }
Beispiel #20
0
        protected override void Open()
        {
            Coefficients coefficients = DemoHelper.Coefficients;

            DemoHelper.Coefficients.Restitution = 0;


            Scene.Engine.AddLogic(new GravityField(new Vector2D(0, 1000), new Lifespan()));
            DemoHelper.AddFloor(DemoInfo, new ALVector2D(0, new Vector2D(700, 750)));

            int canJump = 0;


            IShape fighter = ShapeFactory.CreateSprite(Cache <SurfacePolygons> .GetItem("fighter.png"), 3, 16, 3);
            Body   body    = DemoHelper.AddShape(DemoInfo, fighter, 50, new ALVector2D(0, 500, 300));

            body.Mass.MomentOfInertia = Scalar.PositiveInfinity;

            Scalar desiredVelocity = 0;
            Scalar maxVelocity     = 150;

            body.Collided += delegate(object sender, CollisionEventArgs e)
            {
                canJump++;
                e.Contact.Ended += delegate(object sender2, EventArgs e2)
                {
                    canJump--;
                };
            };
            EventHandler <KeyboardEventArgs> keyDownHandler = delegate(object sender, KeyboardEventArgs e)
            {
                if (canJump > 0 && e.Key == Key.UpArrow)
                {
                    body.State.ForceAccumulator.Linear.Y -= 50 * 60000;
                }

                if (e.Key == Key.RightArrow)
                {
                    desiredVelocity += maxVelocity;
                }
                else if (e.Key == Key.LeftArrow)
                {
                    desiredVelocity -= maxVelocity;
                }
            };
            EventHandler <KeyboardEventArgs> keyUpHandler = delegate(object sender, KeyboardEventArgs e)
            {
                if (e.Key == Key.RightArrow)
                {
                    desiredVelocity -= maxVelocity;
                }
                else if (e.Key == Key.LeftArrow)
                {
                    desiredVelocity += maxVelocity;
                }
            };

            body.Updated += delegate(object sender, UpdatedEventArgs e)
            {
                if (canJump > 0)
                {
                    if (desiredVelocity < 0)
                    {
                        if (desiredVelocity < body.State.Velocity.Linear.X)
                        {
                            body.State.ForceAccumulator.Linear.X -= 50 * 6000;
                        }
                    }
                    if (desiredVelocity > 0)
                    {
                        if (desiredVelocity > body.State.Velocity.Linear.X)
                        {
                            body.State.ForceAccumulator.Linear.X += 50 * 6000;
                        }
                    }
                }
            };

            DemoHelper.AddRectangle(DemoInfo, 40, 300, 200, new ALVector2D(0, 200, 600));
            DemoHelper.AddRectangle(DemoInfo, 40, 300, 200, new ALVector2D(0, 400, 400));
            DemoHelper.AddRectangle(DemoInfo, 40, 40, 20, new ALVector2D(0, 100, 100));
            DemoHelper.AddRectangle(DemoInfo, 40, 40, 20, new ALVector2D(0, 200, 200));
            DemoHelper.AddRectangle(DemoInfo, 40, 40, 20, new ALVector2D(0, 300, 300));
            DemoHelper.AddRagDoll(DemoInfo, new Vector2D(700, 300));


            Events.KeyboardDown += keyDownHandler;
            Events.KeyboardUp   += keyUpHandler;
            dispose             += delegate()
            {
                Events.KeyboardDown -= keyDownHandler;
                Events.KeyboardUp   -= keyUpHandler;
            };
            DemoHelper.Coefficients = coefficients;
        }
        void loadSampleLayoutButton_Click(object sender, RoutedEventArgs e)
        {
            Assembly thisExe = typeof(Serialization).Assembly;

            string name1 = string.Format("views{0}.xml", (layoutSampleName.SelectedIndex + 1).ToString().ToLower());

            using (Stream resourceStream = AssemblyHelper.GetEmbeddedResourceStream(thisExe, DemoHelper.GetPath("Layouts/MVVMSerialization/", thisExe) + name1, true)) {
                serializationViewModel.Restore(resourceStream);
            }
            string name = string.Format("saved{0}.xml", layoutSampleName.SelectedItem.ToString().ToLower());

            using (Stream resourceStream = AssemblyHelper.GetEmbeddedResourceStream(thisExe, DemoHelper.GetPath("Layouts/MVVMSerialization/", thisExe) + name, true)) {
                dockManager.RestoreLayoutFromStream(resourceStream);
            }
        }
Beispiel #22
0
        void LoadPredefinedWorkspaces()
        {
            workspaces.Items.Clear();
            Assembly thisExe = typeof(IDEWorkspaces).Assembly;

            for (int i = 1; i <= 4; i++, workspaceNumber++)
            {
                string workspaceName = string.Format("workspace{0}", i);
                string fileName      = string.Format("{0}.xml", workspaceName);
                using (Stream resourceStream = AssemblyHelper.GetEmbeddedResourceStream(thisExe, DemoHelper.GetPath("Layouts/", thisExe) + fileName, true))
                    Manager.LoadWorkspace(workspaceName, resourceStream);
                workspaces.Items.Add(workspaceName);
            }
        }
Beispiel #23
0
        protected override void Open()
        {
            dispose += DemoHelper.BasicDemoSetup(DemoInfo);

            Scene.Engine.AddLogic(new GravityField(new Vector2D(0, 1000), new Lifespan()));

            SurfacePolygons surfacePolygons = Cache <SurfacePolygons> .GetItem("physicsplayGround.png");

            foreach (Vector2D[] vertexes in surfacePolygons.Polygons)
            {
                Vector2D[] processed = vertexes;
                for (int index = 1; index < 4; index++)
                {
                    processed = VertexHelper.Reduce(processed, index);
                }
                processed = VertexHelper.Subdivide(processed, 16);
                IShape shape = ShapeFactory.CreateColoredPolygon(processed, 10);
                DemoHelper.AddShape(DemoInfo, shape, Scalar.PositiveInfinity, new ALVector2D(0, surfacePolygons.Offset)).IgnoresGravity = true;
            }
            for (int x = 440; x < 480; x += 10)
            {
                for (int y = -2000; y < 0; y += 12)
                {
                    Body body = DemoHelper.AddCircle(DemoInfo, 5, 7, 3, new ALVector2D(0, x + DemoHelper.NextScalar(-400, 400), y));
                    body.Updated += delegate(object sender, UpdatedEventArgs e)
                    {
                        if (body.State.Position.Linear.Y > 900)
                        {
                            body.State.Position.Linear.Y = -100;
                        }
                    };
                }
            }
            for (int x = 490; x < 510; x += 10)
            {
                for (int y = -550; y < -500; y += 12)
                {
                    Body body = DemoHelper.AddRectangle(DemoInfo, 10, 20, 10, new ALVector2D(0, x + DemoHelper.NextScalar(-400, 400), y));
                    body.Updated += delegate(object sender, UpdatedEventArgs e)
                    {
                        if (body.State.Position.Linear.Y > 900)
                        {
                            body.State.Position.Linear.Y = -100;
                        }
                    };
                }
            }
        }
Beispiel #24
0
 static int Main(string[] args)
 {
     DemoHelper.ParseArgs("camera", args, out Observer observer, out AstroTime time);
     return(CameraImage(observer, time));
 }
Beispiel #25
0
        protected override void OnGLRender(object sender, EventArgs args)
        {
            _pcx.SmoothMode  = SmoothMode.Smooth;
            _pcx.StrokeColor = PixelFarm.Drawing.Color.Blue;
            _pcx.Clear(PixelFarm.Drawing.Color.White); //set clear color and clear all buffer
            _pcx.ClearColorBuffer();                   //test , clear only color buffer
            //-------------------------------
            if (!_isInit)
            {
                _glbmp  = DemoHelper.LoadTexture(RootDemoPath.Path + @"\logo-dark.jpg");
                _isInit = true;
            }

            PixelFarm.Drawing.RenderSurfaceOriginKind prevOrgKind = _pcx.OriginKind; //save
            switch (DrawSet)
            {
            default:
            case T107_1_DrawImageSet.Full:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImage(_glbmp, i, i);         //left,top (NOT x,y)
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImage(_glbmp, i, i);         //left,top (NOT x,y)
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.Half:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawImage(_glbmp, i, i, _glbmp.Width / 2, _glbmp.Height / 2);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImage(_glbmp, i, i, _glbmp.Width / 2, _glbmp.Height / 2);         //left,top (NOT x,y)
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.ToRect:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    //PixelFarm.Drawing.RectangleF srcRect = new PixelFarm.Drawing.RectangleF(i, i, _glbmp.Width, _glbmp.Height);
                    _pcx.DrawImage(_glbmp, i, i, _glbmp.Width / 2, _glbmp.Height / 2);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    //PixelFarm.Drawing.RectangleF srcRect = new PixelFarm.Drawing.RectangleF(i, i, _glbmp.Width, _glbmp.Height);
                    _pcx.DrawImage(_glbmp, i, i, _glbmp.Width / 2, _glbmp.Height / 2);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.ToQuad1:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;

                Quad2f quad = new Quad2f();
                quad.SetCornersFromRect(0, 0, _glbmp.Width / 2, _glbmp.Height / 2);        //half size

                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)

                    _pcx.DrawImageToQuad(_glbmp, quad);

                    quad.Offset(50, 50);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                quad.SetCornersFromRect(0, 0, _glbmp.Width / 2, _glbmp.Height / 2);        //half size
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImageToQuad(_glbmp, quad);
                    quad.Offset(50, 50);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.ToQuad2:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;

                float rotateDegree = 20;

                //float[] quad = new float[8];

                Quad2f quad = new Quad2f();

                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    quad.SetCornersFromRect(0, 0, _glbmp.Width, _glbmp.Height);

                    AffineMat aff = AffineMat.Iden();
                    aff.Translate(-_glbmp.Width / 2, -_glbmp.Height / 2);        //move to bitmap's center
                    aff.RotateDeg(rotateDegree);
                    aff.Translate(i + _glbmp.Width / 2, i + _glbmp.Height / 2);

                    quad.Transform(aff);

                    _pcx.DrawImageToQuad(_glbmp, quad);

                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;


                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    quad.SetCornersFromRect(0, 0, _glbmp.Width, -_glbmp.Height);

                    AffineMat aff = AffineMat.Iden();
                    aff.Translate(-_glbmp.Width / 2, -_glbmp.Height / 2);        //move to bitmap's center
                    aff.RotateDeg(rotateDegree);
                    aff.Translate(i + _glbmp.Width / 2, i + _glbmp.Height / 2);

                    quad.Transform(aff);

                    _pcx.DrawImageToQuad(_glbmp, quad);

                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.ToQuad3:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;

                float rotateDegree = 60;

                for (int i = 0; i < 400;)
                {
                    AffineMat aff = AffineMat.Iden();
                    aff.Translate(-_glbmp.Width / 2, -_glbmp.Height / 2);        //move to bitmap's center
                    aff.RotateDeg(rotateDegree);
                    aff.Translate(i + _glbmp.Width / 2, i + _glbmp.Height / 2);

                    _pcx.DrawImageToQuad(_glbmp, aff);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    AffineMat aff = AffineMat.Iden();
                    aff.Translate(-_glbmp.Width / 2, -_glbmp.Height / 2);        //move to bitmap's center
                    aff.RotateDeg(rotateDegree);
                    aff.Translate(i + _glbmp.Width / 2, i + _glbmp.Height / 2);

                    _pcx.DrawImageToQuad(_glbmp, aff);


                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImages0:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                PixelFarm.Drawing.Rectangle srcRect = new PixelFarm.Drawing.Rectangle(0, 0, _glbmp.Width, _glbmp.Height);
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImages1:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                PixelFarm.Drawing.Rectangle srcRect = new PixelFarm.Drawing.Rectangle(0, 0, _glbmp.Width / 2, _glbmp.Height / 2);

                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)

                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImages2:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                PixelFarm.Drawing.Rectangle srcRect = new PixelFarm.Drawing.Rectangle(20, 20, 50, 50);

                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)

                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImagesWithScale:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                PixelFarm.Drawing.Rectangle srcRect = new PixelFarm.Drawing.Rectangle(20, 20, 50, 50);

                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i, 2f);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawSubImage(_glbmp, srcRect, i, i, 2f);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImageWithBlurX:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawImageWithBlurX(_glbmp, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImageWithBlurX(_glbmp, i, i);
                    i += 50;
                }
            }
            break;

            case T107_1_DrawImageSet.SubImageWithBlurY:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawImageWithBlurY(_glbmp, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImageWithBlurY(_glbmp, i, i);
                    i += 50;
                }

                //
            }
            break;

            case T107_1_DrawImageSet.DrawWithConv3x3:
            {
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftTop;
                for (int i = 0; i < 400;)
                {
                    //left,top (NOT x,y)
                    _pcx.DrawImageWithConv3x3(_glbmp, Mat3x3ConvGen.sobelHorizontal, i, i);
                    i += 50;
                }
                //
                _pcx.OriginKind = PixelFarm.Drawing.RenderSurfaceOriginKind.LeftBottom;
                for (int i = 0; i < 400;)
                {
                    _pcx.DrawImageWithConv3x3(_glbmp, Mat3x3ConvGen.emboss, i, i);
                    i += 50;
                }
            }
            break;
            }
            _pcx.OriginKind = prevOrgKind;//restore
        }
        private void DrawerCode_OnOpened(object sender, RoutedEventArgs e)
        {
            if (!_drawerCodeUsed)
            {
                var textEditorCustomStyle = ResourceHelper.GetResource <Style>("TextEditorCustom");
                _textEditor = new Dictionary <string, TextEditor>
                {
                    ["XAML"] = new TextEditor
                    {
                        Style = textEditorCustomStyle,
                        SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("XML")
                    },
                    ["C#"] = new TextEditor
                    {
                        Style = textEditorCustomStyle,
                        SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("C#")
                    },
                    ["VM"] = new TextEditor
                    {
                        Style = textEditorCustomStyle,
                        SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("C#")
                    }
                };
                BorderCode.Child = new TabControl
                {
                    Style = ResourceHelper.GetResource <Style>("TabControlInLine"),
                    Items =
                    {
                        new TabItem
                        {
                            Header  = "XAML",
                            Content = _textEditor["XAML"]
                        },
                        new TabItem
                        {
                            Header  = "C#",
                            Content = _textEditor["C#"]
                        },
                        new TabItem
                        {
                            Header  = "VM",
                            Content = _textEditor["VM"]
                        }
                    }
                };

                _drawerCodeUsed = true;
            }

            var typeKey = ViewModelLocator.Instance.Main.DemoInfoCurrent.Key;
            var demoKey = ViewModelLocator.Instance.Main.DemoItemCurrent.TargetCtlName;

            if (Equals(_currentDemoKey, demoKey))
            {
                return;
            }
            _currentDemoKey = demoKey;

            if (ViewModelLocator.Instance.Main.SubContent is FrameworkElement demoCtl)
            {
                var demoCtlTypeName = demoCtl.GetType().Name;
                var xamlPath        = $"UserControl/{typeKey}/{demoCtlTypeName}.xaml";
                var dc         = demoCtl.DataContext;
                var dcTypeName = dc.GetType().Name;
                var vmPath     = !Equals(dcTypeName, demoCtlTypeName)
                    ? $"ViewModel/{dcTypeName}"
                    : xamlPath;

                _textEditor["XAML"].Text = DemoHelper.GetCode(xamlPath);
                _textEditor["C#"].Text   = DemoHelper.GetCode($"{xamlPath}.cs");
                _textEditor["VM"].Text   = DemoHelper.GetCode($"{vmPath}.cs");
            }
        }
        protected override void OnReadyForInitGLShaderProgram()
        {
            //--------------------------------------------------------------------------
            string vs = @"
                attribute vec4 a_position;
                attribute vec2 a_texCoord;
                uniform mat4 u_mvpMatrix; 
                varying vec2 v_texCoord;
                void main()
                {
                    gl_Position = u_mvpMatrix* a_position;
                    v_texCoord =  a_texCoord;
                 }	 
                ";
            //in fs, angle on windows
            //we need to switch color component
            //because we store value in memory as BGRA
            //and gl expect input in RGBA
            string fs = @"
                      precision mediump float;
                      varying vec2 v_texCoord;
                      uniform sampler2D s_texture;
                      void main()
                      {
                         vec4 c = texture2D(s_texture, v_texCoord);                            
                         gl_FragColor =  vec4(c[2],c[1],c[0],c[3]);
                      }
                ";

            mProgram = ES2Utils.CompileProgram(vs, fs);
            if (mProgram == 0)
            {
                //return false
            }

            // Get the attribute locations
            mPositionLoc = GL.GetAttribLocation(mProgram, "a_position");
            mTexCoordLoc = GL.GetAttribLocation(mProgram, "a_texCoord");
            u_matrix     = GL.GetUniformLocation(mProgram, "u_mvpMatrix");
            // Get the sampler location
            mSamplerLoc = GL.GetUniformLocation(mProgram, "s_texture");
            //// Load the texture

            PixelFarm.Agg.ActualImage bmp = DemoHelper.LoadImage(RootDemoPath.Path + @"\test001.png");
            int bmpW = bmp.Width;
            int bmpH = bmp.Height;

            mTexture = LoadTexture(bmp);
            GL.ClearColor(0, 0, 0, 0);
            //================================================================================

            GL.Enable(EnableCap.Blend);
            GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
            GL.ClearColor(1, 1, 1, 1);
            //setup viewport size
            int max = Math.Max(this.Width, this.Height);

            orthoViewMat = MyMat4.ortho(0, max, 0, max, 0, 1).data;
            //square viewport
            GL.Viewport(0, 0, max, max);
            imgVertices = new float[]
            {
                0, bmpH, 0,
                0, 0,
                //---------------------
                0, 0, 0,
                0, 1,
                //---------------------
                bmpW, bmpH, 0,
                1, 0,
                //---------------------
                bmpW, 0, 0,
                1, 1
            };
        }
Beispiel #28
0
 public static string GetCodeFileName(String moduleName)
 {
     return(String.Format("{0}.xaml{1}", moduleName, DemoHelper.GetCodeSuffix(typeof(CodeFileLoadHelper).Assembly)));
 }
Beispiel #29
0
 public void Cleanup()
 {
     DemoHelper.Reset();
 }
Beispiel #30
0
        public override void Do(IDemoChartControl chartControl)
        {
            // Generate initial points.
            initialPoints = DemoHelper.GenerateRandomPoints(PointCount, new Vector3F(0f, 0f, 0f), new Vector3F(5f, 5f, 0f));
            currentPoints = new Vector3F[initialPoints.Length];
            Array.Copy(initialPoints, currentPoints, currentPoints.Length);

            // Create check marker.
            var crossMarker = new CrossMarker
            {
                Name            = "Marker",
                IsLegendVisible = false
            };

            // Create series dynamic data reader.
            dataReader = new DynamicPositionMaskDataReader(currentPoints.Length);
            dataReader.UpdatePositions(currentPoints);

            // Create series markers.
            var series = new Series
            {
                Reader      = dataReader,
                Thickness   = 0,
                MarkerColor = Colors.DarkRed,
                MarkerStyle = MarkerStyle.Circle,
                MarkerSize  = 8,
                Name        = "Points"
            };

            // Create our snap target.
            snapTarget = new MySnapTarget {
                Points = currentPoints
            };

            // Regsiter event listener.
            chartControl.ActionController.RegisterHandler(1, eventListener = new ChartEventListener(crossMarker, snapTarget));

            // Setup chart view options.
            chartControl.ContextView.Camera2D.Projection = Projection2DTypes.XPosYPos;
            chartControl.ContextView.Mode2D = true;
            chartControl.ViewResetOptions.ResetOnDataChanged = false;

            // Setup chart data source.
            chartControl.DataSource = new RenderData[] { crossMarker, series };

            // Start animation.
            animationHelper.Start(
                argument =>
            {
                for (int i = 0; i < currentPoints.Length; i++)
                {
                    float currentAngle = argument;
                    currentPoints[i]   = initialPoints[i] +
                                         AnimationRadius * new Vector3F((float)Math.Cos(currentAngle), (float)Math.Sin(currentAngle), 0);
                }
                return(argument);
            },
                argument =>
            {
                dataReader.UpdatePositions(currentPoints);
                snapTarget.Points = currentPoints;
            }, 0f, 0.025f, 16);
        }