@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.
- package/LICENSE +21 -0
- package/README.md +147 -0
- package/dist/connect-plot/connect-plot.d.ts +125 -0
- package/dist/connect-plot/connect-plot.d.ts.map +1 -0
- package/dist/connect-plot/connect-plot.js +130 -0
- package/dist/connect-plot/connect-plot.js.map +1 -0
- package/dist/connect-spatial-heatmap/connect-spatial-heatmap.d.ts +43 -0
- package/dist/connect-spatial-heatmap/connect-spatial-heatmap.d.ts.map +1 -0
- package/dist/connect-spatial-heatmap/connect-spatial-heatmap.js +15 -0
- package/dist/connect-spatial-heatmap/connect-spatial-heatmap.js.map +1 -0
- package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.d.ts +34 -0
- package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.d.ts.map +1 -0
- package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.js +7 -0
- package/dist/connect-spatial-scatter-chart/connect-spatial-scatter-chart.js.map +1 -0
- package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.d.ts +39 -0
- package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.d.ts.map +1 -0
- package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.js +7 -0
- package/dist/connect-spatial-surface-chart/connect-spatial-surface-chart.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/three/heatmap-driver.d.ts +36 -0
- package/dist/three/heatmap-driver.d.ts.map +1 -0
- package/dist/three/heatmap-driver.js +120 -0
- package/dist/three/heatmap-driver.js.map +1 -0
- package/dist/three/index.d.ts +4 -0
- package/dist/three/index.d.ts.map +1 -0
- package/dist/three/index.js +4 -0
- package/dist/three/index.js.map +1 -0
- package/dist/three/scatter-driver.d.ts +38 -0
- package/dist/three/scatter-driver.d.ts.map +1 -0
- package/dist/three/scatter-driver.js +85 -0
- package/dist/three/scatter-driver.js.map +1 -0
- package/dist/three/stage.d.ts +66 -0
- package/dist/three/stage.d.ts.map +1 -0
- package/dist/three/stage.js +446 -0
- package/dist/three/stage.js.map +1 -0
- package/dist/three/surface-driver.d.ts +39 -0
- package/dist/three/surface-driver.d.ts.map +1 -0
- package/dist/three/surface-driver.js +150 -0
- package/dist/three/surface-driver.js.map +1 -0
- 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
|
+
}
|