12 |
import org.nongnu.libvob.impl.gl.*; |
import org.nongnu.libvob.impl.gl.*; |
13 |
import org.nongnu.libvob.buoy.*; |
import org.nongnu.libvob.buoy.*; |
14 |
import org.nongnu.libvob.vobs.*; |
import org.nongnu.libvob.vobs.*; |
|
import com.hp.hpl.mesa.rdf.jena.model.*; |
|
|
import com.hp.hpl.mesa.rdf.jena.common.*; |
|
15 |
|
|
16 |
import java.awt.event.*; |
import java.awt.event.*; |
17 |
|
|
19 |
|
|
20 |
// implement fisheye in here later.. |
// implement fisheye in here later.. |
21 |
|
|
22 |
/** XXX |
/** PPCanvas which has been selected/created to be the focus one. |
23 |
*/ |
*/ |
24 |
public class PPCanvasCursor implements BuoyViewMainNode { |
public class PPCanvasCursor implements BuoyViewMainNode { |
25 |
private static final String rcsid = "$Id$"; |
private static final String rcsid = "$Id$"; |
139 |
vs.coords.setOrthoParams(csinv, 0, panx, pany, 1/zoom, 1/zoom); |
vs.coords.setOrthoParams(csinv, 0, panx, pany, 1/zoom, 1/zoom); |
140 |
} |
} |
141 |
|
|
142 |
|
private int focusFrame = -1; |
143 |
private int c2fCS = -1; |
private int c2fCS = -1; |
144 |
public void renderMain(VobScene vs, int into) { |
public void renderMain(VobScene vs, int into) { |
145 |
p("con: "+ context); |
p("con: "+ context); |
146 |
|
focusFrame = into; |
147 |
Object node = context.getAccursed(); |
Object node = context.getAccursed(); |
148 |
Object paper = node; |
Object paper = node; |
149 |
if (RDFUtil.isNodeType(fen, node, PP.Note)) { |
if (RDFUtil.isNodeType(fen, node, PP.Note)) { |
175 |
.render(vs, into, c2fCS, c2fCSInv, hook); |
.render(vs, into, c2fCS, c2fCSInv, hook); |
176 |
} else { |
} else { |
177 |
int zo = (int)(zoom * 100000); |
int zo = (int)(zoom * 100000); |
178 |
int geometry = vs.orthoBoxCS(into, "FocusGeometry",0, zo,0, 1,1, panx, pany); |
int geometry = vs.orthoBoxCS(into, "FocusGeometry",0, zo,0, 1,1, -panx, -pany); |
179 |
|
|
180 |
vs.map.put(new UniquePaperVob(paper.toString()), into, geometry); |
vs.map.put(new UniquePaperVob(paper.toString()), into, geometry); |
181 |
(new SpatialPlane(PP.Note, PP.contains)).renderAWT(vs, into, geometry, |
(new SpatialPlane(PP.Note, PP.contains)).renderAWT(vs, into, geometry, |
225 |
if (m_state[2] == e.BUTTON3_MASK) { |
if (m_state[2] == e.BUTTON3_MASK) { |
226 |
zoom = m_state_zoom * (float) |
zoom = m_state_zoom * (float) |
227 |
Math.exp((m_state[1] - e.getY())/150.0); |
Math.exp((m_state[1] - e.getY())/150.0); |
228 |
return true; |
AbstractUpdateManager.setNoAnimation(); |
229 |
|
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
230 |
|
setZoomPan(oldVobScene, focusFrame); |
231 |
|
return true; |
232 |
|
} else { |
233 |
|
AbstractUpdateManager.chg(); |
234 |
|
return false; |
235 |
|
} |
236 |
} |
} |
237 |
|
|
238 |
// Move by dragging with button 1 |
// Move by dragging with button 1 |
239 |
if (m_state[2] == e.BUTTON1_MASK && e.getID() == MouseEvent.MOUSE_DRAGGED) { |
if (m_state[2] == e.BUTTON1_MASK && e.getID() == MouseEvent.MOUSE_DRAGGED) { |
240 |
|
panx = pan[0] + (m_state[0] - e.getX())/zoom; |
241 |
|
pany = pan[1] + (m_state[1] - e.getY())/zoom; |
242 |
|
|
243 |
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
244 |
; |
setZoomPan(oldVobScene, focusFrame); |
245 |
|
return true; |
246 |
} else { |
} else { |
247 |
; |
AbstractUpdateManager.chg(); |
248 |
|
return false; |
249 |
} |
} |
|
panx = pan[0] - (m_state[0] - e.getX())/zoom; |
|
|
pany = pan[1] - (m_state[1] - e.getY())/zoom; |
|
|
return true; |
|
250 |
} |
} |
251 |
|
|
252 |
// Move around by clicking |
// Move around by clicking |
257 |
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
if (GraphicsAPI.getInstance() instanceof GLAPI) { |
258 |
|
|
259 |
// We must transform into Frame, and then the C2F coordinate system |
// We must transform into Frame, and then the C2F coordinate system |
260 |
int mainctrCS = ((DefaultVobMatcher)oldVobScene.matcher).getCS(0, "Center"); |
int mainctrCS = ((DefaultVobMatcher)oldVobScene.matcher).getCS(0, "FocusCtr"); |
261 |
pa("mainctr"+ mainctrCS); |
//pa("mainctr"+ mainctrCS); |
262 |
|
|
263 |
int frame = ((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP"); |
//int frame = ((DefaultVobMatcher)oldVobScene.matcher).getCS(mainctrCS, "MAINVP"); |
264 |
|
int frame = focusFrame; |
265 |
int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, "C2F"); |
int c2f = ((DefaultVobMatcher)oldVobScene.matcher).getCS(frame, "C2F"); |
266 |
if (c2f < 0) c2f = c2fCS; |
if (c2f < 0) c2f = c2fCS; |
267 |
if(frame < 0 || c2f < 0) |
if(frame < 0 || c2f < 0) |
269 |
|
|
270 |
// XXX vp, not frame! |
// XXX vp, not frame! |
271 |
oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt); |
oldVobScene.coords.inverseTransformPoints3(mainctrCS, pt, pt); |
272 |
|
//oldVobScene.coords.inverseTransformPoints3(frame, pt, pt); |
273 |
oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt); |
oldVobScene.coords.inverseTransformPoints3(c2f, pt, pt); |
274 |
panx = pt[0]; pany = pt[1]; |
panx = pt[0]; pany = pt[1]; |
275 |
|
|
276 |
// XXX current = current.h(d.contains); |
// XXX current = current.h(d.contains); |
277 |
AbstractUpdateManager.chg(); |
//setZoomPan(oldVobScene, focusFrame); |
278 |
|
return false; |
279 |
} else { |
} else { |
280 |
int focusFrame = oldVobScene.matcher.getCS("FocusFrame"); |
int focusFrame = oldVobScene.matcher.getCS("FocusFrame"); |
281 |
float box[] = new float[3]; |
float box[] = new float[3]; |
282 |
box = oldVobScene.coords.transformPoints3(focusFrame, box, null); |
box = oldVobScene.coords.transformPoints3(focusFrame, box, null); |
283 |
float size[] = new float[2]; |
float size[] = new float[2]; |
284 |
oldVobScene.coords.getSqSize(focusFrame, size); |
oldVobScene.coords.getSqSize(focusFrame, size); |
285 |
panx -= ((pt[0] - box[0]) - size[0]/2)/ zoom; |
panx += ((pt[0] - box[0]) - size[0]/2)/ zoom; |
286 |
pany -= ((pt[1] - box[1]) - size[1]/2)/ zoom; |
pany += ((pt[1] - box[1]) - size[1]/2)/ zoom; |
287 |
|
|
288 |
// XXX current = current.h(d.contains); |
// XXX current = current.h(d.contains); |
|
AbstractUpdateManager.chg(); |
|
289 |
} |
} |
|
return false; |
|
290 |
} |
} |
|
|
|
|
|
|
291 |
AbstractUpdateManager.chg(); |
AbstractUpdateManager.chg(); |
292 |
return false; |
return false; |
293 |
} |
} |
294 |
|
|
295 |
|
|
296 |
public void setZoom(float z) { zoom = z; } |
public void setZoom(float z) { zoom = z; } |
297 |
|
public void moveTo(float x, float y) { panx=x; pany=y; } |
|
public void moveTo(float x, float y) { |
|
|
panx=x; |
|
|
pany=y; |
|
|
} |
|
|
|
|
298 |
} |
} |
299 |
|
|