[PR #37] [MERGED] Store strokes in RTree rather than Array #54

Closed
opened 2025-12-29 05:19:18 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/dscyrescotti/Memola/pull/37
Author: @dscyrescotti
Created: 5/26/2024
Status: Merged
Merged: 5/26/2024
Merged by: @dscyrescotti

Base: mainHead: feature/r-tree


📝 Commits (6)

  • 43d933a refactor: clean up
  • 1f9f8ef refactor: replace stroke class with protocol
  • dccf838 refactor: clean up
  • fc6639b refactor: use Stroke protocol annotation in place of PenStroke
  • e13c0f2 feat: use rtree in place of array
  • db18153 refactor: clean up

📊 Changes

22 files changed (+424 additions, -282 deletions)

View changed files

📝 Memola.xcodeproj/project.pbxproj (+33 -5)
📝 Memola/Canvas/Contexts/GraphicContext.swift (+43 -33)
📝 Memola/Canvas/Core/Canvas.swift (+1 -5)
Memola/Canvas/Geometries/Stroke/Core/Stroke.swift (+125 -0)
📝 Memola/Canvas/Geometries/Stroke/Core/StrokeGenerator.swift (+3 -3)
Memola/Canvas/Geometries/Stroke/Core/StrokeStyle.swift (+22 -0)
📝 Memola/Canvas/Geometries/Stroke/Generators/SolidPointStrokeGenerator.swift (+14 -10)
Memola/Canvas/Geometries/Stroke/Stroke.swift (+0 -194)
Memola/Canvas/Geometries/Stroke/Strokes/EraserStroke.swift (+50 -0)
Memola/Canvas/Geometries/Stroke/Strokes/PenStroke.swift (+98 -0)
📝 Memola/Canvas/History/History.swift (+4 -4)
📝 Memola/Canvas/History/HistoryEvent.swift (+1 -1)
📝 Memola/Canvas/RenderPasses/CacheRenderPass.swift (+3 -2)
📝 Memola/Canvas/RenderPasses/EraserRenderPass.swift (+2 -2)
📝 Memola/Canvas/RenderPasses/GraphicRenderPass.swift (+9 -6)
📝 Memola/Canvas/RenderPasses/StrokeRenderPass.swift (+2 -2)
📝 Memola/Canvas/Tool/Pen/Core/Pen.swift (+2 -2)
📝 Memola/Canvas/Tool/Pen/Core/PenStyle.swift (+1 -11)
📝 Memola/Canvas/Tool/Pen/PenStyles/EraserPenStyle.swift (+2 -0)
📝 Memola/Canvas/Tool/Pen/PenStyles/MarkerPenStyle.swift (+2 -0)

...and 2 more files

📄 Description

Description

This PR uses RTree data structure to store strokes for search time efficiency.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/dscyrescotti/Memola/pull/37 **Author:** [@dscyrescotti](https://github.com/dscyrescotti) **Created:** 5/26/2024 **Status:** ✅ Merged **Merged:** 5/26/2024 **Merged by:** [@dscyrescotti](https://github.com/dscyrescotti) **Base:** `main` ← **Head:** `feature/r-tree` --- ### 📝 Commits (6) - [`43d933a`](https://github.com/dscyrescotti/Memola/commit/43d933a1dc62805ae908bd054431544eafaa780c) refactor: clean up - [`1f9f8ef`](https://github.com/dscyrescotti/Memola/commit/1f9f8ef55317d3c824c43f7405f70c40bc3da840) refactor: replace stroke class with protocol - [`dccf838`](https://github.com/dscyrescotti/Memola/commit/dccf8388bcb15d9ccf5820b1395b077f6f998c91) refactor: clean up - [`fc6639b`](https://github.com/dscyrescotti/Memola/commit/fc6639b514d0b0b17c35ad5591a24488f5046003) refactor: use Stroke protocol annotation in place of PenStroke - [`e13c0f2`](https://github.com/dscyrescotti/Memola/commit/e13c0f26924b82a3c9eb802a446374cc33569214) feat: use rtree in place of array - [`db18153`](https://github.com/dscyrescotti/Memola/commit/db18153552f64ecfe8f49bd4c808f56626d1875a) refactor: clean up ### 📊 Changes **22 files changed** (+424 additions, -282 deletions) <details> <summary>View changed files</summary> 📝 `Memola.xcodeproj/project.pbxproj` (+33 -5) 📝 `Memola/Canvas/Contexts/GraphicContext.swift` (+43 -33) 📝 `Memola/Canvas/Core/Canvas.swift` (+1 -5) ➕ `Memola/Canvas/Geometries/Stroke/Core/Stroke.swift` (+125 -0) 📝 `Memola/Canvas/Geometries/Stroke/Core/StrokeGenerator.swift` (+3 -3) ➕ `Memola/Canvas/Geometries/Stroke/Core/StrokeStyle.swift` (+22 -0) 📝 `Memola/Canvas/Geometries/Stroke/Generators/SolidPointStrokeGenerator.swift` (+14 -10) ➖ `Memola/Canvas/Geometries/Stroke/Stroke.swift` (+0 -194) ➕ `Memola/Canvas/Geometries/Stroke/Strokes/EraserStroke.swift` (+50 -0) ➕ `Memola/Canvas/Geometries/Stroke/Strokes/PenStroke.swift` (+98 -0) 📝 `Memola/Canvas/History/History.swift` (+4 -4) 📝 `Memola/Canvas/History/HistoryEvent.swift` (+1 -1) 📝 `Memola/Canvas/RenderPasses/CacheRenderPass.swift` (+3 -2) 📝 `Memola/Canvas/RenderPasses/EraserRenderPass.swift` (+2 -2) 📝 `Memola/Canvas/RenderPasses/GraphicRenderPass.swift` (+9 -6) 📝 `Memola/Canvas/RenderPasses/StrokeRenderPass.swift` (+2 -2) 📝 `Memola/Canvas/Tool/Pen/Core/Pen.swift` (+2 -2) 📝 `Memola/Canvas/Tool/Pen/Core/PenStyle.swift` (+1 -11) 📝 `Memola/Canvas/Tool/Pen/PenStyles/EraserPenStyle.swift` (+2 -0) 📝 `Memola/Canvas/Tool/Pen/PenStyles/MarkerPenStyle.swift` (+2 -0) _...and 2 more files_ </details> ### 📄 Description ### Description This PR uses RTree data structure to store strokes for search time efficiency. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 05:19:18 +01:00
adam closed this issue 2025-12-29 05:19:19 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Memola#54