@@ -432,6 +432,8 @@ uniform float nodeSize;
432432
433433varying vec4 vVertexColor;
434434
435+ const float MAX_NODE_SIZE = 16.0;
436+
435437// unsigned rIntValue = (u_color / 256 / 256) % 256;
436438// unsigned gIntValue = (u_color / 256 ) % 256;
437439// unsigned bIntValue = (u_color ) % 256;
@@ -451,10 +453,10 @@ void main() {
451453 gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
452454
453455 if (magicZoom) {
454- gl_PointSize = nodeSize ;
456+ gl_PointSize = MAX_NODE_SIZE ;
455457 }
456458 else {
457- float size = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));
459+ float size = nodeSize * MAX_NODE_SIZE * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));
458460 gl_PointSize = max(size, 5.0);
459461 }
460462
@@ -522,6 +524,8 @@ uniform float focusedGroup;
522524
523525varying vec4 vVertexColor;
524526
527+ const float MAX_NODE_SIZE = 16.0;
528+
525529// const PALETTE_HEX = [
526530// '3366CC',
527531// 'DC3912',
@@ -549,10 +553,10 @@ void main() {
549553 gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
550554
551555 if (magicZoom) {
552- gl_PointSize = nodeSize ;
556+ gl_PointSize = MAX_NODE_SIZE ;
553557 }
554558 else {
555- gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));
559+ gl_PointSize = nodeSize * MAX_NODE_SIZE * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1]));
556560 }
557561
558562 float validColor = mod(aVertexColor, 8.0);
@@ -651,16 +655,17 @@ uniform int hoverNode;
651655varying vec4 vVertexColor;
652656
653657const float POINT_STROKE_WIDTH_FACTOR = 1.5;
658+ const float MAX_NODE_SIZE = 16.0;
654659
655660void main() {
656661 gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;
657662 //gl_Position.z = 0.0;
658663
659664 if (magicZoom) {
660- gl_PointSize = nodeSize * POINT_STROKE_WIDTH_FACTOR;
665+ gl_PointSize = MAX_NODE_SIZE * POINT_STROKE_WIDTH_FACTOR;
661666 }
662667 else {
663- gl_PointSize = nodeSize * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1])) * POINT_STROKE_WIDTH_FACTOR;
668+ gl_PointSize = nodeSize * MAX_NODE_SIZE * min(length(uModelViewMatrix[0]), length(uModelViewMatrix[1])) * POINT_STROKE_WIDTH_FACTOR;
664669 }
665670
666671
@@ -721,10 +726,11 @@ attribute float aVertexColor;
721726uniform mat4 uModelViewMatrix;
722727uniform mat4 uProjectionMatrix;
723728uniform bool magicZoom;
724- uniform float nodeSize;
729+ uniform float nodeSize; // 0 - 1
725730uniform float focusedGroup;
731+ uniform float edgeSize; // 0 - 1
726732
727- float MAX_NODE_SIZE = 16.0;
733+ const float MAX_NODE_SIZE = 16.0;
728734const float PI = 3.1415926535897932384626433832795;
729735
730736varying vec4 vVertexColor;
@@ -748,14 +754,15 @@ void main() {
748754 // vec2 rotatedNormal = rotate(vec2Normal, zoomAngle);
749755 // vec4 newNormal = vec4(rotatedNormal.x, rotatedNormal.y, 0.0, 0.0);
750756
751- vec4 newNormal = vec4(normal.x, normal.y, 0.0, 0.0);
757+ vec4 newNormal = MAX_NODE_SIZE * 0.25 * edgeSize * vec4(normal.x, normal.y, 0.0, 0.0);
758+
752759
753760 if (magicZoom) {
754761 gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);
755762 }
756763 else {
757- newNormal.x = newNormal.x * zoomX * nodeSize / MAX_NODE_SIZE ;
758- newNormal.y = newNormal.y * zoomY * nodeSize / MAX_NODE_SIZE ;
764+ newNormal.x = newNormal.x * zoomX * nodeSize;
765+ newNormal.y = newNormal.y * zoomY * nodeSize;
759766 gl_Position = uProjectionMatrix * ((uModelViewMatrix * aVertexPosition) + newNormal);
760767 }
761768
@@ -959,7 +966,6 @@ const RadialTree = __webpack_require__(/*! ./layouts/RadialTree */ "./engine/src
959966
960967const ZOOM_FACTOR = 2;
961968const START_SCALE = 1;
962- const MAX_NODE_SIZE = 16;
963969
964970let ElGrapho = function(config) {
965971 let that = this;
@@ -992,8 +998,8 @@ ElGrapho.prototype = {
992998 this.width = config.model.width;
993999 this.height = config.model.height;
9941000 this.steps = config.model.steps;
995- this.nodeSize = config.nodeSize || 1;
996- this.nodeSize *= MAX_NODE_SIZE;
1001+ this.nodeSize = config.nodeSize || 1; // 0 - 1
1002+ this.edgeSize = config.edgeSize || 0.25; // 0 - 1
9971003 this.focusedGroup = -1;
9981004
9991005 this.animations = [];
@@ -1078,7 +1084,7 @@ ElGrapho.prototype = {
10781084 },
10791085 setHasLabels: function() {
10801086 this.hasLabels = false;
1081-
1087+
10821088 let nodes = this.model.nodes;
10831089 for (let n=0; n<nodes.length; n++) {
10841090 let label = nodes[n].label;
@@ -1611,8 +1617,6 @@ const EasingFunctions = __webpack_require__(/*! ./EasingFunctions */ "./engine/s
16111617const styles = __webpack_require__(/*! ../dist/styles/ElGrapho.min.css.js */ "./engine/dist/styles/ElGrapho.min.css.js");
16121618const Enums = __webpack_require__(/*! ./Enums */ "./engine/src/Enums.js");
16131619
1614- const MAX_NODE_SIZE = 16;
1615-
16161620let ElGraphoCollection = {
16171621 graphs: [],
16181622 initialized: false,
@@ -1666,9 +1670,9 @@ let ElGraphoCollection = {
16661670 let zoom = Math.min(graph.zoomX, graph.zoomY);
16671671
16681672
1669- if (graph.nodeSize * zoom >= MAX_NODE_SIZE ) {
1673+ if (graph.nodeSize * zoom >= 1 ) {
16701674 magicZoom = true;
1671- nodeSize = MAX_NODE_SIZE ;
1675+ nodeSize = 1 ;
16721676 }
16731677 else {
16741678 magicZoom = false;
@@ -1677,7 +1681,7 @@ let ElGraphoCollection = {
16771681
16781682 if (graph.dirty) {
16791683 idle = false;
1680- graph.webgl.drawScene(graph.panX, graph.panY, graph.zoomX, graph.zoomY, magicZoom, nodeSize, graph.focusedGroup, graph.hoveredDataIndex);
1684+ graph.webgl.drawScene(graph.panX, graph.panY, graph.zoomX, graph.zoomY, magicZoom, nodeSize, graph.focusedGroup, graph.hoveredDataIndex, graph.edgeSize );
16811685
16821686 graph.labelsLayer.scene.clear();
16831687
@@ -1917,7 +1921,7 @@ module.exports = UUID;
19171921const Profiler = __webpack_require__(/*! ./Profiler */ "./engine/src/Profiler.js");
19181922const glMatrix = __webpack_require__(/*! gl-matrix */ "./node_modules/gl-matrix/lib/gl-matrix.js");
19191923const vec2 = glMatrix.vec2;
1920- const MAX_NODE_SIZE = 16;
1924+ // const MAX_NODE_SIZE = 16;
19211925const ARROW_WIDTH_MULTIPLIER = 4; // edge width times this number equals arrow width
19221926
19231927const VertexBridge = {
@@ -1958,7 +1962,6 @@ const VertexBridge = {
19581962 for (let n=0; n<numEdges; n++) {
19591963 let pointIndex0 = edges[n].from;
19601964 let pointIndex1 = edges[n].to;
1961- let normalDistance = MAX_NODE_SIZE*0.08;
19621965
19631966 let x0 = nodes[pointIndex0].x;
19641967 let x1 = nodes[pointIndex1].x;
@@ -1969,7 +1972,7 @@ const VertexBridge = {
19691972 let vector = vec2.fromValues(vectorX, vectorY);
19701973 let normalizedVector = vec2.normalize(vec2.create(), vector);
19711974 let perpVector = vec2.rotate(vec2.create(), normalizedVector, vec2.create(), Math.PI/2);
1972- let offsetVector = vec2.scale(vec2.create(), perpVector, normalDistance);
1975+ let offsetVector = perpVector; // vec2.scale(vec2.create(), perpVector, normalDistance);
19731976 let xOffset = -1 * offsetVector[0];
19741977 let yOffset = offsetVector[1];
19751978
@@ -2240,6 +2243,7 @@ WebGL.prototype = {
22402243 shaderProgram.modelViewMatrixUniform = gl.getUniformLocation(shaderProgram, 'uModelViewMatrix');
22412244 shaderProgram.magicZoom = gl.getUniformLocation(shaderProgram, 'magicZoom');
22422245 shaderProgram.nodeSize = gl.getUniformLocation(shaderProgram, 'nodeSize');
2246+ shaderProgram.edgeSize = gl.getUniformLocation(shaderProgram, 'edgeSize');
22432247 shaderProgram.focusedGroup = gl.getUniformLocation(shaderProgram, 'focusedGroup');
22442248
22452249 return shaderProgram;
@@ -2324,7 +2328,7 @@ WebGL.prototype = {
23242328
23252329 gl.drawArrays(gl.POINTS, 0, buffers.positions.numItems);
23262330 },
2327- drawSceneTriangles: function(projectionMatrix, modelViewMatrix, magicZoom, nodeSize, focusedGroup) {
2331+ drawSceneTriangles: function(projectionMatrix, modelViewMatrix, magicZoom, nodeSize, focusedGroup, edgeSize ) {
23282332 let layer = this.layer;
23292333 let gl = layer.scene.context;
23302334 let shaderProgram = this.getTriangleShaderProgram();
@@ -2334,6 +2338,7 @@ WebGL.prototype = {
23342338 gl.uniformMatrix4fv(shaderProgram.modelViewMatrixUniform, false, modelViewMatrix);
23352339 gl.uniform1i(shaderProgram.magicZoom, magicZoom);
23362340 gl.uniform1f(shaderProgram.nodeSize, nodeSize);
2341+ gl.uniform1f(shaderProgram.edgeSize, edgeSize);
23372342 gl.uniform1f(shaderProgram.focusedGroup, focusedGroup);
23382343
23392344 this.bindBuffer(buffers.positions, shaderProgram.vertexPositionAttribute, gl);
@@ -2345,7 +2350,7 @@ WebGL.prototype = {
23452350
23462351 gl.drawArrays(gl.TRIANGLES, 0, buffers.positions.numItems);
23472352 },
2348- drawScene: function(panX, panY, zoomX, zoomY, magicZoom, nodeSize, focusedGroup, hoverNode) {
2353+ drawScene: function(panX, panY, zoomX, zoomY, magicZoom, nodeSize, focusedGroup, hoverNode, edgeSize ) {
23492354 let layer = this.layer;
23502355 let gl = layer.scene.context;
23512356
@@ -2380,7 +2385,7 @@ WebGL.prototype = {
23802385 //console.log(modelViewMatrix);
23812386
23822387 if (this.buffers.triangles) {
2383- this.drawSceneTriangles(projectionMatrix, modelViewMatrix, magicZoom, nodeSize, focusedGroup);
2388+ this.drawSceneTriangles(projectionMatrix, modelViewMatrix, magicZoom, nodeSize, focusedGroup, edgeSize );
23842389 }
23852390
23862391 if (this.buffers.points) {
0 commit comments