Aaron Fenyes
25fa108e9b
AddRemove: add low-curvature test assembly from inversive-display
2024-09-28 19:37:43 -07:00
Aaron Fenyes
7977b11caf
AddRemove: switch between pre-made test assemblies
2024-09-28 18:56:33 -07:00
Aaron Fenyes
1c9fec36e5
Display: make scene change flag track element list
2024-09-28 18:51:28 -07:00
Aaron Fenyes
721a8716d4
Assembly: don't track element list when inserting
...
Calling `try_insert_element` or `insert_new_element` in a responsive
context shouldn't make the context track `elements_by_id`.
2024-09-28 18:49:17 -07:00
Aaron Fenyes
4f8f36053f
App: use general test assembly from inversive-display
...
This moves us toward dropping the separate display prototype.
2024-09-28 14:18:04 -07:00
Aaron Fenyes
28b1ecb8e9
App: use element insertion method in test
2024-09-28 13:29:09 -07:00
Aaron Fenyes
b08dbd6f93
Assembly: factor out element insertion
2024-09-28 13:27:03 -07:00
Aaron Fenyes
bd0982f821
AddRemove: make a button that adds elements
...
In the process, switch selection storage back to `FxHashSet`, reverting
commit b3afd6f
.
2024-09-27 14:33:49 -07:00
Aaron Fenyes
2444649dd1
AddRemove: underscore unused event variables
2024-09-26 19:17:57 -07:00
Aaron Fenyes
b3afd6f555
App: Store selection in BTreeSet
...
Since we're using `BTreeSet` for element constraint sets now, we might
as well use it for the selection set too. This removes the `rustc-hash`
dependency.
2024-09-26 19:16:41 -07:00
Aaron Fenyes
9b39fe56b8
Outline: include constraints in element diff key
...
This tells Sycamore that the outline view of an element should update
when the element's constraint set has changed. To make the constraint
set hashable, so we can include it in the diff key, we store it as a
`BTreeSet` instead of an `FxHashSet`.
2024-09-26 19:10:34 -07:00
Aaron Fenyes
f5486fb0dd
AddRemove: make a button that adds constraints
2024-09-26 15:02:51 -07:00
Aaron Fenyes
4e3c86fb71
Ignore profiling folders
2024-09-26 13:23:56 -07:00
Aaron Fenyes
7ff1b9cb65
App: rename directory
2024-09-26 13:22:48 -07:00
Aaron Fenyes
e6281cdcc6
Display: shrink canvas to 600px
...
This makes profiling more comparable with `inversive-display`.
2024-09-25 14:48:58 -07:00
Aaron Fenyes
fc85d15f83
Outline: show constraint details
2024-09-23 00:39:14 -07:00
Aaron Fenyes
7709c61f71
Outline: spruce up styling
...
Use `details` elements to hide and show constraints.
2024-09-22 23:55:07 -07:00
Aaron Fenyes
edee153e37
App: remove unused import
2024-09-22 23:50:16 -07:00
Aaron Fenyes
4a24a01928
App: insert constraints consistently
...
Also, write constructors for state objects.
2024-09-22 14:40:31 -07:00
Aaron Fenyes
050e2373a6
App: store constraints
...
Draft listing of constraints in outline view.
2024-09-22 14:05:40 -07:00
Aaron Fenyes
147e275823
App: don't bother copying key into element
...
When we access an element, we always have its key, either because the
slab iterator yielded it along side the element or because we used it to
get the element from the slab.
2024-09-22 02:38:17 -07:00
Aaron Fenyes
d121385c18
App: store assembly elements in slab
2024-09-22 02:21:45 -07:00
Aaron Fenyes
78f8ef8215
Outline: switch to single selection
2024-09-19 17:53:07 -07:00
Aaron Fenyes
96f8b6b5f3
App: store selection in hash map
...
Switch `Assembly.elements` to a hash map too, since that's probably
closer to what we'll want in the future.
2024-09-19 16:08:55 -07:00
Aaron Fenyes
96afad0c97
Display: highlight selected elements
2024-09-16 15:46:45 -07:00
Aaron Fenyes
a60624884a
App: add element selection
2024-09-16 11:29:44 -07:00
Aaron Fenyes
93190e99da
Display: bring in keyboard navigation code
2024-09-15 11:54:39 -07:00
Aaron Fenyes
e2d3af2867
Display: say "assembly" instead of "construction"
...
Update variable names and comments in code from the display prototype.
2024-09-15 11:41:16 -07:00
Aaron Fenyes
7cb01bab82
Ray-caster: drop outdated performance comment
...
The size of the internal fragment arrays is what really matters, as
discussed in the "Display" page on the wiki.
2024-09-15 11:38:32 -07:00
Aaron Fenyes
f47be08d98
Display: get the assembly from the app state
2024-09-15 11:31:22 -07:00
Aaron Fenyes
cd18d594e0
Display: bring in ray-casting code
2024-09-14 11:46:24 -07:00
Aaron Fenyes
49655a8d62
Ray-caster: remove debug code
...
Remove GPU code and uniforms that were used as scaffolding during
initial development, but have now been replaced by CPU analogues.
2024-09-14 10:58:46 -07:00
Aaron Fenyes
959e4cc8b5
App: pass app state into outline as context
2024-09-13 15:15:55 -07:00
Aaron Fenyes
49170671b4
App: add display canvas
2024-09-13 14:53:12 -07:00
Aaron Fenyes
0c2869d3f3
Outline: improve code formatting
2024-09-13 00:43:19 -07:00
Aaron Fenyes
e6d1e0b865
Outline: encapsulate assembly data
2024-09-13 00:40:34 -07:00
Aaron Fenyes
d481181ef8
Outline: sort elements by ID
2024-09-13 00:07:49 -07:00
Aaron Fenyes
20b96a9764
Outline: switch from "Editor" to "App"
2024-09-12 22:39:21 -07:00
Aaron Fenyes
634e97b659
Outline: switch to user-facing ID
2024-09-12 22:36:54 -07:00
Aaron Fenyes
336b940471
Outline: start on editor state and outline view
2024-09-12 15:24:41 -07:00
Aaron Fenyes
d3c9a08d22
Add zoom to keyboard controls
2024-09-10 04:08:49 -07:00
Aaron Fenyes
aceac5e5c4
Add roll to keyboard controls
2024-09-10 03:14:33 -07:00
Aaron Fenyes
20d072d615
Combine key-down and key-up handlers
2024-09-10 02:29:50 -07:00
Aaron Fenyes
c67f37c934
Implement keyboard navigation
2024-09-09 19:41:15 -07:00
Aaron Fenyes
2efc08d6c0
Enable focus for tabs and display
...
You can now switch tabs from the keyboard using the usual radio button
interaction.
2024-09-09 02:15:04 -07:00
Aaron Fenyes
69ab888d5b
Simplify control labeling
2024-09-09 00:32:29 -07:00
Aaron Fenyes
0173b63e19
Add picture plane to circles in triangle
2024-09-08 23:43:26 -07:00
Aaron Fenyes
b289d2d4c3
Distinguish odd layer counts in debug mode
...
The low-curvature construction admits odd layer counts.
2024-09-08 23:31:48 -07:00
Aaron Fenyes
163361184b
Ray-caster: avoid roundoff error in quadratic equation
2024-09-08 23:00:28 -07:00
Aaron Fenyes
ab830b194e
Use circles in triangle as low-curvature construction
...
In the process, add a way to build a sphere by offset and curvature.
2024-09-06 19:01:18 -07:00