|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.gicentre.utils.move.ZoomPan
public class ZoomPan
Class to allow interactive zooming and panning of the Processing display. To use, simply create a ZoomPan object in setup(), then call its transform() method at the start of draw(). Panning is controlled with the right mouse button dragging. Zooming is, by default, controlled with a left mouse drag up to zoom in, left-drag down to zoom out. Can also zoom in and out with the mouse wheel if present. Mouse actions can be filtered so that they only work if a modifier key is pressed (ALT, SHIFT or CONTROL) by calling the setMouseMask() method.
Nested Class Summary | |
---|---|
static class |
ZoomPan.ZoomPanBehaviour
Type of zoom/pan behaviour. |
Constructor Summary | |
---|---|
protected |
ZoomPan()
|
|
ZoomPan(processing.core.PApplet aContext)
Initialises the zooming and panning transformations for the given applet context. |
|
ZoomPan(processing.core.PApplet aContext,
processing.core.PGraphics graphics)
Initialises the zooming and panning transformations for the given applet and graphics contexts. |
Method Summary | |
---|---|
void |
addZoomPanListener(ZoomPanListener zoomPanListener)
Adds a listener to be informed when some zooming or panning has finished. |
void |
allowPanButton(boolean allowPan)
Determines whether or not panning is permitted via a button press. |
void |
allowZoomButton(boolean allowZoom)
Determines whether or not zooming via a button press is permitted. |
processing.core.PVector |
getCoordToDisp(processing.core.PVector p)
Transforms the given point from coordinate to display space. |
processing.core.PVector |
getDispToCoord(processing.core.PVector p)
Transforms the given point from display to coordinate space. |
processing.core.PVector |
getMouseCoord()
Reports the current mouse position in coordinate space. |
processing.core.PVector |
getPanOffset()
Reports the current pan offset. |
ZoomPan.ZoomPanBehaviour |
getZoomPanBehaviour()
Reports the zoom/pan behaviour type |
ZoomPanState |
getZoomPanState()
Provides a copy (cloned snapshot) of the current ZoomPanState. |
double |
getZoomScale()
Reports the current zoom scale. |
boolean |
isMouseCaptured()
Reports whether a mouse event has been captured by the zoomer. |
boolean |
isPanning()
Reports whether display is currently being panned (ie mouse is being dragged with pan key/button pressed). |
boolean |
isZooming()
Reports whether display is currently being zoomed (i.e. |
boolean |
removeZoomPanListener(ZoomPanListener zoomPanListener)
Removes the given listener from those to be informed when zooming/panning has finished. |
void |
reset()
Resets the display to unzoomed and unpanned position. |
void |
setMaxZoomScale(double maxZoomScale)
Sets the maximum permitted zoom scale (i.e. |
void |
setMinZoomScale(double minZoomScale)
Sets the minimum permitted zoom scale (i.e. |
void |
setMouseMask(int mouseMask)
Sets the key that must be pressed before mouse actions are active. |
void |
setPanOffset(float panX,
float panY)
Sets a new pan offset. |
void |
setZoomMouseButton(int zoomMouseButton)
Sets mouse button for zooming. |
void |
setZoomPanBehaviour(ZoomPan.ZoomPanBehaviour zoomPanType)
Sets the zoom/pan behaviour type |
void |
setZoomScale(double zoomScale)
Sets a new zoom scale. |
static void |
text(processing.core.PApplet applet,
java.lang.String textToDisplay,
float xPos,
float yPos)
Replacement for Processing's text() method for faster and more accurate placement of
characters in Java2D mode when a zoomed font is to be displayed. |
void |
text(java.lang.String textToDisplay,
float xPos,
float yPos)
Replacement for Processing's text() method for faster and more accurate placement of
characters in Java2D mode when a zoomed font is to be displayed. |
void |
transform()
Performs the zooming/panning transformation. |
void |
transform(processing.core.PGraphics offScreenBuffer)
Performs the zooming/panning transformation in the given graphics context. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected ZoomPan()
public ZoomPan(processing.core.PApplet aContext)
aContext
- Applet context in which zooming and panning are to take place.public ZoomPan(processing.core.PApplet aContext, processing.core.PGraphics graphics)
aContext
- Applet context in which zooming and panning are to take place.graphics
- Graphics context in which to draw.Method Detail |
---|
public void transform()
public void transform(processing.core.PGraphics offScreenBuffer)
public void reset()
public void addZoomPanListener(ZoomPanListener zoomPanListener)
zoomPanListener
- Listener to be informed when some zooming or panning has finished.public boolean removeZoomPanListener(ZoomPanListener zoomPanListener)
zoomPanListener
- Listener to remove.
public void setMouseMask(int mouseMask)
mouseMask
- Keyboard modifier required to activate mouse actions. Valid values are
CONTROL
, SHIFT
, ALT
, 0
and -1
.public processing.core.PVector getMouseCoord()
mouseX
and mouseY
if the current display
has been zoomed or panned.
public double getZoomScale()
public void setZoomScale(double zoomScale)
zoomScale
- New zoom scale. A value of 1 indicates no zooming, values above
0 and below 1 will shrink the display; values above 1 will enlarge the
display. Values less than or equal to 0 will be ignored.public void setZoomPanBehaviour(ZoomPan.ZoomPanBehaviour zoomPanType)
zoomPanType
- BOTH_DIRECTIONS=normal; VERTICAL_ONLY=only in y; HORIZONTAL_ONLY=only in xpublic ZoomPan.ZoomPanBehaviour getZoomPanBehaviour()
public processing.core.PVector getPanOffset()
public void setPanOffset(float panX, float panY)
panX
- X coordinate of new pan offset. A value of 0 indicates no translation
of the display on the horizontal axis; a negative value indicates a
translation to the left; a positive value indicates translation to the right.panY
- Y coordinate of new pan offset. A value of 0 indicates no translation
of the display on the vertical axis; a negative value indicates a translation
upwards; a positive value indicates translation downwards.public boolean isZooming()
public boolean isPanning()
public boolean isMouseCaptured()
public void allowZoomButton(boolean allowZoom)
allowZoom
- Zooming permitted via mouse button press if true.public void allowPanButton(boolean allowPan)
allowPan
- Panning permitted via mouse button press if true.public void setMinZoomScale(double minZoomScale)
minZoomScale
- public void setMaxZoomScale(double maxZoomScale)
maxZoomScale
- public processing.core.PVector getDispToCoord(processing.core.PVector p)
p
- 2D point in zoomed display space.
public processing.core.PVector getCoordToDisp(processing.core.PVector p)
p
- 2D point in original coordinate space.
public void setZoomMouseButton(int zoomMouseButton)
zoomMouseButton
- Zoom mouse button (must be either PConstants.LEFT or PConstants.RIGHTpublic void text(java.lang.String textToDisplay, float xPos, float yPos)
text()
method for faster and more accurate placement of
characters in Java2D mode when a zoomed font is to be displayed. This method is not necessary when
text is not subject to scaling via zooming, nor is is necessary in P2D
, P3D
or OpenGL
modes.
textToDisplay
- Text to be displayed.xPos
- x-position of the the text to display in original unzoomed screen coordinates.yPos
- y-position of the the text to display in original unzoomed screen coordinates.public static void text(processing.core.PApplet applet, java.lang.String textToDisplay, float xPos, float yPos)
text()
method for faster and more accurate placement of
characters in Java2D mode when a zoomed font is to be displayed. This version does not require a
ZoomPan object to be instantiated but does need the PApplet
context to be provided.
As with the other text()
method it is not necessary to call this method if the
text is not subject to scaling via zooming, nor is is necessary in P2D
, P3D
or OpenGL
modes.
applet
- Sketch in which text is to be drawn.textToDisplay
- Text to be displayed.xPos
- x-position of the the text to display in original unzoomed screen coordinates.yPos
- y-position of the the text to display in original unzoomed screen coordinates.public ZoomPanState getZoomPanState()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |