public class LoopResizer extends DrawHandle
Modifier and Type | Field and Description |
---|---|
private java.awt.geom.Point2D.Float |
_ptModel |
private java.awt.image.BufferedImage[] |
directionalIcons |
private Vec2D |
handleOffsetDir |
private Motif.Loop |
loop |
private Motif.MultiLoop |
multiLoop |
private static double |
radToDeg |
private static SceneUpdateInfo |
ResizeLoop |
private java.awt.image.BufferedImage |
resizeMultiLoopIcon |
private java.awt.image.BufferedImage |
resizeSegmentIcon |
private Motif.Loop.LoopType |
type |
_tmpPt, _tmpTr, allNucs, boxSize, cachedBounds, controller, customCursor, defaultBgColor, defaultLineColor, defaultOutline, icon, location, SNAP_DISTANCE, startLocation, targetNuc, view
Constructor and Description |
---|
LoopResizer(SceneController controller) |
Modifier and Type | Method and Description |
---|---|
private void |
calculateOffset() |
private void |
createDirectionalIcons(java.awt.image.BufferedImage northIcon) |
void |
dragComplete(boolean success)
Called when the user has completed dragging (e.g.
|
static void |
expandMultiLoop(SceneController ctrl,
Motif.MultiLoop mloop,
java.awt.geom.Point2D.Float ptFrom,
java.awt.geom.Point2D.Float ptDest,
Ellipses.Circle loopCircle,
SceneController.DragOpts options) |
private static void |
expandPointAboutCenter(Vec2D ray,
java.awt.geom.Point2D pt,
java.awt.geom.Point2D oldCenter,
java.awt.geom.Point2D newCenter,
double dR) |
private double |
getChordHeight(double arcLength,
double chordLength,
double radius) |
SceneUpdateInfo |
getCompletionEvent() |
private java.awt.image.BufferedImage |
getDirectionalIcon(double screenAngle) |
boolean |
isValid() |
protected void |
nucPositionsChanged()
Called when any nucleotides in the scene changed position,
EXCEPT when THIS DrawHandle is in the middle of a performDrag operation
(because any nucleotide changes then are likely due to its own drag operation).
|
protected void |
performDrag(java.awt.Point start,
java.awt.Point prev,
java.awt.Point current,
SceneController.DragOpts options)
Called when this handle has been dragged by the user.
|
(package private) void |
positionLinear(Nuc nStart,
Nuc nEnd,
boolean boldHint) |
(package private) void |
positionLinear(Nuc nStart,
Nuc nEnd,
java.awt.geom.Point2D p1,
java.awt.geom.Point2D p2,
boolean gapAtStart,
boolean gapAtEnd,
boolean boldHint) |
private void |
positionLoopBetweenHelices(java.awt.geom.Point2D.Float ptNew,
Nuc nBase1,
Nuc nBase2,
boolean enableSnap) |
private void |
positionNucs(java.awt.geom.Point2D.Float newPos,
SceneController.DragOpts options) |
private void |
positionTerminalEndPoint(java.awt.geom.Point2D.Float ptNew,
Nuc nMoved,
Nuc nFixed,
int dir,
boolean enableSnap) |
private void |
positionTerminalLoop(java.awt.geom.Point2D.Float ptNew,
Nuc nStart,
Nuc nEnd,
boolean enableSnap) |
protected void |
prepareDraw(boolean isDragging) |
protected void |
selectionChanged() |
calcBoxPos, drag, dragStarted, draw, drawBox, getBounds, getBoxSize, getModelSpaceDeltaTransform, isEnabled, isUpdating, layoutUpdated, moveLocation, setBoxSize, setEnabled, setIcon, setSelection, settingsChanged
private java.awt.geom.Point2D.Float _ptModel
private java.awt.image.BufferedImage[] directionalIcons
private Vec2D handleOffsetDir
private Motif.Loop loop
private Motif.MultiLoop multiLoop
private static double radToDeg
private static final SceneUpdateInfo ResizeLoop
private java.awt.image.BufferedImage resizeMultiLoopIcon
private java.awt.image.BufferedImage resizeSegmentIcon
private Motif.Loop.LoopType type
public LoopResizer(SceneController controller)
private void calculateOffset()
private void createDirectionalIcons(java.awt.image.BufferedImage northIcon)
public void dragComplete(boolean success)
DrawHandle
dragComplete
in class DrawHandle
success
- Whether the action was successful (and therefore should be stored in the UNDO history).public static void expandMultiLoop(SceneController ctrl, Motif.MultiLoop mloop, java.awt.geom.Point2D.Float ptFrom, java.awt.geom.Point2D.Float ptDest, @Nullable Ellipses.Circle loopCircle, SceneController.DragOpts options)
private static void expandPointAboutCenter(Vec2D ray, java.awt.geom.Point2D pt, java.awt.geom.Point2D oldCenter, java.awt.geom.Point2D newCenter, double dR)
private double getChordHeight(double arcLength, double chordLength, double radius)
public SceneUpdateInfo getCompletionEvent()
getCompletionEvent
in class DrawHandle
private java.awt.image.BufferedImage getDirectionalIcon(double screenAngle)
public boolean isValid()
isValid
in class DrawHandle
protected void nucPositionsChanged()
DrawHandle
nucPositionsChanged
in class DrawHandle
protected void performDrag(java.awt.Point start, java.awt.Point prev, java.awt.Point current, SceneController.DragOpts options)
performDrag
in class DrawHandle
void positionLinear(Nuc nStart, Nuc nEnd, java.awt.geom.Point2D p1, java.awt.geom.Point2D p2, boolean gapAtStart, boolean gapAtEnd, boolean boldHint)
private void positionLoopBetweenHelices(java.awt.geom.Point2D.Float ptNew, Nuc nBase1, Nuc nBase2, boolean enableSnap)
private void positionNucs(java.awt.geom.Point2D.Float newPos, SceneController.DragOpts options)
private void positionTerminalEndPoint(java.awt.geom.Point2D.Float ptNew, Nuc nMoved, Nuc nFixed, int dir, boolean enableSnap)
private void positionTerminalLoop(java.awt.geom.Point2D.Float ptNew, Nuc nStart, Nuc nEnd, boolean enableSnap)
protected void prepareDraw(boolean isDragging)
prepareDraw
in class DrawHandle
protected void selectionChanged()
selectionChanged
in class DrawHandle