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:
- Compensate for curvature in
attach!.
- Create (and resolve) offset paths and
attach! on top of those.
- Make a new
Paths.Style for periodic attachments, and use that instead of attach! in 2. (This would also be convenient for air bridges.)
- Make a new
Paths.Style for fences, which eventually does one of the above
- Make a new
Fence::GeometryStructure that eventually does one of the above
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 inattach!, 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 havestopandstartkeywords to partially fence paths, and/or amarginkeyword to automatically set stop and start a certain distance away from the ends. There are a few options for implementation:attach!.attach!on top of those.Paths.Stylefor periodic attachments, and use that instead ofattach!in 2. (This would also be convenient for air bridges.)Paths.Stylefor fences, which eventually does one of the aboveFence::GeometryStructurethat eventually does one of the above