1 |
/* |
/* |
2 |
PageScrollView2D.java |
MainNode2D.java |
3 |
* |
* |
4 |
* Copyright (c) 2003 by Benja Fallenstein and Matti Katila |
* Copyright (c) 2003 by Benja Fallenstein and Matti Katila |
5 |
* |
* |
31 |
import org.nongnu.libvob.impl.DefaultVobMatcher; |
import org.nongnu.libvob.impl.DefaultVobMatcher; |
32 |
import org.nongnu.libvob.buoy.*; |
import org.nongnu.libvob.buoy.*; |
33 |
|
|
|
import java.awt.event.MouseEvent; |
|
|
|
|
34 |
/** A BuoyViewMainNode showing a 2D plane rendered through |
/** A BuoyViewMainNode showing a 2D plane rendered through |
35 |
* a View2D. This class implements the keyboard and mouse |
* a View2D. |
|
* command for moving on the spatial plane. |
|
36 |
*/ |
*/ |
37 |
public class MainNode2D extends AbstractMainNode2D { |
public class MainNode2D extends AbstractMainNode2D { |
38 |
public static boolean dbg = true; |
public static boolean dbg = true; |
92 |
focus.getPanX()-boxw/zoom/2, focus.getPanY()-boxh/zoom/2, |
focus.getPanX()-boxw/zoom/2, focus.getPanY()-boxh/zoom/2, |
93 |
1/zoom, 1/zoom, boxw, boxh); |
1/zoom, 1/zoom, boxw, boxh); |
94 |
} |
} |
|
|
|
|
|
|
|
private float m_state_zoom = -1; |
|
|
|
|
|
protected void readMouseState(MouseEvent e, VobScene oldVobScene) { |
|
|
super.readMouseState(e, oldVobScene); |
|
|
m_state_zoom = zoom; |
|
|
} |
|
|
|
|
|
public void changeZoom(float change) { |
|
|
zoom = focus.getZoom() * (float) Math.exp(change/150.0); |
|
|
focus.setZoom(zoom); |
|
|
} |
|
|
|
|
|
public boolean doMouse(MouseEvent e, VobScene oldVobScene) { |
|
|
// let's zoom!! |
|
|
if (m_state[2] == e.BUTTON2_MASK && |
|
|
e.getID() == MouseEvent.MOUSE_DRAGGED) { |
|
|
zoom = m_state_zoom * (float) |
|
|
Math.exp((m_state[1] - e.getY())/150.0); |
|
|
AbstractUpdateManager.setNoAnimation(); |
|
|
setZoomPan(oldVobScene, box2screen); |
|
|
return true; |
|
|
} |
|
|
|
|
|
return super.doMouse(e, oldVobScene); |
|
|
} |
|
|
|
|
|
protected float getZoom() { return zoom; } |
|
95 |
} |
} |