@deck.gl-community/graph-layers 9.0.0

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.
Files changed (210) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +7 -0
  3. package/dist/core/base-layout.d.ts +71 -0
  4. package/dist/core/base-layout.js +133 -0
  5. package/dist/core/cache.d.ts +14 -0
  6. package/dist/core/cache.js +26 -0
  7. package/dist/core/constants.d.ts +101 -0
  8. package/dist/core/constants.js +48 -0
  9. package/dist/core/edge.d.ts +86 -0
  10. package/dist/core/edge.js +121 -0
  11. package/dist/core/graph-engine.d.ts +54 -0
  12. package/dist/core/graph-engine.js +128 -0
  13. package/dist/core/graph.d.ts +155 -0
  14. package/dist/core/graph.js +301 -0
  15. package/dist/core/interaction-manager.d.ts +40 -0
  16. package/dist/core/interaction-manager.js +169 -0
  17. package/dist/core/node.d.ts +103 -0
  18. package/dist/core/node.js +177 -0
  19. package/dist/index.cjs +3540 -0
  20. package/dist/index.cjs.map +7 -0
  21. package/dist/index.d.ts +19 -0
  22. package/dist/index.js +28 -0
  23. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +1 -0
  24. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +49 -0
  25. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +1 -0
  26. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +14 -0
  27. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +1 -0
  28. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +73 -0
  29. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +20 -0
  30. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +133 -0
  31. package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +3 -0
  32. package/dist/layers/common-layers/marker-layer/atlas-data-url.js +8 -0
  33. package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +13 -0
  34. package/dist/layers/common-layers/marker-layer/marker-layer.js +29 -0
  35. package/dist/layers/common-layers/marker-layer/marker-list.d.ts +62 -0
  36. package/dist/layers/common-layers/marker-layer/marker-list.js +67 -0
  37. package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +422 -0
  38. package/dist/layers/common-layers/marker-layer/marker-mapping.js +427 -0
  39. package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +24 -0
  40. package/dist/layers/common-layers/spline-layer/spline-layer.js +68 -0
  41. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +16 -0
  42. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +65 -0
  43. package/dist/layers/edge-layer.d.ts +25 -0
  44. package/dist/layers/edge-layer.js +75 -0
  45. package/dist/layers/edge-layers/curved-edge-layer.d.ts +6 -0
  46. package/dist/layers/edge-layers/curved-edge-layer.js +69 -0
  47. package/dist/layers/edge-layers/edge-label-layer.d.ts +6 -0
  48. package/dist/layers/edge-layers/edge-label-layer.js +42 -0
  49. package/dist/layers/edge-layers/flow-layer.d.ts +6 -0
  50. package/dist/layers/edge-layers/flow-layer.js +28 -0
  51. package/dist/layers/edge-layers/path-edge-layer.d.ts +6 -0
  52. package/dist/layers/edge-layers/path-edge-layer.js +27 -0
  53. package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +6 -0
  54. package/dist/layers/edge-layers/straight-line-edge-layer.js +26 -0
  55. package/dist/layers/graph-layer.d.ts +32 -0
  56. package/dist/layers/graph-layer.js +193 -0
  57. package/dist/layers/node-layers/circle-layer.d.ts +6 -0
  58. package/dist/layers/node-layers/circle-layer.js +23 -0
  59. package/dist/layers/node-layers/image-layer.d.ts +6 -0
  60. package/dist/layers/node-layers/image-layer.js +23 -0
  61. package/dist/layers/node-layers/label-layer.d.ts +6 -0
  62. package/dist/layers/node-layers/label-layer.js +23 -0
  63. package/dist/layers/node-layers/path-rounded-rectange-layer.d.ts +6 -0
  64. package/dist/layers/node-layers/path-rounded-rectange-layer.js +46 -0
  65. package/dist/layers/node-layers/rectangle-layer.d.ts +6 -0
  66. package/dist/layers/node-layers/rectangle-layer.js +49 -0
  67. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +1 -0
  68. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +30 -0
  69. package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +8 -0
  70. package/dist/layers/node-layers/rounded-rectangle-layer.js +28 -0
  71. package/dist/layers/node-layers/zoomable-marker-layer.d.ts +10 -0
  72. package/dist/layers/node-layers/zoomable-marker-layer.js +40 -0
  73. package/dist/layouts/d3-force/d3-force-layout.d.ts +24 -0
  74. package/dist/layouts/d3-force/d3-force-layout.js +116 -0
  75. package/dist/layouts/d3-force/worker.d.ts +0 -0
  76. package/dist/layouts/d3-force/worker.js +46 -0
  77. package/dist/layouts/gpu-force/gpu-force-layout.d.ts +30 -0
  78. package/dist/layouts/gpu-force/gpu-force-layout.js +232 -0
  79. package/dist/layouts/gpu-force/worker.d.ts +0 -0
  80. package/dist/layouts/gpu-force/worker.js +116 -0
  81. package/dist/layouts/simple-layout/simple-layout.d.ts +22 -0
  82. package/dist/layouts/simple-layout/simple-layout.js +64 -0
  83. package/dist/loaders/edge-parsers.d.ts +6 -0
  84. package/dist/loaders/edge-parsers.js +17 -0
  85. package/dist/loaders/json-loader.d.ts +7 -0
  86. package/dist/loaders/json-loader.js +16 -0
  87. package/dist/loaders/node-parsers.d.ts +3 -0
  88. package/dist/loaders/node-parsers.js +11 -0
  89. package/dist/style/style-property.d.ts +14 -0
  90. package/dist/style/style-property.js +195 -0
  91. package/dist/style/style-sheet.d.ts +10 -0
  92. package/dist/style/style-sheet.js +252 -0
  93. package/dist/utils/create-graph.d.ts +8 -0
  94. package/dist/utils/create-graph.js +33 -0
  95. package/dist/utils/layer-utils.d.ts +1 -0
  96. package/dist/utils/layer-utils.js +20 -0
  97. package/dist/utils/log.d.ts +2 -0
  98. package/dist/utils/log.js +6 -0
  99. package/dist/utils/polygon-calculations.d.ts +1 -0
  100. package/dist/utils/polygon-calculations.js +102 -0
  101. package/package.json +55 -0
  102. package/src/core/base-layout.ts +154 -0
  103. package/src/core/cache.ts +31 -0
  104. package/src/core/constants.ts +58 -0
  105. package/src/core/edge.ts +145 -0
  106. package/src/core/graph-engine.ts +170 -0
  107. package/src/core/graph.ts +342 -0
  108. package/src/core/interaction-manager.ts +225 -0
  109. package/src/core/node.ts +205 -0
  110. package/src/index.ts +42 -0
  111. package/src/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.ts +50 -0
  112. package/src/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.ts +15 -0
  113. package/src/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.ts +74 -0
  114. package/src/layers/common-layers/flow-path-layer/flow-path-layer.ts +154 -0
  115. package/src/layers/common-layers/marker-layer/atlas-data-url.ts +10 -0
  116. package/src/layers/common-layers/marker-layer/marker-atlas.png +0 -0
  117. package/src/layers/common-layers/marker-layer/marker-layer.ts +36 -0
  118. package/src/layers/common-layers/marker-layer/marker-list.ts +68 -0
  119. package/src/layers/common-layers/marker-layer/marker-mapping.ts +428 -0
  120. package/src/layers/common-layers/marker-layer/markers/bell-filled.png +0 -0
  121. package/src/layers/common-layers/marker-layer/markers/bell.png +0 -0
  122. package/src/layers/common-layers/marker-layer/markers/bookmark-filled.png +0 -0
  123. package/src/layers/common-layers/marker-layer/markers/bookmark.png +0 -0
  124. package/src/layers/common-layers/marker-layer/markers/cd-filled.png +0 -0
  125. package/src/layers/common-layers/marker-layer/markers/cd.png +0 -0
  126. package/src/layers/common-layers/marker-layer/markers/checkmark.png +0 -0
  127. package/src/layers/common-layers/marker-layer/markers/circle-check-filled.png +0 -0
  128. package/src/layers/common-layers/marker-layer/markers/circle-check.png +0 -0
  129. package/src/layers/common-layers/marker-layer/markers/circle-filled.png +0 -0
  130. package/src/layers/common-layers/marker-layer/markers/circle-i-filled.png +0 -0
  131. package/src/layers/common-layers/marker-layer/markers/circle-i.png +0 -0
  132. package/src/layers/common-layers/marker-layer/markers/circle-minus-filled.png +0 -0
  133. package/src/layers/common-layers/marker-layer/markers/circle-minus.png +0 -0
  134. package/src/layers/common-layers/marker-layer/markers/circle-plus-filled.png +0 -0
  135. package/src/layers/common-layers/marker-layer/markers/circle-plus.png +0 -0
  136. package/src/layers/common-layers/marker-layer/markers/circle-questionmark-filled.png +0 -0
  137. package/src/layers/common-layers/marker-layer/markers/circle-questionmark.png +0 -0
  138. package/src/layers/common-layers/marker-layer/markers/circle-slash-filled.png +0 -0
  139. package/src/layers/common-layers/marker-layer/markers/circle-slash.png +0 -0
  140. package/src/layers/common-layers/marker-layer/markers/circle-x-filled.png +0 -0
  141. package/src/layers/common-layers/marker-layer/markers/circle-x.png +0 -0
  142. package/src/layers/common-layers/marker-layer/markers/circle.png +0 -0
  143. package/src/layers/common-layers/marker-layer/markers/diamond-filled.png +0 -0
  144. package/src/layers/common-layers/marker-layer/markers/diamond.png +0 -0
  145. package/src/layers/common-layers/marker-layer/markers/flag-filled.png +0 -0
  146. package/src/layers/common-layers/marker-layer/markers/flag.png +0 -0
  147. package/src/layers/common-layers/marker-layer/markers/gear.png +0 -0
  148. package/src/layers/common-layers/marker-layer/markers/heart-filled.png +0 -0
  149. package/src/layers/common-layers/marker-layer/markers/heart.png +0 -0
  150. package/src/layers/common-layers/marker-layer/markers/location-marker-filled.png +0 -0
  151. package/src/layers/common-layers/marker-layer/markers/location-marker.png +0 -0
  152. package/src/layers/common-layers/marker-layer/markers/octagonal-star-filled.png +0 -0
  153. package/src/layers/common-layers/marker-layer/markers/octagonal-star.png +0 -0
  154. package/src/layers/common-layers/marker-layer/markers/person-filled.png +0 -0
  155. package/src/layers/common-layers/marker-layer/markers/person.png +0 -0
  156. package/src/layers/common-layers/marker-layer/markers/pin-filled.png +0 -0
  157. package/src/layers/common-layers/marker-layer/markers/pin.png +0 -0
  158. package/src/layers/common-layers/marker-layer/markers/plus-small.png +0 -0
  159. package/src/layers/common-layers/marker-layer/markers/plus.png +0 -0
  160. package/src/layers/common-layers/marker-layer/markers/rectangle-filled.png +0 -0
  161. package/src/layers/common-layers/marker-layer/markers/rectangle.png +0 -0
  162. package/src/layers/common-layers/marker-layer/markers/star-filled.png +0 -0
  163. package/src/layers/common-layers/marker-layer/markers/star.png +0 -0
  164. package/src/layers/common-layers/marker-layer/markers/tag-filled.png +0 -0
  165. package/src/layers/common-layers/marker-layer/markers/tag.png +0 -0
  166. package/src/layers/common-layers/marker-layer/markers/thumb-down-filled.png +0 -0
  167. package/src/layers/common-layers/marker-layer/markers/thumb-down.png +0 -0
  168. package/src/layers/common-layers/marker-layer/markers/thumb-up.png +0 -0
  169. package/src/layers/common-layers/marker-layer/markers/thumb_up-filled.png +0 -0
  170. package/src/layers/common-layers/marker-layer/markers/triangle-down-filled.png +0 -0
  171. package/src/layers/common-layers/marker-layer/markers/triangle-down.png +0 -0
  172. package/src/layers/common-layers/marker-layer/markers/triangle-left-filled.png +0 -0
  173. package/src/layers/common-layers/marker-layer/markers/triangle-left.png +0 -0
  174. package/src/layers/common-layers/marker-layer/markers/triangle-right-filled.png +0 -0
  175. package/src/layers/common-layers/marker-layer/markers/triangle-right.png +0 -0
  176. package/src/layers/common-layers/marker-layer/markers/triangle-up-filled.png +0 -0
  177. package/src/layers/common-layers/marker-layer/markers/triangle-up.png +0 -0
  178. package/src/layers/common-layers/marker-layer/markers/x-small.png +0 -0
  179. package/src/layers/common-layers/marker-layer/markers/x.png +0 -0
  180. package/src/layers/common-layers/spline-layer/spline-layer.ts +83 -0
  181. package/src/layers/common-layers/zoomable-text-layer/zoomable-text-layer.ts +90 -0
  182. package/src/layers/edge-layer.ts +88 -0
  183. package/src/layers/edge-layers/curved-edge-layer.ts +88 -0
  184. package/src/layers/edge-layers/edge-label-layer.ts +48 -0
  185. package/src/layers/edge-layers/flow-layer.ts +34 -0
  186. package/src/layers/edge-layers/path-edge-layer.ts +39 -0
  187. package/src/layers/edge-layers/straight-line-edge-layer.ts +38 -0
  188. package/src/layers/graph-layer.ts +225 -0
  189. package/src/layers/node-layers/circle-layer.ts +29 -0
  190. package/src/layers/node-layers/image-layer.ts +29 -0
  191. package/src/layers/node-layers/label-layer.ts +29 -0
  192. package/src/layers/node-layers/path-rounded-rectange-layer.ts +56 -0
  193. package/src/layers/node-layers/rectangle-layer.ts +58 -0
  194. package/src/layers/node-layers/rounded-rectangle-layer-fragment.ts +31 -0
  195. package/src/layers/node-layers/rounded-rectangle-layer.ts +32 -0
  196. package/src/layers/node-layers/zoomable-marker-layer.ts +49 -0
  197. package/src/layouts/d3-force/d3-force-layout.ts +145 -0
  198. package/src/layouts/d3-force/worker.ts +61 -0
  199. package/src/layouts/gpu-force/gpu-force-layout.ts +249 -0
  200. package/src/layouts/gpu-force/worker.ts +137 -0
  201. package/src/layouts/simple-layout/simple-layout.ts +87 -0
  202. package/src/loaders/edge-parsers.ts +21 -0
  203. package/src/loaders/json-loader.ts +19 -0
  204. package/src/loaders/node-parsers.ts +13 -0
  205. package/src/style/style-property.ts +229 -0
  206. package/src/style/style-sheet.ts +277 -0
  207. package/src/utils/create-graph.ts +38 -0
  208. package/src/utils/layer-utils.ts +23 -0
  209. package/src/utils/log.ts +9 -0
  210. package/src/utils/polygon-calculations.ts +154 -0
@@ -0,0 +1,428 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ /* eslint-disable */
6
+ export const MarkerMapping = {
7
+ 'bell-filled': {
8
+ x: 0,
9
+ y: 0,
10
+ width: 32,
11
+ height: 32,
12
+ mask: true
13
+ },
14
+ bell: {
15
+ x: 32,
16
+ y: 0,
17
+ width: 32,
18
+ height: 32,
19
+ mask: true
20
+ },
21
+ 'bookmark-filled': {
22
+ x: 0,
23
+ y: 32,
24
+ width: 32,
25
+ height: 32,
26
+ mask: true
27
+ },
28
+ bookmark: {
29
+ x: 32,
30
+ y: 32,
31
+ width: 32,
32
+ height: 32,
33
+ mask: true
34
+ },
35
+ 'cd-filled': {
36
+ x: 64,
37
+ y: 0,
38
+ width: 32,
39
+ height: 32,
40
+ mask: true
41
+ },
42
+ cd: {
43
+ x: 64,
44
+ y: 32,
45
+ width: 32,
46
+ height: 32,
47
+ mask: true
48
+ },
49
+ checkmark: {
50
+ x: 0,
51
+ y: 64,
52
+ width: 32,
53
+ height: 32,
54
+ mask: true
55
+ },
56
+ 'circle-check-filled': {
57
+ x: 32,
58
+ y: 64,
59
+ width: 32,
60
+ height: 32,
61
+ mask: true
62
+ },
63
+ 'circle-check': {
64
+ x: 64,
65
+ y: 64,
66
+ width: 32,
67
+ height: 32,
68
+ mask: true
69
+ },
70
+ 'circle-filled': {
71
+ x: 96,
72
+ y: 0,
73
+ width: 32,
74
+ height: 32,
75
+ mask: true
76
+ },
77
+ 'circle-i-filled': {
78
+ x: 96,
79
+ y: 32,
80
+ width: 32,
81
+ height: 32,
82
+ mask: true
83
+ },
84
+ 'circle-i': {
85
+ x: 96,
86
+ y: 64,
87
+ width: 32,
88
+ height: 32,
89
+ mask: true
90
+ },
91
+ 'circle-minus-filled': {
92
+ x: 0,
93
+ y: 96,
94
+ width: 32,
95
+ height: 32,
96
+ mask: true
97
+ },
98
+ 'circle-minus': {
99
+ x: 32,
100
+ y: 96,
101
+ width: 32,
102
+ height: 32,
103
+ mask: true
104
+ },
105
+ 'circle-plus-filled': {
106
+ x: 64,
107
+ y: 96,
108
+ width: 32,
109
+ height: 32,
110
+ mask: true
111
+ },
112
+ 'circle-plus': {
113
+ x: 96,
114
+ y: 96,
115
+ width: 32,
116
+ height: 32,
117
+ mask: true
118
+ },
119
+ 'circle-questionmark-filled': {
120
+ x: 128,
121
+ y: 0,
122
+ width: 32,
123
+ height: 32,
124
+ mask: true
125
+ },
126
+ 'circle-questionmark': {
127
+ x: 128,
128
+ y: 32,
129
+ width: 32,
130
+ height: 32,
131
+ mask: true
132
+ },
133
+ 'circle-slash-filled': {
134
+ x: 128,
135
+ y: 64,
136
+ width: 32,
137
+ height: 32,
138
+ mask: true
139
+ },
140
+ 'circle-slash': {
141
+ x: 128,
142
+ y: 96,
143
+ width: 32,
144
+ height: 32,
145
+ mask: true
146
+ },
147
+ 'circle-x-filled': {
148
+ x: 0,
149
+ y: 128,
150
+ width: 32,
151
+ height: 32,
152
+ mask: true
153
+ },
154
+ 'circle-x': {
155
+ x: 32,
156
+ y: 128,
157
+ width: 32,
158
+ height: 32,
159
+ mask: true
160
+ },
161
+ circle: {
162
+ x: 64,
163
+ y: 128,
164
+ width: 32,
165
+ height: 32,
166
+ mask: true
167
+ },
168
+ 'diamond-filled': {
169
+ x: 96,
170
+ y: 128,
171
+ width: 32,
172
+ height: 32,
173
+ mask: true
174
+ },
175
+ diamond: {
176
+ x: 128,
177
+ y: 128,
178
+ width: 32,
179
+ height: 32,
180
+ mask: true
181
+ },
182
+ 'flag-filled': {
183
+ x: 160,
184
+ y: 0,
185
+ width: 32,
186
+ height: 32,
187
+ mask: true
188
+ },
189
+ flag: {
190
+ x: 160,
191
+ y: 32,
192
+ width: 32,
193
+ height: 32,
194
+ mask: true
195
+ },
196
+ gear: {
197
+ x: 160,
198
+ y: 64,
199
+ width: 32,
200
+ height: 32,
201
+ mask: true
202
+ },
203
+ 'heart-filled': {
204
+ x: 160,
205
+ y: 96,
206
+ width: 32,
207
+ height: 32,
208
+ mask: true
209
+ },
210
+ heart: {
211
+ x: 160,
212
+ y: 128,
213
+ width: 32,
214
+ height: 32,
215
+ mask: true
216
+ },
217
+ 'location-marker-filled': {
218
+ x: 0,
219
+ y: 160,
220
+ width: 32,
221
+ height: 32,
222
+ mask: true
223
+ },
224
+ 'location-marker': {
225
+ x: 32,
226
+ y: 160,
227
+ width: 32,
228
+ height: 32,
229
+ mask: true
230
+ },
231
+ 'octagonal-star-filled': {
232
+ x: 64,
233
+ y: 160,
234
+ width: 32,
235
+ height: 32,
236
+ mask: true
237
+ },
238
+ 'octagonal-star': {
239
+ x: 96,
240
+ y: 160,
241
+ width: 32,
242
+ height: 32,
243
+ mask: true
244
+ },
245
+ 'person-filled': {
246
+ x: 128,
247
+ y: 160,
248
+ width: 32,
249
+ height: 32,
250
+ mask: true
251
+ },
252
+ person: {
253
+ x: 160,
254
+ y: 160,
255
+ width: 32,
256
+ height: 32,
257
+ mask: true
258
+ },
259
+ 'pin-filled': {
260
+ x: 192,
261
+ y: 0,
262
+ width: 32,
263
+ height: 32,
264
+ mask: true
265
+ },
266
+ pin: {
267
+ x: 192,
268
+ y: 32,
269
+ width: 32,
270
+ height: 32,
271
+ mask: true
272
+ },
273
+ 'plus-small': {
274
+ x: 192,
275
+ y: 64,
276
+ width: 32,
277
+ height: 32,
278
+ mask: true
279
+ },
280
+ plus: {
281
+ x: 192,
282
+ y: 96,
283
+ width: 32,
284
+ height: 32,
285
+ mask: true
286
+ },
287
+ 'rectangle-filled': {
288
+ x: 192,
289
+ y: 128,
290
+ width: 32,
291
+ height: 32,
292
+ mask: true
293
+ },
294
+ rectangle: {
295
+ x: 192,
296
+ y: 160,
297
+ width: 32,
298
+ height: 32,
299
+ mask: true
300
+ },
301
+ 'star-filled': {
302
+ x: 0,
303
+ y: 192,
304
+ width: 32,
305
+ height: 32,
306
+ mask: true
307
+ },
308
+ star: {
309
+ x: 32,
310
+ y: 192,
311
+ width: 32,
312
+ height: 32,
313
+ mask: true
314
+ },
315
+ 'tag-filled': {
316
+ x: 64,
317
+ y: 192,
318
+ width: 32,
319
+ height: 32,
320
+ mask: true
321
+ },
322
+ tag: {
323
+ x: 96,
324
+ y: 192,
325
+ width: 32,
326
+ height: 32,
327
+ mask: true
328
+ },
329
+ 'thumb-down-filled': {
330
+ x: 128,
331
+ y: 192,
332
+ width: 32,
333
+ height: 32,
334
+ mask: true
335
+ },
336
+ 'thumb-down': {
337
+ x: 160,
338
+ y: 192,
339
+ width: 32,
340
+ height: 32,
341
+ mask: true
342
+ },
343
+ 'thumb-up': {
344
+ x: 192,
345
+ y: 192,
346
+ width: 32,
347
+ height: 32,
348
+ mask: true
349
+ },
350
+ 'thumb_up-filled': {
351
+ x: 224,
352
+ y: 0,
353
+ width: 32,
354
+ height: 32,
355
+ mask: true
356
+ },
357
+ 'triangle-down-filled': {
358
+ x: 224,
359
+ y: 32,
360
+ width: 32,
361
+ height: 32,
362
+ mask: true
363
+ },
364
+ 'triangle-down': {
365
+ x: 224,
366
+ y: 64,
367
+ width: 32,
368
+ height: 32,
369
+ mask: true
370
+ },
371
+ 'triangle-left-filled': {
372
+ x: 224,
373
+ y: 96,
374
+ width: 32,
375
+ height: 32,
376
+ mask: true
377
+ },
378
+ 'triangle-left': {
379
+ x: 224,
380
+ y: 128,
381
+ width: 32,
382
+ height: 32,
383
+ mask: true
384
+ },
385
+ 'triangle-right-filled': {
386
+ x: 224,
387
+ y: 160,
388
+ width: 32,
389
+ height: 32,
390
+ mask: true
391
+ },
392
+ 'triangle-right': {
393
+ x: 224,
394
+ y: 192,
395
+ width: 32,
396
+ height: 32,
397
+ mask: true
398
+ },
399
+ 'triangle-up-filled': {
400
+ x: 0,
401
+ y: 224,
402
+ width: 32,
403
+ height: 32,
404
+ mask: true
405
+ },
406
+ 'triangle-up': {
407
+ x: 32,
408
+ y: 224,
409
+ width: 32,
410
+ height: 32,
411
+ mask: true
412
+ },
413
+ 'x-small': {
414
+ x: 64,
415
+ y: 224,
416
+ width: 32,
417
+ height: 32,
418
+ mask: true
419
+ },
420
+ x: {
421
+ x: 96,
422
+ y: 224,
423
+ width: 32,
424
+ height: 32,
425
+ mask: true
426
+ }
427
+ };
428
+ /* eslint-enable */
@@ -0,0 +1,83 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {COORDINATE_SYSTEM, CompositeLayer} from '@deck.gl/core';
6
+ import {PathLayer} from '@deck.gl/layers';
7
+ import {getCurvePoints} from 'cardinal-spline-js';
8
+ // const getCurvePoints = () => {};
9
+
10
+ /* Constants */
11
+ const defaultProps = {
12
+ id: 'spline-layer',
13
+ getData: (d) => d.points,
14
+ getAngle: (x) => 0,
15
+ fontSize: 24,
16
+ coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
17
+ fp64: false
18
+ };
19
+
20
+ export class SplineLayer extends CompositeLayer {
21
+ static layerName = 'SplineLayer';
22
+
23
+ initializeState() {
24
+ this.state = {typedEdgeData: []};
25
+ }
26
+
27
+ shouldUpdateState({changeFlags}) {
28
+ return changeFlags.dataChanged || changeFlags.propsChanged;
29
+ }
30
+
31
+ updateState({props, oldProps, changeFlags}) {
32
+ super.updateState({props, oldProps, changeFlags} as any);
33
+ if (changeFlags.dataChanged || changeFlags.propsChanged) {
34
+ this.updateSplineData();
35
+ }
36
+ }
37
+
38
+ updateSplineData() {
39
+ const {data} = this.props as any;
40
+ const paths = data.reduce((res, d) => {
41
+ const sourcePosition = (this.props as any).getSourcePosition(d);
42
+ const targetPosition = (this.props as any).getTargetPosition(d);
43
+ const controlPoints = (this.props as any).getControlPoints(d);
44
+
45
+ // Catmull-Rom curve
46
+ const serializedControlPoints = controlPoints.toString().split(',');
47
+
48
+ // NOTE: we might change the number of points according to the length.
49
+ // so we can render less segements.
50
+ // points = [x1, y1, x2, y2, ...];
51
+ const points = getCurvePoints(
52
+ [...sourcePosition, ...serializedControlPoints, ...targetPosition],
53
+ 0.5,
54
+ 10
55
+ );
56
+ // convert points to [[x1, y1], [x2, y2], ...]
57
+ const path = [];
58
+ for (let idx = 0; idx < points.length; idx += 2) {
59
+ path.push([points[idx], points[idx + 1]]);
60
+ }
61
+ res.push(path);
62
+ return res;
63
+ }, []);
64
+ this.setState({paths});
65
+ }
66
+
67
+ renderLayers() {
68
+ const {coordinateSystem, getColor, getWidth, id, updateTriggers} = this.props as any;
69
+ const {paths} = this.state;
70
+ return new PathLayer({
71
+ id: `${id}-splines`,
72
+ data: paths as any,
73
+ getPath: (d) => d,
74
+ getColor,
75
+ getWidth,
76
+ coordinateSystem,
77
+ updateTriggers
78
+ });
79
+ }
80
+ }
81
+
82
+ SplineLayer.layerName = 'SplineLayer';
83
+ SplineLayer.defaultProps = defaultProps;