simulationjsv2 0.7.4 → 0.8.1
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 +5 -5
- package/dist/buffers.d.ts +2 -0
- package/dist/buffers.js +9 -1
- 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 +40 -26
- package/dist/graphics.js +217 -199
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/internalUtils.d.ts +8 -45
- package/dist/internalUtils.js +58 -198
- package/dist/materials.d.ts +17 -0
- package/dist/materials.js +49 -1
- package/dist/shaders.d.ts +31 -5
- package/dist/shaders.js +270 -29
- package/dist/simulation.d.ts +5 -24
- package/dist/simulation.js +49 -231
- package/dist/types.d.ts +48 -43
- package/dist/utils.d.ts +8 -3
- package/dist/utils.js +36 -8
- package/package.json +1 -1
- package/dist/pipelines.d.ts +0 -1
- package/dist/pipelines.js +0 -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,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
|
-
|
|
42
|
+
getShader(): Shader;
|
|
43
|
+
setShader(shader: Shader): void;
|
|
36
44
|
resetCenterOffset(): void;
|
|
37
45
|
getModelMatrix(): Mat4;
|
|
38
46
|
isTransparent(): boolean;
|
|
39
|
-
|
|
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
|
-
|
|
55
|
+
getGeometryTopology(): "list" | "strip";
|
|
45
56
|
setWireframe(wireframe: boolean): void;
|
|
46
57
|
isWireframe(): boolean;
|
|
47
|
-
|
|
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
|
-
|
|
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
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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):
|
|
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
|
-
|
|
225
|
+
getInstanceBuffer(): GPUBuffer;
|
|
214
226
|
getVertexCount(): number;
|
|
215
|
-
|
|
216
|
-
|
|
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(
|
|
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(
|
|
242
|
+
addPoint(vert: Vector2 | Vector3, _color?: Color): void;
|
|
229
243
|
isWireframe(): boolean;
|
|
230
244
|
}
|