scadnano icon indicating copy to clipboard operation
scadnano copied to clipboard

grow helices dynamically as strands are drawn or pasted

Open dave-doty opened this issue 3 years ago • 0 comments

This idea originated with ENSnano, developed by Nicolas Schabanel and Nicolas Levy.

Currently, to increase the size of a Helix (increasing its max_offset or decreasing its min_offset), one must right-click on the Helix and type in the new bound(s). This is annoying if we don't know in advance how large we want the Helix to be, but of course we know we want it to be large enough to contain whatever strands are drawn.

When

  • drawing a strand in pencil mode,
  • mirroring a strand,
  • moving its 5' or 3' ends,
  • moving the whole strand,
  • moving a domain, or
  • pasting a strand,

it should be permitted to draw or paste outside the bounds of the current helices. The helices should be resized dynamically to accommodate the new strand.

Creating new helices

This feature would be even better if it auto-expanded in the y-direction as well, i.e., by creating new helices. Here's an idea for how to do that. If there is only a single helix, add new helix/helices below the current one (i.e., increment the y-coordinate). If there are already helices, then repeat the pattern they already have. In other words, assume that the grid coordinates (or real non-grid coordinates) of helices so far are to be repeated. [TODO: give an example]

dave-doty avatar Mar 20 '21 16:03 dave-doty