a65b3e2Interactive surfacefun mesh refinement (numbl project)Jeremy Magland 1// Trace types consumed by SurfView — duplicated from numbl's src/graphics/types.ts
2// so this app renders surfaces with the exact same code numbl uses.
4export interface Plot3Trace {
5 x: number[];
6 y: number[];
7 z: number[];
8 lineStyle?: string;
9 marker?: string;
10 color?: [number, number, number];
11 lineWidth?: number;
12 markerSize?: number;
13 markerEdgeColor?: [number, number, number];
14 markerFaceColor?: [number, number, number];
15 markerIndices?: number[];
16 id?: number;
17}
19export interface SurfTrace {
20 /** X coordinates: flat array of length rows*cols (column-major) */
21 x: number[];
22 /** Y coordinates: flat array of length rows*cols (column-major) */
23 y: number[];
24 /** Z values: flat array of length rows*cols (column-major) */
25 z: number[];
26 /** Number of rows in the grid */
27 rows: number;
28 /** Number of columns in the grid */
29 cols: number;
30 /** Optional color data (same shape as Z) */
31 c?: number[];
32 edgeColor?: [number, number, number] | "none" | "flat" | "interp";
33 faceColor?:
34 | [number, number, number]
35 | "flat"
36 | "interp"
37 | "none"
38 | "texturemap";
39 faceAlpha?: number;
40}
42export interface Bar3Trace {
43 x: number[];
44 y: number[];
45 z: number[];
46 rows: number;
47 cols: number;
48 width: number;
49 color?: [number, number, number];
50}
52export interface Quiver3Trace {
53 x: number[];
54 y: number[];
55 z: number[];
56 u: number[];
57 v: number[];
58 w: number[];
59 showArrowHead: boolean;
60 color?: [number, number, number];
61 lineStyle?: string;
62 lineWidth?: number;
63 marker?: string;
64 markerFilled?: boolean;
65 autoScale?: boolean;
66 autoScaleFactor?: number;
67}