public override void Do(IDemoChartControl chartControl) { // Load bitmap image. var colorTextureSource = new BitmapImage(new Uri(@"pack://*****:*****@"pack://application:,,,/Demo.Features;component/Resources/bump01.bmp")); float ratio = (float)colorTextureSource.PixelHeight / colorTextureSource.PixelWidth; // Create default reader for Wpf bitmap sources. var reader = new BitmapSourceRasterImage2DReader(colorTextureSource); // Create bump reader. var bumpReader = new BitmapSourceRasterImage2DReader(bumpTextureSource); // Create geometry for both raster data-s. var geometry = new RectTextureGeometry { Origin = Vector3F.Zero, DirectionX = Vector3F.UnitX, DirectionY = Vector3F.UnitY, Size = new Vector2F(1f, ratio) }; // Create non-bump raster data object. var rasterData = new RasterData { // Set image interpolation type. InterpolationType = RasterDataInterpolationType.Linear, // Set image reader. Reader = reader, // Set name. Name = "Default", // Set geometry Geometry = geometry }; // Create bump render data object. var bumpRasterData = new RasterData { // Set image interpolation type. InterpolationType = RasterDataInterpolationType.Linear, // Set image reader. Reader = reader, // Set bump image reader. BumpReader = bumpReader, // Set name. Name = "Bump", // Specify some material custom settings. Material = new RenderMaterial(0.25f, 0.6f, 0.6f, 0f, 0f), // Set geometry Geometry = geometry }; // Setup bump raster data offset matrix. bumpRasterData.Transform = Matrix4F.Translation(1.25f, 0, 0); // Setup chart data source. chartControl.DataSource = new RenderData[] { rasterData, bumpRasterData }; }
public override void Do(IDemoChartControl chartControl) { // Load bitmap image. var bitmapSource = new BitmapImage(new Uri(@"pack://application:,,,/Demo.Features;component/Resources/Atomicus.jpg")); float ratio = (float)bitmapSource.PixelHeight / bitmapSource.PixelWidth; // Create default reader for Wpf bitmap sources. var reader = new BitmapSourceRasterImage2DReader(bitmapSource); // Create geometry. var geometry = new RectTextureGeometry { Origin = Vector3F.Zero, DirectionX = Vector3F.UnitX, DirectionY = Vector3F.UnitY, Size = new Vector2F(1f, ratio) }; // Create raster data object. var rasterData = new RasterData { // Set image interpolation type. InterpolationType = RasterDataInterpolationType.Linear, // Set image reader. Reader = reader, // Set name. Name = "Image", // Set geometry. Geometry = geometry }; // Setup some chart view settings. chartControl.ContextView.Mode2D = true; chartControl.ContextView.Camera2D.Projection = Projection2DTypes.XPosYPos; // Setup chart data source. chartControl.DataSource = rasterData; }
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; }