aws-cqc / aws-cqc/DeviceLayout.jl
Auto-fencing
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 21
Description
This follows #130.
If we have multiple Paths, or a Path that doubles back on itself, we may want to add fencing while skipping fenceposts that would collide with another already-placed fencepost. This should also be a simple command: `autofence!(paths, fencepost, offsets, pitch, keepout_radius=pitch)` (using `auto` in the name in analogy to `autofill`). This is a little more involved because we have to efficiently check for collisions (easiest if we're just checking that distance is at least `keepout_radius` from existing fencepost centers stored in an appropriate spatial index for finding nearest neighbors). (There may be some simplifications possible if you are doing this in a RouteChannel, but I'm not sure it's worth it.) This can leverage some of `fence!`, but since the result is not actually periodic it may not be able to use any of the data structures suggested for fence implementation in #130.
Contributor guide
Research direction
Start with the design in #130 and compare the existing fence! and autofill command patterns. Define the autofence! entry point for multiple or self-intersecting Paths, then determine how fencepost centers and keepout_radius checks should be handled so colliding posts are skipped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100