Skip to content

Commit d1c2d34

Browse files
committed
Minor changes in sigma.plugins.dragNodes plugin
Disabled the plugin for WebGL renderers. Removed the plugin from original examples, and added a specific example (drag-nodes.html). Also updated README.md.
1 parent 0bd0e10 commit d1c2d34

File tree

5 files changed

+98
-14
lines changed

5 files changed

+98
-14
lines changed

examples/api-candy.html

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
<script src="../src/misc/sigma.misc.animation.js"></script>
3131
<script src="../src/misc/sigma.misc.bindEvents.js"></script>
3232
<script src="../src/misc/sigma.misc.drawHovers.js"></script>
33-
<script src="../plugins/sigma.plugins.dragNodes/sigma.plugins.dragNodes.js"></script>
3433
<!-- END SIGMA IMPORTS -->
3534
<script src="../plugins/sigma.layout.forceAtlas2/sigma.layout.forceAtlas2.js"></script>
3635
<div id="container">
@@ -180,15 +179,6 @@
180179
camera: 'cam2'
181180
});
182181

183-
for(i in s.renderers) {
184-
sigma.plugins.dragNodes(s, s.renderers[i]);
185-
}
186-
187182
// Start the layout algorithm:
188183
s.startForceAtlas2();
189-
190-
// Stop the layout algorithm after 2 seconds:
191-
setTimeout(function() {
192-
s.stopForceAtlas2();
193-
}, 2000);
194184
</script>

examples/basic.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
<script src="../src/misc/sigma.misc.animation.js"></script>
3131
<script src="../src/misc/sigma.misc.bindEvents.js"></script>
3232
<script src="../src/misc/sigma.misc.drawHovers.js"></script>
33-
<script src="../plugins/sigma.plugins.dragNodes/sigma.plugins.dragNodes.js"></script>
3433
<!-- END SIGMA IMPORTS -->
3534
<div id="container">
3635
<style>
@@ -87,6 +86,4 @@
8786
graph: g,
8887
container: 'graph-container'
8988
});
90-
91-
sigma.plugins.dragNodes(s, s.renderers[0]);
9289
</script>

examples/drag-nodes.html

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
<!-- START SIGMA IMPORTS -->
2+
<script src="../src/sigma.core.js"></script>
3+
<script src="../src/conrad.js"></script>
4+
<script src="../src/utils/sigma.utils.js"></script>
5+
<script src="../src/utils/sigma.polyfills.js"></script>
6+
<script src="../src/sigma.settings.js"></script>
7+
<script src="../src/classes/sigma.classes.dispatcher.js"></script>
8+
<script src="../src/classes/sigma.classes.configurable.js"></script>
9+
<script src="../src/classes/sigma.classes.graph.js"></script>
10+
<script src="../src/classes/sigma.classes.camera.js"></script>
11+
<script src="../src/classes/sigma.classes.quad.js"></script>
12+
<script src="../src/captors/sigma.captors.mouse.js"></script>
13+
<script src="../src/captors/sigma.captors.touch.js"></script>
14+
<script src="../src/renderers/sigma.renderers.canvas.js"></script>
15+
<script src="../src/renderers/sigma.renderers.webgl.js"></script>
16+
<script src="../src/renderers/sigma.renderers.def.js"></script>
17+
<script src="../src/renderers/webgl/sigma.webgl.nodes.def.js"></script>
18+
<script src="../src/renderers/webgl/sigma.webgl.nodes.fast.js"></script>
19+
<script src="../src/renderers/webgl/sigma.webgl.edges.def.js"></script>
20+
<script src="../src/renderers/webgl/sigma.webgl.edges.fast.js"></script>
21+
<script src="../src/renderers/webgl/sigma.webgl.edges.arrow.js"></script>
22+
<script src="../src/renderers/canvas/sigma.canvas.labels.def.js"></script>
23+
<script src="../src/renderers/canvas/sigma.canvas.hovers.def.js"></script>
24+
<script src="../src/renderers/canvas/sigma.canvas.nodes.def.js"></script>
25+
<script src="../src/renderers/canvas/sigma.canvas.edges.def.js"></script>
26+
<script src="../src/renderers/canvas/sigma.canvas.edges.arrow.js"></script>
27+
<script src="../src/renderers/canvas/sigma.canvas.edges.curve.js"></script>
28+
<script src="../src/middlewares/sigma.middlewares.rescale.js"></script>
29+
<script src="../src/middlewares/sigma.middlewares.copy.js"></script>
30+
<script src="../src/misc/sigma.misc.animation.js"></script>
31+
<script src="../src/misc/sigma.misc.bindEvents.js"></script>
32+
<script src="../src/misc/sigma.misc.drawHovers.js"></script>
33+
<!-- END SIGMA IMPORTS -->
34+
<script src="../plugins/sigma.plugins.dragNodes/sigma.plugins.dragNodes.js"></script>
35+
<div id="container">
36+
<style>
37+
#graph-container {
38+
top: 0;
39+
bottom: 0;
40+
left: 0;
41+
right: 0;
42+
position: absolute;
43+
}
44+
</style>
45+
<div id="graph-container"></div>
46+
</div>
47+
<script>
48+
/**
49+
* This example shows how to use the dragNodes plugin.
50+
*/
51+
var i,
52+
s,
53+
N = 100,
54+
E = 500,
55+
g = {
56+
nodes: [],
57+
edges: []
58+
};
59+
60+
// Generate a random graph:
61+
for (i = 0; i < N; i++)
62+
g.nodes.push({
63+
id: 'n' + i,
64+
label: 'Node ' + i,
65+
x: Math.random(),
66+
y: Math.random(),
67+
size: Math.random(),
68+
color: '#666'
69+
});
70+
71+
for (i = 0; i < E; i++)
72+
g.edges.push({
73+
id: 'e' + i,
74+
source: 'n' + (Math.random() * N | 0),
75+
target: 'n' + (Math.random() * N | 0),
76+
size: Math.random(),
77+
color: '#ccc'
78+
});
79+
sigma.renderers.def = sigma.renderers.canvas
80+
// Instanciate sigma:
81+
s = new sigma({
82+
graph: g,
83+
container: 'graph-container'
84+
});
85+
86+
// Initialize the dragNodes plugin:
87+
sigma.plugins.dragNodes(s, s.renderers[0]);
88+
</script>

plugins/sigma.plugins.dragNodes/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ Plugin developed by [José M. Camacho](https://github.com/josemazo).
55

66
---
77

8-
This plugin provides a method to drag & drop nodes. Check the sigma.plugins.dragNodes function doc or the examples/basic.html & examples/api-candy.html code sample to know more.
8+
This plugin provides a method to drag & drop nodes. At the moment, this plugin is not compatible with the WebGL renderer. Check the sigma.plugins.dragNodes function doc or the examples/drag-nodes.html code sample to know more.

plugins/sigma.plugins.dragNodes/sigma.plugins.dragNodes.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@
2626
* @param {renderer} renderer The related renderer instance.
2727
*/
2828
sigma.plugins.dragNodes = function(s, renderer) {
29+
// A quick hardcoded rule to prevent people from using this plugin with the
30+
// WebGL renderer (which is impossible at the moment):
31+
if (
32+
sigma.renderers.webgl &&
33+
renderer instanceof sigma.renderers.webgl
34+
)
35+
throw new Error(
36+
'The sigma.plugins.dragNodes is not compatible with the WebGL renderer'
37+
);
2938

3039
var _body = document.body,
3140
_container = renderer.container,

0 commit comments

Comments
 (0)