@tolokoban/tgd 2.0.80 → 2.0.82
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/lib/dist/buffer/buffer.d.ts +1 -1
- package/lib/dist/buffer/buffer.d.ts.map +1 -1
- package/lib/dist/buffer/buffer.js +1 -1
- package/lib/dist/code/color.d.ts.map +1 -1
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +6 -3
- package/lib/dist/dataset/dataset.d.ts +16 -2
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +42 -1
- package/lib/dist/event/event.d.ts +1 -1
- package/lib/dist/event/event.d.ts.map +1 -1
- package/lib/dist/input/gamepad.d.ts +15 -0
- package/lib/dist/input/gamepad.d.ts.map +1 -0
- package/lib/dist/input/gamepad.js +52 -0
- package/lib/dist/input/index.d.ts +1 -0
- package/lib/dist/input/index.d.ts.map +1 -1
- package/lib/dist/input/index.js +2 -1
- package/lib/dist/input/inputs.d.ts +2 -0
- package/lib/dist/input/inputs.d.ts.map +1 -1
- package/lib/dist/input/inputs.js +3 -1
- package/lib/dist/material/flat-texture.d.ts +10 -0
- package/lib/dist/material/flat-texture.d.ts.map +1 -0
- package/lib/dist/material/flat-texture.js +29 -0
- package/lib/dist/material/index.d.ts +1 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +2 -1
- package/lib/dist/math/math.d.ts +1 -0
- package/lib/dist/math/math.d.ts.map +1 -1
- package/lib/dist/math/math.js +7 -1
- package/lib/dist/math/vec2.d.ts +1 -0
- package/lib/dist/math/vec2.d.ts.map +1 -1
- package/lib/dist/math/vec2.js +4 -1
- package/lib/dist/painter/group-camera.d.ts +18 -0
- package/lib/dist/painter/group-camera.d.ts.map +1 -0
- package/lib/dist/painter/group-camera.js +20 -0
- package/lib/dist/painter/index.d.ts +1 -0
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +2 -1
- package/lib/dist/painter/segments/index.d.ts +1 -0
- package/lib/dist/painter/segments/index.d.ts.map +1 -1
- package/lib/dist/painter/segments/index.js +2 -1
- package/lib/dist/painter/segments/segments-morphing.d.ts +80 -0
- package/lib/dist/painter/segments/segments-morphing.d.ts.map +1 -0
- package/lib/dist/painter/segments/segments-morphing.js +213 -0
- package/lib/dist/painter/segments/segments.d.ts +42 -7
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +93 -25
- package/lib/dist/painter/sprites/index.d.ts +1 -0
- package/lib/dist/painter/sprites/index.d.ts.map +1 -1
- package/lib/dist/painter/sprites/index.js +2 -1
- package/lib/dist/painter/sprites/sprites-abstract.d.ts +25 -0
- package/lib/dist/painter/sprites/sprites-abstract.d.ts.map +1 -0
- package/lib/dist/painter/sprites/sprites-abstract.js +9 -0
- package/lib/dist/painter/sprites/sprites-hue.d.ts +26 -0
- package/lib/dist/painter/sprites/sprites-hue.d.ts.map +1 -0
- package/lib/dist/painter/sprites/sprites-hue.js +66 -0
- package/lib/dist/painter/sprites/sprites.d.ts +67 -24
- package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
- package/lib/dist/painter/sprites/sprites.js +160 -57
- package/lib/dist/painter/sprites/types.d.ts +4 -0
- package/lib/dist/painter/sprites/types.d.ts.map +1 -1
- package/lib/dist/types/program.d.ts +4 -1
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/vao/vao.d.ts +6 -0
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +30 -8
- package/package.json +2 -1
- package/lib/dist/painter/segments.backup/index.d.ts +0 -2
- package/lib/dist/painter/segments.backup/index.d.ts.map +0 -1
- package/lib/dist/painter/segments.backup/index.js +0 -2
- package/lib/dist/painter/segments.backup/segments.d.ts +0 -95
- package/lib/dist/painter/segments.backup/segments.d.ts.map +0 -1
- package/lib/dist/painter/segments.backup/segments.frag +0 -22
- package/lib/dist/painter/segments.backup/segments.js +0 -223
- package/lib/dist/painter/segments.backup/segments.vert +0 -121
- package/lib/dist/painter/sprites/sprite.d.ts +0 -31
- package/lib/dist/painter/sprites/sprite.d.ts.map +0 -1
- package/lib/dist/painter/sprites/sprite.js +0 -80
|
@@ -7,6 +7,7 @@ import { tgdCanvasCreatePalette } from "./../../utils/index.js";
|
|
|
7
7
|
import { TgdMaterialFaceOrientation } from "./../../material/index.js";
|
|
8
8
|
import { makeCapsule } from "./capsule.js";
|
|
9
9
|
import { TgdShaderFragment, TgdShaderVertex } from "./../../shader/index.js";
|
|
10
|
+
import { TgdTransfo } from "./../../math/index.js";
|
|
10
11
|
/**
|
|
11
12
|
* @example
|
|
12
13
|
* ```
|
|
@@ -29,17 +30,35 @@ import { TgdShaderFragment, TgdShaderVertex } from "./../../shader/index.js";
|
|
|
29
30
|
* ```
|
|
30
31
|
*/
|
|
31
32
|
export class TgdPainterSegments extends TgdPainter {
|
|
33
|
+
static createDataset({ attXYZR0 = "attXYZR0", attUV0 = "attUV0", attInfluence0 = "attInfluence0", attXYZR1 = "attXYZR1", attUV1 = "attUV1", attInfluence1 = "attInfluence1", buffer, usage, target, } = {}) {
|
|
34
|
+
const dataset = new TgdDataset({
|
|
35
|
+
[attXYZR0]: "vec4",
|
|
36
|
+
[attUV0]: "vec2",
|
|
37
|
+
[attInfluence0]: "float",
|
|
38
|
+
[attXYZR1]: "vec4",
|
|
39
|
+
[attUV1]: "vec2",
|
|
40
|
+
[attInfluence1]: "float",
|
|
41
|
+
}, {
|
|
42
|
+
divisor: 1,
|
|
43
|
+
buffer,
|
|
44
|
+
usage,
|
|
45
|
+
target,
|
|
46
|
+
});
|
|
47
|
+
return dataset;
|
|
48
|
+
}
|
|
32
49
|
// private readonly painter: TgdPainter
|
|
33
50
|
constructor(context, options) {
|
|
34
51
|
var _a, _b, _c, _d;
|
|
35
52
|
super();
|
|
36
53
|
this.context = context;
|
|
54
|
+
this.transfo = new TgdTransfo();
|
|
37
55
|
this.minRadius = 1;
|
|
38
56
|
this.radiusMultiplier = 1;
|
|
39
57
|
this.radiusConstant = 1;
|
|
40
58
|
this.radiusSwitch = 0;
|
|
41
|
-
this.
|
|
42
|
-
|
|
59
|
+
this.instanceCount = 0;
|
|
60
|
+
this.name = `TgdPainterSegments#${this.id}`;
|
|
61
|
+
const { roundness = 3, minRadius = 1, dataset } = options;
|
|
43
62
|
const geometry = makeCapsule(roundness);
|
|
44
63
|
const material = (_a = options.material) !== null && _a !== void 0 ? _a : new TgdMaterialFaceOrientation();
|
|
45
64
|
this.material = material;
|
|
@@ -91,7 +110,7 @@ export class TgdPainterSegments extends TgdPainter {
|
|
|
91
110
|
`float radius = max(`,
|
|
92
111
|
[
|
|
93
112
|
`xyzr.w,`,
|
|
94
|
-
`uniMinRadius * (uniProjectionMatrix * uniModelViewMatrix * vec4(center, 1)).w`,
|
|
113
|
+
`uniMinRadius * (uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * vec4(center, 1)).w`,
|
|
95
114
|
],
|
|
96
115
|
`);`,
|
|
97
116
|
`vec3 dir = attXYZR1.xyz - attXYZR0.xyz;`,
|
|
@@ -111,7 +130,7 @@ export class TgdPainterSegments extends TgdPainter {
|
|
|
111
130
|
`normal = mat * normal;`,
|
|
112
131
|
],
|
|
113
132
|
`}`,
|
|
114
|
-
`gl_Position = uniProjectionMatrix * uniModelViewMatrix * vec4(pos, 1);`,
|
|
133
|
+
`gl_Position = uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * vec4(pos, 1);`,
|
|
115
134
|
"applyMaterial();",
|
|
116
135
|
"varNormal = normal;",
|
|
117
136
|
],
|
|
@@ -133,10 +152,35 @@ export class TgdPainterSegments extends TgdPainter {
|
|
|
133
152
|
frag,
|
|
134
153
|
});
|
|
135
154
|
this.prg = prg;
|
|
136
|
-
|
|
137
|
-
|
|
155
|
+
if (dataset instanceof TgdPainterSegments) {
|
|
156
|
+
if (dataset.vao.gl !== context.gl) {
|
|
157
|
+
throw new Error("[TgdPainterSegments] You cannot share a VAO accross different contexts!");
|
|
158
|
+
}
|
|
159
|
+
this.vao = dataset.vao;
|
|
160
|
+
this.vao.share();
|
|
161
|
+
this.instanceCount = dataset.instanceCount;
|
|
162
|
+
}
|
|
163
|
+
else if (dataset) {
|
|
164
|
+
const instance = extract(dataset);
|
|
165
|
+
instance.addAttributes({
|
|
166
|
+
attXYZR0: "vec4",
|
|
167
|
+
attUV0: "vec2",
|
|
168
|
+
attInfluence0: "float",
|
|
169
|
+
attXYZR1: "vec4",
|
|
170
|
+
attUV1: "vec2",
|
|
171
|
+
attInfluence1: "float",
|
|
172
|
+
});
|
|
173
|
+
this.vao = new TgdVertexArray(context.gl, prg, [geometry.dataset, instance], geometry.elements);
|
|
174
|
+
this.instanceCount = instance.count;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
console.error("[TgdPainterSegments] options =", options); // @FIXME: Remove this line written on 2026-02-04 at 19:53
|
|
178
|
+
throw new Error("option `dataset` of TgdPainterSegments is undefined!");
|
|
179
|
+
}
|
|
138
180
|
this.vertexCount = (_d = (_c = geometry.elements) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0;
|
|
139
|
-
|
|
181
|
+
}
|
|
182
|
+
getBuffer() {
|
|
183
|
+
return this.vao.getBuffer(1);
|
|
140
184
|
}
|
|
141
185
|
delete() {
|
|
142
186
|
this.vao.delete();
|
|
@@ -150,6 +194,7 @@ export class TgdPainterSegments extends TgdPainter {
|
|
|
150
194
|
prg.use();
|
|
151
195
|
(_b = (_a = this.material).setUniforms) === null || _b === void 0 ? void 0 : _b.call(_a, { program: prg, camera, time, delay });
|
|
152
196
|
prg.uniform1f("uniMinRadius", (this.minRadius * 2) / gl.drawingBufferHeight);
|
|
197
|
+
prg.uniformMatrix4fv("uniTransfoMatrix", this.transfo.matrix);
|
|
153
198
|
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
154
199
|
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
155
200
|
material.applyState(gl, () => {
|
|
@@ -168,29 +213,47 @@ export class TgdPainterSegmentsData {
|
|
|
168
213
|
this.attXYZR1 = [];
|
|
169
214
|
this.attUV1 = [];
|
|
170
215
|
this.attInfluence1 = [];
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
dataset.set(
|
|
183
|
-
dataset.set(
|
|
184
|
-
dataset.set("attInfluence0", new Float32Array(this.attInfluence0));
|
|
185
|
-
dataset.set("attXYZR1", new Float32Array(this.attXYZR1));
|
|
186
|
-
dataset.set("attUV1", new Float32Array(this.attUV1));
|
|
187
|
-
dataset.set("attInfluence1", new Float32Array(this.attInfluence1));
|
|
216
|
+
/**
|
|
217
|
+
* You can rename the attributes if you need to use
|
|
218
|
+
* them in another Painter.
|
|
219
|
+
*/
|
|
220
|
+
this.makeDataset = (args = {}) => {
|
|
221
|
+
const dataset = TgdPainterSegments.createDataset(args);
|
|
222
|
+
const { attXYZR0 = "attXYZR0", attUV0 = "attUV0", attInfluence0 = "attInfluence0", attXYZR1 = "attXYZR1", attUV1 = "attUV1", attInfluence1 = "attInfluence1", } = args;
|
|
223
|
+
dataset.set(attXYZR0, new Float32Array(this.attXYZR0));
|
|
224
|
+
dataset.set(attUV0, new Float32Array(this.attUV0));
|
|
225
|
+
dataset.set(attInfluence0, new Float32Array(this.attInfluence0));
|
|
226
|
+
dataset.set(attXYZR1, new Float32Array(this.attXYZR1));
|
|
227
|
+
dataset.set(attUV1, new Float32Array(this.attUV1));
|
|
228
|
+
dataset.set(attInfluence1, new Float32Array(this.attInfluence1));
|
|
188
229
|
return dataset;
|
|
189
230
|
};
|
|
190
231
|
}
|
|
191
232
|
get count() {
|
|
192
233
|
return this._count;
|
|
193
234
|
}
|
|
235
|
+
getXYZR0(index) {
|
|
236
|
+
var _a, _b, _c, _d;
|
|
237
|
+
const arr = this.attXYZR0;
|
|
238
|
+
const offset = index * 4;
|
|
239
|
+
return [
|
|
240
|
+
(_a = arr[offset + 0]) !== null && _a !== void 0 ? _a : 0,
|
|
241
|
+
(_b = arr[offset + 1]) !== null && _b !== void 0 ? _b : 0,
|
|
242
|
+
(_c = arr[offset + 2]) !== null && _c !== void 0 ? _c : 0,
|
|
243
|
+
(_d = arr[offset + 3]) !== null && _d !== void 0 ? _d : 0,
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
getXYZR1(index) {
|
|
247
|
+
var _a, _b, _c, _d;
|
|
248
|
+
const arr = this.attXYZR1;
|
|
249
|
+
const offset = index * 4;
|
|
250
|
+
return [
|
|
251
|
+
(_a = arr[offset + 0]) !== null && _a !== void 0 ? _a : 0,
|
|
252
|
+
(_b = arr[offset + 1]) !== null && _b !== void 0 ? _b : 0,
|
|
253
|
+
(_c = arr[offset + 2]) !== null && _c !== void 0 ? _c : 0,
|
|
254
|
+
(_d = arr[offset + 3]) !== null && _d !== void 0 ? _d : 0,
|
|
255
|
+
];
|
|
256
|
+
}
|
|
194
257
|
/**
|
|
195
258
|
* @param XYZR0 (x,y,z) and radius of point A.
|
|
196
259
|
* @param XYZR1 (x,y,z) and radius of point B.
|
|
@@ -209,4 +272,9 @@ export class TgdPainterSegmentsData {
|
|
|
209
272
|
this._count++;
|
|
210
273
|
}
|
|
211
274
|
}
|
|
212
|
-
|
|
275
|
+
function extract(arg) {
|
|
276
|
+
if (typeof arg === "function")
|
|
277
|
+
return arg();
|
|
278
|
+
return arg;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zZWdtZW50cy9zZWdtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFbkQsT0FBTyxFQUFlLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBa0N0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQUM5QyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQ2pCLFFBQVEsR0FBRyxVQUFVLEVBQ3JCLE1BQU0sR0FBRyxRQUFRLEVBQ2pCLGFBQWEsR0FBRyxlQUFlLEVBQy9CLFFBQVEsR0FBRyxVQUFVLEVBQ3JCLE1BQU0sR0FBRyxRQUFRLEVBQ2pCLGFBQWEsR0FBRyxlQUFlLEVBQy9CLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxNQVdMLEVBQUU7UUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FDMUI7WUFDSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU07WUFDbEIsQ0FBQyxNQUFNLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from "./sprites.js";
|
|
2
|
-
|
|
2
|
+
export * from "./sprites-hue.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zcHJpdGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFBO0FBQ3pCLGNBQWMsZUFBZSxDQUFBIn0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { TgdInterfaceTransformable } from "../../interface";
|
|
2
|
+
import { TgdTransfo } from "../../math";
|
|
3
|
+
import { TgdPainter } from "../painter";
|
|
4
|
+
import type { TgdSprite } from "./types";
|
|
5
|
+
export type { TgdSprite } from "./types";
|
|
6
|
+
export declare abstract class TgdPainterSpritesAbstract<Base extends TgdSprite, Type extends Base> extends TgdPainter implements TgdInterfaceTransformable {
|
|
7
|
+
readonly transfo: TgdTransfo;
|
|
8
|
+
abstract list(): ReadonlyArray<Type>;
|
|
9
|
+
abstract forEach(callback: (sprite: Type) => void): void;
|
|
10
|
+
abstract filter(test: (sprite: Type) => boolean): ReadonlyArray<Type>;
|
|
11
|
+
abstract get count(): number;
|
|
12
|
+
abstract get capacity(): number;
|
|
13
|
+
/**
|
|
14
|
+
* Delete all sprites.
|
|
15
|
+
*/
|
|
16
|
+
abstract clear(): void;
|
|
17
|
+
abstract add(data: Omit<Type, keyof Base> & Partial<Omit<Type, "id">>): Type;
|
|
18
|
+
abstract remove(sprite: {
|
|
19
|
+
id: number;
|
|
20
|
+
}): void;
|
|
21
|
+
abstract delete(): void;
|
|
22
|
+
abstract paint(): void;
|
|
23
|
+
abstract debug(caption?: string): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=sprites-abstract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprites-abstract.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/sprites-abstract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,8BAAsB,yBAAyB,CACvC,IAAI,SAAS,SAAS,EACtB,IAAI,SAAS,IAAI,CAErB,SAAQ,UACR,YAAW,yBAAyB;IAEpC,SAAgB,OAAO,aAAmB;IAE1C,QAAQ,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC;IAEpC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;IAExD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC;IAErE,QAAQ,KAAK,KAAK,IAAI,MAAM,CAAA;IAE5B,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAA;IAE/B;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI;IAE5E,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAE7C,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CACzC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TgdTransfo } from "./../../math/index.js";
|
|
2
|
+
import { TgdPainter } from "../painter.js";
|
|
3
|
+
export class TgdPainterSpritesAbstract extends TgdPainter {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.transfo = new TgdTransfo();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlcy1hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL3Nwcml0ZXMvc3ByaXRlcy1hYnN0cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFLdkMsTUFBTSxPQUFnQix5QkFJbEIsU0FBUSxVQUFVO0lBSnRCOztRQU9vQixZQUFPLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtJQXlCOUMsQ0FBQztDQUFBIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TgdContext } from "../../context";
|
|
2
|
+
import type { TgdSpriteHue } from "./types";
|
|
3
|
+
import { TgdPainterSpritesOptions } from "./sprites";
|
|
4
|
+
import { TgdPainterSpritesAbstract } from "./sprites-abstract";
|
|
5
|
+
export type { TgdSpriteHue } from "./types";
|
|
6
|
+
export declare class TgdPainterSpritesHue<T extends TgdSpriteHue = TgdSpriteHue> extends TgdPainterSpritesAbstract<TgdSpriteHue, T> {
|
|
7
|
+
private readonly parent;
|
|
8
|
+
constructor(context: TgdContext, options: TgdPainterSpritesOptions);
|
|
9
|
+
get count(): number;
|
|
10
|
+
get capacity(): number;
|
|
11
|
+
list(): ReadonlyArray<T>;
|
|
12
|
+
forEach(callback: (sprite: T) => void): void;
|
|
13
|
+
filter(test: (sprite: T) => boolean): ReadonlyArray<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Delete all sprites.
|
|
16
|
+
*/
|
|
17
|
+
clear(): void;
|
|
18
|
+
add(data: Omit<T, keyof TgdSpriteHue> & Partial<Omit<T, "id">>): T;
|
|
19
|
+
remove(sprite: {
|
|
20
|
+
id: number;
|
|
21
|
+
}): void;
|
|
22
|
+
delete(): void;
|
|
23
|
+
paint(): void;
|
|
24
|
+
debug(caption?: string): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sprites-hue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprites-hue.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/sprites-hue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAqB,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,qBAAa,oBAAoB,CAC7B,CAAC,SAAS,YAAY,GAAG,YAAY,CACvC,SAAQ,yBAAyB,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAEjC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB;IAyBlE,IAAI,KAAK,WAER;IAED,IAAI,QAAQ,WAEX;IAED,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC;IAIxB,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI;IAIrC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;IAItD;;OAEG;IACH,KAAK;IAIL,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;IAUlE,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE;IAS7B,MAAM,IAAI,IAAI;IAId,KAAK,IAAI,IAAI;IAIb,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;CAGzB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { TgdPainterSprites } from "./sprites.js";
|
|
2
|
+
import { tgdCodeFunction_shiftHue } from "./../../code/index.js";
|
|
3
|
+
import { TgdPainterSpritesAbstract } from "./sprites-abstract.js";
|
|
4
|
+
export class TgdPainterSpritesHue extends TgdPainterSpritesAbstract {
|
|
5
|
+
constructor(context, options) {
|
|
6
|
+
super();
|
|
7
|
+
this.parent = new TgdPainterSprites(context, Object.assign(Object.assign({}, options), { attributes: {
|
|
8
|
+
attHue: "float",
|
|
9
|
+
}, attributesSetter(attributes, key, value, offset) {
|
|
10
|
+
if (key !== "hue" || typeof value !== "number")
|
|
11
|
+
return;
|
|
12
|
+
attributes.attHue.set(value, offset);
|
|
13
|
+
}, varyings: {
|
|
14
|
+
varHue: "float",
|
|
15
|
+
}, vert: {
|
|
16
|
+
code: ["varHue = attHue;"],
|
|
17
|
+
}, frag: {
|
|
18
|
+
functions: tgdCodeFunction_shiftHue(),
|
|
19
|
+
code: ["color.rgb = shiftHue(color.rgb, varHue);"],
|
|
20
|
+
} }));
|
|
21
|
+
}
|
|
22
|
+
get count() {
|
|
23
|
+
return this.parent.count;
|
|
24
|
+
}
|
|
25
|
+
get capacity() {
|
|
26
|
+
return this.parent.capacity;
|
|
27
|
+
}
|
|
28
|
+
list() {
|
|
29
|
+
return this.parent.list();
|
|
30
|
+
}
|
|
31
|
+
forEach(callback) {
|
|
32
|
+
this.parent.forEach(callback);
|
|
33
|
+
}
|
|
34
|
+
filter(test) {
|
|
35
|
+
return this.parent.filter(test);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Delete all sprites.
|
|
39
|
+
*/
|
|
40
|
+
clear() {
|
|
41
|
+
this.parent.clear();
|
|
42
|
+
}
|
|
43
|
+
add(data) {
|
|
44
|
+
const info = Object.assign({ hue: 0 }, data);
|
|
45
|
+
const sprite = this.parent.add(info);
|
|
46
|
+
sprite.hue = info.hue;
|
|
47
|
+
return sprite;
|
|
48
|
+
}
|
|
49
|
+
remove(sprite) {
|
|
50
|
+
this.parent.remove(sprite);
|
|
51
|
+
}
|
|
52
|
+
// protected updateAccessors() {
|
|
53
|
+
// super.updateAccessors()
|
|
54
|
+
// this.attributes.attHue.dataset = this.datasetInstances
|
|
55
|
+
// }
|
|
56
|
+
delete() {
|
|
57
|
+
this.parent.delete();
|
|
58
|
+
}
|
|
59
|
+
paint() {
|
|
60
|
+
this.parent.paint();
|
|
61
|
+
}
|
|
62
|
+
debug(caption) {
|
|
63
|
+
this.parent.debug(caption);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlcy1odWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zcHJpdGVzL3Nwcml0ZXMtaHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBNEIsTUFBTSxXQUFXLENBQUE7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBSTlELE1BQU0sT0FBTyxvQkFFWCxTQUFRLHlCQUEwQztJQUdoRCxZQUFZLE9BQW1CLEVBQUUsT0FBaUM7UUFDOUQsS0FBSyxFQUFFLENBQUE7UUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUksT0FBTyxrQ0FDdkMsT0FBTyxLQUNWLFVBQVUsRUFBRTtnQkFDUixNQUFNLEVBQUUsT0FBTzthQUNsQixFQUNELGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU07Z0JBQzNDLElBQUksR0FBRyxLQUFLLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO29CQUFFLE9BQU07Z0JBRXRELFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUN4QyxDQUFDLEVBQ0QsUUFBUSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxPQUFPO2FBQ2xCLEVBQ0QsSUFBSSxFQUFFO2dCQUNGLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDO2FBQzdCLEVBQ0QsSUFBSSxFQUFFO2dCQUNGLFNBQVMsRUFBRSx3QkFBd0IsRUFBRTtnQkFDckMsSUFBSSxFQUFFLENBQUMsMENBQTBDLENBQUM7YUFDckQsSUFDSCxDQUFBO0lBQ04sQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUE7SUFDL0IsQ0FBQztJQUVELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDN0IsQ0FBQztJQUVELE9BQU8sQ0FBQyxRQUE2QjtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQTRCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUEwRDtRQUMxRCxNQUFNLElBQUksR0FBRyxnQkFDVCxHQUFHLEVBQUUsQ0FBQyxJQUNILElBQUksQ0FDMkMsQ0FBQTtRQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDckIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFzQjtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLDhCQUE4QjtJQUM5Qiw2REFBNkQ7SUFDN0QsSUFBSTtJQUVKLE1BQU07UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWdCO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzlCLENBQUM7Q0FDSiJ9
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { TgdContext } from "../../context";
|
|
2
|
-
import
|
|
3
|
-
import { TgdTransfo } from "../../math";
|
|
2
|
+
import { TgdDataset, TgdDatasetTypeRecord } from "../../dataset";
|
|
3
|
+
import { TgdTransfo, TgdVec2 } from "../../math";
|
|
4
|
+
import { TgdProgram } from "../../program";
|
|
5
|
+
import { TgdCodeBloc, TgdCodeFunctions } from "../../shader";
|
|
4
6
|
import type { TgdTexture2D } from "../../texture";
|
|
5
|
-
import {
|
|
7
|
+
import { TgdVertexArray } from "../../vao";
|
|
8
|
+
import { AccessorProxy } from "./accessor";
|
|
6
9
|
import type { AtlasItem, TgdSprite } from "./types";
|
|
10
|
+
import { WebglAttributeType } from "../../types";
|
|
11
|
+
import { TgdPainterSpritesAbstract } from "./sprites-abstract";
|
|
7
12
|
export type { TgdSprite } from "./types";
|
|
8
13
|
export type TgdPainterSpritesAtlas = AtlasItem[];
|
|
9
14
|
export interface TgdPainterSpritesOptions {
|
|
@@ -22,40 +27,78 @@ export interface TgdPainterSpritesOptions {
|
|
|
22
27
|
* Default: 1
|
|
23
28
|
*/
|
|
24
29
|
initialCapacity?: number;
|
|
30
|
+
attributes?: TgdDatasetTypeRecord;
|
|
31
|
+
attributesSetter?(attributes: Record<keyof TgdDatasetTypeRecord, AccessorProxy>, key: string | symbol, value: unknown, offset: number): void;
|
|
32
|
+
varyings?: {
|
|
33
|
+
[name: string]: WebglAttributeType;
|
|
34
|
+
};
|
|
35
|
+
vert?: {
|
|
36
|
+
functions?: TgdCodeFunctions | (() => TgdCodeFunctions);
|
|
37
|
+
code?: TgdCodeBloc | (() => TgdCodeBloc);
|
|
38
|
+
};
|
|
39
|
+
frag?: {
|
|
40
|
+
functions?: TgdCodeFunctions | (() => TgdCodeFunctions);
|
|
41
|
+
code?: TgdCodeBloc | (() => TgdCodeBloc);
|
|
42
|
+
};
|
|
25
43
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
44
|
+
type Sprite<T extends TgdSprite> = T & {
|
|
45
|
+
_offset: number;
|
|
46
|
+
};
|
|
47
|
+
export declare class TgdPainterSprites<T extends TgdSprite = TgdSprite> extends TgdPainterSpritesAbstract<TgdSprite, T> {
|
|
48
|
+
protected readonly context: TgdContext;
|
|
49
|
+
protected readonly options: TgdPainterSpritesOptions;
|
|
29
50
|
readonly transfo: TgdTransfo;
|
|
30
51
|
readonly texture: TgdTexture2D;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
52
|
+
protected readonly datasetInstances: TgdDataset;
|
|
53
|
+
protected readonly prg: TgdProgram;
|
|
54
|
+
protected readonly vao: TgdVertexArray;
|
|
34
55
|
/**
|
|
35
56
|
* Number of actual sprites.
|
|
36
57
|
*
|
|
37
58
|
* The capacity can be get with `this.dataset.count`.
|
|
38
59
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
protected _count: number;
|
|
61
|
+
protected readonly sprites: Sprite<T>[];
|
|
62
|
+
/**
|
|
63
|
+
* Map[id] = index in array `sprites`
|
|
64
|
+
*/
|
|
65
|
+
protected readonly spriteIndexes: Map<number, number>;
|
|
66
|
+
protected readonly attPosition: AccessorProxy;
|
|
67
|
+
protected readonly attCos: AccessorProxy;
|
|
68
|
+
protected readonly attSin: AccessorProxy;
|
|
69
|
+
protected readonly attScale: AccessorProxy;
|
|
70
|
+
protected readonly attUV: AccessorProxy;
|
|
71
|
+
protected readonly attSize: AccessorProxy;
|
|
72
|
+
protected readonly attOrigin: AccessorProxy;
|
|
73
|
+
protected readonly attributes: Record<string, AccessorProxy>;
|
|
74
|
+
protected readonly uniAtlasRatio: TgdVec2;
|
|
75
|
+
protected dirty: boolean;
|
|
76
|
+
private static id;
|
|
49
77
|
constructor(context: TgdContext, options: TgdPainterSpritesOptions);
|
|
78
|
+
list(): ReadonlyArray<T>;
|
|
79
|
+
forEach(callback: (sprite: T) => void): void;
|
|
80
|
+
filter(test: (sprite: T) => boolean): ReadonlyArray<T>;
|
|
50
81
|
get count(): number;
|
|
51
|
-
|
|
82
|
+
protected set count(value: number);
|
|
52
83
|
get capacity(): number;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
84
|
+
protected set capacity(value: number);
|
|
85
|
+
/**
|
|
86
|
+
* Delete all sprites.
|
|
87
|
+
*/
|
|
88
|
+
clear(): void;
|
|
89
|
+
add(data: Omit<T, keyof TgdSprite> & Partial<Omit<T, "id">>): T;
|
|
90
|
+
protected initialize(sprite: T, info: T): void;
|
|
91
|
+
protected interceptSetter(key: string | symbol, value: unknown, { offset, atlas, }: {
|
|
92
|
+
id: number;
|
|
93
|
+
offset: number;
|
|
94
|
+
atlas: TgdPainterSpritesAtlas;
|
|
95
|
+
}): boolean;
|
|
96
|
+
remove(sprite: {
|
|
97
|
+
id: number;
|
|
98
|
+
}): boolean;
|
|
56
99
|
delete(): void;
|
|
57
100
|
paint(): void;
|
|
58
101
|
debug(caption?: string): void;
|
|
59
|
-
|
|
102
|
+
protected updateAccessors(): void;
|
|
60
103
|
}
|
|
61
104
|
//# sourceMappingURL=sprites.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprites.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/sprites.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"sprites.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/sprites.ts"],"names":[],"mappings":"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"}
|