public class ZoomPan
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
ZoomPan.ZoomPanDirection
Enumerates zooming and panning constraints.
|
Modifier | Constructor and Description |
---|---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.ZoomPanDirection |
getZoomPanDirection()
Reports the zooming/panning direction
|
ZoomPanState |
getZoomPanState()
Provides a copy (cloned snapshot) of the current ZoomPanState.
|
double |
getZoomScale()
Reports the current zoom scale.
|
double |
getZoomScaleX()
Reports the current zoom scale in X.
|
double |
getZoomScaleY()
Reports the current zoom scale in Y.
|
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 |
setZoomPanDirection(ZoomPan.ZoomPanDirection zoomPanDirection)
Sets the zooming/panning direction
|
void |
setZoomScale(double zoomScale)
Sets a new zoom scale.
|
void |
setZoomScaleX(double zoomScaleX)
Sets a new zoom scale in X.
|
void |
setZoomScaleY(double zoomScaleY)
Sets a new zoom scale in Y.
|
static void |
text(processing.core.PApplet applet,
java.lang.String textToDisplay,
float xPos,
float yPos)
Deprecated.
Bug in Processing is now fixed in 3.x, so this method is no longer needed.
|
void |
text(java.lang.String textToDisplay,
float xPos,
float yPos)
Deprecated.
Bug in Processing is now fixed in 3.x, so this method is no longer needed.
|
void |
transform()
Performs the zooming/panning transformation.
|
void |
transform(processing.core.PGraphics offScreenBuffer)
Performs the zooming/panning transformation in the given graphics context.
|
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.public void transform()
public void transform(processing.core.PGraphics offScreenBuffer)
offScreenBuffer
- Graphics context in which to apply the zoom/pan transformation.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 double getZoomScaleX()
public double getZoomScaleY()
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 setZoomScaleX(double zoomScaleX)
zoomScaleX
- New horizontal 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 setZoomScaleY(double zoomScaleY)
zoomScaleY
- New vertical 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 setZoomPanDirection(ZoomPan.ZoomPanDirection zoomPanDirection)
zoomPanDirection
- Type of zoom panning. Should be one ofZOOM_PAN_BOTH
Zooming and panning in both directions. The default.ZOOM_PAN_VERTICAL
Only zoom and pan in a vertical direction (y). ZOOM_PAN_HORIZONTAL
Only zoom and pan in a horizontal direction (x).ZOOM_VERTICAL_PAN_BOTH
Zoom in vertical direction only (y), pan in both.ZOOM_HORIZONTAL_PAN_BOTH
Zoom in vertical direction only (x), pan in both.public ZoomPan.ZoomPanDirection getZoomPanDirection()
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
- Minimum permitted zoom scale.public void setMaxZoomScale(double maxZoomScale)
maxZoomScale
- Maximum permitted zoom scale.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.RIGHT@Deprecated public 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.@Deprecated 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()