Equbuxu 3 years ago
parent
commit
fdba93a87e
31 changed files with 101 additions and 80 deletions
  1. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/LayerImageChunks_ChangeInfo.cs
  2. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/MaskChunks_ChangeInfo.cs
  3. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/Selection_ChangeInfo.cs
  4. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberBlendMode_ChangeInfo.cs
  5. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberIsVisible_ChangeInfo.cs
  6. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberMask_ChangeInfo.cs
  7. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberName_ChangeInfo.cs
  8. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberOpacity_ChangeInfo.cs
  9. 5 0
      src/PixiEditor.ChangeableDocument/ChangeInfos/Root/Size_ChangeInfo.cs
  10. 0 5
      src/PixiEditor.ChangeableDocument/ChangeInfos/Size_ChangeInfo.cs
  11. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/CreateStructureMember_ChangeInfo.cs
  12. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/DeleteStructureMember_ChangeInfo.cs
  13. 1 1
      src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/MoveStructureMember_ChangeInfo.cs
  14. 1 1
      src/PixiEditor.ChangeableDocument/Changes/Change.cs
  15. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Drawing/ClearSelection_Change.cs
  16. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Drawing/CombineStructureMembersOnto_Change.cs
  17. 22 63
      src/PixiEditor.ChangeableDocument/Changes/Drawing/DrawRectangle_UpdateableChange.cs
  18. 42 0
      src/PixiEditor.ChangeableDocument/Changes/Drawing/DrawingChangeHelper.cs
  19. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Drawing/SelectRectangle_UpdateableChange.cs
  20. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/CreateStructureMemberMask_Change.cs
  21. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/DeleteStructureMemberMask_Change.cs
  22. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberBlendMode_Change.cs
  23. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberIsVisible_Change.cs
  24. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberName_Change.cs
  25. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberOpacity_UpdateableChange.cs
  26. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Root/ResizeCanvas_Change.cs
  27. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Structure/CreateStructureMember_Change.cs
  28. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Structure/DeleteStructureMember_Change.cs
  29. 1 0
      src/PixiEditor.ChangeableDocument/Changes/Structure/MoveStructureMember_Change.cs
  30. 3 0
      src/PixiEditorPrototype/Models/DocumentUpdater.cs
  31. 4 0
      src/PixiEditorPrototype/Models/Rendering/WriteableBitmapUpdater.cs

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/LayerImageChunks_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/LayerImageChunks_ChangeInfo.cs

@@ -1,6 +1,6 @@
 using ChunkyImageLib.DataHolders;
 
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 
 public record class LayerImageChunks_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/MaskChunks_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/MaskChunks_ChangeInfo.cs

@@ -1,6 +1,6 @@
 using ChunkyImageLib.DataHolders;
 
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 
 public record class MaskChunks_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/Selection_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Drawing/Selection_ChangeInfo.cs

@@ -1,6 +1,6 @@
 using ChunkyImageLib.DataHolders;
 
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 
 public record class Selection_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/StructureMemberBlendMode_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberBlendMode_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 public record class StructureMemberBlendMode_ChangeInfo : IChangeInfo
 {
     public Guid GuidValue { get; init; }

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/StructureMemberIsVisible_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberIsVisible_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 public record class StructureMemberIsVisible_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/StructureMemberMask_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberMask_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 public record class StructureMemberMask_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/StructureMemberName_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberName_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 public record class StructureMemberName_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/StructureMemberOpacity_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Properties/StructureMemberOpacity_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 public record class StructureMemberOpacity_ChangeInfo : IChangeInfo
 {

+ 5 - 0
src/PixiEditor.ChangeableDocument/ChangeInfos/Root/Size_ChangeInfo.cs

@@ -0,0 +1,5 @@
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Root;
+
+public record class Size_ChangeInfo : IChangeInfo
+{
+}

+ 0 - 5
src/PixiEditor.ChangeableDocument/ChangeInfos/Size_ChangeInfo.cs

@@ -1,5 +0,0 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
-
-public record class Size_ChangeInfo : IChangeInfo
-{
-}

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/CreateStructureMember_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/CreateStructureMember_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 
 public record class CreateStructureMember_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/DeleteStructureMember_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/DeleteStructureMember_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 
 public record class DeleteStructureMember_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/ChangeInfos/MoveStructureMember_ChangeInfo.cs → src/PixiEditor.ChangeableDocument/ChangeInfos/Structure/MoveStructureMember_ChangeInfo.cs

@@ -1,4 +1,4 @@
-namespace PixiEditor.ChangeableDocument.ChangeInfos;
+namespace PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 
 public record class MoveStructureMember_ChangeInfo : IChangeInfo
 {

+ 1 - 1
src/PixiEditor.ChangeableDocument/Changes/Change.cs

@@ -6,7 +6,7 @@ namespace PixiEditor.ChangeableDocument.Changes;
 internal abstract class Change : IDisposable
 {
     public virtual bool IsMergeableWith(Change other) => false;
-    public abstract void Initialize(Document target);
+    public virtual void Initialize(Document target) { }
     public abstract IChangeInfo? Apply(Document target, out bool ignoreInUndo);
     public abstract IChangeInfo? Revert(Document target);
     public virtual void Dispose() { }

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Drawing/ClearSelection_Change.cs

@@ -2,6 +2,7 @@
 using ChunkyImageLib.DataHolders;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 
 namespace PixiEditor.ChangeableDocument.Changes.Drawing;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Drawing/CombineStructureMembersOnto_Change.cs

@@ -2,6 +2,7 @@
 using ChunkyImageLib.DataHolders;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 using PixiEditor.ChangeableDocument.Rendering;
 
 namespace PixiEditor.ChangeableDocument.Changes.Drawing;

+ 22 - 63
src/PixiEditor.ChangeableDocument/Changes/Drawing/DrawRectangle_UpdateableChange.cs

@@ -18,94 +18,53 @@ internal class DrawRectangle_UpdateableChange : UpdateableChange
         this.drawOnMask = drawOnMask;
     }
 
-    public override void Initialize(Document target) { }
-
     public void Update(ShapeData updatedRectangle)
     {
         rect = updatedRectangle;
     }
 
-    private ChunkyImage GetTargetImage(Document target)
-    {
-        var member = target.FindMemberOrThrow(memberGuid);
-        if (drawOnMask)
-        {
-            if (member.Mask is null)
-                throw new InvalidOperationException("Trying to draw on a mask that doesn't exist");
-            return member.Mask;
-        }
-        else if (member is Folder)
-        {
-            throw new InvalidOperationException("Trying to draw on a folder");
-        }
-        return ((Layer)member).LayerImage;
-    }
-
-    public override IChangeInfo? ApplyTemporarily(Document target)
+    private HashSet<Vector2i> UpdateRectangle(Document target, ChunkyImage targetImage)
     {
-        ChunkyImage targetImage = GetTargetImage(target);
-
-        var oldChunks = targetImage.FindAffectedChunks();
+        var oldAffectedChunks = targetImage.FindAffectedChunks();
         targetImage.CancelChanges();
+
         if (!target.Selection.IsEmptyAndInactive)
             targetImage.ApplyRasterClip(target.Selection.SelectionImage);
+
         targetImage.DrawRectangle(rect);
-        var newChunks = targetImage.FindAffectedChunks();
-        newChunks.UnionWith(oldChunks);
 
-        return drawOnMask switch
-        {
-            false => new LayerImageChunks_ChangeInfo()
-            {
-                Chunks = newChunks,
-                LayerGuid = memberGuid
-            },
-            true => new MaskChunks_ChangeInfo()
-            {
-                Chunks = newChunks,
-                MemberGuid = memberGuid
-            },
-        };
+        var affectedChunks = targetImage.FindAffectedChunks();
+        affectedChunks.UnionWith(oldAffectedChunks);
+
+        return affectedChunks;
     }
 
-    public override IChangeInfo? Apply(Document target, out bool ignoreInUndo)
+    public override IChangeInfo? ApplyTemporarily(Document target)
     {
-        ChunkyImage targetImage = GetTargetImage(target);
-        var changes = ApplyTemporarily(target);
-
-        var changedChunks = changes! switch
-        {
-            LayerImageChunks_ChangeInfo info => info.Chunks,
-            MaskChunks_ChangeInfo info => info.Chunks,
-            _ => throw new InvalidOperationException("Unknown chunk type"),
-        };
+        ChunkyImage targetImage = DrawingChangeHelper.GetTargetImage(target, memberGuid, drawOnMask);
+        var chunks = UpdateRectangle(target, targetImage);
+        return DrawingChangeHelper.CreateChunkChangeInfo(memberGuid, chunks, drawOnMask);
+    }
 
-        storedChunks = new CommittedChunkStorage(targetImage, changedChunks!);
+    public override IChangeInfo? Apply(Document target, out bool ignoreInUndo)
+    {
+        ChunkyImage targetImage = DrawingChangeHelper.GetTargetImage(target, memberGuid, drawOnMask);
+        var affectedChunks = UpdateRectangle(target, targetImage);
+        storedChunks = new CommittedChunkStorage(targetImage, affectedChunks!);
         targetImage.CommitChanges();
 
         ignoreInUndo = false;
-        return changes;
+        return DrawingChangeHelper.CreateChunkChangeInfo(memberGuid, affectedChunks, drawOnMask);
     }
 
     public override IChangeInfo? Revert(Document target)
     {
-        ChunkyImage targetImage = GetTargetImage(target);
+        ChunkyImage targetImage = DrawingChangeHelper.GetTargetImage(target, memberGuid, drawOnMask);
         storedChunks!.ApplyChunksToImage(targetImage);
         storedChunks.Dispose();
         storedChunks = null;
-        IChangeInfo changes = drawOnMask switch
-        {
-            false => new LayerImageChunks_ChangeInfo()
-            {
-                Chunks = targetImage.FindAffectedChunks(),
-                LayerGuid = memberGuid,
-            },
-            true => new MaskChunks_ChangeInfo()
-            {
-                Chunks = targetImage.FindAffectedChunks(),
-                MemberGuid = memberGuid,
-            },
-        };
+
+        IChangeInfo changes = DrawingChangeHelper.CreateChunkChangeInfo(memberGuid, targetImage.FindAffectedChunks(), drawOnMask);
         targetImage.CommitChanges();
         return changes;
     }

+ 42 - 0
src/PixiEditor.ChangeableDocument/Changes/Drawing/DrawingChangeHelper.cs

@@ -0,0 +1,42 @@
+using ChunkyImageLib;
+using ChunkyImageLib.DataHolders;
+using PixiEditor.ChangeableDocument.Changeables;
+using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
+
+namespace PixiEditor.ChangeableDocument.Changes.Drawing;
+internal static class DrawingChangeHelper
+{
+    public static ChunkyImage GetTargetImage(Document target, Guid memberGuid, bool drawOnMask)
+    {
+        var member = target.FindMemberOrThrow(memberGuid);
+        if (drawOnMask)
+        {
+            if (member.Mask is null)
+                throw new InvalidOperationException("Trying to draw on a mask that doesn't exist");
+            return member.Mask;
+        }
+        else if (member is Folder)
+        {
+            throw new InvalidOperationException("Trying to draw on a folder");
+        }
+        return ((Layer)member).LayerImage;
+    }
+
+    public static IChangeInfo CreateChunkChangeInfo(Guid memberGuid, HashSet<Vector2i> affectedChunks, bool drawOnMask)
+    {
+        return drawOnMask switch
+        {
+            false => new LayerImageChunks_ChangeInfo()
+            {
+                Chunks = affectedChunks,
+                LayerGuid = memberGuid
+            },
+            true => new MaskChunks_ChangeInfo()
+            {
+                Chunks = affectedChunks,
+                MemberGuid = memberGuid
+            },
+        };
+    }
+}

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Drawing/SelectRectangle_UpdateableChange.cs

@@ -2,6 +2,7 @@
 using ChunkyImageLib.DataHolders;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
 using SkiaSharp;
 
 namespace PixiEditor.ChangeableDocument.Changes.Drawing;

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/CreateStructureMemberMask_Change.cs

@@ -1,6 +1,7 @@
 using ChunkyImageLib;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/DeleteStructureMemberMask_Change.cs

@@ -1,6 +1,7 @@
 using ChunkyImageLib;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberBlendMode_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 using PixiEditor.ChangeableDocument.Enums;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberIsVisible_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberName_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Properties/StructureMemberOpacity_UpdateableChange.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
 
 namespace PixiEditor.ChangeableDocument.Changes.Properties;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Root/ResizeCanvas_Change.cs

@@ -2,6 +2,7 @@
 using ChunkyImageLib.DataHolders;
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Root;
 
 namespace PixiEditor.ChangeableDocument.Changes.Root;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Structure/CreateStructureMember_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 using PixiEditor.ChangeableDocument.Enums;
 
 namespace PixiEditor.ChangeableDocument.Changes.Structure;

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Structure/DeleteStructureMember_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 
 namespace PixiEditor.ChangeableDocument.Changes.Structure;
 

+ 1 - 0
src/PixiEditor.ChangeableDocument/Changes/Structure/MoveStructureMember_Change.cs

@@ -1,5 +1,6 @@
 using PixiEditor.ChangeableDocument.Changeables;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 
 namespace PixiEditor.ChangeableDocument.Changes.Structure;
 

+ 3 - 0
src/PixiEditorPrototype/Models/DocumentUpdater.cs

@@ -4,6 +4,9 @@ using System.Windows.Media.Imaging;
 using ChunkyImageLib.DataHolders;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
+using PixiEditor.ChangeableDocument.ChangeInfos.Root;
+using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 using PixiEditorPrototype.ViewModels;
 using SkiaSharp;
 

+ 4 - 0
src/PixiEditorPrototype/Models/Rendering/WriteableBitmapUpdater.cs

@@ -6,6 +6,10 @@ using ChunkyImageLib.DataHolders;
 using ChunkyImageLib.Operations;
 using PixiEditor.ChangeableDocument.Changeables.Interfaces;
 using PixiEditor.ChangeableDocument.ChangeInfos;
+using PixiEditor.ChangeableDocument.ChangeInfos.Drawing;
+using PixiEditor.ChangeableDocument.ChangeInfos.Properties;
+using PixiEditor.ChangeableDocument.ChangeInfos.Root;
+using PixiEditor.ChangeableDocument.ChangeInfos.Structure;
 using PixiEditor.ChangeableDocument.Rendering;
 using PixiEditorPrototype.Models.Rendering.RenderInfos;
 using PixiEditorPrototype.ViewModels;