Skip to content
Permalink
Browse files

WIP: new viz-engine

  • Loading branch information...
eduramiba committed Jun 11, 2018
0 parents commit e228521f21b1c9d78c41eee6196ab96a8fa000cc
Showing with 2,751,173 additions and 0 deletions.
  1. +229 −0 .gitignore
  2. +23 −0 README.md
  3. +150 −0 demo/pom.xml
  4. +43 −0 demo/src/main/java/org/gephi/viz/engine/demo/GraphLoader.java
  5. +74 −0 demo/src/main/java/org/gephi/viz/engine/demo/Main.java
  6. +66 −0 demo/src/main/java/org/gephi/viz/engine/demo/MainGLCanvas.java
  7. +15,734 −0 demo/src/main/resources/samples/Java.gexf
  8. +1,394 −0 demo/src/main/resources/samples/Les Miserables.gexf
  9. +52,739 −0 demo/src/main/resources/samples/Power Grid.gml
  10. +250,961 −0 demo/src/main/resources/samples/comic-hero-network.gexf
  11. +33 −0 demo/src/main/resources/samples/mixed-sample.gexf
  12. +2,420,767 −0 demo/src/main/resources/samples/twitter_combined.csv
  13. +81 −0 pom.xml
  14. +749 −0 src/main/java/org/gephi/viz/engine/VizEngine.java
  15. +78 −0 src/main/java/org/gephi/viz/engine/VizEngineFactory.java
  16. +25 −0 src/main/java/org/gephi/viz/engine/availability/ArrayDraw.java
  17. +26 −0 src/main/java/org/gephi/viz/engine/availability/IndirectDraw.java
  18. +27 −0 src/main/java/org/gephi/viz/engine/availability/InstancedDraw.java
  19. +131 −0 src/main/java/org/gephi/viz/engine/models/EdgeLineModelDirected.java
  20. +128 −0 src/main/java/org/gephi/viz/engine/models/EdgeLineModelUndirected.java
  21. +148 −0 src/main/java/org/gephi/viz/engine/models/NodeDiskModel.java
  22. +275 −0 src/main/java/org/gephi/viz/engine/pipeline/DefaultEventListener.java
  23. +10 −0 src/main/java/org/gephi/viz/engine/pipeline/PipelineCategory.java
  24. +11 −0 src/main/java/org/gephi/viz/engine/pipeline/RenderingLayer.java
  25. +88 −0 src/main/java/org/gephi/viz/engine/pipeline/VizEngineDefaultConfigurator.java
  26. +297 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/ArrayDrawEdgeData.java
  27. +329 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/ArrayDrawNodeData.java
  28. +78 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/renderers/EdgeRendererArrayDraw.java
  29. +78 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/renderers/NodeRendererArrayDraw.java
  30. +67 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/updaters/EdgesUpdaterArrayDrawRendering.java
  31. +67 −0 src/main/java/org/gephi/viz/engine/pipeline/arrays/updaters/NodesUpdaterArrayDrawRendering.java
  32. +652 −0 src/main/java/org/gephi/viz/engine/pipeline/common/AbstractEdgeData.java
  33. +201 −0 src/main/java/org/gephi/viz/engine/pipeline/common/AbstractNodeData.java
  34. +31 −0 src/main/java/org/gephi/viz/engine/pipeline/common/InstanceCounter.java
  35. +405 −0 src/main/java/org/gephi/viz/engine/pipeline/indirect/IndirectNodeData.java
  36. +77 −0 src/main/java/org/gephi/viz/engine/pipeline/indirect/renderers/NodeRendererIndirect.java
  37. +67 −0 src/main/java/org/gephi/viz/engine/pipeline/indirect/updaters/NodesUpdaterIndirectRendering.java
  38. +221 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/InstancedEdgeData.java
  39. +309 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/InstancedNodeData.java
  40. +81 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/renderers/EdgeRendererInstanced.java
  41. +77 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/renderers/NodeRendererInstanced.java
  42. +69 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/updaters/EdgesUpdaterInstancedRendering.java
  43. +67 −0 src/main/java/org/gephi/viz/engine/pipeline/instanced/updaters/NodesUpdaterInstancedRendering.java
  44. +66 −0 src/main/java/org/gephi/viz/engine/scheduler/BasicFPSAnimator.java
  45. +100 −0 src/main/java/org/gephi/viz/engine/spi/InputListener.java
  46. +36 −0 src/main/java/org/gephi/viz/engine/spi/PipelinedExecutor.java
  47. +20 −0 src/main/java/org/gephi/viz/engine/spi/Renderer.java
  48. +11 −0 src/main/java/org/gephi/viz/engine/spi/VizEngineConfigurator.java
  49. +10 −0 src/main/java/org/gephi/viz/engine/spi/WorldUpdater.java
  50. +81 −0 src/main/java/org/gephi/viz/engine/status/GraphRenderingOptions.java
  51. +172 −0 src/main/java/org/gephi/viz/engine/status/GraphRenderingOptionsImpl.java
  52. +54 −0 src/main/java/org/gephi/viz/engine/status/GraphSelection.java
  53. +152 −0 src/main/java/org/gephi/viz/engine/status/GraphSelectionImpl.java
  54. +32 −0 src/main/java/org/gephi/viz/engine/status/GraphSelectionNeighbours.java
  55. +85 −0 src/main/java/org/gephi/viz/engine/status/GraphSelectionNeighboursImpl.java
  56. +66 −0 src/main/java/org/gephi/viz/engine/structure/EdgesCallback.java
  57. +69 −0 src/main/java/org/gephi/viz/engine/structure/GraphIndex.java
  58. +271 −0 src/main/java/org/gephi/viz/engine/structure/GraphIndexImpl.java
  59. +66 −0 src/main/java/org/gephi/viz/engine/structure/NodesCallback.java
  60. +54 −0 src/main/java/org/gephi/viz/engine/util/ArrayUtils.java
  61. +338 −0 src/main/java/org/gephi/viz/engine/util/BufferUtils.java
  62. +48 −0 src/main/java/org/gephi/viz/engine/util/Constants.java
  63. +13 −0 src/main/java/org/gephi/viz/engine/util/DebugConstants.java
  64. +84 −0 src/main/java/org/gephi/viz/engine/util/EdgeIterableFilteredWrapper.java
  65. +59 −0 src/main/java/org/gephi/viz/engine/util/ManagedDirectBuffer.java
  66. +84 −0 src/main/java/org/gephi/viz/engine/util/NodeIterableFilteredWrapper.java
  67. +17 −0 src/main/java/org/gephi/viz/engine/util/QuadtreeElementRectangleProvider.java
  68. +43 −0 src/main/java/org/gephi/viz/engine/util/gl/GLBuffer.java
  69. +202 −0 src/main/java/org/gephi/viz/engine/util/gl/GLBufferImmutable.java
  70. +206 −0 src/main/java/org/gephi/viz/engine/util/gl/GLBufferMutable.java
  71. +10 −0 src/main/java/org/gephi/viz/engine/util/gl/GLConstants.java
  72. +48 −0 src/main/java/org/gephi/viz/engine/util/gl/GLFunctions.java
  73. +149 −0 src/main/java/org/gephi/viz/engine/util/gl/GLShaderProgram.java
  74. +112 −0 src/main/java/org/gephi/viz/engine/util/gl/GLVertexArrayObject.java
  75. +60 −0 src/main/java/org/gephi/viz/engine/util/gl/GlDebugOutput.java
  76. +700 −0 src/main/java/org/gephi/viz/engine/util/gl/capabilities/GLCapabilities.java
  77. +218 −0 src/main/java/org/gephi/viz/engine/util/gl/capabilities/GLExtensionData.java
  78. +27 −0 src/main/java/org/gephi/viz/engine/util/gl/capabilities/GLVersionData.java
  79. +11 −0 src/main/java/org/gephi/viz/engine/util/gl/capabilities/Profile.java
  80. +11 −0 src/main/resources/org/gephi/viz-engine/shaders/edge/edge-line-directed.frag
  81. +58 −0 src/main/resources/org/gephi/viz-engine/shaders/edge/edge-line-directed.vert
  82. +11 −0 src/main/resources/org/gephi/viz-engine/shaders/edge/edge-line-undirected.frag
  83. +55 −0 src/main/resources/org/gephi/viz-engine/shaders/edge/edge-line-undirected.vert
  84. +11 −0 src/main/resources/org/gephi/viz-engine/shaders/node/node.frag
  85. +26 −0 src/main/resources/org/gephi/viz-engine/shaders/node/node.vert
  86. +64 −0 src/test/java/org/gephi/viz/engine/util/ArrayUtilsTest.java
@@ -0,0 +1,229 @@

# Created by https://www.gitignore.io/api/java,netbeans,node,intellij,eclipse,osx

### Samuel ###

.samuel/remotes

### NetBeans ###
nbproject/
nbproject
nbproject/private/
./build/
nbbuild/
dist/
nbdist/
nbactions.xml
.nb-gradle/


### Node ###
# Logs
logs
*.log
npm-debug.log*

# Runtime data
pids
*.pid
*.seed

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history


### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
.idea
*.iml

# User-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
.idea/dataSources.ids
.idea/dataSources.xml
.idea/dataSources.local.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml
.idea/uiDesigner.xml

# Gradle:
.idea/gradle.xml
.idea/libraries

# Mongo Explorer plugin:
.idea/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml
# .idea/misc.xml
# *.ipr


### Eclipse ###

.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders

# Eclipse Core
.project

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# PyDev specific (Python IDE for Eclipse)
*.pydevproject

# CDT-specific (C/C++ Development Tooling)
.cproject

# JDT-specific (Eclipse Java Development Tools)
.classpath

# Java annotation processor (APT)
.factorypath

# PDT-specific (PHP Development Tools)
.buildpath

# sbteclipse plugin
.target

# Tern plugin
.tern-project

# TeXlipse plugin
.texlipse

# STS (Spring Tool Suite)
.springBeans

# Code Recommenders
.recommenders/


### OSX ###
*.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk


### Java ###
*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*


### Maven ###
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

# YARN
yarn.lock

.vscode
@@ -0,0 +1,23 @@
# Gephi visualization engine

![stability-wip](https://img.shields.io/badge/stability-work_in_progress-lightgrey.svg)

This is a new visualization engine for Gephi based on modern OpenGL techniques.

It aims to be:

* Retro-compatible with old OpenGL versions through feature discovery, falling back to the best supported by the graphics card
* High performance using most modern OpenGL when available, specially due to instancing, manual buffer management, using simple shaders and avoiding memory allocation when possible
* Extensible with plugins (rendering and input)
* Usable in AWT/Swing/NEWT/SWT (only possible with JOGL at the moment, LWJGL3 does not support AWT)
* Nicely interactive with mouse, directional zooming, etc with default input handler
* Only a 2D engine for the moment
* The only gephi-related dependency is graphstore

Currently, in comparison to Gephi 0.9.2 renderer it's lacking:

* Self loops
* Node/edge text labels
* Selected nodes animation (should be doable with a simple uniform variable)

NOTE: to build it, first you will need to build the graphstore branch at https://github.com/gephi/graphstore/tree/viz-engine

0 comments on commit e228521

Please sign in to comment.
You can’t perform that action at this time.