@tolokoban/tgd 2.0.78 → 2.0.80
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/camera/camera.d.ts +14 -2
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +89 -8
- package/lib/dist/controller/camera/orbit.d.ts +3 -3
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +5 -6
- package/lib/dist/dataset/dataset.d.ts +8 -2
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +23 -14
- package/lib/dist/debug/console.d.ts +5 -0
- package/lib/dist/debug/console.d.ts.map +1 -1
- package/lib/dist/debug/console.js +22 -1
- package/lib/dist/geometry/box.d.ts +4 -2
- package/lib/dist/geometry/box.d.ts.map +1 -1
- package/lib/dist/geometry/box.js +26 -20
- package/lib/dist/geometry/index.d.ts +1 -0
- package/lib/dist/geometry/index.d.ts.map +1 -1
- package/lib/dist/geometry/index.js +2 -1
- package/lib/dist/geometry/sphere-ico.d.ts +19 -0
- package/lib/dist/geometry/sphere-ico.d.ts.map +1 -0
- package/lib/dist/geometry/sphere-ico.js +78 -0
- package/lib/dist/index.d.ts +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -1
- package/lib/dist/material/global.d.ts +3 -3
- package/lib/dist/material/global.d.ts.map +1 -1
- package/lib/dist/material/global.js +9 -9
- package/lib/dist/math/transfo.d.ts +4 -3
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +2 -2
- package/lib/dist/math/vec2.d.ts +3 -3
- package/lib/dist/math/vec2.d.ts.map +1 -1
- package/lib/dist/math/vec2.js +4 -4
- package/lib/dist/math/vec3.d.ts +5 -5
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +5 -4
- package/lib/dist/math/vec4.d.ts +4 -4
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +18 -17
- package/lib/dist/painter/debug/index.d.ts +1 -0
- package/lib/dist/painter/debug/index.d.ts.map +1 -1
- package/lib/dist/painter/debug/index.js +2 -1
- package/lib/dist/painter/debug/point/index.d.ts +2 -0
- package/lib/dist/painter/debug/point/index.d.ts.map +1 -0
- package/lib/dist/painter/debug/point/index.js +2 -0
- package/lib/dist/painter/debug/point/point.d.ts +17 -0
- package/lib/dist/painter/debug/point/point.d.ts.map +1 -0
- package/lib/dist/painter/debug/point/point.js +55 -0
- package/lib/dist/painter/debug/stencil/stencil.d.ts +1 -1
- package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -1
- package/lib/dist/painter/debug/stencil/stencil.js +5 -5
- package/lib/dist/painter/group.d.ts +11 -3
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +24 -10
- package/lib/dist/painter/index.d.ts +2 -0
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +3 -1
- package/lib/dist/painter/lod/cache.d.ts +9 -0
- package/lib/dist/painter/lod/cache.d.ts.map +1 -0
- package/lib/dist/painter/lod/cache.js +60 -0
- package/lib/dist/painter/lod/index.d.ts +2 -0
- package/lib/dist/painter/lod/index.d.ts.map +1 -0
- package/lib/dist/painter/lod/index.js +2 -0
- package/lib/dist/painter/lod/lod.d.ts +61 -0
- package/lib/dist/painter/lod/lod.d.ts.map +1 -0
- package/lib/dist/painter/lod/lod.js +72 -0
- package/lib/dist/painter/lod/octree.d.ts +8 -0
- package/lib/dist/painter/lod/octree.d.ts.map +1 -0
- package/lib/dist/painter/lod/octree.js +61 -0
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +6 -6
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +7 -6
- package/lib/dist/painter/node/node.d.ts +4 -3
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +27 -12
- package/lib/dist/painter/painter.d.ts +1 -0
- package/lib/dist/painter/painter.d.ts.map +1 -1
- package/lib/dist/painter/painter.js +4 -1
- package/lib/dist/painter/sprites/accessor.d.ts +13 -0
- package/lib/dist/painter/sprites/accessor.d.ts.map +1 -0
- package/lib/dist/painter/sprites/accessor.js +24 -0
- package/lib/dist/painter/sprites/index.d.ts +2 -0
- package/lib/dist/painter/sprites/index.d.ts.map +1 -0
- package/lib/dist/painter/sprites/index.js +2 -0
- package/lib/dist/painter/sprites/sprite.d.ts +31 -0
- package/lib/dist/painter/sprites/sprite.d.ts.map +1 -0
- package/lib/dist/painter/sprites/sprite.js +80 -0
- package/lib/dist/painter/sprites/sprites.d.ts +61 -0
- package/lib/dist/painter/sprites/sprites.d.ts.map +1 -0
- package/lib/dist/painter/sprites/sprites.js +259 -0
- package/lib/dist/painter/sprites/types.d.ts +38 -0
- package/lib/dist/painter/sprites/types.d.ts.map +1 -0
- package/lib/dist/painter/sprites/types.js +2 -0
- package/lib/dist/program/program.d.ts +2 -1
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +5 -1
- package/lib/dist/texture/texture-depth.d.ts.map +1 -1
- package/lib/dist/texture/texture-depth.js +2 -4
- package/lib/dist/texture/texture2d.d.ts +7 -1
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +14 -3
- package/lib/dist/texture/types.d.ts +9 -0
- package/lib/dist/texture/types.d.ts.map +1 -0
- package/lib/dist/texture/types.js +20 -0
- package/lib/dist/time/index.d.ts +2 -0
- package/lib/dist/time/index.d.ts.map +1 -0
- package/lib/dist/time/index.js +2 -0
- package/lib/dist/time/interval/index.d.ts +2 -0
- package/lib/dist/time/interval/index.d.ts.map +1 -0
- package/lib/dist/time/interval/index.js +2 -0
- package/lib/dist/time/interval/interval.d.ts +16 -0
- package/lib/dist/time/interval/interval.d.ts.map +1 -0
- package/lib/dist/time/interval/interval.js +24 -0
- package/lib/dist/types/gltf.d.ts +1 -1
- package/lib/dist/types/gltf.d.ts.map +1 -1
- package/lib/dist/types/gltf.js +2 -2
- package/lib/dist/types/guards.d.ts +86 -4
- package/lib/dist/types/guards.d.ts.map +1 -1
- package/lib/dist/types/guards.js +180 -44
- package/lib/dist/utils/canvas.js +1 -1
- package/lib/dist/vao/vao.d.ts +3 -3
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +1 -1
- package/package.json +1 -1
- package/lib/dist/material/bsdf.d.ts +0 -25
- package/lib/dist/material/bsdf.d.ts.map +0 -1
- package/lib/dist/material/bsdf.js +0 -98
- package/lib/dist/material/principled.d.ts +0 -25
- package/lib/dist/material/principled.d.ts.map +0 -1
- package/lib/dist/material/principled.js +0 -112
- package/lib/dist/material/solid.d.ts +0 -22
- package/lib/dist/material/solid.d.ts.map +0 -1
- package/lib/dist/material/solid.js +0 -20
- package/lib/dist/types/input-keyboard.d.ts +0 -8
- package/lib/dist/types/input-keyboard.d.ts.map +0 -1
- package/lib/dist/types/input-keyboard.js +0 -2
- package/lib/dist/utils/math.d.ts +0 -19
- package/lib/dist/utils/math.d.ts.map +0 -1
- package/lib/dist/utils/math.js +0 -59
- package/lib/dist/utils/math.test.d.ts +0 -2
- package/lib/dist/utils/math.test.d.ts.map +0 -1
- package/lib/dist/utils/math.test.js +0 -22
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TgdDataset } from "../../dataset";
|
|
2
|
+
import { Accessor } from "./types";
|
|
3
|
+
export declare class AccessorProxy implements Accessor {
|
|
4
|
+
readonly attributeName: string;
|
|
5
|
+
private accessor;
|
|
6
|
+
private _dataset;
|
|
7
|
+
constructor(attributeName: string);
|
|
8
|
+
get dataset(): TgdDataset | undefined;
|
|
9
|
+
set dataset(value: TgdDataset | undefined);
|
|
10
|
+
readonly get: (index: number, dimension?: number | undefined) => number;
|
|
11
|
+
readonly set: (value: number, index: number, dimension?: number | undefined) => void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=accessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/accessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,qBAAa,aAAc,YAAW,QAAQ;aAId,aAAa,EAAE,MAAM;IAHjD,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,QAAQ,CAAoC;gBAExB,aAAa,EAAE,MAAM;IAEjD,IAAI,OAAO,IAGQ,UAAU,GAAG,SAAS,CADxC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,EAKxC;IACD,QAAQ,CAAC,GAAG,GAAI,OAAO,MAAM,EAAE,YAAY,MAAM,GAAG,SAAS,YAChB;IAE7C,QAAQ,CAAC,GAAG,GACR,OAAO,MAAM,EACb,OAAO,MAAM,EACb,YAAY,MAAM,GAAG,SAAS,UAMjC;CACJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class AccessorProxy {
|
|
2
|
+
constructor(attributeName) {
|
|
3
|
+
this.attributeName = attributeName;
|
|
4
|
+
this.accessor = null;
|
|
5
|
+
this._dataset = undefined;
|
|
6
|
+
this.get = (index, dimension) => { var _a, _b; return (_b = (_a = this.accessor) === null || _a === void 0 ? void 0 : _a.get(index, dimension)) !== null && _b !== void 0 ? _b : 0; };
|
|
7
|
+
this.set = (value, index, dimension) => {
|
|
8
|
+
const { accessor } = this;
|
|
9
|
+
if (!accessor)
|
|
10
|
+
return;
|
|
11
|
+
accessor.set(value, index, dimension);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
get dataset() {
|
|
15
|
+
return this._dataset;
|
|
16
|
+
}
|
|
17
|
+
set dataset(value) {
|
|
18
|
+
this._dataset = value;
|
|
19
|
+
if (value) {
|
|
20
|
+
this.accessor = value.getAttribAccessor(this.attributeName);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9zcHJpdGVzL2FjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxhQUFhO0lBSXRCLFlBQTRCLGFBQXFCO1FBQXJCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBSHpDLGFBQVEsR0FBb0IsSUFBSSxDQUFBO1FBQ2hDLGFBQVEsR0FBMkIsU0FBUyxDQUFBO1FBYTNDLFFBQUcsR0FBRyxDQUFDLEtBQWEsRUFBRSxTQUE4QixFQUFFLEVBQUUsZUFDN0QsT0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsbUNBQUksQ0FBQyxDQUFBLEVBQUEsQ0FBQTtRQUVwQyxRQUFHLEdBQUcsQ0FDWCxLQUFhLEVBQ2IsS0FBYSxFQUNiLFNBQThCLEVBQ2hDLEVBQUU7WUFDQSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU07WUFFckIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLENBQUMsQ0FBQTtJQXZCbUQsQ0FBQztJQUVyRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDeEIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQTZCO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDL0QsQ0FBQztJQUNMLENBQUM7Q0FjSiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Accessor, AtlasItem, TgdSprite } from "./types";
|
|
2
|
+
export declare class Sprite implements TgdSprite {
|
|
3
|
+
private readonly atlas;
|
|
4
|
+
private readonly raiseDirtyFlag;
|
|
5
|
+
private readonly attPosition;
|
|
6
|
+
private readonly attCos;
|
|
7
|
+
private readonly attSin;
|
|
8
|
+
private readonly attScale;
|
|
9
|
+
private readonly attUV;
|
|
10
|
+
private readonly attSize;
|
|
11
|
+
private readonly attOrigin;
|
|
12
|
+
offset: number;
|
|
13
|
+
private _index;
|
|
14
|
+
private _angle;
|
|
15
|
+
constructor(atlas: AtlasItem[], raiseDirtyFlag: () => void, attPosition: Accessor, attCos: Accessor, attSin: Accessor, attScale: Accessor, attUV: Accessor, attSize: Accessor, attOrigin: Accessor);
|
|
16
|
+
get index(): number;
|
|
17
|
+
set index(value: number);
|
|
18
|
+
get x(): number;
|
|
19
|
+
set x(value: number);
|
|
20
|
+
get y(): number;
|
|
21
|
+
set y(value: number);
|
|
22
|
+
get z(): number;
|
|
23
|
+
set z(value: number);
|
|
24
|
+
get angle(): number;
|
|
25
|
+
set angle(value: number);
|
|
26
|
+
get scaleX(): number;
|
|
27
|
+
set scaleX(value: number);
|
|
28
|
+
get scaleY(): number;
|
|
29
|
+
set scaleY(value: number);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=sprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprite.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/sprite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE7D,qBAAa,MAAO,YAAW,SAAS;IAOhC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAdvB,MAAM,SAAI;IAEjB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,MAAM,CAAI;gBAGG,KAAK,EAAE,SAAS,EAAE,EAClB,cAAc,EAAE,MAAM,IAAI,EAC1B,WAAW,EAAE,QAAQ,EACrB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,QAAQ;IAGxC,IAAI,KAAK,IAGQ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAYtB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED,IAAI,CAAC,IAGQ,MAAM,CADlB;IACD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAGlB;IAED,IAAI,KAAK,IAGQ,MAAM,CADtB;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAOtB;IAED,IAAI,MAAM,IAGQ,MAAM,CADvB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAGvB;IAED,IAAI,MAAM,IAGQ,MAAM,CADvB;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAGvB;CACJ"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export class Sprite {
|
|
2
|
+
constructor(atlas, raiseDirtyFlag, attPosition, attCos, attSin, attScale, attUV, attSize, attOrigin) {
|
|
3
|
+
this.atlas = atlas;
|
|
4
|
+
this.raiseDirtyFlag = raiseDirtyFlag;
|
|
5
|
+
this.attPosition = attPosition;
|
|
6
|
+
this.attCos = attCos;
|
|
7
|
+
this.attSin = attSin;
|
|
8
|
+
this.attScale = attScale;
|
|
9
|
+
this.attUV = attUV;
|
|
10
|
+
this.attSize = attSize;
|
|
11
|
+
this.attOrigin = attOrigin;
|
|
12
|
+
this.offset = 0;
|
|
13
|
+
this._index = 0;
|
|
14
|
+
this._angle = 0;
|
|
15
|
+
}
|
|
16
|
+
get index() {
|
|
17
|
+
return this._index;
|
|
18
|
+
}
|
|
19
|
+
set index(value) {
|
|
20
|
+
var _a, _b, _c;
|
|
21
|
+
this._index = value;
|
|
22
|
+
const item = this.atlas[value];
|
|
23
|
+
const { offset } = this;
|
|
24
|
+
this.attUV.set(item.x, offset, 0);
|
|
25
|
+
this.attUV.set(item.y, offset, 1);
|
|
26
|
+
this.attUV.set((_a = item.z) !== null && _a !== void 0 ? _a : 0, offset, 2);
|
|
27
|
+
this.attSize.set(item.width, offset, 0);
|
|
28
|
+
this.attSize.set(item.height, offset, 1);
|
|
29
|
+
this.attOrigin.set((_b = item.originX) !== null && _b !== void 0 ? _b : 0, offset, 0);
|
|
30
|
+
this.attOrigin.set((_c = item.originY) !== null && _c !== void 0 ? _c : 0, offset, 1);
|
|
31
|
+
this.raiseDirtyFlag();
|
|
32
|
+
}
|
|
33
|
+
get x() {
|
|
34
|
+
return this.attPosition.get(this.offset, 0);
|
|
35
|
+
}
|
|
36
|
+
set x(value) {
|
|
37
|
+
this.attPosition.set(value, this.offset, 0);
|
|
38
|
+
this.raiseDirtyFlag();
|
|
39
|
+
}
|
|
40
|
+
get y() {
|
|
41
|
+
return this.attPosition.get(this.offset, 1);
|
|
42
|
+
}
|
|
43
|
+
set y(value) {
|
|
44
|
+
this.attPosition.set(value, this.offset, 1);
|
|
45
|
+
this.raiseDirtyFlag();
|
|
46
|
+
}
|
|
47
|
+
get z() {
|
|
48
|
+
return this.attPosition.get(this.offset, 2);
|
|
49
|
+
}
|
|
50
|
+
set z(value) {
|
|
51
|
+
this.attPosition.set(value, this.offset, 2);
|
|
52
|
+
this.raiseDirtyFlag();
|
|
53
|
+
}
|
|
54
|
+
get angle() {
|
|
55
|
+
return this._angle;
|
|
56
|
+
}
|
|
57
|
+
set angle(value) {
|
|
58
|
+
if (this._angle === value)
|
|
59
|
+
return;
|
|
60
|
+
this._angle = value;
|
|
61
|
+
this.attCos.set(Math.cos(value), this.offset);
|
|
62
|
+
this.attSin.set(Math.sin(value), this.offset);
|
|
63
|
+
this.raiseDirtyFlag();
|
|
64
|
+
}
|
|
65
|
+
get scaleX() {
|
|
66
|
+
return this.attScale.get(this.offset, 0);
|
|
67
|
+
}
|
|
68
|
+
set scaleX(value) {
|
|
69
|
+
this.attScale.set(value, this.offset, 0);
|
|
70
|
+
this.raiseDirtyFlag();
|
|
71
|
+
}
|
|
72
|
+
get scaleY() {
|
|
73
|
+
return this.attScale.get(this.offset, 1);
|
|
74
|
+
}
|
|
75
|
+
set scaleY(value) {
|
|
76
|
+
this.attScale.set(value, this.offset, 1);
|
|
77
|
+
this.raiseDirtyFlag();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvc3ByaXRlcy9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLE1BQU07SUFNZixZQUNxQixLQUFrQixFQUNsQixjQUEwQixFQUMxQixXQUFxQixFQUNyQixNQUFnQixFQUNoQixNQUFnQixFQUNoQixRQUFrQixFQUNsQixLQUFlLEVBQ2YsT0FBaUIsRUFDakIsU0FBbUI7UUFSbkIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBVTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBZGpDLFdBQU0sR0FBRyxDQUFDLENBQUE7UUFFVCxXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ1YsV0FBTSxHQUFHLENBQUMsQ0FBQTtJQVlmLENBQUM7SUFFSixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDdEIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7O1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdB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
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { TgdContext } from "../../context";
|
|
2
|
+
import type { TgdInterfaceTransformable } from "../../interface";
|
|
3
|
+
import { TgdTransfo } from "../../math";
|
|
4
|
+
import type { TgdTexture2D } from "../../texture";
|
|
5
|
+
import { TgdPainter } from "../painter";
|
|
6
|
+
import type { AtlasItem, TgdSprite } from "./types";
|
|
7
|
+
export type { TgdSprite } from "./types";
|
|
8
|
+
export type TgdPainterSpritesAtlas = AtlasItem[];
|
|
9
|
+
export interface TgdPainterSpritesOptions {
|
|
10
|
+
texture: TgdTexture2D;
|
|
11
|
+
atlas: TgdPainterSpritesAtlas;
|
|
12
|
+
/**
|
|
13
|
+
* The biggest square contained in the atlas has a size of `atlasUnit`.
|
|
14
|
+
*
|
|
15
|
+
* Default: 1
|
|
16
|
+
*/
|
|
17
|
+
atlasUnit?: number;
|
|
18
|
+
/**
|
|
19
|
+
* If there is not enough space when adding a sprite,
|
|
20
|
+
* the capacity will be doubled.
|
|
21
|
+
*
|
|
22
|
+
* Default: 1
|
|
23
|
+
*/
|
|
24
|
+
initialCapacity?: number;
|
|
25
|
+
}
|
|
26
|
+
export declare class TgdPainterSprites extends TgdPainter implements TgdInterfaceTransformable {
|
|
27
|
+
private readonly context;
|
|
28
|
+
private readonly options;
|
|
29
|
+
readonly transfo: TgdTransfo;
|
|
30
|
+
readonly texture: TgdTexture2D;
|
|
31
|
+
private readonly datasetInstances;
|
|
32
|
+
private readonly prg;
|
|
33
|
+
private readonly vao;
|
|
34
|
+
/**
|
|
35
|
+
* Number of actual sprites.
|
|
36
|
+
*
|
|
37
|
+
* The capacity can be get with `this.dataset.count`.
|
|
38
|
+
*/
|
|
39
|
+
private _count;
|
|
40
|
+
private readonly attPosition;
|
|
41
|
+
private readonly attCos;
|
|
42
|
+
private readonly attSin;
|
|
43
|
+
private readonly attScale;
|
|
44
|
+
private readonly attUV;
|
|
45
|
+
private readonly attSize;
|
|
46
|
+
private readonly attOrigin;
|
|
47
|
+
private readonly uniAtlasRatio;
|
|
48
|
+
private dirty;
|
|
49
|
+
constructor(context: TgdContext, options: TgdPainterSpritesOptions);
|
|
50
|
+
get count(): number;
|
|
51
|
+
private set count(value);
|
|
52
|
+
get capacity(): number;
|
|
53
|
+
private set capacity(value);
|
|
54
|
+
spriteCreate(data?: Partial<TgdSprite>): TgdSprite;
|
|
55
|
+
spriteDelete(sprite: TgdSprite): void;
|
|
56
|
+
delete(): void;
|
|
57
|
+
paint(): void;
|
|
58
|
+
debug(caption?: string): void;
|
|
59
|
+
private updateAccessors;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=sprites.d.ts.map
|
|
@@ -0,0 +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;AAG9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAW,MAAM,WAAW,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,KAAK,EAAY,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE7D,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,MAAM,MAAM,sBAAsB,GAAG,SAAS,EAAE,CAAA;AAEhD,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,YAAY,CAAA;IACrB,KAAK,EAAE,sBAAsB,CAAA;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B;AAID,qBAAa,iBACT,SAAQ,UACR,YAAW,yBAAyB;IAyBhC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAxB5B,SAAgB,OAAO,aAAmB;IAC1C,SAAgB,OAAO,EAAE,YAAY,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAY;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,KAAK,CAAO;gBAGC,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,wBAAwB;IAkHtD,IAAI,KAAK,IAGgB,MAAM,CAD9B;IACD,OAAO,KAAK,KAAK,QAMhB;IAED,IAAI,QAAQ,IAGgB,MAAM,CADjC;IACD,OAAO,KAAK,QAAQ,QAInB;IAED,YAAY,CAAC,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS;IA2BtD,YAAY,CAAC,MAAM,EAAE,SAAS;IAI9B,MAAM,IAAI,IAAI;IAKd,KAAK,IAAI,IAAI;IAmBb,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IA8CtB,OAAO,CAAC,eAAe;CAU1B"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { TgdDataset } from "./../../dataset/index.js";
|
|
2
|
+
import { TgdConsole } from "./../../debug/index.js";
|
|
3
|
+
import { TgdTransfo, TgdVec2 } from "./../../math/index.js";
|
|
4
|
+
import { TgdProgram } from "./../../program/index.js";
|
|
5
|
+
import { TgdShaderFragment, TgdShaderVertex } from "./../../shader/index.js";
|
|
6
|
+
import { TgdVertexArray } from "./../../vao/index.js";
|
|
7
|
+
import { TgdPainter } from "../painter.js";
|
|
8
|
+
import { AccessorProxy } from "./accessor.js";
|
|
9
|
+
import { Sprite } from "./sprite.js";
|
|
10
|
+
const DEBUG_COL_SIZE = 8;
|
|
11
|
+
export class TgdPainterSprites extends TgdPainter {
|
|
12
|
+
constructor(context, options) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
super();
|
|
15
|
+
this.context = context;
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.transfo = new TgdTransfo();
|
|
18
|
+
/**
|
|
19
|
+
* Number of actual sprites.
|
|
20
|
+
*
|
|
21
|
+
* The capacity can be get with `this.dataset.count`.
|
|
22
|
+
*/
|
|
23
|
+
this._count = 0;
|
|
24
|
+
this.attPosition = new AccessorProxy("attPosition");
|
|
25
|
+
this.attCos = new AccessorProxy("attCos");
|
|
26
|
+
this.attSin = new AccessorProxy("attSin");
|
|
27
|
+
this.attScale = new AccessorProxy("attScale");
|
|
28
|
+
this.attUV = new AccessorProxy("attUV");
|
|
29
|
+
this.attSize = new AccessorProxy("attSize");
|
|
30
|
+
this.attOrigin = new AccessorProxy("attOrigin");
|
|
31
|
+
this.uniAtlasRatio = new TgdVec2(1, 1);
|
|
32
|
+
this.dirty = true;
|
|
33
|
+
const { texture } = options;
|
|
34
|
+
this.texture = texture;
|
|
35
|
+
if (texture.width > texture.height) {
|
|
36
|
+
this.uniAtlasRatio.x = texture.width / texture.height;
|
|
37
|
+
this.uniAtlasRatio.y = 1;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.uniAtlasRatio.x = 1;
|
|
41
|
+
this.uniAtlasRatio.y = texture.height / texture.width;
|
|
42
|
+
}
|
|
43
|
+
this.uniAtlasRatio.scale((_a = options.atlasUnit) !== null && _a !== void 0 ? _a : 1);
|
|
44
|
+
const prg = new TgdProgram(context.gl, {
|
|
45
|
+
vert: new TgdShaderVertex({
|
|
46
|
+
uniforms: {
|
|
47
|
+
uniTransfoMatrix: "mat4",
|
|
48
|
+
uniModelViewMatrix: "mat4",
|
|
49
|
+
uniProjectionMatrix: "mat4",
|
|
50
|
+
uniAtlasRatio: "vec2",
|
|
51
|
+
},
|
|
52
|
+
attributes: {
|
|
53
|
+
attPosition: "vec3",
|
|
54
|
+
attCos: "float",
|
|
55
|
+
attSin: "float",
|
|
56
|
+
attScale: "vec2",
|
|
57
|
+
attUV: "vec3",
|
|
58
|
+
attSize: "vec2",
|
|
59
|
+
attOrigin: "vec2",
|
|
60
|
+
attCorners: "vec4",
|
|
61
|
+
},
|
|
62
|
+
varying: {
|
|
63
|
+
varUV: "vec2",
|
|
64
|
+
},
|
|
65
|
+
mainCode: [
|
|
66
|
+
"varUV = attUV.xy + attSize * attCorners.zw;",
|
|
67
|
+
"vec4 position = vec4((attCorners.xy - attOrigin) * attScale * attSize * uniAtlasRatio, 0.0, 1.0);",
|
|
68
|
+
"mat4 rotation = mat4(",
|
|
69
|
+
[
|
|
70
|
+
"attCos, attSin, 0, 0,",
|
|
71
|
+
"-attSin, attCos, 0, 0,",
|
|
72
|
+
"0, 0, 1, 0,",
|
|
73
|
+
"0, 0, 0, 1",
|
|
74
|
+
],
|
|
75
|
+
");",
|
|
76
|
+
"position = rotation * position;",
|
|
77
|
+
"position += vec4(attPosition, 0.0);",
|
|
78
|
+
"gl_Position = uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * position;",
|
|
79
|
+
"gl_PointSize = 32.0;",
|
|
80
|
+
],
|
|
81
|
+
}).code,
|
|
82
|
+
frag: new TgdShaderFragment({
|
|
83
|
+
uniforms: {
|
|
84
|
+
uniTexture: "sampler2D",
|
|
85
|
+
},
|
|
86
|
+
varying: { varUV: "vec2" },
|
|
87
|
+
outputs: {
|
|
88
|
+
FragColor: "vec4",
|
|
89
|
+
},
|
|
90
|
+
mainCode: [
|
|
91
|
+
"vec4 color = texture(uniTexture, varUV);",
|
|
92
|
+
`if (color.a < ${1 / 0xff}) discard;`,
|
|
93
|
+
"FragColor = color;",
|
|
94
|
+
// "vec4 GREEN = vec4(0, 1, 0, 1);",
|
|
95
|
+
// "vec4 RED = vec4(1, 0, 0, 1);",
|
|
96
|
+
// "if (varCorners.x == 0.0) FragColor = GREEN;",
|
|
97
|
+
// "else FragColor = RED;",
|
|
98
|
+
// "FragColor.a = 1.0;",
|
|
99
|
+
],
|
|
100
|
+
}).code,
|
|
101
|
+
});
|
|
102
|
+
this.prg = prg;
|
|
103
|
+
prg.debug();
|
|
104
|
+
const datasetFrame = new TgdDataset({
|
|
105
|
+
/**
|
|
106
|
+
* (x, y, u, v)
|
|
107
|
+
*/
|
|
108
|
+
attCorners: "vec4",
|
|
109
|
+
});
|
|
110
|
+
// prettier-ignore
|
|
111
|
+
datasetFrame.set("attCorners", new Float32Array([
|
|
112
|
+
-1, -1, 0, 1,
|
|
113
|
+
+1, -1, 1, 1,
|
|
114
|
+
-1, +1, 0, 0,
|
|
115
|
+
+1, +1, 1, 0,
|
|
116
|
+
]));
|
|
117
|
+
const datasetInstances = new TgdDataset({
|
|
118
|
+
attPosition: "vec3",
|
|
119
|
+
attCos: "float",
|
|
120
|
+
attSin: "float",
|
|
121
|
+
attScale: "vec2",
|
|
122
|
+
attUV: "vec3",
|
|
123
|
+
attSize: "vec2",
|
|
124
|
+
attOrigin: "vec2",
|
|
125
|
+
}, {
|
|
126
|
+
divisor: 1,
|
|
127
|
+
usage: "DYNAMIC_DRAW",
|
|
128
|
+
});
|
|
129
|
+
datasetInstances.count = (_b = options.initialCapacity) !== null && _b !== void 0 ? _b : 1;
|
|
130
|
+
this.datasetInstances = datasetInstances;
|
|
131
|
+
const vao = new TgdVertexArray(context.gl, prg, [
|
|
132
|
+
datasetInstances,
|
|
133
|
+
datasetFrame,
|
|
134
|
+
]);
|
|
135
|
+
this.vao = vao;
|
|
136
|
+
this.updateAccessors();
|
|
137
|
+
}
|
|
138
|
+
get count() {
|
|
139
|
+
return this._count;
|
|
140
|
+
}
|
|
141
|
+
set count(value) {
|
|
142
|
+
this._count = value;
|
|
143
|
+
while (value > this.capacity) {
|
|
144
|
+
this.capacity = 2 * Math.max(1, this.capacity);
|
|
145
|
+
this.updateAccessors();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
get capacity() {
|
|
149
|
+
return this.datasetInstances.count;
|
|
150
|
+
}
|
|
151
|
+
set capacity(value) {
|
|
152
|
+
if (this.datasetInstances.count === value)
|
|
153
|
+
return;
|
|
154
|
+
this.datasetInstances.count = value;
|
|
155
|
+
}
|
|
156
|
+
spriteCreate(data = {}) {
|
|
157
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
158
|
+
const offset = this.count;
|
|
159
|
+
this.count++;
|
|
160
|
+
const sprite = new Sprite(this.options.atlas, () => {
|
|
161
|
+
this.dirty = true;
|
|
162
|
+
}, this.attPosition, this.attCos, this.attSin, this.attScale, this.attUV, this.attSize, this.attOrigin);
|
|
163
|
+
sprite.offset = offset;
|
|
164
|
+
sprite.angle = (_a = data.angle) !== null && _a !== void 0 ? _a : 0;
|
|
165
|
+
sprite.index = (_b = data.index) !== null && _b !== void 0 ? _b : 0;
|
|
166
|
+
sprite.scaleX = (_c = data.scaleX) !== null && _c !== void 0 ? _c : 1;
|
|
167
|
+
sprite.scaleY = (_d = data.scaleY) !== null && _d !== void 0 ? _d : 1;
|
|
168
|
+
sprite.x = (_e = data.x) !== null && _e !== void 0 ? _e : 0;
|
|
169
|
+
sprite.y = (_f = data.y) !== null && _f !== void 0 ? _f : 0;
|
|
170
|
+
sprite.z = (_g = data.z) !== null && _g !== void 0 ? _g : 0;
|
|
171
|
+
return sprite;
|
|
172
|
+
}
|
|
173
|
+
spriteDelete(sprite) {
|
|
174
|
+
throw new Error("Not implemented yet!");
|
|
175
|
+
}
|
|
176
|
+
delete() {
|
|
177
|
+
this.prg.delete();
|
|
178
|
+
this.vao.delete();
|
|
179
|
+
}
|
|
180
|
+
paint() {
|
|
181
|
+
const { context, datasetInstances, vao, prg, transfo, texture } = this;
|
|
182
|
+
if (this.dirty) {
|
|
183
|
+
this.dirty = false;
|
|
184
|
+
vao.updateDataset(datasetInstances);
|
|
185
|
+
}
|
|
186
|
+
const { gl, camera } = context;
|
|
187
|
+
prg.use();
|
|
188
|
+
texture.activate(0, prg, "uniTexture");
|
|
189
|
+
prg.uniform2fv("uniAtlasRatio", this.uniAtlasRatio);
|
|
190
|
+
prg.uniformMatrix4fv("uniTransfoMatrix", transfo.matrix);
|
|
191
|
+
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
192
|
+
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
193
|
+
vao.bind();
|
|
194
|
+
gl.drawArraysInstanced(gl.TRIANGLE_STRIP, 0, 4, datasetInstances.count);
|
|
195
|
+
// gl.drawArraysInstanced(gl.POINTS, 0, 4, datasetInstances.count)
|
|
196
|
+
vao.unbind();
|
|
197
|
+
}
|
|
198
|
+
debug(caption) {
|
|
199
|
+
const out = new TgdConsole({ text: caption !== null && caption !== void 0 ? caption : this.name, bold: true });
|
|
200
|
+
out.nl();
|
|
201
|
+
out.add("count: ").add(`${this.count}`, { color: "yellow" }).nl();
|
|
202
|
+
out.add("capacity: ").add(`${this.capacity}`, { color: "yellow" }).nl();
|
|
203
|
+
const spc = " ".repeat(DEBUG_COL_SIZE);
|
|
204
|
+
const head = (value) => value.slice(0, DEBUG_COL_SIZE).padStart(DEBUG_COL_SIZE, " ");
|
|
205
|
+
const fields = {
|
|
206
|
+
position: [this.attPosition, 3],
|
|
207
|
+
scale: [this.attScale, 2],
|
|
208
|
+
uv: [this.attUV, 3],
|
|
209
|
+
size: [this.attSize, 2],
|
|
210
|
+
origin: [this.attOrigin, 2],
|
|
211
|
+
cos: [this.attCos, 1],
|
|
212
|
+
sin: [this.attSin, 1],
|
|
213
|
+
};
|
|
214
|
+
const columns = Object.keys(fields);
|
|
215
|
+
const hr = `${columns.map(() => "-".repeat(DEBUG_COL_SIZE)).join("|")}|\n`;
|
|
216
|
+
if (this.count > 0) {
|
|
217
|
+
out.add(hr)
|
|
218
|
+
.add(columns.map(head).join("|"), {
|
|
219
|
+
bold: true,
|
|
220
|
+
})
|
|
221
|
+
.add("|")
|
|
222
|
+
.nl()
|
|
223
|
+
.add(hr);
|
|
224
|
+
for (let index = 0; index < this.count; index++) {
|
|
225
|
+
for (let dim = 0; dim < 3; dim++) {
|
|
226
|
+
for (const [accessor, maxDim] of Object.values(fields)) {
|
|
227
|
+
if (dim < maxDim) {
|
|
228
|
+
out.add(pad(accessor, index, dim));
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
out.add(spc);
|
|
232
|
+
}
|
|
233
|
+
out.add("|");
|
|
234
|
+
}
|
|
235
|
+
out.nl();
|
|
236
|
+
}
|
|
237
|
+
out.add(hr);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
out.debug();
|
|
241
|
+
this.transfo.debug("Transfo");
|
|
242
|
+
}
|
|
243
|
+
updateAccessors() {
|
|
244
|
+
const { datasetInstances } = this;
|
|
245
|
+
this.attPosition.dataset = datasetInstances;
|
|
246
|
+
this.attCos.dataset = datasetInstances;
|
|
247
|
+
this.attSin.dataset = datasetInstances;
|
|
248
|
+
this.attScale.dataset = datasetInstances;
|
|
249
|
+
this.attUV.dataset = datasetInstances;
|
|
250
|
+
this.attSize.dataset = datasetInstances;
|
|
251
|
+
this.attOrigin.dataset = datasetInstances;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function pad(accessor, index, dimension = 0) {
|
|
255
|
+
return `${accessor.get(index, dimension)}`
|
|
256
|
+
.slice(0, DEBUG_COL_SIZE)
|
|
257
|
+
.padStart(DEBUG_COL_SIZE, " ");
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL3Nwcml0ZXMvc3ByaXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUF3QmpDLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQTtBQUV4QixNQUFNLE9BQU8saUJBQ1QsU0FBUSxVQUFVO0lBeUJsQixZQUNxQixPQUFtQixFQUNuQixPQUFpQzs7UUFFbEQsS0FBSyxFQUFFLENBQUE7UUFIVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBeEJ0QyxZQUFPLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQTtRQU0xQzs7OztXQUlHO1FBQ0ssV0FBTSxHQUFHLENBQUMsQ0FBQTtRQUNELGdCQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUMsV0FBTSxHQUFHLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3BDLFdBQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtR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
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface TgdSprite {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
z: number;
|
|
5
|
+
angle: number;
|
|
6
|
+
scaleX: number;
|
|
7
|
+
scaleY: number;
|
|
8
|
+
/**
|
|
9
|
+
* Index of the sprite in the atlas.
|
|
10
|
+
*/
|
|
11
|
+
index: number;
|
|
12
|
+
}
|
|
13
|
+
export interface AtlasItem {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
z?: number;
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
/**
|
|
20
|
+
* Point which is considered the center
|
|
21
|
+
* Usually between -1 (left) and +1 (right).
|
|
22
|
+
*
|
|
23
|
+
* Default: 0
|
|
24
|
+
*/
|
|
25
|
+
originX?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Point which is considered the center
|
|
28
|
+
* Usually between -1 (bottom) and +1 (top).
|
|
29
|
+
*
|
|
30
|
+
* Default: 0
|
|
31
|
+
*/
|
|
32
|
+
originY?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface Accessor {
|
|
35
|
+
get: (index: number, dimension?: number | undefined) => number;
|
|
36
|
+
set: (value: number, index: number, dimension?: number | undefined) => void;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/painter/sprites/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACtB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,QAAQ;IACrB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAA;IAC9D,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC9E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TgdMat2, TgdMat3, TgdMat4, TgdVec3, TgdVec4 } from "../math";
|
|
1
|
+
import { TgdMat2, TgdMat3, TgdMat4, TgdVec2, TgdVec3, TgdVec4 } from "../math";
|
|
2
2
|
import { TgdProgramOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* This class helps to manage a WebGLProgram.
|
|
@@ -23,6 +23,7 @@ export declare class TgdProgram {
|
|
|
23
23
|
getUniformLocation(name: string): WebGLUniformLocation;
|
|
24
24
|
uniform1f(name: string, value: number): void;
|
|
25
25
|
uniform2f(name: string, x: number, y: number): void;
|
|
26
|
+
uniform2fv(name: string, vec2: TgdVec2): void;
|
|
26
27
|
uniform3f(name: string, x: number, y: number, z: number): void;
|
|
27
28
|
uniform3fv(name: string, vec3: TgdVec3): void;
|
|
28
29
|
uniform4f(name: string, x: number, y: number, z: number, w: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/program/program.ts"],"names":[],"mappings":"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"}
|