aws-cqc / aws-cqc/DeviceLayout.jl
Fencing
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 21
Description
Say we have a Path, and we want to periodically attach a feature alongside it on both sides (i.e., add "fences" along the path). `attach!` can do this, but positions are parameterized by the arclength of the original path, not the offset path the fence is actually sitting on. This means that if we use regularly spaced positions in `attach!`, then on curves, the inner fence becomes more closely spaced, and the outer becomes more sparsely spaced. We want an interface to add fences directly: `fence!(path, fencepost, offsets, pitch)`. We can have `stop` and `start` keywords to partially fence paths, and/or a `margin` keyword to automatically set stop and start a certain distance away from the ends. There are a few options for implementation:
1. Compensate for curvature in `attach!`.
2. Create (and resolve) offset paths and `attach!` on top of those.
3. Make a new `Paths.Style` for periodic attachments, and use that instead of `attach!` in 2. (This would also be convenient for air bridges.)
4. Make a new `Paths.Style` for fences, which eventually does one of the above
5. Make a new `Fence::GeometryStructure` that eventually does one of the above
Contributor guide
Research direction
Start by reading the existing attach! behavior and the Paths.Style and Fence::GeometryStructure entry points named in the issue. Compare the five proposed implementation directions, then define which approach supports fence!(path, fencepost, offsets, pitch) and any stop/start or margin options. Done means periodic attachments remain correctly spaced on offset paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100