private void Update() { if (ProfileEditorService.SelectedProfileElement is Layer layer) { if (layer.LayerShape != null) { ShapeSkRect = _layerEditorService.GetShapeRenderRect(layer.LayerShape).ToSKRect(); AnchorSkPoint = layer.LayerShape.GetUnscaledAnchor(); Execute.PostToUIThread(() => LayerTransformChildren = _layerEditorService.GetLayerTransformGroup(layer).Children); } } }
private void CreateShapeGeometry() { if (Layer.LayerShape == null || !Layer.Leds.Any()) { ShapeGeometry = Geometry.Empty; return; } Execute.PostToUIThread(() => { var rect = _layerEditorService.GetShapeRenderRect(Layer.LayerShape); var shapeGeometry = Geometry.Empty; switch (Layer.LayerShape) { case Ellipse _: shapeGeometry = new EllipseGeometry(rect); break; case Fill _: shapeGeometry = LayerGeometry; break; case Polygon _: // TODO shapeGeometry = new RectangleGeometry(rect); break; case Rectangle _: shapeGeometry = new RectangleGeometry(rect); break; } shapeGeometry.Transform = _layerEditorService.GetLayerTransformGroup(Layer); shapeGeometry.Freeze(); ShapeGeometry = shapeGeometry; }); }