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)); }
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); }
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; }
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); }
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)); }
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)); }); }
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(); }
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"); } }
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); }
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); }
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); }
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; }
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); }
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); } }
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); } }
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; } }; } } }
static int Main(string[] args) { DemoHelper.ParseArgs("camera", args, out Observer observer, out AstroTime time); return(CameraImage(observer, time)); }
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 }; }
public static string GetCodeFileName(String moduleName) { return(String.Format("{0}.xaml{1}", moduleName, DemoHelper.GetCodeSuffix(typeof(CodeFileLoadHelper).Assembly))); }
public void Cleanup() { DemoHelper.Reset(); }
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); }