158 |
setZoomPan(vs, into); |
setZoomPan(vs, into); |
159 |
// XXX SinglePaper.i(space, d, window, current).render(vs, into, c2fCS, c2fCSInv, hook); |
// XXX SinglePaper.i(space, d, window, current).render(vs, into, c2fCS, c2fCSInv, hook); |
160 |
} else { |
} else { |
|
|
|
|
// kludge |
|
|
int focusCtr = vs.matcher.getCS("FocusCtr"); |
|
|
|
|
161 |
int zo = (int)(zoom * 100000); |
int zo = (int)(zoom * 100000); |
162 |
int geometry = vs.orthoCS(0, "FocusGeometry",0, zo,0, panx, pany); |
int geometry = vs.orthoCS(0, "FocusGeometry",0, zo,0, panx, pany); |
163 |
|
|
164 |
//vs.map.put(new UniquePaperVob(URN5Namespace.instance.generateId()), into, geometry); |
vs.map.put(new UniquePaperVob(URN5Namespace.instance.generateId()), into, geometry); |
165 |
(new SpatialPlane(PP.noteType, PP.contains)).renderAWT(vs, into, geometry, node, space, hook); |
(new SpatialPlane(PP.noteType, PP.contains)).renderAWT(vs, into, geometry, node, space, hook); |
166 |
} |
} |
167 |
} |
} |
175 |
private int [] m_state = null; |
private int [] m_state = null; |
176 |
private float m_state_zoom = -1; |
private float m_state_zoom = -1; |
177 |
public boolean mouse(MouseEvent e, VobScene oldVobScene) { |
public boolean mouse(MouseEvent e, VobScene oldVobScene) { |
|
pa("mouse e"+e+" pans: "+panx+", "+pany); |
|
|
|
|
178 |
if (e.getID() == MouseEvent.MOUSE_PRESSED) { |
if (e.getID() == MouseEvent.MOUSE_PRESSED) { |
179 |
m_state = new int[]{ e.getX(), e.getY(), e.getModifiers()}; |
m_state = new int[]{ e.getX(), e.getY(), e.getModifiers()}; |
180 |
m_state_zoom = zoom; |
m_state_zoom = zoom; |
182 |
} |
} |
183 |
if (m_state == null) throw new Error("Mouse state not found!"); |
if (m_state == null) throw new Error("Mouse state not found!"); |
184 |
|
|
|
if (m_state[2] == e.BUTTON1_MASK){ |
|
185 |
|
|
186 |
float[] pt = new float[] { e.getX(), e.getY(), 0 }; |
if (m_state[2] == e.BUTTON3_MASK) { |
|
|
|
|
// We must transform into Frame, and then the C2F coordinate system |
|
|
int mainctrCS = ((DefaultVobMatcher)oldVobScene.matcher).getCS(0, "Center"); |
|
|
pa("mainctr"+ mainctrCS); |
|
|
|
|
|
int frame = ((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP"); |
|
|
int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, "C2F"); |
|
|
if (c2f < 0) c2f = c2fCS; |
|
|
if(frame < 0 || c2f < 0) |
|
|
throw new Error("No cs point!"+frame+" "+c2f); |
|
|
|
|
|
// XXX vp, not frame! |
|
|
oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt); |
|
|
oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt); |
|
|
panx = pt[0]; pany = pt[1]; |
|
187 |
|
|
188 |
// XXX current = current.h(d.contains); |
// let's zoom!! |
189 |
AbstractUpdateManager.chg(); |
zoom = m_state_zoom * (float) |
190 |
|
Math.exp((m_state[1] - e.getY())/150.0); |
191 |
|
return true; |
192 |
|
} |
193 |
|
|
194 |
|
|
195 |
|
|
196 |
|
if (m_state[2] == e.BUTTON1_MASK){ |
197 |
|
|
198 |
|
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
199 |
|
float[] pt = new float[] { e.getX(), e.getY(), 0 }; |
200 |
|
|
201 |
|
// We must transform into Frame, and then the C2F coordinate system |
202 |
|
int mainctrCS = ((DefaultVobMatcher)oldVobScene.matcher).getCS(0, "Center"); |
203 |
|
pa("mainctr"+ mainctrCS); |
204 |
|
|
205 |
|
int frame = ((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP"); |
206 |
|
int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, "C2F"); |
207 |
|
if (c2f < 0) c2f = c2fCS; |
208 |
|
if(frame < 0 || c2f < 0) |
209 |
|
throw new Error("No cs point!"+frame+" "+c2f); |
210 |
|
|
211 |
|
// XXX vp, not frame! |
212 |
|
oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt); |
213 |
|
oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt); |
214 |
|
panx = pt[0]; pany = pt[1]; |
215 |
|
|
216 |
|
// XXX current = current.h(d.contains); |
217 |
|
AbstractUpdateManager.chg(); |
218 |
|
} else { |
219 |
|
|
220 |
|
|
221 |
|
|
222 |
|
} |
223 |
return false; |
return false; |
224 |
} |
} |
225 |
|
|