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