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.

Reply via email to