hyper-scatter 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -6,10 +6,20 @@
6
6
 
7
7
  **Hyperbolic (Poincaré) embeddings at 60 FPS. 20,000,000 points. Pure WebGL2 (no `regl`, no `three.js`).**
8
8
 
9
+ <p align="center">
10
+ <a href="https://hackerroomai.github.io/hyper-scatter/"><strong>🚀 Try the Interactive Demo & Benchmark Playground →</strong></a>
11
+ </p>
12
+
13
+ <p align="center">
14
+ <img src="docs/poincare_demo.gif" alt="Poincaré Disk Demo" width="480">
15
+ <br>
16
+ <em>Hyperbolic pan & zoom in the Poincaré disk — points follow geodesics</em>
17
+ </p>
18
+
9
19
  A specialized scatterplot engine for [HyperView](https://github.com/HackerRoomAI/HyperView).
10
20
 
11
- - Geometries: **Poincaré (hyperbolic)** + **Euclidean** today; **Spherical (S²)** is a good future contribution.
12
- - Correctness: a slow CPU **Reference** defines semantics; the fast GPU **Candidate** must match.
21
+ - Geometries: **Poincaré (hyperbolic)** + **Euclidean** in 2D, plus WebGL candidates for **Euclidean 3D** and **Sphere**.
22
+ - Correctness: a slow CPU **Reference** defines 2D semantics; the fast GPU **Candidate** must match.
13
23
  - Implementation: **pure WebGL2** (no `regl`, no `three.js`, no runtime deps).
14
24
 
15
25
  ---
@@ -30,52 +40,26 @@ For the full invariants + how the harness selects candidate code paths, see [AGE
30
40
  ## Usage (copy/paste agent prompt)
31
41
 
32
42
  ```text
33
- You are a coding agent working in my repository.
34
-
35
- Use these imports:
36
-
37
- import {
38
- EuclideanWebGLCandidate,
39
- HyperbolicWebGLCandidate,
40
- createDataset,
41
- createInteractionController,
42
- type SelectionResult,
43
- } from 'hyper-scatter';
44
-
45
- Goal:
46
- - Integrate `hyper-scatter` to render my embedding scatterplot.
47
-
48
- Requirements:
49
- 1) Install:
50
- - npm: `npm install hyper-scatter`
51
-
52
- 2) Implement a small integration wrapper:
53
- - Create `mountHyperScatter(canvas, params)` (or an idiomatic React hook).
54
- - Pick renderer:
55
- - if params.geometry === 'poincare' use `new HyperbolicWebGLCandidate()`
56
- - else use `new EuclideanWebGLCandidate()`
57
- - Ensure the canvas has a real CSS size (non-zero width/height).
58
- - Init using CSS pixels:
59
- - `const rect = canvas.getBoundingClientRect()`
60
- - `renderer.init(canvas, { width: Math.max(1, Math.floor(rect.width)), height: Math.max(1, Math.floor(rect.height)), devicePixelRatio: window.devicePixelRatio })`
61
- - Dataset:
62
- - `renderer.setDataset(createDataset(params.geometry, params.positions, params.labels))`
63
- - First frame:
64
- - `renderer.render()`
65
-
66
- 3) Wire interactions:
67
- - Use `createInteractionController(canvas, renderer, { onHover, onLassoComplete })`.
68
- - On lasso completion, keep the returned `SelectionResult` and (optionally) call:
69
- - `await renderer.countSelection(result, { yieldEveryMs: 0 })` if you need an exact count without UI yielding.
70
-
71
- 4) Cleanup:
72
- - On unmount/destroy: `controller.destroy(); renderer.destroy();`
73
-
74
- Deliverables:
75
- - The concrete code changes + file paths.
76
- - A minimal example showing how to pass `Float32Array positions` (flat [x,y,x,y,...]) and optional `Uint16Array labels`.
43
+ You are a coding agent; integrate `hyper-scatter` in my repo: install `npm install hyper-scatter`; create `mountHyperScatter(canvas, params)` (or React hook) using `EuclideanWebGLCandidate`, `HyperbolicWebGLCandidate`, `Euclidean3DWebGLCandidate`, `Spherical3DWebGLCandidate`, `createDataset`, `createDataset3D`, and `createInteractionController`; choose renderer by `params.geometry` (`euclidean`, `poincare`, `euclidean3d`, `sphere`); ensure non-zero CSS size, then `const rect = canvas.getBoundingClientRect()` and `renderer.init(canvas, { width: Math.max(1, Math.floor(rect.width)), height: Math.max(1, Math.floor(rect.height)), devicePixelRatio: window.devicePixelRatio })`; set dataset with `createDataset` for 2D or `createDataset3D` for 3D, then `renderer.render()`; wire `createInteractionController(canvas, renderer, { onHover, onLassoComplete })` only for 2D and optionally call `await renderer.countSelection(result, { yieldEveryMs: 0 })` for exact lasso counts; cleanup with `controller?.destroy(); renderer.destroy();`; return concrete code changes + file paths + a minimal example passing `Float32Array` positions (`[x,y,...]` or `[x,y,z,...]`) and optional `Uint16Array` labels.
77
44
  ```
78
45
 
46
+ ## API Highlights
47
+
48
+ Runtime updates (no renderer re-creation): `setPalette`, `setCategoryVisibility`, `setCategoryAlpha`, `setInteractionStyle`.
49
+
50
+ | Dimension | Geometry token | Geometry | Candidate class | Dataset helper |
51
+ |---|---|---|---|---|
52
+ | 2D | `euclidean` | Euclidean | `EuclideanWebGLCandidate` | `createDataset` |
53
+ | 2D | `poincare` | Poincare (hyperbolic disk) | `HyperbolicWebGLCandidate` | `createDataset` |
54
+ | 3D | `euclidean3d` | Euclidean 3D | `Euclidean3DWebGLCandidate` | `createDataset3D` |
55
+ | 3D | `sphere` | Hypersphere (unit sphere) | `Spherical3DWebGLCandidate` | `createDataset3D` |
56
+
57
+ Notes:
58
+ - Hidden categories are excluded from `render`, `hitTest`, and `lassoSelect`.
59
+ - `createInteractionController()` targets the 2D `Renderer` interface.
60
+ - 2D `SelectionResult` supports `kind: 'indices' | 'geometry'`; `SelectionResult3D` is index-based.
61
+ - 3D helper exports include `packPositionsXYZ`.
62
+
79
63
  ## Benchmarks
80
64
 
81
65
  Main claim, measured via the browser harness (headed):
@@ -95,6 +79,11 @@ npm run bench -- --points=20000000
95
79
 
96
80
  Default sweep (smaller point counts): `npm run bench`
97
81
 
82
+ Additional benchmark options:
83
+
84
+ - `npm run bench -- --geometries=euclidean,poincare,euclidean3d,sphere` runs the WebGL candidate benchmark across 2D and 3D geometries.
85
+ - `npm run bench -- --renderer=reference` and `npm run bench:accuracy` remain 2D-only.
86
+
98
87
  Note: for performance numbers, run headed (default). Headless runs can skew GPU timing.
99
88
 
100
89
  ## How we built it
@@ -135,7 +124,8 @@ The harness tries to reduce these paths (example: lasso timing is end-to-end and
135
124
 
136
125
  - [x] Euclidean Geometry
137
126
  - [x] Poincaré Disk (Hyperbolic) Geometry
138
- - [ ] **Spherical Geometry (S²)**: The architecture supports it (`GeometryMode` enum), but the Reference math is missing. Contributions welcome.
127
+ - [x] 3D WebGL candidates (`euclidean3d`, `sphere`)
128
+ - [ ] 3D reference renderer + accuracy harness
139
129
 
140
130
  ## License
141
131
 
@@ -92,6 +92,25 @@ export interface SelectionResult {
92
92
  has(index: number): boolean;
93
93
  }
94
94
  export type InteractionMode = 'pan' | 'lasso';
95
+ export type CategoryVisibilityMask = ArrayLike<number | boolean>;
96
+ export interface InteractionStyle {
97
+ /** Color for the selected ring/halo. */
98
+ selectionColor?: string;
99
+ /** Color for the hovered ring/outline. */
100
+ hoverColor?: string;
101
+ /** Optional fill override for hovered, non-selected points. */
102
+ hoverFillColor?: string | null;
103
+ }
104
+ export interface DisplayStateRenderer {
105
+ /** Update the categorical palette without replacing the dataset. */
106
+ setPalette(colors: string[]): void;
107
+ /** Set a per-category visibility mask (truthy = visible). */
108
+ setCategoryVisibility(mask: CategoryVisibilityMask | null): void;
109
+ /** Apply a global alpha multiplier to visible categories only. */
110
+ setCategoryAlpha(alpha: number): void;
111
+ /** Update hover/selection interaction colors at runtime. */
112
+ setInteractionStyle(style: InteractionStyle): void;
113
+ }
95
114
  export interface InitOptions {
96
115
  width: number;
97
116
  height: number;
@@ -106,7 +125,7 @@ export interface InitOptions {
106
125
  poincareDiskBorderWidthPx?: number;
107
126
  poincareGridWidthPx?: number;
108
127
  }
109
- export interface Renderer {
128
+ export interface Renderer extends DisplayStateRenderer {
110
129
  /** Initialize the renderer with a canvas */
111
130
  init(canvas: HTMLCanvasElement, opts: InitOptions): void;
112
131
  /** Set the dataset to render */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2NH,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,OAAO;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAoB,EACpB,aAAqB;IAErB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO;QACP,aAAa;QACb,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAA2B,EAC3B,SAAuB,EACvB,aAAqB,EACrB,gBAA4E;IAE5E,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,aAAa;QACb,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiPH,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,OAAO;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAoB,EACpB,aAAqB;IAErB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO;QACP,aAAa;QACb,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAA2B,EAC3B,SAAuB,EACvB,aAAqB,EACrB,gBAA4E;IAE5E,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,aAAa;QACb,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,84 @@
1
+ import type { CountSelectionOptions, DisplayStateRenderer } from "./types.js";
2
+ export interface Dataset3D {
3
+ /** Number of points */
4
+ n: number;
5
+ /** Interleaved x,y,z coordinates: [x0, y0, z0, x1, y1, z1, ...] length = 3*n */
6
+ positions: Float32Array;
7
+ /** Label for each point (for coloring) */
8
+ labels: Uint16Array;
9
+ /** Geometry mode */
10
+ geometry: GeometryMode3D;
11
+ }
12
+ export type GeometryMode3D = "euclidean3d" | "sphere";
13
+ export interface OrbitViewState3D {
14
+ type: "orbit3d";
15
+ /** Yaw in radians around world-up (Y axis). */
16
+ yaw: number;
17
+ /** Pitch in radians. */
18
+ pitch: number;
19
+ /** Camera distance from target. */
20
+ distance: number;
21
+ /** Camera target point in data coordinates. */
22
+ targetX: number;
23
+ targetY: number;
24
+ targetZ: number;
25
+ /** Orthographic half-height in data coordinates. */
26
+ orthoScale: number;
27
+ }
28
+ export interface Modifiers3D {
29
+ shift: boolean;
30
+ ctrl: boolean;
31
+ alt: boolean;
32
+ meta: boolean;
33
+ }
34
+ export interface HitResult3D {
35
+ index: number;
36
+ screenX: number;
37
+ screenY: number;
38
+ distance: number;
39
+ /** Smaller depth means closer to the camera. */
40
+ depth: number;
41
+ }
42
+ export interface SelectionResult3D {
43
+ kind: "indices";
44
+ indices?: Set<number>;
45
+ computeTimeMs: number;
46
+ has(index: number): boolean;
47
+ }
48
+ export interface ProjectedPoint3D {
49
+ x: number;
50
+ y: number;
51
+ depth: number;
52
+ visible: boolean;
53
+ }
54
+ export interface InitOptions3D {
55
+ width: number;
56
+ height: number;
57
+ devicePixelRatio?: number;
58
+ backgroundColor?: string;
59
+ pointRadius?: number;
60
+ colors?: string[];
61
+ sphereGuideColor?: string;
62
+ sphereGuideOpacity?: number;
63
+ }
64
+ export interface Renderer3D extends DisplayStateRenderer {
65
+ init(canvas: HTMLCanvasElement, opts: InitOptions3D): void;
66
+ setDataset(dataset: Dataset3D): void;
67
+ setView(view: OrbitViewState3D): void;
68
+ getView(): OrbitViewState3D;
69
+ render(): void;
70
+ resize(width: number, height: number): void;
71
+ setSelection(indices: Set<number>): void;
72
+ getSelection(): Set<number>;
73
+ setHovered(index: number): void;
74
+ destroy(): void;
75
+ pan(deltaX: number, deltaY: number, modifiers: Modifiers3D): void;
76
+ zoom(anchorX: number, anchorY: number, delta: number, modifiers: Modifiers3D): void;
77
+ hitTest(screenX: number, screenY: number): HitResult3D | null;
78
+ lassoSelect(polyline: Float32Array): SelectionResult3D;
79
+ countSelection(result: SelectionResult3D, opts?: CountSelectionOptions): Promise<number>;
80
+ projectToScreen(dataX: number, dataY: number, dataZ: number): ProjectedPoint3D;
81
+ }
82
+ export declare function createIndicesSelectionResult3D(indices: Set<number>, computeTimeMs: number): SelectionResult3D;
83
+ export declare function createDefaultOrbitView3D(): OrbitViewState3D;
84
+ //# sourceMappingURL=types3d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types3d.d.ts","sourceRoot":"","sources":["../../src/core/types3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,gFAAgF;IAChF,SAAS,EAAE,YAAY,CAAC;IACxB,0CAA0C;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACtD,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAC3D,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,OAAO,IAAI,gBAAgB,CAAC;IAC5B,MAAM,IAAI,IAAI,CAAC;IACf,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC;IAChB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IACpF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAC9D,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,iBAAiB,CAAC;IACvD,cAAc,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC;CAChF;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,aAAa,EAAE,MAAM,GACpB,iBAAiB,CAOnB;AAED,wBAAgB,wBAAwB,IAAI,gBAAgB,CAW3D"}
@@ -0,0 +1,21 @@
1
+ export function createIndicesSelectionResult3D(indices, computeTimeMs) {
2
+ return {
3
+ kind: "indices",
4
+ indices,
5
+ computeTimeMs,
6
+ has: (index) => indices.has(index),
7
+ };
8
+ }
9
+ export function createDefaultOrbitView3D() {
10
+ return {
11
+ type: "orbit3d",
12
+ yaw: 0,
13
+ pitch: 0,
14
+ distance: 3,
15
+ targetX: 0,
16
+ targetY: 0,
17
+ targetZ: 0,
18
+ orthoScale: 1.25,
19
+ };
20
+ }
21
+ //# sourceMappingURL=types3d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types3d.js","sourceRoot":"","sources":["../../src/core/types3d.ts"],"names":[],"mappings":"AA8FA,MAAM,UAAU,8BAA8B,CAC5C,OAAoB,EACpB,aAAqB;IAErB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO;QACP,aAAa;QACb,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -39,7 +39,7 @@
39
39
  * is called, because the demo/harness may re-initialize renderers and we
40
40
  * want `init()` to remain side-effect-light.
41
41
  */
42
- import { Dataset, Renderer, InitOptions, ViewState, Modifiers, HitResult, SelectionResult, CountSelectionOptions } from '../core/types.js';
42
+ import { Dataset, Renderer, InitOptions, ViewState, Modifiers, HitResult, SelectionResult, CategoryVisibilityMask, InteractionStyle, CountSelectionOptions } from '../core/types.js';
43
43
  import { UniformGridIndex } from './spatial_index.js';
44
44
  type GeometryKind = 'euclidean' | 'poincare';
45
45
  declare abstract class WebGLRendererBase implements Renderer {
@@ -55,6 +55,10 @@ declare abstract class WebGLRendererBase implements Renderer {
55
55
  protected pointRadiusCss: number;
56
56
  protected colors: string[];
57
57
  protected backgroundColor: string;
58
+ protected categoryVisibilityMask: Uint8Array<ArrayBuffer>;
59
+ protected hasCategoryVisibilityMask: boolean;
60
+ protected categoryAlpha: number;
61
+ protected interactionStyle: Required<InteractionStyle>;
58
62
  protected poincareDiskFillColor: string;
59
63
  protected poincareDiskBorderColor: string;
60
64
  protected poincareGridColor: string;
@@ -175,6 +179,12 @@ declare abstract class WebGLRendererBase implements Renderer {
175
179
  protected estimatePointFragments(drawCount: number, pointsDpr: number): number;
176
180
  protected updateSquarePointPolicy(estimatedFragments: number): void;
177
181
  setDataset(dataset: Dataset): void;
182
+ setPalette(colors: string[]): void;
183
+ setCategoryVisibility(mask: CategoryVisibilityMask | null): void;
184
+ setCategoryAlpha(alpha: number): void;
185
+ setInteractionStyle(style: InteractionStyle): void;
186
+ protected isCategoryVisible(category: number): boolean;
187
+ protected isPointVisibleByCategory(index: number): boolean;
178
188
  abstract setView(view: ViewState): void;
179
189
  abstract getView(): ViewState;
180
190
  resize(width: number, height: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl_candidate.d.ts","sourceRoot":"","sources":["../../src/impl_candidate/webgl_candidate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl_candidate.d.ts","sourceRoot":"","sources":["../../src/impl_candidate/webgl_candidate.ts"],"names":[],"mappings":"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"}