psychedelicious
19c66e5c76
refactor(ui): canvas v2 (wip)
...
merge all canvas state reducers into one big slice (but with the logic split across files so it's not hell)
2024-08-23 19:46:02 +10:00
psychedelicious
8a6690a57c
refactor(ui): canvas v2 (wip)
...
Fix a few more components
2024-08-23 19:46:02 +10:00
psychedelicious
2cc60f253a
refactor(ui): canvas v2 (wip)
...
missed a spot
2024-08-23 19:46:02 +10:00
psychedelicious
cb69872dd3
refactor(ui): canvas v2 (wip)
...
Redo all UI components for different canvas entity types
2024-08-23 19:46:02 +10:00
psychedelicious
ba66d7c9a6
refactor(ui): canvas v2 (wip)
2024-08-23 19:46:02 +10:00
psychedelicious
9fe727c9f8
refactor(ui): canvas v2 (wip)
2024-08-23 19:46:02 +10:00
psychedelicious
58c656224f
refactor(ui): canvas v2 (wip)
2024-08-23 19:46:02 +10:00
psychedelicious
c51253f5f6
refactor(ui): canvas v2 (wip)
2024-08-23 19:46:02 +10:00
psychedelicious
6c1d1588fc
feat(ui): bbox tool
2024-08-23 19:46:02 +10:00
psychedelicious
95d6183a6c
fix(ui): rect tool preview
2024-08-23 19:46:02 +10:00
psychedelicious
f4c9facdaf
fix(ui): multiple stages
2024-08-23 19:46:02 +10:00
psychedelicious
a274e6f165
feat(ui): decouple konva logic from nanostores
2024-08-23 19:46:02 +10:00
psychedelicious
154e3e6f64
feat(ui): store all stage attrs in nanostores
2024-08-23 19:46:02 +10:00
psychedelicious
2c3ac972e5
feat(ui): round stage scale
2024-08-23 19:46:02 +10:00
psychedelicious
9d8dd2bf66
feat(ui): generation bbox transformation working
...
whew
2024-08-23 19:46:02 +10:00
psychedelicious
9047f6db30
feat(ui): wip generation bbox
2024-08-23 19:46:02 +10:00
psychedelicious
5ab345ee63
feat(ui): wip generation bbox
2024-08-23 19:46:02 +10:00
psychedelicious
d8a83acd3a
feat(ui): CL zoom and pan, some rendering optimizations
2024-08-23 19:46:02 +10:00
psychedelicious
1f58e5756b
Revert "feat(ui): add x,y,scaleX,scaleY,rotation to objects"
...
This reverts commit 53318b396c967c72326a7e4dea09667b2ab20bdd.
2024-08-23 19:46:02 +10:00
psychedelicious
744acb8f07
feat(ui): layers manage their own bbox
2024-08-23 19:46:02 +10:00
psychedelicious
ae7228d821
docs(ui): konva image object docstrings
2024-08-23 19:46:02 +10:00
psychedelicious
99d8b3a7bf
feat(ui): add x,y,scaleX,scaleY,rotation to objects
2024-08-23 19:46:02 +10:00
psychedelicious
3fbe65bbcf
fix(ui): show color picker when using rect tool
2024-08-23 19:46:02 +10:00
psychedelicious
f5d879d8e7
feat(ui): image loading fallback for raster layers
2024-08-23 19:46:02 +10:00
psychedelicious
cbc5a4f8e6
feat(ui): bbox calc for raster layers
2024-08-23 19:46:02 +10:00
psychedelicious
37ac7d8ed5
feat(ui): do not fill brush preview when drawing
2024-08-23 19:46:02 +10:00
psychedelicious
bee3fa339d
fix(ui): brush spacing handling
2024-08-23 19:46:02 +10:00
psychedelicious
c171fe2b96
fix(ui): jank when starting a shape when not already focused on stage
2024-08-23 19:46:02 +10:00
psychedelicious
1fa8032fdb
feat(ui): wip raster layers
...
I meant to split this up into smaller commits and undo some of it, but I committed afterwards and it's tedious to undo.
2024-08-23 19:46:02 +10:00
psychedelicious
5c0676bcc2
feat(ui): support image objects on raster layers
...
Just the UI and internal state, not rendering yet.
2024-08-23 19:46:02 +10:00
psychedelicious
cefd9a027c
tidy(ui): clean up event handlers
...
Separate logic for each tool in preparation for ellipse and polygon tools.
2024-08-23 19:46:02 +10:00
psychedelicious
1bce156de1
feat(ui): raster layer reset, object group util
2024-08-23 19:46:02 +10:00
psychedelicious
cd4f63f2fd
feat(ui): rect shape preview now has fill
2024-08-23 19:46:02 +10:00
psychedelicious
3c7140cbf3
feat(ui): cancel shape drawing on esc
2024-08-23 19:46:02 +10:00
psychedelicious
b71ba63b5a
feat(ui): temp disable history on CL
2024-08-23 19:46:02 +10:00
psychedelicious
d540e2c0d3
feat(ui): raster layer logic
...
- Deduplicate shared logic
- Split up giant renderers file into separate cohesive files
- Tons of cleanup
- Progress on raster layer functionality
2024-08-23 19:46:02 +10:00
psychedelicious
d79fafc5f5
feat(ui): add raster layer rendering and interaction (WIP)
2024-08-23 19:46:02 +10:00
psychedelicious
9e93fa2092
feat(ui): scaffold out raster layers
...
Raster layers may have images, lines and shapes. These will replace initial image layers and provide sketching functionality like we have on canvas.
2024-08-23 19:46:02 +10:00
psychedelicious
392e9b4882
refactor(ui): revise types for line and rect objects
...
- Create separate object types for brush and eraser lines, instead of a single type that has a `tool` field.
- Create new object type for rect shapes.
- Add logic to schemas to migrate old object types to new.
- Update renderers & reducers.
2024-08-23 19:46:02 +10:00
blessedcoolant
13fb2d1f49
fix: Add Depth Anything V2 as a new option
...
It is also now the default in the UI replacing Depth Anything V1 small
2024-07-31 23:29:43 +05:30
psychedelicious
6dcdc87eb1
fix(ui): control adapter image preview
2024-06-27 13:48:40 +10:00
Mary Hipp
f01df49128
lint fix
2024-06-27 13:48:40 +10:00
Mary Hipp
98c77a3ed1
pull in spencers work
2024-06-27 13:48:40 +10:00
psychedelicious
6d067e56f2
fix(ui): on page load, if CA processed image no longer exists, re-process it
2024-06-07 10:32:28 +10:00
psychedelicious
1c5c3cdbd6
tidy(ui): organize control layers konva logic
...
- More comments, docstrings
- Move things into saner, less-coupled locations
2024-06-06 07:45:13 +10:00
psychedelicious
3db69af220
refactor(ui): generalize stage event handlers
...
Create intermediary nanostores for values required by the event handlers. This allows the event handlers to be purely imperative, with no reactivity: instead of recreating/setting the handlers when a dependent piece of state changes, we use nanostores' imperative API to access dependent state.
For example, some handlers depend on brush size. If we used the standard declarative `useSelector` API, we'd need to recreate the event handler callback each time the brush size changed. This can be costly.
An intermediate `$brushSize` nanostore is set in a `useLayoutEffect()`, which responds to changes to the redux store. Then, in the event handler, we use the imperative API to access the brush size: `$brushSize.get()`.
This change allows the event handler logic to be shared with the pending canvas v2, and also more easily tested. It's a noticeable perf improvement, too, especially when changing brush size.
2024-06-06 07:45:13 +10:00
psychedelicious
1823e446ac
fix(ui): conditionally render CL preview
...
This fixes an issue where it sometimes gets out of sync, and fixes some konva errors.
2024-06-06 07:45:13 +10:00
psychedelicious
311e44ad19
tidy(ui): clean up control layers renderers, docstrings
2024-06-06 07:45:13 +10:00
psychedelicious
7a4bbd092e
feat(ui): revised image comparison slider
...
Should work for any components and image now.
2024-06-02 15:30:00 +10:00
psychedelicious
843f82c837
fix(ui): remove overly strict constraints on control adapter weight
2024-05-29 19:01:28 -07:00