diff --git a/.classpath b/.classpath deleted file mode 100644 index af1430b..0000000 --- a/.classpath +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index 7999f9b..0000000 --- a/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - jzy3d-graphs - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/README.md b/README.md index 7dea2f8..c71ab08 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ -jzy3d-graphs -============ +# jzy3d-graphs -A set of tools to compute and draw 3d graphs layouts based on Gephi Toolkit. +A set of tools to compute and draw 3D graph layouts, +based on the Gephi Toolkit. - +![](doc/graph7.png) -Example programs in src/main/java +Example programs in _src/main/java/_: -org.jzy3d.graphs.trials.ImportAndDrawTrial +[org.jzy3d.graphs.trials.ImportAndDrawTrial]( +src/main/java/org/jzy3d/graphs/trials/ImportAndDrawTrial.java) -More information at http://www.jzy3d.org/plugins-graphs.php +More information on [the homepage](http://www.jzy3d.org/plugins-graphs.php). diff --git a/pom.xml b/pom.xml index 7b89750..f9848ce 100644 --- a/pom.xml +++ b/pom.xml @@ -9,12 +9,8 @@ UTF-8 1.0-beta-6 - - - - org.jzy3d @@ -65,6 +61,7 @@ org.apache.maven.plugins maven-surefire-plugin + 3.0.0-M4 diff --git a/src/main/java/org/gephi/layout/plugin/ForceVectorNodeLayoutData3d.java b/src/main/java/org/gephi/layout/plugin/ForceVectorNodeLayoutData3d.java index 87497ef..447e8cf 100644 --- a/src/main/java/org/gephi/layout/plugin/ForceVectorNodeLayoutData3d.java +++ b/src/main/java/org/gephi/layout/plugin/ForceVectorNodeLayoutData3d.java @@ -1,5 +1,6 @@ /* Copyright 2008-2010 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Bastian Website : http://www.gephi.org @@ -59,3 +60,4 @@ public class ForceVectorNodeLayoutData3d implements LayoutData { public float old_dz = 0; public float freeze = 0f; } + diff --git a/src/main/java/org/gephi/layout/plugin/ForceVectorUtils3d.java b/src/main/java/org/gephi/layout/plugin/ForceVectorUtils3d.java index f5218a5..b0ca263 100644 --- a/src/main/java/org/gephi/layout/plugin/ForceVectorUtils3d.java +++ b/src/main/java/org/gephi/layout/plugin/ForceVectorUtils3d.java @@ -1,6 +1,7 @@ /* Copyright 2008-2010 Gephi -Authors : Mathieu Jacomy +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 +Authors : Mathieu Jacomy Website : http://www.gephi.org This file is part of Gephi. @@ -52,7 +53,7 @@ public static void fcBiRepulsor(Node N1, Node N2, double c) { double xDist = N1.x() - N2.x(); // distance en x entre les deux noeuds double yDist = N1.y() - N2.y(); double zDist = N1.z() - N2.z(); - + double dist = (float) Math.sqrt(xDist * xDist + yDist * yDist + zDist * zDist); // distance tout court if (dist > 0) { @@ -75,7 +76,7 @@ public static void fcBiRepulsor(Node N1, Node N2, double c) { double xDist = N1.x() - N2.x(); // distance en x entre les deux noeuds double yDist = N1.y() - N2.y(); double zDist = N1.z() - N2.z(); - + double dist = (float) Math.sqrt(xDist * xDist + yDist * yDist + zDist * zDist); // distance tout court if (dist > 0) { @@ -237,3 +238,4 @@ protected static double repulsion(double c, double dist) { return 0.001 * c / dist; } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23d.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23d.java index b8dcfdd..8ee0710 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23d.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23d.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -131,7 +132,7 @@ public void goAlgo() { return; } graph = graphModel.getGraphVisible(); - + //this.timeInterval = DynamicUtilities.getVisibleInterval(dynamicModel); graph.readLock(); @@ -551,3 +552,4 @@ private double getWeight(Edge edge) { //} } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23dLayoutData.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23dLayoutData.java index ce4ca36..c6aa704 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23dLayoutData.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas23dLayoutData.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -58,3 +59,4 @@ public class ForceAtlas23dLayoutData implements LayoutData { public double old_dz = 0; public double mass = 1; } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas2Builder.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas2Builder.java index 510da54..2860b71 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas2Builder.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceAtlas2Builder.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -102,4 +103,5 @@ public int getSpeedRank() { return 4; } } -} \ No newline at end of file +} + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceFactory.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceFactory.java index 5e78aec..f65d034 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceFactory.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/ForceFactory.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -618,3 +619,4 @@ public void apply(Node n1, Node n2, double e) { } } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/NodesThread.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/NodesThread.java index 16e4ff9..2a1da22 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/NodesThread.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/NodesThread.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -99,3 +100,4 @@ public void run() { } } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Operation.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Operation.java index 50c8e55..5afde2e 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Operation.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Operation.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -49,3 +50,4 @@ public abstract class Operation { public abstract void execute(); } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeAttract.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeAttract.java index a633837..8218b28 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeAttract.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeAttract.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -67,3 +68,4 @@ public void execute() { f.apply(n1, n2, coefficient); } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeRepulse.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeRepulse.java index dcef171..5236d55 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeRepulse.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeNodeRepulse.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -65,3 +66,4 @@ public void execute() { f.apply(n1, n2); } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRegionRepulse.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRegionRepulse.java index ffacd09..268a264 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRegionRepulse.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRegionRepulse.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -67,3 +68,4 @@ public void execute() { r.applyForce(n, f, theta); } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRepulse.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRepulse.java index 611bf78..e0a666d 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRepulse.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/OperationNodeRepulse.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -65,3 +66,4 @@ public void execute() { f.apply(n, coefficient); } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Region.java b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Region.java index 96e960b..f092c44 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Region.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas23d/Region.java @@ -1,5 +1,6 @@ /* Copyright 2008-2011 Gephi +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 Authors : Mathieu Jacomy Website : http://www.gephi.org @@ -221,7 +222,7 @@ public double getMassCenterY() { public void setMassCenterY(double massCenterY) { this.massCenterY = massCenterY; } - + public double getMassCenterZ() { return massCenterZ; } @@ -230,3 +231,4 @@ public void setMassCenterZ(double massCenterZ) { this.massCenterZ = massCenterZ; } } + diff --git a/src/main/java/org/gephi/layout/plugin/forceAtlas3d/ForceAtlasLayout3d.java b/src/main/java/org/gephi/layout/plugin/forceAtlas3d/ForceAtlasLayout3d.java index d2f7dab..9d7e336 100644 --- a/src/main/java/org/gephi/layout/plugin/forceAtlas3d/ForceAtlasLayout3d.java +++ b/src/main/java/org/gephi/layout/plugin/forceAtlas3d/ForceAtlasLayout3d.java @@ -1,6 +1,7 @@ /* Copyright 2008-2010 Gephi -Authors : Mathieu Jacomy +SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0 +Authors : Mathieu Jacomy Website : http://www.gephi.org This file is part of Gephi. @@ -511,3 +512,4 @@ public void setAdjustSizes(Boolean adjustSizes) { this.adjustSizes = adjustSizes; } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/Combine3d.java b/src/main/java/org/gephi/layout/plugin/openord3d/Combine3d.java index 0a8d38b..53611e8 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/Combine3d.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/Combine3d.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -172,3 +173,4 @@ public void waitForIteration() { } } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/Control3d.java b/src/main/java/org/gephi/layout/plugin/openord3d/Control3d.java index 60dcabf..546ed7c 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/Control3d.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/Control3d.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -326,3 +327,4 @@ public void setProgressTicket(ProgressTicket progressTicket) { this.progressTicket = progressTicket; } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/DensityGrid3d.java b/src/main/java/org/gephi/layout/plugin/openord3d/DensityGrid3d.java index f0c2071..7697799 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/DensityGrid3d.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/DensityGrid3d.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -249,3 +250,4 @@ public static float getViewSize() { * = bins[i][j].clone(); } } return densityGrid; } */ } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/Node3d.java b/src/main/java/org/gephi/layout/plugin/openord3d/Node3d.java index 6e4360d..5808959 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/Node3d.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/Node3d.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -69,3 +70,4 @@ protected Node3d clone() { return clone; } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayout.java b/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayout.java index 1bf4b2c..e2719d2 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayout.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayout.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -503,3 +504,4 @@ public void setProgressTicket(ProgressTicket progressTicket) { this.progressTicket = progressTicket; } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayoutBuilder.java b/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayoutBuilder.java index 177c45a..c649f3a 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayoutBuilder.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/OpenOrd3dLayoutBuilder.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -93,3 +94,4 @@ public int getSpeedRank() { } } } + diff --git a/src/main/java/org/gephi/layout/plugin/openord3d/Worker3d.java b/src/main/java/org/gephi/layout/plugin/openord3d/Worker3d.java index 705f6f6..08eef61 100644 --- a/src/main/java/org/gephi/layout/plugin/openord3d/Worker3d.java +++ b/src/main/java/org/gephi/layout/plugin/openord3d/Worker3d.java @@ -1,4 +1,5 @@ /* +SPDX-License-Identifier: BSD-3-Clause Copyright 2007 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. @@ -356,3 +357,4 @@ public int getId() { return id; } } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutController.java b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutController.java index bfbb327..f1c1c93 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutController.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutController.java @@ -17,53 +17,53 @@ public class GephiLayoutController { public GephiLayoutController(){ init(); } - + public void init(){ projectController = Lookup.getDefault().lookup(ProjectController.class); - projectController.newProject(); + projectController.newProject(); //graphController = new NetlightGraphController(); } - + /****************/ public Workspace newWorkspace(){ projectController = Lookup.getDefault().lookup(ProjectController.class); - + Workspace w = projectController.newWorkspace(projectController.getCurrentProject()); - + workspaces.add(w); return w; } - + public List getWorkspaces() { return workspaces; } /****************/ - + public GraphModel getGraphModel(){ return getGraphModel(null); } - + public GraphModel getGraphModel(Workspace workspace){ projectController = Lookup.getDefault().lookup(ProjectController.class); - + if(workspace!=null) projectController.openWorkspace(workspace); //new NetlightGraphController().getModel(); return Lookup.getDefault().lookup(GraphController.class).getGraphModel(); } - + /*public GraphSheet getGraphSheet(){ return getGraphSheet(null); }*/ - + /*public GraphSheet getGraphSheet(Workspace workspace){ projectController = Lookup.getDefault().lookup(ProjectController.class); - + //if(workspace!=null) projectController.openWorkspace(workspace); - + PreviewControllerImpl controller; if(!workspacePreview.containsKey(workspace)){ controller = (PreviewControllerImpl)Lookup.getDefault().lookup(PreviewController.class); @@ -74,20 +74,20 @@ public GraphModel getGraphModel(Workspace workspace){ } controller.buildGraph(); //System.out.println(controller); - + return controller.getGraphSheet(); }*/ - + /****************/ - + public void setWorkspaceLayout(Workspace workspace, Layout layout){ layoutMap.put(workspace, layout); } - + public Layout getLayout(Workspace workspace){ return layoutMap.get(workspace); } - + /****************/ public ProjectController getProjectController() { @@ -101,16 +101,17 @@ public ProjectController getProjectController() { public PreviewController getPreviewController() { return vc; }*/ - + /****************/ - + protected ProjectController projectController; protected PreviewController vc; protected GraphController graphController; - + protected Map layoutMap = new HashMap(); - - protected List workspaces = new ArrayList(); - + + protected List workspaces = new ArrayList(); + protected Map workspacePreview = new HashMap(); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutFactory.java b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutFactory.java index e0aa7d3..56b8ef5 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutFactory.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutFactory.java @@ -52,3 +52,4 @@ public static Layout createOpenOrd(GraphModel g) { return layout; } } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutRunner.java b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutRunner.java index 72653ed..eae41b3 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutRunner.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/GephiLayoutRunner.java @@ -22,7 +22,7 @@ public void run(Layout layout, int steps){ for (int i = 0; i < steps && layout.canAlgo(); i++) layout.goAlgo(); } - + public void run(Layout layout, int steps, IOnStepDoneListener listener){ layout.initAlgo(); for (int i = 0; i < steps /*&& layout.canAlgo()*/; i++) { @@ -30,7 +30,7 @@ public void run(Layout layout, int steps, IOnStepDoneListener listener){ listener.stepDone(layout); } } - + /*******************/ public void runAll(GephiLayoutController store){ @@ -49,14 +49,14 @@ public void runAll(Collection workspaces, GephiLayoutController store } executor.shutdown(); } - + protected List> createFutures(ExecutorService executor, Collection workspaces, GephiLayoutController store){ List> fs = new ArrayList>(); for(Workspace w: workspaces) fs.add(executor.submit(createLayoutRunnable(w, store.getLayout(w)))); return fs; } - + protected Runnable createLayoutRunnable(final Workspace workspace, final Layout layout) { return new Runnable() { @Override @@ -70,3 +70,4 @@ public void run() { }; } } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/IOnStepDoneListener.java b/src/main/java/org/jzy3d/graphs/gephi/layout/IOnStepDoneListener.java index 71f58d8..249ff1a 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/IOnStepDoneListener.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/IOnStepDoneListener.java @@ -5,3 +5,4 @@ public interface IOnStepDoneListener { public void stepDone(Layout layout); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/LayoutChangedToConsole.java b/src/main/java/org/jzy3d/graphs/gephi/layout/LayoutChangedToConsole.java index 4928d49..4b15283 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/LayoutChangedToConsole.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/LayoutChangedToConsole.java @@ -1,31 +1,31 @@ package org.jzy3d.graphs.gephi.layout; + import org.gephi.graph.api.Graph; import org.gephi.graph.api.GraphModel; import org.gephi.graph.api.Node; import org.gephi.layout.spi.Layout; import org.jzy3d.maths.Coord3d; - - public class LayoutChangedToConsole implements IOnStepDoneListener { public LayoutChangedToConsole(GraphModel g){ this.g = g; } - + @Override public void stepDone(Layout layout) { Graph graph = g.getGraph(); - + for(Node n: graph.getNodes()){ - - Coord3d center = new Coord3d(n.x(), n.y(), n.z()); + + Coord3d center = new Coord3d(n.x(), n.y(), n.z()); /*NodeData nd = n.getNodeData(); - float radius = n.getRadius(); + float radius = n.getRadius(); String label = nd.getLabel();*/ - + System.out.println(n.getLabel() + " " + center); } - + } protected GraphModel g; } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/layout/WorkspaceLayoutSettings.java b/src/main/java/org/jzy3d/graphs/gephi/layout/WorkspaceLayoutSettings.java index 0e4208c..40f580e 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/layout/WorkspaceLayoutSettings.java +++ b/src/main/java/org/jzy3d/graphs/gephi/layout/WorkspaceLayoutSettings.java @@ -10,20 +10,21 @@ public class WorkspaceLayoutSettings { public void setLayoutScale(Workspace workspace, Coord2d scale){ scales.put(workspace, scale); } - + public Coord2d getLayoutScale(Workspace workspace){ return scales.get(workspace); } - + public void setLayoutCenter(Workspace workspace, Coord2d center){ centers.put(workspace, center); } - + public Coord2d getLayoutCenter(Workspace workspace){ return centers.get(workspace); } - - + + protected Map scales = new HashMap(); protected Map centers = new HashMap(); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphColorMapper.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphColorMapper.java index 46f11d0..63854c2 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphColorMapper.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphColorMapper.java @@ -149,3 +149,4 @@ public void updateLines(){ } } } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRenderer.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRenderer.java index f0150b4..b22ca0a 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRenderer.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRenderer.java @@ -53,10 +53,10 @@ public static GraphRenderer create(GraphModel g, GraphRendererSettings settings, /* * view.addViewLifecycleChangedListener(new * IViewLifecycleEventListener() { - * + * * @Override public void viewWillRender(ViewLifecycleEvent e) { * System.out.println("alpha"); updatePointAlpha(); } - * + * * @Override public void viewHasInit(ViewLifecycleEvent e) { } }); */ @@ -124,7 +124,7 @@ public int getLayoutStepRatio() { * Step ratio is the number of layout steps required to update the chart. * Sayed differently, if R is number of rendering occurence, and L number of * layout steps, the resulting referesh ratio is R/L. - * + * * @param stepRatio */ public void setLayoutStepRatio(int stepRatio) { @@ -450,11 +450,11 @@ public Chart getChart() { * public NewtMousePickingController getChartMouseController(){ * return (NewtMousePickingController) * ((CanvasAWT)getChart().getCanvas()).getMouseListeners()[0]; } - * + * * public PickingSupport getPickingSupport(){ try{ return * getChartMouseController().getPickingSupport(); } catch(ClassCastException * e){ return null; } } - * + * * public void registerNodeRepresentationPicking(Node n){ Sphere s = * getNodeRepresentation(n); PickingSupport sp = getPickingSupport(); * if(sp!=null) sp.registerDrawableObject(s, n); } @@ -479,3 +479,4 @@ public void openChart() { protected Map nodeLabelRepresentation = new HashMap(); protected Map edgeRepresentation = new HashMap(); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRendererSettings.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRendererSettings.java index 4597604..61d4779 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRendererSettings.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/GraphRendererSettings.java @@ -246,3 +246,4 @@ public void resetSelection() { Map selection = new HashMap(); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRenderer.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRenderer.java index 4a246ef..5c599e8 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRenderer.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRenderer.java @@ -10,7 +10,8 @@ public interface IGraphRenderer { public void createOrUpdateNode(Node n); public void createOrUpdateEdge(Edge e) ; - + public Sphere createNodeSphere(Coord3d c, Color color, Color wireframe, float radius, int slicing); public LineStrip createEdgeLine(Coord3d c1, Coord3d c2, Color color, float width); } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRendererSettings.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRendererSettings.java index 9ca4475..4b5871f 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRendererSettings.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/IGraphRendererSettings.java @@ -12,15 +12,16 @@ public interface IGraphRendererSettings { public Color getEdgeColorSource(Edge e); public Color getEdgeColorTarget(Edge e); - + public boolean isNodeLabelDisplayed(); public boolean isNodePointDisplayed(); public void setNodeLabelDisplayed(boolean status); public void setNodePointDisplayed(boolean status); - + public void setSelected(Node n, boolean value); public boolean isSelected(Node n); public void resetSelection(); - - + + } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/renderer/TextRendererType.java b/src/main/java/org/jzy3d/graphs/gephi/renderer/TextRendererType.java index e4f29c6..7ffc1b3 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/renderer/TextRendererType.java +++ b/src/main/java/org/jzy3d/graphs/gephi/renderer/TextRendererType.java @@ -4,3 +4,4 @@ public enum TextRendererType { BITMAP, BILLBOARD } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiController.java b/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiController.java index 1d62f44..033f7ca 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiController.java +++ b/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiController.java @@ -29,7 +29,7 @@ public class GephiController { Workspace workspace; - + /**Init a project - and therefore a workspace*/ public Workspace init() { ProjectController pc = Lookup.getDefault().lookup(ProjectController.class); @@ -38,16 +38,16 @@ public Workspace init() { pc.openWorkspace(workspace); return workspace; } - + /** random init required to have z!=0*/ - public void randomizeGraphLayout(GraphModel g){ + public void randomizeGraphLayout(GraphModel g){ for(Node n: g.getGraph().getNodes()){ n.setX((float)Math.random()); n.setY((float)Math.random()); n.setZ((float)Math.random()); } } - + public void sizeWithNodeNeighbourCount(GraphModel g){ for(Node n: g.getGraph().getNodes()){ int c = getNeighbourCount(g,n); @@ -55,7 +55,7 @@ public void sizeWithNodeNeighbourCount(GraphModel g){ n.setSize(Math.min(c,1)); } } - + public int getNeighbourCount(GraphModel g, Node n){ NodeIterable neigh = g.getGraphVisible().getNeighbors(n); int k = 0; @@ -64,11 +64,11 @@ public int getNeighbourCount(GraphModel g, Node n){ } return k; } - + public GraphModel getGraph(){ return Lookup.getDefault().lookup(GraphController.class).getGraphModel(); } - + public static void layoutAuto(GraphModel graphModel){ AutoLayout autoLayout = new AutoLayout(1, TimeUnit.MINUTES); autoLayout.setGraphModel(graphModel); @@ -82,7 +82,7 @@ public static void layoutAuto(GraphModel graphModel){ //Export } - + public void importGraph(String f){ ProjectController pc = Lookup.getDefault().lookup(ProjectController.class); pc.newProject(); @@ -98,7 +98,7 @@ public void importGraph(String f){ container = importController.importFile(file); container.getLoader().setEdgeDefault(EdgeDirectionDefault.DIRECTED); //Force DIRECTED //container.setAllowAutoNode(false); //Don't create missing nodes - + } catch (Exception ex) { ex.printStackTrace(); return; @@ -107,7 +107,7 @@ public void importGraph(String f){ //Append imported data to GraphAPI importController.process(container, new DefaultProcessor(), workspace); } - + /** * "gexf" @@ -117,7 +117,7 @@ public void importGraph(String f){ public void save(String filename){ save(filename, "graphml"); } - + public void save(String filename, String format){ File out = new File(filename); if(!out.getParentFile().exists()) @@ -129,19 +129,19 @@ public void save(String filename, String format){ try { ec.exportFile(out, exporter); // ec.exportFile(new File(filename)); - + } catch (IOException ex) { ex.printStackTrace(); return; } } - + public void exportPdf(String file) throws IOException { ExportController ec = Lookup.getDefault().lookup(ExportController.class); ec.exportFile(new File(file)); - + //PDF Exporter config and export to Byte array /* PDFExporter pdfExporter = (PDFExporter) ec.getExporter("pdf"); @@ -150,22 +150,23 @@ public void exportPdf(String file) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ec.exportStream(baos, pdfExporter); byte[] pdf = baos.toByteArray();*/ - + //StringWriter stringWriter = new StringWriter(); //ec.exportWriter(stringWriter, (CharacterExporter) exporterGraphML); //System.out.println(stringWriter.toString()); //Uncomment this line } - + /* EDIT CURRENT GRAPH */ - + int nn = 0; int ne = 0; - + Map nodes = new HashMap(); /** - * memorize store a map of name->node to allow building edges by node string names. + * memorize store a map of name to node, + * to allow building edges by node string names. */ public Node addNode(String name, boolean memorize) { GraphModel graph = getGraph(); @@ -181,7 +182,7 @@ public Node addNode(String name, boolean memorize) { public void addEdge(String n1, String n2, int value) { addEdge(n1, n2, value, false); } - + public void addEdge(String n1, String n2, int value, boolean onlyIfNon0) { Node node1 = nodes.get(n1); Node node2 = nodes.get(n2); @@ -199,18 +200,18 @@ public void addEdge(String n1, String n2, int value, boolean onlyIfNon0) { addEdge(node1, node2, value); } } - + public Node addNode(String name) { return addNode(name, false); } - + public void addEdge(Node n1, Node n2, int value) { GraphModel graph = getGraph(); Edge e1 = graph.factory().newEdge(n1, n2, value, true); graph.getDirectedGraph().addEdge(e1); ne++; } - + public void printInfo(){ GraphModel graph = getGraph(); DirectedGraph directedGraph = graph.getDirectedGraph(); @@ -222,7 +223,7 @@ public void printInfo(){ //System.out.println("Edges: "+undirectedGraph.getEdgeCount()); //The mutual edge is automatically merged } - + public GraphModel editCurrentGraph() { //Get a graph model - it exists because we have a workspace GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); @@ -279,7 +280,8 @@ public GraphModel editCurrentGraph() { /*for(Node n : directedGraph.getNodes().toArray()) { directedGraph.removeNode(n); }*/ - + return graphModel; } } + diff --git a/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiGraphGenerator.java b/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiGraphGenerator.java index 38f8b34..0c9fc17 100644 --- a/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiGraphGenerator.java +++ b/src/main/java/org/jzy3d/graphs/gephi/workspace/GephiGraphGenerator.java @@ -11,7 +11,7 @@ public class GephiGraphGenerator { public void random(Workspace workspace, int n, double wiringProba){ //Container container = Lookup.getDefault().lookup(Container.class); Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer(); - + RandomGraph randomGraph = new RandomGraph(); randomGraph.setNumberOfNodes(n); randomGraph.setWiringProbability(wiringProba); @@ -21,21 +21,22 @@ public void random(Workspace workspace, int n, double wiringProba){ ImportController importController = Lookup.getDefault().lookup(ImportController.class); importController.process(container, new DefaultProcessor(), workspace); } - + // TODO : fixme public void wattsStrogatz(Workspace workspace, int n, int n2, double wiringProba){ //Container container = Lookup.getDefault().lookup(Container.class); Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer(); - + /*WattsStrogatz wattsStrogatz = new WattsStrogatz(); wattsStrogatz.setNumberOfNodes(n); wattsStrogatz.setNumberOfNeighbors(n2); wattsStrogatz.setRewiringProbability(wiringProba); wattsStrogatz.generate(container.getLoader());*/ - + //Append container to graph structure ImportController importController = Lookup.getDefault().lookup(ImportController.class); importController.process(container, new DefaultProcessor(), workspace); } } + diff --git a/src/main/java/org/jzy3d/graphs/trials/ImportAndDrawTrial.java b/src/main/java/org/jzy3d/graphs/trials/ImportAndDrawTrial.java index 18f9bdf..db6bc73 100644 --- a/src/main/java/org/jzy3d/graphs/trials/ImportAndDrawTrial.java +++ b/src/main/java/org/jzy3d/graphs/trials/ImportAndDrawTrial.java @@ -1,19 +1,20 @@ /* + * SPDX-License-Identifier: BSD-2-Clause * Copyright (c) Since 2017, Martin Pernollet - * All rights reserved. + * All rights reserved. * * Redistribution in binary form, with or without modification, is permitted. * Edition of source files is allowed. * Redistribution of original or modified source files is FORBIDDEN. * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -35,7 +36,7 @@ public class ImportAndDrawTrial extends GephiController{ public static int LAYOUT_STEPS = 5000; public static void main(String[] args){ System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"); - + // workspace GephiController controller = new GephiController(); controller.init(); @@ -73,3 +74,4 @@ public static void main(String[] args){ runner.run(layout, LAYOUT_STEPS, renderer); } } + diff --git a/src/main/java/org/jzy3d/graphs/trials/RandomGraphTrial.java b/src/main/java/org/jzy3d/graphs/trials/RandomGraphTrial.java index b5ad3ea..6f33e04 100644 --- a/src/main/java/org/jzy3d/graphs/trials/RandomGraphTrial.java +++ b/src/main/java/org/jzy3d/graphs/trials/RandomGraphTrial.java @@ -1,5 +1,5 @@ -package org.jzy3d.graphs.trials; /* +SPDX-License-Identifier: AGPL-3.0-or-later Copyright 2008-2010 Gephi Authors : Mathieu Bastian Website : http://www.gephi.org @@ -19,8 +19,7 @@ License, or (at your option) any later version. You should have received a copy of the GNU Affero General Public License along with Gephi. If not, see . */ - - +package org.jzy3d.graphs.trials; import java.io.IOException; @@ -68,3 +67,4 @@ public static void main(String[] args) throws IOException{ } } + diff --git a/src/main/java/org/jzy3d/graphs/trials/WattsStrogatzTrial.java b/src/main/java/org/jzy3d/graphs/trials/WattsStrogatzTrial.java index 4ec94e6..96d4d2f 100644 --- a/src/main/java/org/jzy3d/graphs/trials/WattsStrogatzTrial.java +++ b/src/main/java/org/jzy3d/graphs/trials/WattsStrogatzTrial.java @@ -1,5 +1,5 @@ -package org.jzy3d.graphs.trials; /* +SPDX-License-Identifier: AGPL-3.0-or-later Copyright 2008-2010 Gephi Authors : Mathieu Bastian Website : http://www.gephi.org @@ -19,8 +19,7 @@ License, or (at your option) any later version. You should have received a copy of the GNU Affero General Public License along with Gephi. If not, see . */ - - +package org.jzy3d.graphs.trials; import java.io.File; @@ -41,7 +40,7 @@ public class WattsStrogatzTrial extends GephiController{ public static void main(String[] args){ System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"); - + // controller GephiController controller = new GephiController(); Workspace w = controller.init(); @@ -75,3 +74,4 @@ public static void main(String[] args){ runner.run(layout, LAYOUT_STEPS, representation); } } + diff --git a/src/main/java/org/jzy3d/graphs/trials/facebook2/ConvertToGraphML.java b/src/main/java/org/jzy3d/graphs/trials/facebook2/ConvertToGraphML.java index d5af5c1..8a963dc 100644 --- a/src/main/java/org/jzy3d/graphs/trials/facebook2/ConvertToGraphML.java +++ b/src/main/java/org/jzy3d/graphs/trials/facebook2/ConvertToGraphML.java @@ -1,4 +1,5 @@ package org.jzy3d.graphs.trials.facebook2; + import java.io.File; import java.io.IOException; import java.util.List; @@ -7,7 +8,6 @@ import org.jzy3d.graphs.gephi.workspace.GephiController; import org.jzy3d.io.FileReader; - public class ConvertToGraphML { public static String TRAIN = "data/train/"; public static String GRAPH = "data/graphs/"; @@ -51,3 +51,4 @@ private static void processGraph(GephiController gephi, String train, String gra System.out.println("saved " + train); } } + diff --git a/src/main/java/org/jzy3d/graphs/trials/facebook2/DrawGraph.java b/src/main/java/org/jzy3d/graphs/trials/facebook2/DrawGraph.java index 76d5825..5638bd5 100644 --- a/src/main/java/org/jzy3d/graphs/trials/facebook2/DrawGraph.java +++ b/src/main/java/org/jzy3d/graphs/trials/facebook2/DrawGraph.java @@ -1,6 +1,5 @@ package org.jzy3d.graphs.trials.facebook2; - import org.gephi.layout.spi.Layout; import org.jzy3d.chart.Chart; import org.jzy3d.graphs.gephi.layout.GephiLayoutFactory; @@ -55,3 +54,4 @@ public static void main(String[] args){ runner.run(layout, LAYOUT_STEPS, renderer); } } +