private void RenderKaleidoscope(SettingsModel settings) { var kaleidoscope = _kaleidoscopes.Get(settings.SelectedKaleidoscopeType.Type); var imageUri = new Uri(settings.ImagePath, UriKind.Absolute); var rootNode = kaleidoscope.Generate(settings.GeometryWidth, imageUri, ActualWidth, ActualHeight); var model = new ModelVisual3D(); model.Content = rootNode.Model3D; Children.Clear(); Children.Add(model); var light = new ModelVisual3D(); light.Content = _light; Children.Add(light); Console.WriteLine("done"); }
private void RenderKaleidoscope(SettingsModel settings) { var kaleidoscope = _kaleidoscopes.Get(settings.SelectedKaleidoscopeType.Type); var imageUri = new Uri(settings.ImagePath, UriKind.Absolute); var rootNode = kaleidoscope.Generate(settings.GeometryWidth, imageUri, ActualWidth, ActualHeight); var drawingFromCenter = new DrawingGroup(); drawingFromCenter.Transform = new TranslateTransform(ActualWidth / 2, ActualHeight / 2); drawingFromCenter.Children.Add(rootNode.Drawing); RemoveVisualChild(_drawingVisual); _drawingVisual = new DrawingVisual(); using(var drawingContext = _drawingVisual.RenderOpen()) { // clear brackgroud var background = new RectangleGeometry(new Rect(new Point(0, 0), new Size(ActualWidth, ActualHeight))); drawingContext.DrawGeometry(new SolidColorBrush(Colors.White), null, background); // render kaleidoscope drawingContext.DrawDrawing(drawingFromCenter); } AddVisualChild(_drawingVisual); }
public void Merge(SettingsModel toMerge) { PropertyInfo[] properties = GetType().GetProperties(); foreach (var property in properties) { if (property.CanRead && property.CanWrite) { property.SetValue(this, property.GetValue(toMerge)); } } }