simulationjsv2 0.7.4 → 0.8.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.
@@ -1,19 +1,24 @@
1
1
  /// <reference types="@webgpu/types" />
2
- import type { Vector2, Vector3, LerpFunc, VertexColorMap, Mat4, AnySimulationElement, VertexParamGeneratorInfo } from './types.js';
2
+ import type { Vector2, Vector3, LerpFunc, Mat4, AnySimulationElement } from './types.js';
3
3
  import { Vertex, Color } from './utils.js';
4
4
  import { BlankGeometry, CircleGeometry, CubeGeometry, Geometry, Line2dGeometry, Line3dGeometry, PlaneGeometry, PolygonGeometry, Spline2dGeometry, SquareGeometry, TraceLines2dGeometry as TraceLinesGeometry } from './geometry.js';
5
- import { SimSceneObjInfo, VertexCache } from './internalUtils.js';
5
+ import { SimSceneObjInfo, Float32ArrayCache } from './internalUtils.js';
6
+ import { Shader } from './shaders.js';
7
+ import { Material } from './materials.js';
6
8
  export declare abstract class SimulationElement3d {
7
9
  private children;
8
10
  private uniformBuffer;
11
+ private prevInfo;
12
+ private pipeline;
13
+ protected shader: Shader;
14
+ protected material: Material;
15
+ protected cullMode: GPUCullMode;
9
16
  protected parent: SimulationElement3d | null;
10
17
  protected centerOffset: Vector3;
11
- protected rotationOffset: Vector3;
12
18
  protected pos: Vector3;
13
19
  protected abstract geometry: Geometry<object>;
14
- protected color: Color;
15
20
  protected wireframe: boolean;
16
- protected vertexCache: VertexCache;
21
+ protected vertexCache: Float32ArrayCache;
17
22
  protected rotation: Vector3;
18
23
  protected modelMatrix: Mat4;
19
24
  isInstance: boolean;
@@ -31,20 +36,26 @@ export declare abstract class SimulationElement3d {
31
36
  hasChildren(): boolean;
32
37
  setParent(parent: SimulationElement3d): void;
33
38
  getParent(): SimulationElement3d | null;
39
+ getCullMode(): GPUCullMode;
40
+ setCullMode(mode: GPUCullMode): void;
34
41
  setCenterOffset(offset: Vector3): void;
35
- setRotationOffset(offset: Vector3): void;
42
+ getShader(): Shader;
43
+ setShader(shader: Shader): void;
36
44
  resetCenterOffset(): void;
37
45
  getModelMatrix(): Mat4;
38
46
  isTransparent(): boolean;
39
- getUniformBuffer(mat: Mat4): GPUBuffer;
47
+ setMaterial(material: Material): void;
48
+ getObjectInfo(): string;
49
+ getUniformBuffer(): GPUBuffer;
50
+ getPipeline(): GPURenderPipeline;
40
51
  protected mirrorParentTransforms3d(mat: Mat4): void;
41
52
  protected updateModelMatrix3d(): void;
42
53
  protected mirrorParentTransforms2d(mat: Mat4): void;
43
54
  protected updateModelMatrix2d(): void;
44
- getGeometryType(): "list" | "strip";
55
+ getGeometryTopology(): "list" | "strip";
45
56
  setWireframe(wireframe: boolean): void;
46
57
  isWireframe(): boolean;
47
- getColor(): Color;
58
+ getMaterial(): Material;
48
59
  getRelativePos(): Vector3;
49
60
  getPos(): Vector3;
50
61
  getRotation(): Vector3;
@@ -58,7 +69,10 @@ export declare abstract class SimulationElement3d {
58
69
  rotate(amount: Vector3, t?: number, f?: LerpFunc): Promise<void>;
59
70
  rotateTo(rot: Vector3, t?: number, f?: LerpFunc): Promise<void>;
60
71
  getVertexCount(): number;
61
- getBuffer(vertexParamGenerator?: VertexParamGeneratorInfo): Float32Array | number[];
72
+ getIndexCount(): number;
73
+ writeBuffers(): void;
74
+ getVertexBuffer(): Float32Array;
75
+ getIndexBuffer(): Uint32Array;
62
76
  }
63
77
  export declare class EmptyElement extends SimulationElement3d {
64
78
  protected geometry: BlankGeometry;
@@ -84,16 +98,13 @@ export declare class Square extends SimulationElement2d {
84
98
  protected geometry: SquareGeometry;
85
99
  private width;
86
100
  private height;
87
- private vertexColors;
88
101
  /**
89
102
  * @param centerOffset{Vector2} - A vector2 of values from 0 to 1
90
103
  * @param vertexColors{Record<number, Color>} - 0 is top left vertex, numbers increase clockwise
91
104
  */
92
- constructor(pos: Vector2, width: number, height: number, color?: Color, rotation?: number, centerOffset?: Vector2, vertexColors?: VertexColorMap);
93
- setOffset(offset: Vector2): void;
94
- setOffsetInplace(offset: Vector2): void;
95
- private cloneColorMap;
96
- setVertexColors(newColorMap: VertexColorMap, t?: number, f?: LerpFunc): Promise<void>;
105
+ constructor(pos: Vector2, width: number, height: number, color?: Color, rotation?: number);
106
+ getWidth(): number;
107
+ getHeight(): number;
97
108
  scaleWidth(amount: number, t?: number, f?: LerpFunc): Promise<void>;
98
109
  scaleHeight(amount: number, t?: number, f?: LerpFunc): Promise<void>;
99
110
  scale(amount: number, t?: number, f?: LerpFunc): Promise<void>;
@@ -110,10 +121,9 @@ export declare class Circle extends SimulationElement2d {
110
121
  }
111
122
  export declare class Polygon extends SimulationElement2d {
112
123
  protected geometry: PolygonGeometry;
113
- private vertices;
114
- constructor(pos: Vector2, points: Vertex[], color?: Color, rotation?: number);
115
- getVertices(): Vertex[];
116
- setVertices(newVertices: Vertex[], t?: number, f?: LerpFunc): Promise<void>;
124
+ constructor(pos: Vector2, vertices: Vertex[], color?: Color, rotation?: number);
125
+ getVertices(): Vector3[];
126
+ setVertices(vertices: Vertex[], t?: number, f?: LerpFunc): Promise<void>;
117
127
  }
118
128
  export declare class Line3d extends SimulationElement3d {
119
129
  protected geometry: Line3dGeometry;
@@ -172,7 +182,7 @@ export declare class SplinePoint2d {
172
182
  getControls(): readonly [Vector2 | null, Vector2];
173
183
  getRawControls(): [Vector2, Vector2];
174
184
  getDetail(): number | undefined;
175
- getColors(prevColor?: Color | null): (Color | null)[];
185
+ getColors(prevColor?: Color | null): [Color | null, Color | null];
176
186
  getVectorArray(prevEnd: Vector2 | null, prevControl: Vector2 | null): readonly [Vector2, Vector2, Vector2, Vector2];
177
187
  clone(): SplinePoint2d;
178
188
  }
@@ -184,6 +194,8 @@ export declare class Spline2d extends SimulationElement2d {
184
194
  private interpolateLimit;
185
195
  private length;
186
196
  constructor(pos: Vertex, points: SplinePoint2d[], thickness?: number, detail?: number);
197
+ private setVertexColors;
198
+ getVertexBuffer(): Float32Array;
187
199
  isTransparent(): boolean;
188
200
  private estimateLength;
189
201
  getLength(): number;
@@ -210,21 +222,23 @@ export declare class Instance<T extends AnySimulationElement> extends Simulation
210
222
  private mapBuffer;
211
223
  getInstances(): Mat4[];
212
224
  getNumInstances(): number;
213
- getMatrixBuffer(): GPUBuffer;
225
+ getInstanceBuffer(): GPUBuffer;
214
226
  getVertexCount(): number;
215
- getGeometryType(): "list" | "strip";
216
- getBuffer(): Float32Array | number[];
227
+ getIndexCount(): number;
228
+ getGeometryTopology(): "list" | "strip";
229
+ getVertexBuffer(): Float32Array;
230
+ getIndexBuffer(): Uint32Array;
217
231
  getModelMatrix(): Mat4;
218
232
  }
219
233
  export declare class TraceLines2d extends SimulationElement2d {
220
234
  protected geometry: TraceLinesGeometry;
221
235
  constructor(color?: Color, maxLen?: number);
222
- addPoint(point: Vector2 | Vector3, color?: Color): void;
236
+ addPoint(vert: Vector2 | Vector3, _color?: Color): void;
223
237
  isWireframe(): boolean;
224
238
  }
225
239
  export declare class TraceLines3d extends SimulationElement3d {
226
240
  protected geometry: TraceLinesGeometry;
227
241
  constructor(color?: Color, maxLen?: number);
228
- addPoint(point: Vector2 | Vector3, color?: Color): void;
242
+ addPoint(vert: Vector2 | Vector3, _color?: Color): void;
229
243
  isWireframe(): boolean;
230
244
  }