simulationjsv2 0.7.3 → 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,21 +36,28 @@ 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
- getUniformBuffer(mat: Mat4): GPUBuffer;
46
+ isTransparent(): boolean;
47
+ setMaterial(material: Material): void;
48
+ getObjectInfo(): string;
49
+ getUniformBuffer(): GPUBuffer;
50
+ getPipeline(): GPURenderPipeline;
39
51
  protected mirrorParentTransforms3d(mat: Mat4): void;
40
52
  protected updateModelMatrix3d(): void;
41
53
  protected mirrorParentTransforms2d(mat: Mat4): void;
42
54
  protected updateModelMatrix2d(): void;
43
- getGeometryType(): "list" | "strip";
55
+ getGeometryTopology(): "list" | "strip";
44
56
  setWireframe(wireframe: boolean): void;
45
57
  isWireframe(): boolean;
46
- getColor(): Color;
58
+ getMaterial(): Material;
59
+ getRelativePos(): Vector3;
47
60
  getPos(): Vector3;
48
- getAbsolutePos(): Vector3;
49
61
  getRotation(): Vector3;
50
62
  getCenterOffset(): Vector3;
51
63
  fill(newColor: Color, t?: number, f?: LerpFunc): Promise<void>;
@@ -57,7 +69,10 @@ export declare abstract class SimulationElement3d {
57
69
  rotate(amount: Vector3, t?: number, f?: LerpFunc): Promise<void>;
58
70
  rotateTo(rot: Vector3, t?: number, f?: LerpFunc): Promise<void>;
59
71
  getVertexCount(): number;
60
- getBuffer(vertexParamGenerator?: VertexParamGeneratorInfo): Float32Array | number[];
72
+ getIndexCount(): number;
73
+ writeBuffers(): void;
74
+ getVertexBuffer(): Float32Array;
75
+ getIndexBuffer(): Uint32Array;
61
76
  }
62
77
  export declare class EmptyElement extends SimulationElement3d {
63
78
  protected geometry: BlankGeometry;
@@ -83,16 +98,13 @@ export declare class Square extends SimulationElement2d {
83
98
  protected geometry: SquareGeometry;
84
99
  private width;
85
100
  private height;
86
- private vertexColors;
87
101
  /**
88
102
  * @param centerOffset{Vector2} - A vector2 of values from 0 to 1
89
103
  * @param vertexColors{Record<number, Color>} - 0 is top left vertex, numbers increase clockwise
90
104
  */
91
- constructor(pos: Vector2, width: number, height: number, color?: Color, rotation?: number, centerOffset?: Vector2, vertexColors?: VertexColorMap);
92
- setOffset(offset: Vector2): void;
93
- setOffsetInplace(offset: Vector2): void;
94
- private cloneColorMap;
95
- 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;
96
108
  scaleWidth(amount: number, t?: number, f?: LerpFunc): Promise<void>;
97
109
  scaleHeight(amount: number, t?: number, f?: LerpFunc): Promise<void>;
98
110
  scale(amount: number, t?: number, f?: LerpFunc): Promise<void>;
@@ -109,10 +121,9 @@ export declare class Circle extends SimulationElement2d {
109
121
  }
110
122
  export declare class Polygon extends SimulationElement2d {
111
123
  protected geometry: PolygonGeometry;
112
- private vertices;
113
- constructor(pos: Vector2, points: Vertex[], color?: Color, rotation?: number);
114
- getVertices(): Vertex[];
115
- 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>;
116
127
  }
117
128
  export declare class Line3d extends SimulationElement3d {
118
129
  protected geometry: Line3dGeometry;
@@ -171,7 +182,7 @@ export declare class SplinePoint2d {
171
182
  getControls(): readonly [Vector2 | null, Vector2];
172
183
  getRawControls(): [Vector2, Vector2];
173
184
  getDetail(): number | undefined;
174
- getColors(prevColor?: Color | null): (Color | null)[];
185
+ getColors(prevColor?: Color | null): [Color | null, Color | null];
175
186
  getVectorArray(prevEnd: Vector2 | null, prevControl: Vector2 | null): readonly [Vector2, Vector2, Vector2, Vector2];
176
187
  clone(): SplinePoint2d;
177
188
  }
@@ -183,6 +194,9 @@ export declare class Spline2d extends SimulationElement2d {
183
194
  private interpolateLimit;
184
195
  private length;
185
196
  constructor(pos: Vertex, points: SplinePoint2d[], thickness?: number, detail?: number);
197
+ private setVertexColors;
198
+ getVertexBuffer(): Float32Array;
199
+ isTransparent(): boolean;
186
200
  private estimateLength;
187
201
  getLength(): number;
188
202
  setInterpolateStart(start: number, t?: number, f?: LerpFunc): Promise<void>;
@@ -203,27 +217,28 @@ export declare class Instance<T extends AnySimulationElement> extends Simulation
203
217
  private hasMapped;
204
218
  isInstance: boolean;
205
219
  constructor(obj: T, numInstances: number);
206
- setNumInstances(numInstances: number): void;
220
+ setNumInstances(numInstances: number, forceResizeBuffer?: boolean): void;
207
221
  setInstance(instance: number, transformation: Mat4): void;
208
- private allocBuffer;
209
222
  private mapBuffer;
210
223
  getInstances(): Mat4[];
211
224
  getNumInstances(): number;
212
- getMatrixBuffer(): GPUBuffer;
225
+ getInstanceBuffer(): GPUBuffer;
213
226
  getVertexCount(): number;
214
- getGeometryType(): "list" | "strip";
215
- getBuffer(): Float32Array | number[];
227
+ getIndexCount(): number;
228
+ getGeometryTopology(): "list" | "strip";
229
+ getVertexBuffer(): Float32Array;
230
+ getIndexBuffer(): Uint32Array;
216
231
  getModelMatrix(): Mat4;
217
232
  }
218
233
  export declare class TraceLines2d extends SimulationElement2d {
219
234
  protected geometry: TraceLinesGeometry;
220
235
  constructor(color?: Color, maxLen?: number);
221
- addPoint(point: Vector2 | Vector3, color?: Color): void;
236
+ addPoint(vert: Vector2 | Vector3, _color?: Color): void;
222
237
  isWireframe(): boolean;
223
238
  }
224
239
  export declare class TraceLines3d extends SimulationElement3d {
225
240
  protected geometry: TraceLinesGeometry;
226
241
  constructor(color?: Color, maxLen?: number);
227
- addPoint(point: Vector2 | Vector3, color?: Color): void;
242
+ addPoint(vert: Vector2 | Vector3, _color?: Color): void;
228
243
  isWireframe(): boolean;
229
244
  }