@react-fabric/graph 1.0.0-beta.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -0
- package/css/styles.css +56 -0
- package/dist/cjs/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +7 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +14 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +9 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +35 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +11 -0
- package/dist/cjs/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +20 -0
- package/dist/cjs/_virtual/elk-worker.js +8 -0
- package/dist/cjs/_virtual/elk.bundled.js +5 -0
- package/dist/cjs/node_modules/elkjs/lib/elk.bundled.js +6667 -0
- package/dist/cjs/packages/graph/src/components/Context.js +108 -0
- package/dist/cjs/packages/graph/src/components/ContextMenu.js +134 -0
- package/dist/cjs/packages/graph/src/components/Tools.js +127 -0
- package/dist/cjs/packages/graph/src/components/Viewer.js +57 -0
- package/dist/cjs/packages/graph/src/constants/index.js +16 -0
- package/dist/cjs/packages/graph/src/graph/index.js +425 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaDragSelect.js +169 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaHilighter.js +83 -0
- package/dist/cjs/packages/graph/src/hooks/sigmaMouseActions.js +145 -0
- package/dist/cjs/packages/graph/src/hooks/useGraphology.js +41 -0
- package/dist/cjs/packages/graph/src/hooks/useSigma.js +112 -0
- package/dist/cjs/packages/graph/src/index.js +33 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/index.js +142 -0
- package/dist/cjs/packages/graph/src/programs/arrow-head/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/drawLabel.js +136 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/index.js +157 -0
- package/dist/cjs/packages/graph/src/programs/edge-curve/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/drawLabel.js +70 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/index.js +166 -0
- package/dist/cjs/packages/graph/src/programs/edge-line/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/factory.js +249 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/index.js +33 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/texture.js +455 -0
- package/dist/cjs/packages/graph/src/programs/node-badge/vert.glsl.js +19 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/drawHover.js +70 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/drawLabel.js +112 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/index.js +136 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/base/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-circle/index.js +15 -0
- package/dist/cjs/packages/graph/src/programs/node-image/factory.js +223 -0
- package/dist/cjs/packages/graph/src/programs/node-image/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-image/index.js +14 -0
- package/dist/cjs/packages/graph/src/programs/node-image/texture.js +472 -0
- package/dist/cjs/packages/graph/src/programs/node-image/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/drawHover.js +67 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/drawLabel.js +106 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/frag.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/index.js +135 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/base/vert.glsl.js +8 -0
- package/dist/cjs/packages/graph/src/programs/node-rect/index.js +15 -0
- package/dist/esm/_virtual/_commonjs-dynamic-modules.js +7 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +7 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +14 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +9 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +34 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +13 -0
- package/dist/esm/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +20 -0
- package/dist/esm/_virtual/elk-worker.js +8 -0
- package/dist/esm/_virtual/elk.bundled.js +5 -0
- package/dist/esm/node_modules/elkjs/lib/elk.bundled.js +6667 -0
- package/dist/esm/packages/graph/src/components/Context.js +107 -0
- package/dist/esm/packages/graph/src/components/ContextMenu.js +134 -0
- package/dist/esm/packages/graph/src/components/Tools.js +127 -0
- package/dist/esm/packages/graph/src/components/Viewer.js +57 -0
- package/dist/esm/packages/graph/src/constants/index.js +16 -0
- package/dist/esm/packages/graph/src/graph/index.js +425 -0
- package/dist/esm/packages/graph/src/hooks/sigmaDragSelect.js +169 -0
- package/dist/esm/packages/graph/src/hooks/sigmaHilighter.js +83 -0
- package/dist/esm/packages/graph/src/hooks/sigmaMouseActions.js +145 -0
- package/dist/esm/packages/graph/src/hooks/useGraphology.js +41 -0
- package/dist/esm/packages/graph/src/hooks/useSigma.js +112 -0
- package/dist/esm/packages/graph/src/index.js +30 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/index.js +141 -0
- package/dist/esm/packages/graph/src/programs/arrow-head/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/drawLabel.js +136 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/index.js +156 -0
- package/dist/esm/packages/graph/src/programs/edge-curve/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-line/drawLabel.js +70 -0
- package/dist/esm/packages/graph/src/programs/edge-line/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/edge-line/index.js +166 -0
- package/dist/esm/packages/graph/src/programs/edge-line/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-badge/factory.js +249 -0
- package/dist/esm/packages/graph/src/programs/node-badge/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-badge/index.js +32 -0
- package/dist/esm/packages/graph/src/programs/node-badge/texture.js +445 -0
- package/dist/esm/packages/graph/src/programs/node-badge/vert.glsl.js +19 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/drawHover.js +70 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/drawLabel.js +112 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/index.js +136 -0
- package/dist/esm/packages/graph/src/programs/node-circle/base/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-circle/index.js +15 -0
- package/dist/esm/packages/graph/src/programs/node-image/factory.js +223 -0
- package/dist/esm/packages/graph/src/programs/node-image/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-image/index.js +13 -0
- package/dist/esm/packages/graph/src/programs/node-image/texture.js +462 -0
- package/dist/esm/packages/graph/src/programs/node-image/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/drawHover.js +67 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/drawLabel.js +106 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/frag.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/index.js +135 -0
- package/dist/esm/packages/graph/src/programs/node-rect/base/vert.glsl.js +8 -0
- package/dist/esm/packages/graph/src/programs/node-rect/index.js +15 -0
- package/dist/types/components/Context.d.ts +18 -0
- package/dist/types/components/ContextMenu.d.ts +1 -0
- package/dist/types/components/Tools.d.ts +1 -0
- package/dist/types/components/Viewer.d.ts +2 -0
- package/dist/types/constants/index.d.ts +12 -0
- package/dist/types/graph/index.d.ts +30 -0
- package/dist/types/graph/layout.worker.d.ts +1 -0
- package/dist/types/hooks/sigmaDragSelect.d.ts +8 -0
- package/dist/types/hooks/sigmaHilighter.d.ts +3 -0
- package/dist/types/hooks/sigmaMouseActions.d.ts +3 -0
- package/dist/types/hooks/useGraphology.d.ts +6 -0
- package/dist/types/hooks/useSigma.d.ts +8 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/programs/arrow-head/frag.glsl.d.ts +2 -0
- package/dist/types/programs/arrow-head/index.d.ts +9 -0
- package/dist/types/programs/arrow-head/vert.glsl.d.ts +2 -0
- package/dist/types/programs/edge-curve/drawLabel.d.ts +6 -0
- package/dist/types/programs/edge-curve/frag.glsl.d.ts +2 -0
- package/dist/types/programs/edge-curve/index.d.ts +43 -0
- package/dist/types/programs/edge-curve/vert.glsl.d.ts +2 -0
- package/dist/types/programs/edge-line/drawLabel.d.ts +5 -0
- package/dist/types/programs/edge-line/frag.glsl.d.ts +2 -0
- package/dist/types/programs/edge-line/index.d.ts +11 -0
- package/dist/types/programs/edge-line/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-badge/factory.d.ts +27 -0
- package/dist/types/programs/node-badge/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-badge/index.d.ts +5 -0
- package/dist/types/programs/node-badge/texture.d.ts +102 -0
- package/dist/types/programs/node-badge/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/base/drawHover.d.ts +8 -0
- package/dist/types/programs/node-circle/base/drawLabel.d.ts +8 -0
- package/dist/types/programs/node-circle/base/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/base/index.d.ts +37 -0
- package/dist/types/programs/node-circle/base/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-circle/index.d.ts +11 -0
- package/dist/types/programs/node-image/factory.d.ts +25 -0
- package/dist/types/programs/node-image/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-image/index.d.ts +5 -0
- package/dist/types/programs/node-image/texture.d.ts +102 -0
- package/dist/types/programs/node-image/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/base/drawHover.d.ts +8 -0
- package/dist/types/programs/node-rect/base/drawLabel.d.ts +8 -0
- package/dist/types/programs/node-rect/base/frag.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/base/index.d.ts +34 -0
- package/dist/types/programs/node-rect/base/vert.glsl.d.ts +2 -0
- package/dist/types/programs/node-rect/index.d.ts +11 -0
- package/dist/types/types/index.d.ts +189 -0
- package/package.json +69 -0
- package/src/components/Context.tsx +135 -0
- package/src/components/ContextMenu.tsx +156 -0
- package/src/components/Tools.tsx +107 -0
- package/src/components/Viewer.tsx +75 -0
- package/src/constants/index.ts +22 -0
- package/src/graph/index.ts +428 -0
- package/src/graph/layout.worker.ts +42 -0
- package/src/hooks/sigmaDragSelect.ts +219 -0
- package/src/hooks/sigmaHilighter.ts +107 -0
- package/src/hooks/sigmaMouseActions.ts +153 -0
- package/src/hooks/useGraphology.ts +31 -0
- package/src/hooks/useSigma.ts +118 -0
- package/src/index.ts +34 -0
- package/src/programs/arrow-head/frag.glsl.ts +18 -0
- package/src/programs/arrow-head/index.ts +148 -0
- package/src/programs/arrow-head/vert.glsl.ts +75 -0
- package/src/programs/edge-curve/drawLabel.ts +166 -0
- package/src/programs/edge-curve/frag.glsl.ts +86 -0
- package/src/programs/edge-curve/index.ts +158 -0
- package/src/programs/edge-curve/vert.glsl.ts +110 -0
- package/src/programs/edge-line/drawLabel.ts +113 -0
- package/src/programs/edge-line/frag.glsl.ts +34 -0
- package/src/programs/edge-line/index.ts +165 -0
- package/src/programs/edge-line/vert.glsl.ts +104 -0
- package/src/programs/node-badge/factory.ts +327 -0
- package/src/programs/node-badge/frag.glsl.ts +79 -0
- package/src/programs/node-badge/index.ts +35 -0
- package/src/programs/node-badge/texture.ts +425 -0
- package/src/programs/node-badge/vert.glsl.ts +99 -0
- package/src/programs/node-circle/base/drawHover.ts +80 -0
- package/src/programs/node-circle/base/drawLabel.ts +145 -0
- package/src/programs/node-circle/base/frag.glsl.ts +72 -0
- package/src/programs/node-circle/base/index.ts +102 -0
- package/src/programs/node-circle/base/vert.glsl.ts +83 -0
- package/src/programs/node-circle/index.ts +19 -0
- package/src/programs/node-image/factory.ts +301 -0
- package/src/programs/node-image/frag.glsl.ts +97 -0
- package/src/programs/node-image/index.ts +7 -0
- package/src/programs/node-image/texture.ts +435 -0
- package/src/programs/node-image/vert.glsl.ts +60 -0
- package/src/programs/node-rect/base/drawHover.ts +77 -0
- package/src/programs/node-rect/base/drawLabel.ts +149 -0
- package/src/programs/node-rect/base/frag.glsl.ts +67 -0
- package/src/programs/node-rect/base/index.ts +109 -0
- package/src/programs/node-rect/base/vert.glsl.ts +87 -0
- package/src/programs/node-rect/index.ts +19 -0
- package/src/types/index.ts +210 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
4
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
5
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
6
|
+
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
7
|
+
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
8
|
+
import _inherits from '@babel/runtime/helpers/inherits';
|
|
9
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
10
|
+
import { NodeProgram } from 'sigma/rendering';
|
|
11
|
+
import { floatColor } from 'sigma/utils';
|
|
12
|
+
import SHADER_SOURCE$1 from './frag.glsl.js';
|
|
13
|
+
import SHADER_SOURCE from './vert.glsl.js';
|
|
14
|
+
|
|
15
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
16
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
17
|
+
|
|
18
|
+
/* istanbul ignore file */
|
|
19
|
+
|
|
20
|
+
var _WebGLRenderingContex = WebGLRenderingContext,
|
|
21
|
+
UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
|
|
22
|
+
FLOAT = _WebGLRenderingContex.FLOAT;
|
|
23
|
+
var UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_matrix"];
|
|
24
|
+
var NodeCircleBase = /*#__PURE__*/function (_NodeProgram) {
|
|
25
|
+
function NodeCircleBase() {
|
|
26
|
+
_classCallCheck(this, NodeCircleBase);
|
|
27
|
+
return _callSuper(this, NodeCircleBase, arguments);
|
|
28
|
+
}
|
|
29
|
+
_inherits(NodeCircleBase, _NodeProgram);
|
|
30
|
+
return _createClass(NodeCircleBase, [{
|
|
31
|
+
key: "getDefinition",
|
|
32
|
+
value: function getDefinition() {
|
|
33
|
+
return {
|
|
34
|
+
VERTICES: 3,
|
|
35
|
+
VERTEX_SHADER_SOURCE: SHADER_SOURCE,
|
|
36
|
+
FRAGMENT_SHADER_SOURCE: SHADER_SOURCE$1,
|
|
37
|
+
METHOD: WebGLRenderingContext.TRIANGLES,
|
|
38
|
+
UNIFORMS: UNIFORMS,
|
|
39
|
+
ATTRIBUTES: [{
|
|
40
|
+
name: "a_position",
|
|
41
|
+
size: 2,
|
|
42
|
+
type: FLOAT
|
|
43
|
+
}, {
|
|
44
|
+
name: "a_size",
|
|
45
|
+
size: 1,
|
|
46
|
+
type: FLOAT
|
|
47
|
+
}, {
|
|
48
|
+
name: "a_border",
|
|
49
|
+
size: 1,
|
|
50
|
+
type: FLOAT
|
|
51
|
+
}, {
|
|
52
|
+
name: "a_opacity",
|
|
53
|
+
size: 1,
|
|
54
|
+
type: FLOAT
|
|
55
|
+
}, {
|
|
56
|
+
name: "a_base",
|
|
57
|
+
size: 4,
|
|
58
|
+
type: UNSIGNED_BYTE,
|
|
59
|
+
normalized: true
|
|
60
|
+
}, {
|
|
61
|
+
name: "a_color",
|
|
62
|
+
size: 4,
|
|
63
|
+
type: UNSIGNED_BYTE,
|
|
64
|
+
normalized: true
|
|
65
|
+
}, {
|
|
66
|
+
name: "a_stroke",
|
|
67
|
+
size: 4,
|
|
68
|
+
type: UNSIGNED_BYTE,
|
|
69
|
+
normalized: true
|
|
70
|
+
}, {
|
|
71
|
+
name: "a_segments",
|
|
72
|
+
size: 1,
|
|
73
|
+
type: FLOAT
|
|
74
|
+
}].concat(_toConsumableArray(Array(7).fill(0).map(function (_, idx) {
|
|
75
|
+
return {
|
|
76
|
+
name: "a_colors_" + idx,
|
|
77
|
+
size: 4,
|
|
78
|
+
type: UNSIGNED_BYTE,
|
|
79
|
+
normalized: true
|
|
80
|
+
};
|
|
81
|
+
})), [{
|
|
82
|
+
name: "a_id",
|
|
83
|
+
size: 4,
|
|
84
|
+
type: UNSIGNED_BYTE,
|
|
85
|
+
normalized: true
|
|
86
|
+
}]),
|
|
87
|
+
CONSTANT_ATTRIBUTES: [{
|
|
88
|
+
name: "a_angle",
|
|
89
|
+
size: 1,
|
|
90
|
+
type: FLOAT
|
|
91
|
+
}],
|
|
92
|
+
CONSTANT_DATA: [[NodeCircleBase.ANGLE_1], [NodeCircleBase.ANGLE_2], [NodeCircleBase.ANGLE_3]]
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}, {
|
|
96
|
+
key: "processVisibleItem",
|
|
97
|
+
value: function processVisibleItem(nodeIndex, startIndex, data) {
|
|
98
|
+
var _data$color, _data$borderColor, _data$border, _data$opacity, _data$pie$length, _data$pie;
|
|
99
|
+
var array = this.array;
|
|
100
|
+
var base = floatColor(this.renderer.getSetting("defaultNodeColor"));
|
|
101
|
+
var color = floatColor((_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.renderer.getSetting("defaultNodeColor"));
|
|
102
|
+
var stroke = floatColor((_data$borderColor = data.borderColor) !== null && _data$borderColor !== void 0 ? _data$borderColor : this.renderer.getSetting("defaultEdgeColor"));
|
|
103
|
+
array[startIndex++] = data.x;
|
|
104
|
+
array[startIndex++] = data.y;
|
|
105
|
+
array[startIndex++] = data.size;
|
|
106
|
+
array[startIndex++] = Math.min((_data$border = data.border) !== null && _data$border !== void 0 ? _data$border : 0, 4);
|
|
107
|
+
array[startIndex++] = (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
|
|
108
|
+
array[startIndex++] = base;
|
|
109
|
+
array[startIndex++] = color;
|
|
110
|
+
array[startIndex++] = stroke;
|
|
111
|
+
array[startIndex++] = Math.min(7, (_data$pie$length = (_data$pie = data.pie) === null || _data$pie === void 0 ? void 0 : _data$pie.length) !== null && _data$pie$length !== void 0 ? _data$pie$length : 0);
|
|
112
|
+
Array(7).fill(0).forEach(function (_, idx) {
|
|
113
|
+
var _data$pie$idx, _data$pie2;
|
|
114
|
+
array[startIndex++] = floatColor((_data$pie$idx = (_data$pie2 = data.pie) === null || _data$pie2 === void 0 ? void 0 : _data$pie2[idx]) !== null && _data$pie$idx !== void 0 ? _data$pie$idx : "#0000");
|
|
115
|
+
});
|
|
116
|
+
array[startIndex++] = nodeIndex;
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "setUniforms",
|
|
120
|
+
value: function setUniforms(params, _ref) {
|
|
121
|
+
var gl = _ref.gl,
|
|
122
|
+
uniformLocations = _ref.uniformLocations;
|
|
123
|
+
var u_sizeRatio = uniformLocations.u_sizeRatio,
|
|
124
|
+
u_correctionRatio = uniformLocations.u_correctionRatio,
|
|
125
|
+
u_matrix = uniformLocations.u_matrix;
|
|
126
|
+
gl.uniform1f(u_correctionRatio, params.correctionRatio);
|
|
127
|
+
gl.uniform1f(u_sizeRatio, params.sizeRatio);
|
|
128
|
+
gl.uniformMatrix3fv(u_matrix, false, params.matrix);
|
|
129
|
+
}
|
|
130
|
+
}]);
|
|
131
|
+
}(NodeProgram);
|
|
132
|
+
_defineProperty(NodeCircleBase, "ANGLE_1", 0);
|
|
133
|
+
_defineProperty(NodeCircleBase, "ANGLE_2", 2 * Math.PI / 3);
|
|
134
|
+
_defineProperty(NodeCircleBase, "ANGLE_3", 4 * Math.PI / 3);
|
|
135
|
+
|
|
136
|
+
export { NodeCircleBase };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
/* istanbul ignore file */
|
|
4
|
+
|
|
5
|
+
// language=GLSL
|
|
6
|
+
var SHADER_SOURCE = /* glsl */"\nattribute vec4 a_id;\nattribute vec4 a_base;\nattribute vec4 a_color;\nattribute vec4 a_stroke;\nattribute vec2 a_position;\nattribute float a_size;\nattribute float a_border;\nattribute float a_angle;\nattribute float a_opacity;\nattribute float a_segments;\nattribute vec4 a_colors_0;\nattribute vec4 a_colors_1;\nattribute vec4 a_colors_2;\nattribute vec4 a_colors_3;\nattribute vec4 a_colors_4;\nattribute vec4 a_colors_5;\nattribute vec4 a_colors_6;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvarying vec4 v_color;\nvarying vec4 v_stroke;\nvarying vec2 v_diffVector;\nvarying float v_radius;\nvarying float v_border;\nvarying float v_segmentAngle;\nvarying vec4 v_colors_0;\nvarying vec4 v_colors_1;\nvarying vec4 v_colors_2;\nvarying vec4 v_colors_3;\nvarying vec4 v_colors_4;\nvarying vec4 v_colors_5;\nvarying vec4 v_colors_6;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n float size = a_size * u_correctionRatio / u_sizeRatio * 4.0;\n vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));\n vec2 position = a_position + diffVector;\n gl_Position = vec4(\n (u_matrix * vec3(position, 1)).xy,\n 0,\n 1\n );\n\n v_diffVector = diffVector;\n v_radius = size / 2.0;\n v_border = (a_border + 8.0) * u_correctionRatio / u_sizeRatio * 4.0;\n\n #ifdef PICKING_MODE\n // For picking mode, we use the ID as the color:\n v_color = a_id;\n #else\n // For normal mode, we use the color:\n v_color = mix(a_base, a_color, a_opacity * bias);\n v_stroke = mix(a_base, a_stroke, a_opacity * bias);\n\n // pie colors\n v_segmentAngle = 0.0;\n if(a_segments > 0.0) {\n v_segmentAngle = ".concat(Math.PI * 2, " / a_segments;\n v_colors_0 = mix(a_base, a_colors_0, a_opacity * bias);\n v_colors_1 = mix(a_base, a_colors_1, a_opacity * bias);\n v_colors_2 = mix(a_base, a_colors_2, a_opacity * bias);\n v_colors_3 = mix(a_base, a_colors_3, a_opacity * bias);\n v_colors_4 = mix(a_base, a_colors_4, a_opacity * bias);\n v_colors_5 = mix(a_base, a_colors_5, a_opacity * bias);\n v_colors_6 = mix(a_base, a_colors_6, a_opacity * bias);\n }\n #endif\n\n v_color.a *= bias;\n}\n");
|
|
7
|
+
|
|
8
|
+
export { SHADER_SOURCE as default };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
4
|
+
import { createNodeCompoundProgram } from 'sigma/rendering';
|
|
5
|
+
import { NodeBadgeProgram } from '../node-badge/index.js';
|
|
6
|
+
import { NodeImageProgram } from '../node-image/index.js';
|
|
7
|
+
import { NodeCircleBase } from './base/index.js';
|
|
8
|
+
import { drawNodeHover } from './base/drawHover.js';
|
|
9
|
+
import { drawNodeLabel } from './base/drawLabel.js';
|
|
10
|
+
|
|
11
|
+
/* istanbul ignore file */
|
|
12
|
+
|
|
13
|
+
var NodeCircleProgram = createNodeCompoundProgram([NodeCircleBase, NodeImageProgram(true)].concat(_toConsumableArray(NodeBadgeProgram(true))), drawNodeLabel, drawNodeHover);
|
|
14
|
+
|
|
15
|
+
export { NodeCircleProgram };
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
4
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
5
|
+
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
6
|
+
import _get from '@babel/runtime/helpers/get';
|
|
7
|
+
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
8
|
+
import _inherits from '@babel/runtime/helpers/inherits';
|
|
9
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
10
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
11
|
+
import { isSvgPath } from '@react-fabric/utilities';
|
|
12
|
+
import { NodeProgram } from 'sigma/rendering';
|
|
13
|
+
import { floatColor } from 'sigma/utils';
|
|
14
|
+
import SHADER_SOURCE from './frag.glsl.js';
|
|
15
|
+
import { DEFAULT_TEXTURE_MANAGER_OPTIONS, TextureManager } from './texture.js';
|
|
16
|
+
import VERTEX_SHADER_SOURCE from './vert.glsl.js';
|
|
17
|
+
|
|
18
|
+
var _excluded = ["drawHover", "drawLabel", "drawingMode", "keepWithinCircle", "padding", "colorAttribute"];
|
|
19
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
20
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
|
|
24
|
+
/* istanbul ignore file */
|
|
25
|
+
|
|
26
|
+
var _WebGLRenderingContex = WebGLRenderingContext,
|
|
27
|
+
UNSIGNED_BYTE = _WebGLRenderingContex.UNSIGNED_BYTE,
|
|
28
|
+
FLOAT = _WebGLRenderingContex.FLOAT;
|
|
29
|
+
var DEFAULT_CREATE_NODE_IMAGE_OPTIONS = _objectSpread(_objectSpread({}, DEFAULT_TEXTURE_MANAGER_OPTIONS), {}, {
|
|
30
|
+
drawingMode: "background",
|
|
31
|
+
keepWithinCircle: true,
|
|
32
|
+
drawLabel: undefined,
|
|
33
|
+
drawHover: undefined,
|
|
34
|
+
padding: 0,
|
|
35
|
+
colorAttribute: "color"
|
|
36
|
+
});
|
|
37
|
+
var UNIFORMS = ["u_sizeRatio", "u_correctionRatio", "u_cameraAngle", "u_percentagePadding", "u_matrix", "u_colorizeImages", "u_keepWithinCircle", "u_atlas"];
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* To share the texture between the program instances of the graph and the
|
|
41
|
+
* hovered nodes (to prevent some flickering, mostly), this program must be
|
|
42
|
+
* "built" for each sigma instance:
|
|
43
|
+
*/
|
|
44
|
+
function getNodeImageProgram(options) {
|
|
45
|
+
var _NodeImageProgram;
|
|
46
|
+
var _DEFAULT_CREATE_NODE_ = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_CREATE_NODE_IMAGE_OPTIONS), options !== null && options !== void 0 ? options : {}), {}, {
|
|
47
|
+
drawLabel: undefined,
|
|
48
|
+
drawHover: undefined
|
|
49
|
+
}),
|
|
50
|
+
drawHover = _DEFAULT_CREATE_NODE_.drawHover,
|
|
51
|
+
drawLabel = _DEFAULT_CREATE_NODE_.drawLabel;
|
|
52
|
+
_DEFAULT_CREATE_NODE_.drawingMode;
|
|
53
|
+
var keepWithinCircle = _DEFAULT_CREATE_NODE_.keepWithinCircle,
|
|
54
|
+
padding = _DEFAULT_CREATE_NODE_.padding;
|
|
55
|
+
_DEFAULT_CREATE_NODE_.colorAttribute;
|
|
56
|
+
var textureManagerOptions = _objectWithoutProperties(_DEFAULT_CREATE_NODE_, _excluded);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This texture manager is shared between all instances of this exact class,
|
|
60
|
+
* returned by this call to getNodeProgramImage. This means that remounting
|
|
61
|
+
* the sigma instance will not reload the images and regenerate the texture.
|
|
62
|
+
*/
|
|
63
|
+
var textureManager = new TextureManager(textureManagerOptions);
|
|
64
|
+
return _NodeImageProgram = /*#__PURE__*/function (_NodeProgram) {
|
|
65
|
+
function NodeImageProgram(gl, pickingBuffer, renderer) {
|
|
66
|
+
var _this;
|
|
67
|
+
_classCallCheck(this, NodeImageProgram);
|
|
68
|
+
_this = _callSuper(this, NodeImageProgram, [gl, pickingBuffer, renderer]);
|
|
69
|
+
_this.textureManagerCallback = function () {
|
|
70
|
+
if (!_this) return;
|
|
71
|
+
if (_this.bindTexture) {
|
|
72
|
+
_this.atlas = textureManager.getAtlas();
|
|
73
|
+
_this.textureImage = textureManager.getTexture();
|
|
74
|
+
_this.bindTexture();
|
|
75
|
+
if (_this.latestRenderParams) _this.render(_this.latestRenderParams);
|
|
76
|
+
}
|
|
77
|
+
if (renderer !== null && renderer !== void 0 && renderer.refresh) renderer.refresh();
|
|
78
|
+
};
|
|
79
|
+
textureManager.on(TextureManager.NEW_TEXTURE_EVENT, _this.textureManagerCallback);
|
|
80
|
+
_this.atlas = textureManager.getAtlas();
|
|
81
|
+
_this.textureImage = textureManager.getTexture();
|
|
82
|
+
_this.texture = gl.createTexture();
|
|
83
|
+
_this.bindTexture();
|
|
84
|
+
return _this;
|
|
85
|
+
}
|
|
86
|
+
_inherits(NodeImageProgram, _NodeProgram);
|
|
87
|
+
return _createClass(NodeImageProgram, [{
|
|
88
|
+
key: "getDefinition",
|
|
89
|
+
value: function getDefinition() {
|
|
90
|
+
return {
|
|
91
|
+
VERTICES: 4,
|
|
92
|
+
VERTEX_SHADER_SOURCE: VERTEX_SHADER_SOURCE,
|
|
93
|
+
FRAGMENT_SHADER_SOURCE: SHADER_SOURCE,
|
|
94
|
+
METHOD: WebGLRenderingContext.TRIANGLE_FAN,
|
|
95
|
+
UNIFORMS: UNIFORMS,
|
|
96
|
+
ATTRIBUTES: [{
|
|
97
|
+
name: "a_position",
|
|
98
|
+
size: 2,
|
|
99
|
+
type: FLOAT
|
|
100
|
+
}, {
|
|
101
|
+
name: "a_size",
|
|
102
|
+
size: 1,
|
|
103
|
+
type: FLOAT
|
|
104
|
+
}, {
|
|
105
|
+
name: "a_opacity",
|
|
106
|
+
size: 1,
|
|
107
|
+
type: FLOAT
|
|
108
|
+
}, {
|
|
109
|
+
name: "a_colorMode",
|
|
110
|
+
size: 1,
|
|
111
|
+
type: FLOAT
|
|
112
|
+
}, {
|
|
113
|
+
name: "a_fill",
|
|
114
|
+
size: 4,
|
|
115
|
+
type: UNSIGNED_BYTE,
|
|
116
|
+
normalized: true
|
|
117
|
+
}, {
|
|
118
|
+
name: "a_color",
|
|
119
|
+
size: 4,
|
|
120
|
+
type: UNSIGNED_BYTE,
|
|
121
|
+
normalized: true
|
|
122
|
+
}, {
|
|
123
|
+
name: "a_id",
|
|
124
|
+
size: 4,
|
|
125
|
+
type: UNSIGNED_BYTE,
|
|
126
|
+
normalized: true
|
|
127
|
+
}, {
|
|
128
|
+
name: "a_texture",
|
|
129
|
+
size: 4,
|
|
130
|
+
type: FLOAT
|
|
131
|
+
}],
|
|
132
|
+
CONSTANT_ATTRIBUTES: [{
|
|
133
|
+
name: "a_angle",
|
|
134
|
+
size: 1,
|
|
135
|
+
type: FLOAT
|
|
136
|
+
}],
|
|
137
|
+
CONSTANT_DATA: [[NodeImageProgram.ANGLE_1], [NodeImageProgram.ANGLE_2], [NodeImageProgram.ANGLE_3], [NodeImageProgram.ANGLE_4]]
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}, {
|
|
141
|
+
key: "kill",
|
|
142
|
+
value: function kill() {
|
|
143
|
+
textureManager.off(TextureManager.NEW_TEXTURE_EVENT, this.textureManagerCallback);
|
|
144
|
+
}
|
|
145
|
+
}, {
|
|
146
|
+
key: "bindTexture",
|
|
147
|
+
value: function bindTexture() {
|
|
148
|
+
var gl = this.normalProgram.gl;
|
|
149
|
+
gl.bindTexture(gl.TEXTURE_2D, this.texture);
|
|
150
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this.textureImage);
|
|
151
|
+
gl.generateMipmap(gl.TEXTURE_2D);
|
|
152
|
+
}
|
|
153
|
+
}, {
|
|
154
|
+
key: "renderProgram",
|
|
155
|
+
value: function renderProgram(params, programInfo) {
|
|
156
|
+
if (!programInfo.isPicking) {
|
|
157
|
+
// Rebind texture (since it's been just unbound by picking):
|
|
158
|
+
var gl = programInfo.gl;
|
|
159
|
+
gl.bindTexture(gl.TEXTURE_2D, this.texture);
|
|
160
|
+
}
|
|
161
|
+
_get(_getPrototypeOf(NodeImageProgram.prototype), "renderProgram", this).call(this, params, programInfo);
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
key: "processVisibleItem",
|
|
165
|
+
value: function processVisibleItem(nodeIndex, startIndex, data) {
|
|
166
|
+
var _data$color, _data$iconColor, _data$image, _data$border, _data$pie, _data$opacity;
|
|
167
|
+
var array = this.array;
|
|
168
|
+
var fill = floatColor((_data$color = data.color) !== null && _data$color !== void 0 ? _data$color : this.renderer.getSetting("defaultNodeColor"));
|
|
169
|
+
var color = floatColor((_data$iconColor = data.iconColor) !== null && _data$iconColor !== void 0 ? _data$iconColor : this.renderer.getSetting("labelColor").color);
|
|
170
|
+
var imageSource = (_data$image = data.image) !== null && _data$image !== void 0 ? _data$image : data.path;
|
|
171
|
+
var imagePosition = imageSource ? this.atlas[imageSource] : undefined;
|
|
172
|
+
if (typeof imageSource === "string" && !imagePosition) void textureManager.registerImage(imageSource);
|
|
173
|
+
array[startIndex++] = data.x;
|
|
174
|
+
array[startIndex++] = data.y;
|
|
175
|
+
array[startIndex++] = data.size - ((_data$border = data.border) !== null && _data$border !== void 0 ? _data$border : 0) - ((_data$pie = data.pie) !== null && _data$pie !== void 0 && _data$pie.length ? 4 : 2);
|
|
176
|
+
array[startIndex++] = (_data$opacity = data.opacity) !== null && _data$opacity !== void 0 ? _data$opacity : 1;
|
|
177
|
+
array[startIndex++] = isSvgPath(imageSource) ? 1 : 0;
|
|
178
|
+
array[startIndex++] = fill;
|
|
179
|
+
array[startIndex++] = color;
|
|
180
|
+
array[startIndex++] = nodeIndex;
|
|
181
|
+
|
|
182
|
+
// Reference texture:
|
|
183
|
+
if (imagePosition) {
|
|
184
|
+
var _this$textureImage = this.textureImage,
|
|
185
|
+
width = _this$textureImage.width,
|
|
186
|
+
height = _this$textureImage.height;
|
|
187
|
+
array[startIndex++] = imagePosition.x / width;
|
|
188
|
+
array[startIndex++] = imagePosition.y / height;
|
|
189
|
+
array[startIndex++] = imagePosition.size / width;
|
|
190
|
+
array[startIndex++] = imagePosition.size / height;
|
|
191
|
+
} else {
|
|
192
|
+
array[startIndex++] = 0;
|
|
193
|
+
array[startIndex++] = 0;
|
|
194
|
+
array[startIndex++] = 0;
|
|
195
|
+
array[startIndex++] = 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}, {
|
|
199
|
+
key: "setUniforms",
|
|
200
|
+
value: function setUniforms(params, _ref) {
|
|
201
|
+
var gl = _ref.gl,
|
|
202
|
+
uniformLocations = _ref.uniformLocations;
|
|
203
|
+
var u_sizeRatio = uniformLocations.u_sizeRatio,
|
|
204
|
+
u_correctionRatio = uniformLocations.u_correctionRatio,
|
|
205
|
+
u_matrix = uniformLocations.u_matrix,
|
|
206
|
+
u_atlas = uniformLocations.u_atlas,
|
|
207
|
+
u_keepWithinCircle = uniformLocations.u_keepWithinCircle,
|
|
208
|
+
u_cameraAngle = uniformLocations.u_cameraAngle,
|
|
209
|
+
u_percentagePadding = uniformLocations.u_percentagePadding;
|
|
210
|
+
this.latestRenderParams = params;
|
|
211
|
+
gl.uniform1f(u_correctionRatio, params.correctionRatio);
|
|
212
|
+
gl.uniform1f(u_sizeRatio, keepWithinCircle ? params.sizeRatio : params.sizeRatio / Math.SQRT2);
|
|
213
|
+
gl.uniform1f(u_cameraAngle, params.cameraAngle);
|
|
214
|
+
gl.uniform1f(u_percentagePadding, padding);
|
|
215
|
+
gl.uniformMatrix3fv(u_matrix, false, params.matrix);
|
|
216
|
+
gl.uniform1i(u_atlas, 0);
|
|
217
|
+
gl.uniform1i(u_keepWithinCircle, keepWithinCircle ? 1 : 0);
|
|
218
|
+
}
|
|
219
|
+
}]);
|
|
220
|
+
}(NodeProgram), _defineProperty(_NodeImageProgram, "ANGLE_1", 1 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_2", 3 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_3", 5 * Math.PI / 4), _defineProperty(_NodeImageProgram, "ANGLE_4", 7 * Math.PI / 4), _defineProperty(_NodeImageProgram, "drawLabel", drawLabel), _defineProperty(_NodeImageProgram, "drawHover", drawHover), _NodeImageProgram;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export { getNodeImageProgram as default };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
/* istanbul ignore file */
|
|
4
|
+
|
|
5
|
+
// language=GLSL
|
|
6
|
+
var SHADER_SOURCE = /* glsl */"\nprecision highp float;\n\nvarying vec4 v_fill;\nvarying vec4 v_color;\nvarying vec4 v_texture;\nvarying vec2 v_diffVector;\nvarying float v_opacity;\nvarying float v_radius;\nvarying float v_colorMode;\n\nuniform sampler2D u_atlas;\nuniform float u_correctionRatio;\nuniform float u_cameraAngle;\nuniform float u_percentagePadding;\nuniform bool u_keepWithinCircle;\nuniform bool u_shape;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nconst float radius = 0.5;\n\nvoid main(void) {\n float border = 2.0 * u_correctionRatio;\n float dist = length(v_diffVector);\n vec4 color = v_fill;\n\n float c = cos(-u_cameraAngle);\n float s = sin(-u_cameraAngle);\n vec2 diffVector = mat2(c, s, -s, c) * (v_diffVector);\n\n // No antialiasing for picking mode:\n #ifdef PICKING_MODE\n border = 0.0;\n gl_FragColor = v_color;\n\n #else\n // First case: No image to display\n if (v_texture.w <= 0.0) {\n if (v_colorMode==0.0) {\n color = v_fill;\n }\n }\n\n // Second case: Image loaded into the texture\n else {\n float paddingRatio = 1.0 + 2.0 * u_percentagePadding;\n float coef = u_keepWithinCircle ? 1.0 : ".concat(Math.SQRT2, ";\n vec2 coordinateInTexture = diffVector * vec2(paddingRatio, -paddingRatio) / v_radius / 2.0 * coef + vec2(0.5, 0.5);\n vec4 texel = texture2D(u_atlas, (v_texture.xy + coordinateInTexture * v_texture.zw), -1.0);\n\n // Colorize all visible image pixels:\n if (v_colorMode==1.0) {\n color = mix(v_fill, v_color, texel.a);\n }\n\n // Colorize background pixels, keep image pixel colors:\n else {\n color = vec4(mix(v_color, texel, texel.a).rgb, max(texel.a, v_color.a));\n }\n\n // Erase pixels \"in the padding\":\n if (abs(diffVector.x) > v_radius / paddingRatio || abs(diffVector.y) > v_radius / paddingRatio) {\n color = v_colorMode == 1.0 ? gl_FragColor : v_fill;\n }\n }\n\n // Crop in a circle when u_keepWithinCircle is truthy:\n if (u_keepWithinCircle) {\n if (dist - v_radius + border > border)\n gl_FragColor = transparent;\n else if (dist - v_radius + border > 0.0) {\n gl_FragColor = mix(v_fill, transparent, (dist - v_radius + border) / border);\n }\n else {\n gl_FragColor = mix(v_fill, color, v_opacity);\n }\n }\n\n // Crop in a square else:\n else {\n float squareHalfSize = v_radius * ").concat(Math.SQRT1_2 * Math.cos(Math.PI / 12), ";\n if (abs(diffVector.x) > squareHalfSize || abs(diffVector.y) > squareHalfSize) {\n gl_FragColor = transparent;\n } else {\n gl_FragColor = mix(v_fill, color, v_opacity);\n }\n }\n #endif\n\n}\n");
|
|
7
|
+
|
|
8
|
+
export { SHADER_SOURCE as default };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import getNodeImageProgram from './factory.js';
|
|
4
|
+
|
|
5
|
+
/* istanbul ignore file */
|
|
6
|
+
|
|
7
|
+
var NodeImageProgram = function NodeImageProgram(isCircle) {
|
|
8
|
+
return getNodeImageProgram({
|
|
9
|
+
keepWithinCircle: isCircle
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { NodeImageProgram, getNodeImageProgram as createNodeImageProgram };
|