simulationjsv2 0.2.4 → 0.2.6
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/dist/constants.d.ts +3 -0
- package/dist/constants.js +3 -0
- package/dist/geometry.d.ts +103 -0
- package/dist/geometry.js +407 -0
- package/dist/graphics.d.ts +54 -48
- package/dist/graphics.js +239 -457
- package/dist/simulation.d.ts +12 -3
- package/dist/simulation.js +86 -193
- package/dist/types.d.ts +66 -2
- package/dist/utils.d.ts +10 -5
- package/dist/utils.js +92 -7
- package/package.json +1 -1
package/dist/graphics.d.ts
CHANGED
|
@@ -1,116 +1,122 @@
|
|
|
1
1
|
import { Camera } from './simulation.js';
|
|
2
|
-
import type { Vector2, Vector3, LerpFunc, VertexColorMap } from './types.js';
|
|
2
|
+
import type { Vector2, Vector3, LerpFunc, VertexColorMap, ElementRotation } from './types.js';
|
|
3
3
|
import { Vertex, VertexCache, Color } from './utils.js';
|
|
4
|
+
import { CircleGeometry, CubeGeometry, Geometry, Line2dGeometry, Line3dGeometry, PlaneGeometry, PolygonGeometry, SplineGeometry, SquareGeometry } from './geometry.js';
|
|
4
5
|
export declare abstract class SimulationElement<T extends Vector2 | Vector3 = Vector3> {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
protected abstract pos: T;
|
|
7
|
+
protected abstract geometry: Geometry;
|
|
8
|
+
protected color: Color;
|
|
9
|
+
protected wireframe: boolean;
|
|
10
|
+
protected vertexCache: VertexCache;
|
|
11
|
+
protected rotation: ElementRotation<T>;
|
|
12
|
+
readonly is3d: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* @param pos - Expected to be adjusted to devicePixelRatio before reaching constructor
|
|
15
|
+
*/
|
|
16
|
+
constructor(color: Color | undefined, rotation: ElementRotation<T>, is3d?: boolean);
|
|
17
|
+
getGeometryType(): "list" | "strip";
|
|
18
|
+
setWireframe(wireframe: boolean): void;
|
|
19
|
+
isWireframe(): boolean;
|
|
20
|
+
getColor(): Color;
|
|
12
21
|
getPos(): T;
|
|
13
|
-
setCamera(camera: Camera): void;
|
|
14
22
|
fill(newColor: Color, t?: number, f?: LerpFunc): Promise<void>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
abstract
|
|
23
|
+
abstract move(amount: T, t?: number, f?: LerpFunc): Promise<void>;
|
|
24
|
+
abstract moveTo(pos: T, t?: number, f?: LerpFunc): Promise<void>;
|
|
25
|
+
abstract rotate(amount: ElementRotation<T>, t?: number, f?: LerpFunc): Promise<void>;
|
|
26
|
+
abstract rotateTo(rotation: ElementRotation<T>, t?: number, f?: LerpFunc): Promise<void>;
|
|
27
|
+
protected abstract updateMatrix(camera: Camera): void;
|
|
28
|
+
protected defaultUpdateMatrix(camera: Camera): void;
|
|
29
|
+
getBuffer(camera: Camera): number[];
|
|
19
30
|
}
|
|
20
31
|
export declare abstract class SimulationElement3d extends SimulationElement {
|
|
32
|
+
protected pos: Vector3;
|
|
21
33
|
rotation: Vector3;
|
|
22
|
-
private wireframe;
|
|
23
|
-
protected wireframeCache: VertexCache;
|
|
24
34
|
constructor(pos: Vector3, rotation?: Vector3, color?: Color);
|
|
25
|
-
setWireframe(wireframe: boolean): void;
|
|
26
|
-
isWireframe(): boolean;
|
|
27
35
|
rotate(amount: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
abstract getTriangles(camera: Camera, force: boolean): number[];
|
|
32
|
-
getBuffer(camera: Camera, force: boolean): number[];
|
|
36
|
+
rotateTo(rot: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
37
|
+
move(amount: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
38
|
+
moveTo(pos: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
33
39
|
}
|
|
34
40
|
export declare abstract class SimulationElement2d extends SimulationElement<Vector2> {
|
|
41
|
+
protected pos: Vector2;
|
|
35
42
|
rotation: number;
|
|
36
43
|
constructor(pos: Vector2, rotation?: number, color?: Color);
|
|
37
44
|
rotate(rotation: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
38
|
-
|
|
45
|
+
rotateTo(newRotation: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
46
|
+
move(amount: Vector2, t?: number, f?: LerpFunc): Promise<void>;
|
|
47
|
+
moveTo(pos: Vector2, t?: number, f?: LerpFunc): Promise<void>;
|
|
39
48
|
}
|
|
40
49
|
export declare class Plane extends SimulationElement3d {
|
|
41
|
-
|
|
50
|
+
protected geometry: PlaneGeometry;
|
|
51
|
+
points: Vertex[];
|
|
42
52
|
constructor(pos: Vector3, points: Vertex[], color?: Color, rotation?: Vector3);
|
|
43
53
|
setPoints(newPoints: Vertex[]): void;
|
|
44
|
-
|
|
45
|
-
getTriangles(_: Camera, force: boolean): number[];
|
|
54
|
+
protected updateMatrix(camera: Camera): void;
|
|
46
55
|
}
|
|
47
56
|
export declare class Square extends SimulationElement2d {
|
|
57
|
+
protected geometry: SquareGeometry;
|
|
48
58
|
private width;
|
|
49
59
|
private height;
|
|
50
60
|
private vertexColors;
|
|
51
|
-
private points;
|
|
52
61
|
/**
|
|
53
62
|
* @param vertexColors{Record<number, Color>} - 0 is top left vertex, numbers increase clockwise
|
|
54
63
|
*/
|
|
55
64
|
constructor(pos: Vector2, width: number, height: number, color?: Color, rotation?: number, vertexColors?: VertexColorMap);
|
|
65
|
+
private cloneColorMap;
|
|
66
|
+
setVertexColors(newColorMap: VertexColorMap, t?: number, f?: LerpFunc): Promise<void>;
|
|
56
67
|
scaleWidth(amount: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
57
68
|
scaleHeight(amount: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
58
69
|
scale(amount: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
59
70
|
setWidth(num: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
60
71
|
setHeight(num: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
61
|
-
|
|
72
|
+
protected updateMatrix(camera: Camera): void;
|
|
62
73
|
}
|
|
63
74
|
export declare class Circle extends SimulationElement2d {
|
|
75
|
+
protected geometry: CircleGeometry;
|
|
64
76
|
private radius;
|
|
65
77
|
private detail;
|
|
66
78
|
constructor(pos: Vector2, radius: number, color?: Color, detail?: number);
|
|
67
79
|
setRadius(num: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
68
80
|
scale(amount: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
69
|
-
|
|
81
|
+
protected updateMatrix(camera: Camera): void;
|
|
70
82
|
}
|
|
71
83
|
export declare class Polygon extends SimulationElement2d {
|
|
84
|
+
protected geometry: PolygonGeometry;
|
|
72
85
|
private vertices;
|
|
73
|
-
constructor(pos: Vector2,
|
|
86
|
+
constructor(pos: Vector2, points: Vertex[], color?: Color, rotation?: number);
|
|
74
87
|
getVertices(): Vertex[];
|
|
75
88
|
setVertices(newVertices: Vertex[], t?: number, f?: LerpFunc): Promise<void>;
|
|
76
|
-
|
|
89
|
+
protected updateMatrix(camera: Camera): void;
|
|
77
90
|
}
|
|
78
91
|
export declare class Line3d extends SimulationElement3d {
|
|
92
|
+
protected geometry: Line3dGeometry;
|
|
79
93
|
private to;
|
|
80
|
-
private toColor;
|
|
81
94
|
private thickness;
|
|
82
95
|
constructor(pos: Vertex, to: Vertex, thickness: number);
|
|
83
96
|
setStart(pos: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
84
97
|
setEnd(pos: Vector3, t?: number, f?: LerpFunc): Promise<void>;
|
|
85
|
-
|
|
86
|
-
getTriangles(_: Camera, force: boolean): number[];
|
|
98
|
+
protected updateMatrix(camera: Camera): void;
|
|
87
99
|
}
|
|
88
|
-
export declare class Line2d extends
|
|
100
|
+
export declare class Line2d extends SimulationElement2d {
|
|
101
|
+
protected geometry: Line2dGeometry;
|
|
89
102
|
private to;
|
|
90
|
-
private toColor;
|
|
91
103
|
private thickness;
|
|
92
104
|
constructor(from: Vertex, to: Vertex, thickness?: number);
|
|
93
|
-
setEndColor(newColor: Color, t?: number, f?: LerpFunc): Promise<void>;
|
|
94
105
|
setStart(pos: Vector2, t?: number, f?: LerpFunc): Promise<void>;
|
|
95
106
|
setEnd(pos: Vector2, t?: number, f?: LerpFunc): Promise<void>;
|
|
96
|
-
|
|
107
|
+
protected updateMatrix(camera: Camera): void;
|
|
97
108
|
}
|
|
98
109
|
export declare class Cube extends SimulationElement3d {
|
|
99
|
-
|
|
110
|
+
protected geometry: CubeGeometry;
|
|
100
111
|
private width;
|
|
101
112
|
private height;
|
|
102
113
|
private depth;
|
|
103
|
-
private wireframeLines;
|
|
104
|
-
private static readonly wireframeOrder;
|
|
105
114
|
constructor(pos: Vector3, width: number, height: number, depth: number, color?: Color, rotation?: Vector3);
|
|
106
|
-
private computeVertices;
|
|
107
|
-
private shiftWireframeLines;
|
|
108
115
|
setWidth(width: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
109
116
|
setHeight(height: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
110
117
|
setDepth(depth: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
111
118
|
scale(amount: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
112
|
-
|
|
113
|
-
getTriangles(_: Camera, force: boolean): number[];
|
|
119
|
+
protected updateMatrix(camera: Camera): void;
|
|
114
120
|
}
|
|
115
121
|
export declare class BezierCurve2d {
|
|
116
122
|
private points;
|
|
@@ -143,17 +149,17 @@ export declare class SplinePoint2d {
|
|
|
143
149
|
getColors(prevColor?: Color | null): (Color | null)[];
|
|
144
150
|
getVectorArray(prevEnd: Vector2 | null, prevControl: Vector2 | null): readonly [Vector2, Vector2, Vector2, Vector2];
|
|
145
151
|
}
|
|
146
|
-
export declare class Spline2d extends
|
|
152
|
+
export declare class Spline2d extends SimulationElement2d {
|
|
153
|
+
protected geometry: SplineGeometry;
|
|
147
154
|
private curves;
|
|
148
155
|
private thickness;
|
|
149
156
|
private detail;
|
|
150
157
|
private interpolateStart;
|
|
151
158
|
private interpolateLimit;
|
|
152
|
-
private distance;
|
|
153
159
|
constructor(pos: Vertex, points: SplinePoint2d[], thickness?: number, detail?: number);
|
|
154
160
|
setInterpolateStart(start: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
155
161
|
setInterpolateLimit(limit: number, t?: number, f?: LerpFunc): Promise<void>;
|
|
156
162
|
interpolateSlope(t: number): readonly [Vector2, Vector2];
|
|
157
163
|
interpolate(t: number): Vector2;
|
|
158
|
-
|
|
164
|
+
protected updateMatrix(camera: Camera): void;
|
|
159
165
|
}
|