Author: paperwing
Date: 2011-12-21 09:13:12 -0800 (Wed, 21 Dec 2011)
New Revision: 27853
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MapGraphics.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/CoordinatorData.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/RenderBoundingBoxProcedure.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/CameraInputProcessor.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/InputProcessor.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/NetworkChangeInputProcessor.java
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/.classpath
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/GraphicsData.java
Log:
commit before attempt to link Graphics objects for Bird's Eye View data
exchange using the Coordinator
Modified: csplugins/trunk/toronto/yuedong/paperwing-impl/.classpath
===================================================================
--- csplugins/trunk/toronto/yuedong/paperwing-impl/.classpath 2011-12-21
17:08:07 UTC (rev 27852)
+++ csplugins/trunk/toronto/yuedong/paperwing-impl/.classpath 2011-12-21
17:13:12 UTC (rev 27853)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" output="target/classes"
path="src/main/java"/>
+ <classpathentry excluding="org/cytoscape/paperwing/internal/input/"
kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes"
path="src/main/resources"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
<classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
2011-12-21 17:08:07 UTC (rev 27852)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/Graphics.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -147,6 +147,8 @@
} else {
coordinator =
BirdsEyeViewCoordinator.createCoordinator(networkView);
}
+
+ System.out.println("coordinator found for default graphics " +
this);
renderProcedures = new LinkedHashMap<String,
ReadOnlyGraphicsProcedure>();
renderProcedures.put("nodes", new RenderNodesProcedure());
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MapGraphics.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MapGraphics.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MapGraphics.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,13 @@
+package org.cytoscape.paperwing.internal;
+
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.VisualLexicon;
+
+public class MapGraphics extends Graphics {
+
+ public MapGraphics(CyNetworkView networkView, VisualLexicon
visualLexicon) {
+ super(networkView, visualLexicon);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/MapGraphics.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/CoordinatorData.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/CoordinatorData.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/CoordinatorData.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,52 @@
+package org.cytoscape.paperwing.internal.graphics;
+
+import org.cytoscape.paperwing.internal.Vector3;
+
+public class CoordinatorData {
+ private Vector3 topLeftBound;
+ private Vector3 topRightBound;
+ private Vector3 bottomLeftBound;
+ private Vector3 bottomRightBound;
+
+ // This class only works with copies of Vector3 objects
+ public CoordinatorData() {
+ topLeftBound = new Vector3();
+ topRightBound = new Vector3();
+
+ bottomLeftBound = new Vector3();
+ bottomRightBound = new Vector3();
+ }
+
+ public Vector3 getTopLeftBound() {
+ return new Vector3(topLeftBound);
+ }
+
+ public void setTopLeftBound(Vector3 topLeftBound) {
+ this.topLeftBound.set(topLeftBound);
+ }
+
+ public Vector3 getTopRightBound() {
+ return new Vector3(topRightBound);
+ }
+
+ public void setTopRightBound(Vector3 topRightBound) {
+ this.topRightBound.set(topRightBound);
+ }
+
+ public Vector3 getBottomLeftBound() {
+ return new Vector3(bottomLeftBound);
+ }
+
+ public void setBottomLeftBound(Vector3 bottomLeftBound) {
+ this.bottomLeftBound.set(bottomLeftBound);
+ }
+
+ public Vector3 getBottomRightBound() {
+ return new Vector3(bottomRightBound);
+ }
+
+ public void setBottomRightBound(Vector3 bottomRightBound) {
+ this.bottomRightBound.set(bottomRightBound);
+ }
+
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/CoordinatorData.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/GraphicsData.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/GraphicsData.java
2011-12-21 17:08:07 UTC (rev 27852)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/GraphicsData.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -48,6 +48,7 @@
private boolean disableHovering;
private GraphicsSelectionData selectionData;
+ private CoordinatorData coordinatorData;
private GL2 glContext;
@@ -55,6 +56,7 @@
public GraphicsData() {
selectionData = new GraphicsSelectionData();
+ coordinatorData = new CoordinatorData();
camera = new SimpleCamera();
}
@@ -170,4 +172,12 @@
public int getFramesElapsed() {
return framesElapsed;
}
+
+ public void setCoordinatorData(CoordinatorData coordinatorData) {
+ this.coordinatorData = coordinatorData;
+ }
+
+ public CoordinatorData getCoordinatorData() {
+ return coordinatorData;
+ }
}
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/RenderBoundingBoxProcedure.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/RenderBoundingBoxProcedure.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/RenderBoundingBoxProcedure.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,40 @@
+package org.cytoscape.paperwing.internal.graphics;
+
+import javax.media.opengl.GL2;
+
+import org.cytoscape.paperwing.internal.SimpleCamera;
+import org.cytoscape.paperwing.internal.Vector3;
+
+public class RenderBoundingBoxProcedure implements ReadOnlyGraphicsProcedure {
+
+ @Override
+ public void initialize(GraphicsData graphicsData) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void execute(GraphicsData graphicsData) {
+ GL2 gl = graphicsData.getGlContext();
+
+ Vector3 topLeft =
graphicsData.getCoordinatorData().getTopLeftBound();
+ Vector3 topRight =
graphicsData.getCoordinatorData().getTopRightBound();
+
+ Vector3 bottomLeft =
graphicsData.getCoordinatorData().getBottomLeftBound();
+ Vector3 bottomRight =
graphicsData.getCoordinatorData().getBottomRightBound();
+
+ gl.glDisable(GL2.GL_LIGHTING);
+ gl.glColor3f(0.7f, 0.7f, 0.6f);
+
+ // Below uses converted 3D coordinates
+ gl.glBegin(GL2.GL_LINE_LOOP);
+ gl.glVertex3d(topLeft.x(), topLeft.y(), topLeft.z());
+ gl.glVertex3d(bottomLeft.x(), bottomLeft.y(), bottomLeft.z());
+ gl.glVertex3d(bottomRight.x(), bottomRight.y(),
bottomRight.z());
+ gl.glVertex3d(topRight.x(), topRight.y(), topRight.z());
+ gl.glEnd();
+
+ gl.glEnable(GL2.GL_LIGHTING);
+ }
+
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/graphics/RenderBoundingBoxProcedure.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/CameraInputProcessor.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/CameraInputProcessor.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/CameraInputProcessor.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,106 @@
+package org.cytoscape.paperwing.internal.input;
+
+import java.awt.event.KeyEvent;
+import java.util.Set;
+
+import org.cytoscape.paperwing.internal.KeyboardMonitor;
+import org.cytoscape.paperwing.internal.MouseMonitor;
+import org.cytoscape.paperwing.internal.SimpleCamera;
+import org.cytoscape.paperwing.internal.graphics.GraphicsData;
+
+public class CameraInputProcessor implements InputProcessor {
+
+ @Override
+ public void processInput(KeyboardMonitor keys, MouseMonitor mouse,
+ GraphicsData graphicsData) {
+
+ Set<Integer> held = keys.getHeld();
+ SimpleCamera camera = graphicsData.getCamera();
+
+ processCameraTranslation(held, camera);
+ processCameraRoll(held, camera);
+ processCameraRotation(held, camera);
+ }
+
+ private void processCameraTranslation(Set<Integer> held, SimpleCamera
camera) {
+ if (held.contains(KeyEvent.VK_W)) {
+ camera.moveUp();
+ }
+
+ if (held.contains(KeyEvent.VK_S)) {
+ camera.moveDown();
+ }
+
+ if (held.contains(KeyEvent.VK_A)) {
+ camera.moveLeft();
+ }
+
+ if (held.contains(KeyEvent.VK_D)) {
+ camera.moveRight();
+ }
+
+ if (held.contains(KeyEvent.VK_Q)) {
+ camera.moveBackward();
+ }
+
+ if (held.contains(KeyEvent.VK_E)) {
+ camera.moveForward();
+ }
+ }
+
+ private void processCameraRotation(Set<Integer> held, SimpleCamera
camera) {
+
+ // If shift is pressed, perform orbit camera movement
+ if (held.contains(KeyEvent.VK_SHIFT)) {
+
+ if (held.contains(KeyEvent.VK_LEFT)) {
+ camera.orbitLeft();
+ }
+
+ if (held.contains(KeyEvent.VK_RIGHT)) {
+ camera.orbitRight();
+ }
+
+ if (held.contains(KeyEvent.VK_UP)) {
+ camera.orbitUp();
+ }
+
+ if (held.contains(KeyEvent.VK_DOWN)) {
+ camera.orbitDown();
+ }
+
+ // Otherwise, turn camera in a first-person like fashion
+ } else {
+
+ if (held.contains(KeyEvent.VK_LEFT)) {
+ camera.turnLeft(4);
+ }
+
+ if (held.contains(KeyEvent.VK_RIGHT)) {
+ camera.turnRight(4);
+ }
+
+ if (held.contains(KeyEvent.VK_UP)) {
+ camera.turnUp(4);
+ }
+
+ if (held.contains(KeyEvent.VK_DOWN)) {
+ camera.turnDown(4);
+ }
+ }
+ }
+
+ private void processCameraRoll(Set<Integer> held, SimpleCamera camera) {
+
+ // Roll camera clockwise
+ if (held.contains(KeyEvent.VK_Z)) {
+ camera.rollClockwise();
+ }
+
+ // Roll camera counter-clockwise
+ if (held.contains(KeyEvent.VK_X)) {
+ camera.rollCounterClockwise();
+ }
+ }
+
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/CameraInputProcessor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/InputProcessor.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/InputProcessor.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/InputProcessor.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,9 @@
+package org.cytoscape.paperwing.internal.input;
+
+import org.cytoscape.paperwing.internal.KeyboardMonitor;
+import org.cytoscape.paperwing.internal.MouseMonitor;
+import org.cytoscape.paperwing.internal.graphics.GraphicsData;
+
+public interface InputProcessor {
+ public void processInput(KeyboardMonitor keys, MouseMonitor mouse,
GraphicsData graphicsData);
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/InputProcessor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/NetworkChangeInputProcessor.java
===================================================================
---
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/NetworkChangeInputProcessor.java
(rev 0)
+++
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/NetworkChangeInputProcessor.java
2011-12-21 17:13:12 UTC (rev 27853)
@@ -0,0 +1,85 @@
+package org.cytoscape.paperwing.internal.input;
+
+import java.awt.event.KeyEvent;
+import java.util.Set;
+
+import org.cytoscape.model.CyNode;
+import org.cytoscape.paperwing.internal.KeyboardMonitor;
+import org.cytoscape.paperwing.internal.MouseMonitor;
+import org.cytoscape.paperwing.internal.Vector3;
+import org.cytoscape.paperwing.internal.graphics.GraphicsData;
+import org.cytoscape.paperwing.internal.graphics.GraphicsUtility;
+import org.cytoscape.view.model.CyNetworkView;
+import org.cytoscape.view.model.View;
+import org.cytoscape.view.presentation.property.RichVisualLexicon;
+
+public class NetworkChangeInputProcessor implements InputProcessor {
+
+ @Override
+ public void processInput(KeyboardMonitor keys, MouseMonitor mouse,
+ GraphicsData graphicsData) {
+
+ Set<Integer> pressed = keys.getPressed();
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+ }
+
+ public static void processNetworkChangeInput() {
+
+ }
+
+ private static void processCreateNode(Set<Integer> pressed,
CyNetworkView networkView) {
+ = graphicsData.getNetworkView();
+
+ // Project mouse coordinates into 3d space to determine where
to put the node
+ Vector3 projection = GraphicsUtility.projectScreenCoordinates(
+ mouse.x(), mouse.y(),
graphicsData.getScreenWidth(),
+ graphicsData.getScreenHeight(),
camera.getDistance(), camera);
+
+ // Create a new node
+ if (pressed.contains(KeyEvent.VK_N)) {
+ CyNode added = networkView.getModel().addNode();
+ networkView.updateView();
+
+ View<CyNode> viewAdded = networkView.getNodeView(added);
+
+ double distanceScale = graphicsData.getDistanceScale();
+
+ // TODO: Maybe throw an exception if viewAdded is null
+ if (viewAdded != null) {
+ viewAdded.setVisualProperty(
+
RichVisualLexicon.NODE_X_LOCATION, projection.x()
+ *
distanceScale);
+ viewAdded.setVisualProperty(
+
RichVisualLexicon.NODE_Y_LOCATION, projection.y()
+ *
distanceScale);
+ viewAdded.setVisualProperty(
+
RichVisualLexicon.NODE_Z_LOCATION, projection.z()
+ *
distanceScale);
+
+ // Set the node to be hovered
+ // TODO: This might not be needed if the node
were added
+ // through some way other than the mouse
+
graphicsData.setHoverNodeIndex(added.getIndex());
+ }
+ }
+ }
+
+ private static void processCreateEdge(Set<Integer> pressed,
GraphicsData graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+
+ private static void processDeleteNode(Set<Integer> pressed,
GraphicsData graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+
+ private void processDeleteEdge(Set<Integer> pressed, GraphicsData
graphicsData) {
+ CyNetworkView networkView = graphicsData.getNetworkView();
+
+
+ }
+}
Property changes on:
csplugins/trunk/toronto/yuedong/paperwing-impl/src/main/java/org/cytoscape/paperwing/internal/input/NetworkChangeInputProcessor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.