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.
- package/README.md +1 -3
- package/TODO.md +6 -5
- package/dist/buffers.d.ts +13 -0
- package/dist/buffers.js +44 -0
- package/dist/constants.d.ts +0 -6
- package/dist/constants.js +1 -6
- package/dist/geometry.d.ts +23 -41
- package/dist/geometry.js +85 -204
- package/dist/globals.d.ts +26 -0
- package/dist/globals.js +51 -0
- package/dist/graphics.d.ts +44 -29
- package/dist/graphics.js +252 -229
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/internalUtils.d.ts +14 -31
- package/dist/internalUtils.js +83 -153
- package/dist/materials.d.ts +20 -0
- package/dist/materials.js +51 -0
- package/dist/shaders.d.ts +37 -0
- package/dist/shaders.js +330 -0
- package/dist/simulation.d.ts +7 -24
- package/dist/simulation.js +72 -338
- package/dist/types.d.ts +51 -45
- package/dist/utils.d.ts +8 -3
- package/dist/utils.js +36 -8
- package/package.json +1 -1
package/dist/graphics.d.ts
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
/// <reference types="@webgpu/types" />
|
|
2
|
-
import type { Vector2, Vector3, LerpFunc,
|
|
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,
|
|
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:
|
|
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
|
-
|
|
42
|
+
getShader(): Shader;
|
|
43
|
+
setShader(shader: Shader): void;
|
|
36
44
|
resetCenterOffset(): void;
|
|
37
45
|
getModelMatrix(): Mat4;
|
|
38
|
-
|
|
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
|
-
|
|
55
|
+
getGeometryTopology(): "list" | "strip";
|
|
44
56
|
setWireframe(wireframe: boolean): void;
|
|
45
57
|
isWireframe(): boolean;
|
|
46
|
-
|
|
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
|
-
|
|
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
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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):
|
|
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
|
-
|
|
225
|
+
getInstanceBuffer(): GPUBuffer;
|
|
213
226
|
getVertexCount(): number;
|
|
214
|
-
|
|
215
|
-
|
|
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(
|
|
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(
|
|
242
|
+
addPoint(vert: Vector2 | Vector3, _color?: Color): void;
|
|
228
243
|
isWireframe(): boolean;
|
|
229
244
|
}
|