@fusion.dev/helix-plot 0.0.0-dev

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +147 -0
  3. package/dist/connect-plot/connect-plot.d.ts +125 -0
  4. package/dist/connect-plot/connect-plot.d.ts.map +1 -0
  5. package/dist/connect-plot/connect-plot.js +130 -0
  6. package/dist/connect-plot/connect-plot.js.map +1 -0
  7. package/dist/connect-spatial-heatmap/connect-spatial-heatmap.d.ts +43 -0
  8. package/dist/connect-spatial-heatmap/connect-spatial-heatmap.d.ts.map +1 -0
  9. package/dist/connect-spatial-heatmap/connect-spatial-heatmap.js +15 -0
  10. package/dist/connect-spatial-heatmap/connect-spatial-heatmap.js.map +1 -0
  11. package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.d.ts +34 -0
  12. package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.d.ts.map +1 -0
  13. package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.js +7 -0
  14. package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.js.map +1 -0
  15. package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.d.ts +39 -0
  16. package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.d.ts.map +1 -0
  17. package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.js +7 -0
  18. package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.js.map +1 -0
  19. package/dist/index.d.ts +5 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +5 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/three/heatmap-driver.d.ts +36 -0
  24. package/dist/three/heatmap-driver.d.ts.map +1 -0
  25. package/dist/three/heatmap-driver.js +120 -0
  26. package/dist/three/heatmap-driver.js.map +1 -0
  27. package/dist/three/index.d.ts +4 -0
  28. package/dist/three/index.d.ts.map +1 -0
  29. package/dist/three/index.js +4 -0
  30. package/dist/three/index.js.map +1 -0
  31. package/dist/three/scatter-driver.d.ts +38 -0
  32. package/dist/three/scatter-driver.d.ts.map +1 -0
  33. package/dist/three/scatter-driver.js +85 -0
  34. package/dist/three/scatter-driver.js.map +1 -0
  35. package/dist/three/stage.d.ts +66 -0
  36. package/dist/three/stage.d.ts.map +1 -0
  37. package/dist/three/stage.js +446 -0
  38. package/dist/three/stage.js.map +1 -0
  39. package/dist/three/surface-driver.d.ts +39 -0
  40. package/dist/three/surface-driver.d.ts.map +1 -0
  41. package/dist/three/surface-driver.js +150 -0
  42. package/dist/three/surface-driver.js.map +1 -0
  43. package/package.json +68 -0
@@ -0,0 +1,150 @@
1
+ import { BufferGeometry, Color, DirectionalLight, DoubleSide, Float32BufferAttribute, HemisphereLight, LineBasicMaterial, LineSegments, Mesh, MeshLambertMaterial, Vector3, } from 'three';
2
+ import { createStage, HALF, inBox } from './stage.js';
3
+ const REACH = 0.03;
4
+ export const threeSurfaceDriver = (container, options = {}) => {
5
+ let field;
6
+ const placeOf = (index) => {
7
+ const cell = field?.cells[index];
8
+ if (!field || cell?.value === undefined) {
9
+ return undefined;
10
+ }
11
+ return new Vector3(inBox(field.axes.x, cell.x), inBox(field.axes.y, cell.value), inBox(field.axes.z, cell.z));
12
+ };
13
+ const surfaceMaterial = new MeshLambertMaterial({
14
+ polygonOffset: true,
15
+ polygonOffsetFactor: 1,
16
+ polygonOffsetUnits: 1,
17
+ side: DoubleSide,
18
+ vertexColors: true,
19
+ });
20
+ const surface = new Mesh(new BufferGeometry(), surfaceMaterial);
21
+ const ruleMaterial = new LineBasicMaterial({ opacity: 0.3, transparent: true });
22
+ const rules = new LineSegments(new BufferGeometry(), ruleMaterial);
23
+ const stage = createStage(container, {
24
+ density: options.density,
25
+ pick: (ray) => {
26
+ const hit = ray.intersectObject(surface)[0];
27
+ const position = surface.geometry.getAttribute('position');
28
+ if (field && position) {
29
+ const corner = new Vector3();
30
+ let found = -1;
31
+ let nearest = REACH;
32
+ field.cells.forEach((cell, index) => {
33
+ if (cell.value === undefined) {
34
+ return;
35
+ }
36
+ corner.fromBufferAttribute(position, index);
37
+ const along = corner.clone().sub(ray.ray.origin).dot(ray.ray.direction);
38
+ if (along <= 0 || (hit && along > hit.distance + 0.03)) {
39
+ return;
40
+ }
41
+ const away = ray.ray.distanceToPoint(corner) / along;
42
+ if (away < nearest) {
43
+ nearest = away;
44
+ found = index;
45
+ }
46
+ });
47
+ if (found >= 0) {
48
+ return found;
49
+ }
50
+ }
51
+ if (!hit?.face) {
52
+ return -1;
53
+ }
54
+ const corner = new Vector3();
55
+ let nearest = -1;
56
+ let distance = Number.POSITIVE_INFINITY;
57
+ for (const at of [hit.face.a, hit.face.b, hit.face.c]) {
58
+ corner.fromBufferAttribute(position, at);
59
+ const away = corner.distanceTo(hit.point);
60
+ if (away < distance) {
61
+ distance = away;
62
+ nearest = at;
63
+ }
64
+ }
65
+ return field?.cells[nearest]?.value === undefined ? -1 : nearest;
66
+ },
67
+ });
68
+ const sky = new HemisphereLight(0xffffff, 0xffffff, 2.2);
69
+ const sun = new DirectionalLight(0xffffff, 1);
70
+ sun.position.set(-2, 4, 1);
71
+ stage.scene.add(surface, rules, sky, sun);
72
+ return {
73
+ draw: (next, colors, font) => {
74
+ field = next;
75
+ const depths = next.depths.length;
76
+ const positions = [];
77
+ const tints = [];
78
+ const low = new Color(colors.ramp.low);
79
+ const high = new Color(colors.ramp.high);
80
+ const tint = new Color();
81
+ const values = next.cells.flatMap((cell) => (cell.value === undefined ? [] : [cell.value]));
82
+ const [least, most] = [Math.min(...values), Math.max(...values)];
83
+ next.cells.forEach((cell, index) => {
84
+ const at = placeOf(index) ?? new Vector3(0, -HALF, 0);
85
+ positions.push(at.x, at.y, at.z);
86
+ const level = cell.value === undefined || most === least ? 0.5 : (cell.value - least) / (most - least);
87
+ tint.lerpColors(low, high, level);
88
+ tints.push(tint.r, tint.g, tint.b);
89
+ });
90
+ const has = (index) => next.cells[index]?.value !== undefined;
91
+ const faces = [];
92
+ const lines = [];
93
+ const line = (from, to) => {
94
+ if (has(from) && has(to)) {
95
+ lines.push(...positions.slice(from * 3, from * 3 + 3), ...positions.slice(to * 3, to * 3 + 3));
96
+ }
97
+ };
98
+ for (let across = 0; across < next.acrosses.length; across++) {
99
+ for (let depth = 0; depth < depths; depth++) {
100
+ const here = across * depths + depth;
101
+ if (depth + 1 < depths) {
102
+ line(here, here + 1);
103
+ }
104
+ if (across + 1 < next.acrosses.length) {
105
+ line(here, here + depths);
106
+ }
107
+ if (across + 1 >= next.acrosses.length || depth + 1 >= depths) {
108
+ continue;
109
+ }
110
+ const [a, b, c, d] = [here, here + 1, here + depths + 1, here + depths];
111
+ const corners = [a, b, c, d].filter(has);
112
+ if (corners.length === 4) {
113
+ faces.push(a, b, c, a, c, d);
114
+ }
115
+ else if (corners.length === 3) {
116
+ faces.push(...corners);
117
+ }
118
+ }
119
+ }
120
+ surface.geometry.dispose();
121
+ const geometry = new BufferGeometry();
122
+ geometry.setAttribute('position', new Float32BufferAttribute(positions, 3));
123
+ geometry.setAttribute('color', new Float32BufferAttribute(tints, 3));
124
+ geometry.setIndex(faces);
125
+ geometry.computeVertexNormals();
126
+ surface.geometry = geometry;
127
+ rules.geometry.dispose();
128
+ const ruled = new BufferGeometry();
129
+ ruled.setAttribute('position', new Float32BufferAttribute(lines, 3));
130
+ rules.geometry = ruled;
131
+ ruleMaterial.color.setStyle(colors.ink);
132
+ stage.setAxes(next.axes, colors, font);
133
+ },
134
+ focus: (index) => {
135
+ stage.setMarker(placeOf(index));
136
+ },
137
+ onHover: (listener) => stage.onHover(listener),
138
+ onPlace: (listener) => stage.onPlace(listener),
139
+ onPress: (listener) => stage.onPress(listener),
140
+ stop: () => {
141
+ surface.geometry.dispose();
142
+ surfaceMaterial.dispose();
143
+ rules.geometry.dispose();
144
+ ruleMaterial.dispose();
145
+ stage.stop();
146
+ },
147
+ turnBy: (across, up, animate) => stage.turnBy(across, up, animate),
148
+ };
149
+ };
150
+ //# sourceMappingURL=surface-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-driver.js","sourceRoot":"","sources":["../../src/three/surface-driver.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@fusion.dev/helix-plot",
3
+ "description": "Connects the Helix Spatial Heatmap, Spatial Scatter Chart, and Spatial Surface Chart to three.js, which draws them in three dimensions.",
4
+ "version": "0.0.0-dev",
5
+ "license": "MIT",
6
+ "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
+ "repository": {
8
+ "directory": "helix/plot",
9
+ "type": "git",
10
+ "url": "git+https://github.com/project-fusion/fusion.git"
11
+ },
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "default": "./dist/index.js"
19
+ },
20
+ "./three": {
21
+ "types": "./dist/three/index.d.ts",
22
+ "default": "./dist/three/index.js"
23
+ }
24
+ },
25
+ "files": [
26
+ "dist"
27
+ ],
28
+ "sideEffects": false,
29
+ "scripts": {
30
+ "build": "tsc -p tsconfig.build.json && tsc -p tsconfig.types.json",
31
+ "test": "bun run test:pure && bun run test:dom",
32
+ "test:dom": "bun test dom.spec",
33
+ "test:pure": "bun test pure.spec",
34
+ "typecheck": "tsc -p tsconfig.json --noEmit"
35
+ },
36
+ "bugs": "https://github.com/project-fusion/fusion/issues",
37
+ "dependencies": {
38
+ "@fusion.dev/helix-core": "0.188.0"
39
+ },
40
+ "devDependencies": {
41
+ "@fusion.dev/helix-headless": "0.188.0",
42
+ "@fusion.dev/helix-testing": "0.188.0",
43
+ "@types/bun": "^1.4.2",
44
+ "@types/three": "^0.186.0",
45
+ "three": "^0.186.1"
46
+ },
47
+ "homepage": "https://fusion.dev",
48
+ "keywords": [
49
+ "3d",
50
+ "chart",
51
+ "heatmap",
52
+ "scatter",
53
+ "surface",
54
+ "three.js",
55
+ "webgl"
56
+ ],
57
+ "peerDependencies": {
58
+ "three": ">=0.160.0 <0.200.0"
59
+ },
60
+ "peerDependenciesMeta": {
61
+ "three": {
62
+ "optional": true
63
+ }
64
+ },
65
+ "publishConfig": {
66
+ "access": "restricted"
67
+ }
68
+ }