@tolokoban/tgd 2.0.118 → 2.0.121
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/bounding-box.js +2 -2
- package/lib/dist/buffer/buffer.js +7 -9
- package/lib/dist/camera/camera-orthographic.d.ts +1 -0
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +13 -3
- package/lib/dist/camera/camera-perspective.d.ts +1 -0
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +13 -3
- package/lib/dist/camera/camera.d.ts +1 -0
- package/lib/dist/camera/camera.d.ts.map +1 -1
- package/lib/dist/camera/camera.js +7 -8
- package/lib/dist/canvas/gizmo/gizmo.js +16 -15
- package/lib/dist/canvas/landscape/landscape.js +8 -2
- package/lib/dist/code/math.js +6 -3
- package/lib/dist/code/noise.js +18 -6
- package/lib/dist/color/color.d.ts +1 -1
- package/lib/dist/color/color.d.ts.map +1 -1
- package/lib/dist/color/color.js +16 -2
- package/lib/dist/context/animation/animation-manager.d.ts +3 -0
- package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
- package/lib/dist/context/animation/animation-manager.js +10 -11
- package/lib/dist/context/console.d.ts +12 -0
- package/lib/dist/context/console.d.ts.map +1 -0
- package/lib/dist/context/console.js +31 -0
- package/lib/dist/context/context.d.ts +23 -1
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +65 -26
- package/lib/dist/context/webgl-params.d.ts +9 -3
- package/lib/dist/context/webgl-params.d.ts.map +1 -1
- package/lib/dist/context/webgl-params.js +39 -12
- package/lib/dist/controller/camera/orbit.js +26 -6
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +26 -35
- package/lib/dist/debug/console.js +6 -4
- package/lib/dist/debug/debug.js +5 -6
- package/lib/dist/factory/mesh-glb.d.ts +4 -6
- package/lib/dist/factory/mesh-glb.d.ts.map +1 -1
- package/lib/dist/factory/mesh-glb.js +6 -6
- package/lib/dist/filter/blur.js +14 -8
- package/lib/dist/filter/filter.js +2 -3
- package/lib/dist/filter/hue-rotation.js +2 -2
- package/lib/dist/geometry/geometry.js +7 -10
- package/lib/dist/geometry/grid.js +3 -3
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts +1 -1
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts.map +1 -1
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +2 -10
- package/lib/dist/input/gamepad.js +9 -17
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +53 -22
- package/lib/dist/light/light.js +2 -3
- package/lib/dist/loader/asset.js +11 -14
- package/lib/dist/loader/binary.js +44 -51
- package/lib/dist/loader/font.d.ts +13 -0
- package/lib/dist/loader/font.d.ts.map +1 -0
- package/lib/dist/loader/font.js +28 -0
- package/lib/dist/loader/image.js +13 -16
- package/lib/dist/loader/index.d.ts +1 -0
- package/lib/dist/loader/index.d.ts.map +1 -1
- package/lib/dist/loader/index.js +2 -1
- package/lib/dist/loader/video.js +13 -16
- package/lib/dist/log.js +2 -3
- package/lib/dist/material/camera-light.d.ts +1 -0
- package/lib/dist/material/camera-light.d.ts.map +1 -1
- package/lib/dist/material/camera-light.js +7 -3
- package/lib/dist/material/diffuse.js +2 -3
- package/lib/dist/material/flat.js +2 -3
- package/lib/dist/material/glass.js +6 -8
- package/lib/dist/material/global.js +6 -8
- package/lib/dist/material/gltf.d.ts +29 -0
- package/lib/dist/material/gltf.d.ts.map +1 -0
- package/lib/dist/material/gltf.js +186 -0
- package/lib/dist/material/hull.js +4 -5
- package/lib/dist/material/index.d.ts +2 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +3 -1
- package/lib/dist/material/material.js +5 -2
- package/lib/dist/material/mirror.d.ts +18 -0
- package/lib/dist/material/mirror.d.ts.map +1 -0
- package/lib/dist/material/mirror.js +56 -0
- package/lib/dist/material/solid.js +2 -3
- package/lib/dist/material/toon.js +7 -7
- package/lib/dist/math/mat2.d.ts +1 -1
- package/lib/dist/math/mat2.d.ts.map +1 -1
- package/lib/dist/math/mat2.js +5 -5
- package/lib/dist/math/mat3.d.ts.map +1 -1
- package/lib/dist/math/mat3.js +4 -4
- package/lib/dist/math/mat4.js +3 -4
- package/lib/dist/math/transfo.js +11 -14
- package/lib/dist/math/vec4.d.ts +1 -0
- package/lib/dist/math/vec4.d.ts.map +1 -1
- package/lib/dist/math/vec4.js +18 -14
- package/lib/dist/painter/background/background.js +2 -2
- package/lib/dist/painter/clear.js +5 -6
- package/lib/dist/painter/filter/filter.js +9 -7
- package/lib/dist/painter/fragment-shader/fragment-shader.js +3 -5
- package/lib/dist/painter/framebuffer-msaa.js +5 -2
- package/lib/dist/painter/framebuffer.d.ts +1 -1
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +8 -11
- package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -1
- package/lib/dist/painter/gizmo/gizmo.js +5 -5
- package/lib/dist/painter/gizmo/painters/normal.js +4 -7
- package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -1
- package/lib/dist/painter/gizmo/painters/tips.js +11 -13
- package/lib/dist/painter/group-camera.js +2 -3
- package/lib/dist/painter/group.js +6 -8
- package/lib/dist/painter/icon/icon.js +10 -8
- package/lib/dist/painter/icon/sprite.js +2 -3
- package/lib/dist/painter/lod/lod.js +26 -30
- package/lib/dist/painter/logic.js +2 -3
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +28 -6
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +99 -53
- package/lib/dist/painter/mesh/mesh/mesh.js +24 -17
- package/lib/dist/painter/mix/mix.js +6 -7
- package/lib/dist/painter/node/node.js +11 -17
- package/lib/dist/painter/overlay/overlay.js +14 -19
- package/lib/dist/painter/painter.js +2 -2
- package/lib/dist/painter/points-cloud/points-cloud-morphing.js +12 -14
- package/lib/dist/painter/points-cloud/points-cloud.d.ts +2 -2
- package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -1
- package/lib/dist/painter/points-cloud/points-cloud.js +20 -21
- package/lib/dist/painter/program.js +24 -11
- package/lib/dist/painter/segments/segments-morphing.js +30 -14
- package/lib/dist/painter/segments/segments.d.ts +1 -1
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +34 -21
- package/lib/dist/painter/skybox/skybox.d.ts +18 -8
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +89 -44
- package/lib/dist/painter/sprites/accessor.js +2 -2
- package/lib/dist/painter/sprites/sprites-hue.js +18 -8
- package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
- package/lib/dist/painter/sprites/sprites.js +53 -21
- package/lib/dist/painter/state/state.d.ts +1 -1
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +6 -11
- package/lib/dist/painter/tubes/geometry.js +3 -4
- package/lib/dist/painter/tubes/tubes.js +3 -4
- package/lib/dist/painter/x-ray/background.js +2 -2
- package/lib/dist/painter/x-ray/x-ray.js +8 -5
- package/lib/dist/parser/gltf/gltf.d.ts +13 -5
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +113 -114
- package/lib/dist/parser/gltf/parser.d.ts.map +1 -1
- package/lib/dist/parser/gltf/parser.js +12 -1
- package/lib/dist/parser/mesh/wavefront.js +3 -5
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +6 -7
- package/lib/dist/reference-map.js +3 -5
- package/lib/dist/shader/code.js +2 -2
- package/lib/dist/texture/texture-cube.d.ts +20 -8
- package/lib/dist/texture/texture-cube.d.ts.map +1 -1
- package/lib/dist/texture/texture-cube.js +54 -2
- package/lib/dist/texture/texture2d.d.ts +10 -3
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +54 -52
- package/lib/dist/time/interval/interval.js +2 -3
- package/lib/dist/types/gltf.d.ts +2 -1
- package/lib/dist/types/gltf.d.ts.map +1 -1
- package/lib/dist/types/gltf.js +10 -4
- package/lib/dist/types/guards.js +2 -3
- package/lib/dist/types/input-pointer.d.ts +5 -0
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/types/texture-cube.d.ts +1 -0
- package/lib/dist/types/texture-cube.d.ts.map +1 -1
- package/lib/dist/uniform/ubo-camera.d.ts +2 -1
- package/lib/dist/uniform/ubo-camera.d.ts.map +1 -1
- package/lib/dist/uniform/ubo-camera.js +9 -2
- package/lib/dist/uniform/uniform-buffer-object.js +2 -2
- package/lib/dist/utils/action/camera.js +3 -4
- package/lib/dist/utils/animation/chain-transfo-interpolations.js +6 -2
- package/lib/dist/utils/animation/chain.js +12 -12
- package/lib/dist/utils/bbox.js +3 -3
- package/lib/dist/utils/canvas.js +3 -3
- package/lib/dist/utils/ensure.d.ts +2 -0
- package/lib/dist/utils/ensure.d.ts.map +1 -1
- package/lib/dist/utils/ensure.js +21 -5
- package/lib/dist/utils/fullscreen.js +31 -38
- package/lib/dist/utils/reference-map.js +3 -5
- package/lib/dist/utils/state/blend.d.ts +1 -1
- package/lib/dist/utils/state/blend.d.ts.map +1 -1
- package/lib/dist/utils/state/blend.js +28 -1
- package/lib/dist/utils/state/stencil.js +2 -2
- package/lib/dist/vao/vao.js +8 -9
- package/lib/dist/version.d.ts +1 -1
- package/lib/dist/version.js +1 -1
- package/lib/dist/wasm/function.js +2 -3
- package/lib/dist/wasm/index.js +16 -19
- package/lib/dist/wasm/wast.js +3 -4
- package/lib/dist/webgl/texture/texture2d.js +2 -3
- package/package.json +1 -1
- package/lib/dist/math/common.test.d.ts +0 -2
- package/lib/dist/math/common.test.d.ts.map +0 -1
- package/lib/dist/math/common.test.js +0 -22
- package/lib/dist/math/mat3.test.d.ts +0 -2
- package/lib/dist/math/mat3.test.d.ts.map +0 -1
- package/lib/dist/math/mat3.test.js +0 -32
- package/lib/dist/math/mat4.test.d.ts +0 -2
- package/lib/dist/math/mat4.test.d.ts.map +0 -1
- package/lib/dist/math/mat4.test.js +0 -57
- package/lib/dist/math/math.test.d.ts +0 -2
- package/lib/dist/math/math.test.d.ts.map +0 -1
- package/lib/dist/math/math.test.js +0 -23
- package/lib/dist/math/quat.test.d.ts +0 -3
- package/lib/dist/math/quat.test.d.ts.map +0 -1
- package/lib/dist/math/quat.test.js +0 -99
- package/lib/dist/math/vec3.test.d.ts +0 -2
- package/lib/dist/math/vec3.test.d.ts.map +0 -1
- package/lib/dist/math/vec3.test.js +0 -36
- package/lib/dist/math/vec4.test.d.ts +0 -2
- package/lib/dist/math/vec4.test.d.ts.map +0 -1
- package/lib/dist/math/vec4.test.js +0 -15
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts +0 -14
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +0 -1
- package/lib/dist/painter/gizmo/painters/axes.1.js +0 -50
- package/lib/dist/painter/skybox/skybox.frag +0 -15
- package/lib/dist/painter/skybox/skybox.vert +0 -13
- package/lib/dist/utils/bbox.test.d.ts +0 -2
- package/lib/dist/utils/bbox.test.d.ts.map +0 -1
- package/lib/dist/utils/bbox.test.js +0 -45
- package/lib/dist/utils/template.test.d.ts +0 -2
- package/lib/dist/utils/template.test.d.ts.map +0 -1
- package/lib/dist/utils/template.test.js +0 -17
|
@@ -7,7 +7,6 @@ import { TgdPainterLogic } from "./logic.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export class TgdPainterGroup extends TgdPainter {
|
|
9
9
|
constructor(arg1, arg2) {
|
|
10
|
-
var _a, _b;
|
|
11
10
|
super();
|
|
12
11
|
/**
|
|
13
12
|
* the logic will be executed at the beginning of `paint()`.
|
|
@@ -23,7 +22,7 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
23
22
|
else if (arg1) {
|
|
24
23
|
this.onEnter = arg1.onEnter;
|
|
25
24
|
this.onExit = arg1.onExit;
|
|
26
|
-
this.name =
|
|
25
|
+
this.name = arg1.name ?? `Group/${this.name}`;
|
|
27
26
|
if (arg1.children) {
|
|
28
27
|
for (const painter of arg1.children)
|
|
29
28
|
this.add(painter);
|
|
@@ -32,7 +31,7 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
32
31
|
if (arg2) {
|
|
33
32
|
this.onEnter = arg2.onEnter;
|
|
34
33
|
this.onExit = arg2.onExit;
|
|
35
|
-
this.name =
|
|
34
|
+
this.name = arg2.name ?? `Group/${this.name}`;
|
|
36
35
|
if (arg2.children) {
|
|
37
36
|
for (const painter of arg2.children) {
|
|
38
37
|
if (painter instanceof TgdPainter && this.painters.includes(painter))
|
|
@@ -102,11 +101,10 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
102
101
|
this.logic.clear();
|
|
103
102
|
}
|
|
104
103
|
paint(time, delta) {
|
|
105
|
-
var _a, _b;
|
|
106
104
|
if (!this.active)
|
|
107
105
|
return;
|
|
108
106
|
this.logic.exec(time, delta);
|
|
109
|
-
|
|
107
|
+
this.onEnter?.(time, delta);
|
|
110
108
|
for (const painter of this.painters) {
|
|
111
109
|
if (painter.active) {
|
|
112
110
|
painter.paint(time, delta);
|
|
@@ -115,7 +113,7 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
115
113
|
for (const logic of this.logics) {
|
|
116
114
|
logic(time, delta);
|
|
117
115
|
}
|
|
118
|
-
|
|
116
|
+
this.onExit?.(time, delta);
|
|
119
117
|
}
|
|
120
118
|
get hierarchy() {
|
|
121
119
|
return {
|
|
@@ -124,7 +122,7 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
124
122
|
}
|
|
125
123
|
debugHierarchy(caption) {
|
|
126
124
|
const cons = new TgdConsole({
|
|
127
|
-
text: caption
|
|
125
|
+
text: caption ?? this.name,
|
|
128
126
|
bold: true,
|
|
129
127
|
}).add();
|
|
130
128
|
this.recursiveDebug(cons, this.hierarchy);
|
|
@@ -141,4 +139,4 @@ export class TgdPainterGroup extends TgdPainter {
|
|
|
141
139
|
}
|
|
142
140
|
}
|
|
143
141
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkMsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQVN6Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFlM0MsWUFBWSxJQUFtRSxFQUFFLElBQTZCO1FBQzFHLEtBQUssRUFBRSxDQUFBO1FBZlg7O1dBRUc7UUFDYSxVQUFLLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQTtRQUMvQixXQUFNLEdBQUcsSUFBSSxDQUFBO1FBS0gsV0FBTSxHQUFpRCxFQUFFLENBQUE7UUFPdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUE7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJO2dCQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDakQsQ0FBQzthQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1lBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUM3QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMs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
|
|
@@ -6,7 +6,6 @@ import { TgdPainter } from "../painter.js";
|
|
|
6
6
|
import { PainterSprite } from "./sprite.js";
|
|
7
7
|
export class TgdPainterIcon extends TgdPainter {
|
|
8
8
|
constructor(context, options) {
|
|
9
|
-
var _a, _b, _c, _d, _e, _f;
|
|
10
9
|
super();
|
|
11
10
|
this.context = context;
|
|
12
11
|
this.eventPointerTap = new TgdEvent();
|
|
@@ -22,9 +21,9 @@ export class TgdPainterIcon extends TgdPainter {
|
|
|
22
21
|
this.overlayheight = height;
|
|
23
22
|
this.refresh();
|
|
24
23
|
};
|
|
25
|
-
this.name =
|
|
24
|
+
this.name = options.name ?? "TgdPainterIcon";
|
|
26
25
|
const sprite = (this.sprite = new PainterSprite(context, options));
|
|
27
|
-
const texture = (this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreate(
|
|
26
|
+
const texture = (this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreate(options.width ?? 1, options.height ?? 1)));
|
|
28
27
|
const clear = new TgdPainterClear(context, {
|
|
29
28
|
color: [0, 0, 0, 0],
|
|
30
29
|
depth: 1,
|
|
@@ -34,17 +33,20 @@ export class TgdPainterIcon extends TgdPainter {
|
|
|
34
33
|
fixedSize: true,
|
|
35
34
|
children: [clear, sprite],
|
|
36
35
|
}));
|
|
37
|
-
const overlay = (this.overlay = new TgdPainterOverlay(context,
|
|
36
|
+
const overlay = (this.overlay = new TgdPainterOverlay(context, {
|
|
37
|
+
...options,
|
|
38
|
+
texture: framebuffer.textureColor0,
|
|
39
|
+
}));
|
|
38
40
|
overlay.eventTap.addListener((evt) => this.eventPointerTap.dispatch(evt));
|
|
39
41
|
overlay.eventResize.addListener(this.handleOverlayResize);
|
|
40
42
|
this.state = new TgdPainterState(context, {
|
|
41
43
|
cull: "off",
|
|
42
|
-
blend:
|
|
43
|
-
depth:
|
|
44
|
+
blend: options.blend ?? "alpha",
|
|
45
|
+
depth: options.depth ?? "off",
|
|
44
46
|
children: [overlay],
|
|
45
47
|
});
|
|
46
48
|
this._color = ensureTgdVec4(options.color, new TgdVec4(1, 1, 1, 1));
|
|
47
|
-
this._index =
|
|
49
|
+
this._index = options.index ?? 0;
|
|
48
50
|
}
|
|
49
51
|
get index() {
|
|
50
52
|
return this._index;
|
|
@@ -137,4 +139,4 @@ export class TgdPainterIcon extends TgdPainter {
|
|
|
137
139
|
this.state.paint(time, delta);
|
|
138
140
|
}
|
|
139
141
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL2ljb24vaWNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFFSCxhQUFhLEVBQ2IsZUFBZSxFQUdmLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLE9BQU8sR0FLVixNQUFNLFlBQVksQ0FBQTtBQUNuQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUMsTUFBTSxZQUFZLENBQUE7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBcUJ4QyxNQUFNLE9BQU8sY0FBZSxTQUFRLFVBQVU7SUFjMUMsWUFDb0IsT0FBbUIsRUFDbkMsT0FBOEI7UUFFOUIsS0FBSyxFQUFFLENBQUE7UUFIUyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBZHZCLG9CQUFlLEdBQUcsSUFBSSxRQUFRLEVBQTJCLENBQUE7UUFTakUsVUFBSyxHQUFHLElBQUksQ0FBQTtRQUNaLGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFBO1FBNEkxQixZQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUE7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUN4QixDQUFDLENBQUE7UUFFZ0Isd0JBQW1CLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFDLEVBQUUsRUFBRTtZQUM1RixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtZQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQTtZQUMzQixJ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
|
|
@@ -81,11 +81,10 @@ export class PainterSprite extends TgdPainter {
|
|
|
81
81
|
return this._index;
|
|
82
82
|
}
|
|
83
83
|
set index(index) {
|
|
84
|
-
var _a;
|
|
85
84
|
if (this._index === index)
|
|
86
85
|
return;
|
|
87
86
|
this._index = index;
|
|
88
|
-
const { x, y, width, height } =
|
|
87
|
+
const { x, y, width, height } = this.atlas[index] ?? { x: 0, y: 0, width: 0, height: 0 };
|
|
89
88
|
this.uniUV.x = x;
|
|
90
89
|
this.uniUV.y = y;
|
|
91
90
|
this.uniUV.z = width;
|
|
@@ -109,4 +108,4 @@ export class PainterSprite extends TgdPainter {
|
|
|
109
108
|
this.program.paint(time, delta);
|
|
110
109
|
}
|
|
111
110
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ByaXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvaWNvbi9zcHJpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFJeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFRMUMsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBUXpDLFlBQ0ksT0FBbUIsRUFDbkIsRUFDSSxPQUFPLEVBQ1AsS0FBSyxHQUFHO1FBQ0o7WUFDSSxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztTQUNaO0tBQ0osRUFDRCxLQUFLLEdBQUcsQ0FBQyxFQUNULEtBQUssR0FDYztRQUV2QixLQUFLLEVBQUUsQ0FBQTtRQXBCSCxXQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDWCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUNiLFVBQUssR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBbUJsQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUU7WUFDMUUsUUFBUSxFQUFFO2dCQUNOLEtBQUssRUFBRSxNQUFNO2dCQUNiLFFBQVEsRUFBRSxNQUFNO2FBQ25CO1NBQ0osQ0FBQyxDQUFDLENBQUE7UUFDSCxrQkFBa0I7UUFDbEIsTUFBTSxNQUFNLEdBQUc7WUFDWCxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDTixDQUFDLENBQUMs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
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
1
|
import { TgdTransfo } from "./../../math/index.js";
|
|
3
2
|
import { TgdPainterGroup } from "../group.js";
|
|
4
3
|
import { TgdPainter } from "../painter.js";
|
|
@@ -26,36 +25,33 @@ export class TgdPainterLOD extends TgdPainter {
|
|
|
26
25
|
this.group.paint(time, delta);
|
|
27
26
|
this.computeOctree();
|
|
28
27
|
}
|
|
29
|
-
computeOctree() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
group.add(painter);
|
|
49
|
-
this.paintersToDelete.add(painter);
|
|
50
|
-
}
|
|
28
|
+
async computeOctree() {
|
|
29
|
+
if (this.isComputingOctree)
|
|
30
|
+
return;
|
|
31
|
+
this.isComputingOctree = true;
|
|
32
|
+
try {
|
|
33
|
+
const { group, context, options } = this;
|
|
34
|
+
const candidates = listBBoxes(context.camera, options.bbox, options.subdivisions, options.surfaceThreshold ?? 0.25);
|
|
35
|
+
const promises = [];
|
|
36
|
+
for (const [x, y, z, level] of candidates) {
|
|
37
|
+
promises.push(this.getMeshPromise(x, y, z, level));
|
|
38
|
+
}
|
|
39
|
+
const results = await Promise.allSettled(promises);
|
|
40
|
+
group.removeAll(false);
|
|
41
|
+
for (const result of results) {
|
|
42
|
+
if (result.status === "fulfilled") {
|
|
43
|
+
const painter = result.value;
|
|
44
|
+
if (painter) {
|
|
45
|
+
group.add(painter);
|
|
46
|
+
this.paintersToDelete.add(painter);
|
|
51
47
|
}
|
|
52
48
|
}
|
|
53
|
-
this.context.paint();
|
|
54
|
-
}
|
|
55
|
-
finally {
|
|
56
|
-
this.isComputingOctree = false;
|
|
57
49
|
}
|
|
58
|
-
|
|
50
|
+
this.context.paint();
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
this.isComputingOctree = false;
|
|
54
|
+
}
|
|
59
55
|
}
|
|
60
56
|
getMeshPromise(x, y, z, level) {
|
|
61
57
|
const fromCache = this.cache.get(x, y, z, level);
|
|
@@ -66,7 +62,7 @@ export class TgdPainterLOD extends TgdPainter {
|
|
|
66
62
|
return promise;
|
|
67
63
|
}
|
|
68
64
|
debug(caption) {
|
|
69
|
-
console.debug(caption
|
|
65
|
+
console.debug(caption ?? `${this.name} (id: ${this.id}, active: ${this.active})`);
|
|
70
66
|
}
|
|
71
67
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvbG9kL2xvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWdCLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBeUNyQyxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVU7SUFRekMsWUFDb0IsT0FBbUIsRUFDbEIsT0FBNkI7UUFFOUMsS0FBSyxFQUFFLENBQUE7UUFIUyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBVGxDLFlBQU8sR0FBa0MsSUFBSSxVQUFVLEVBQUUsQ0FBQTtRQUV4RCxVQUFLLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtRQUM3QixVQUFLLEdBQUcsSUFBSSxXQUFXLEVBQXdDLENBQUE7UUFDL0QscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWMsQ0FBQTtRQUNqRCxzQkFBaUIsR0FBRyxLQUFLLENBQUE7SUFPakMsQ0FBQztJQUVELE1BQU07UUFDRixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUNwQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QixJQUFJLENBQUMs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
|
|
@@ -4,14 +4,13 @@ import { TgdPainter } from "./painter.js";
|
|
|
4
4
|
*/
|
|
5
5
|
export class TgdPainterLogic extends TgdPainter {
|
|
6
6
|
constructor(logicFunction, options = {}) {
|
|
7
|
-
var _a;
|
|
8
7
|
super();
|
|
9
8
|
this.logicFunction = logicFunction;
|
|
10
|
-
this.name =
|
|
9
|
+
this.name = options.name ?? `Logic/${this.name}`;
|
|
11
10
|
}
|
|
12
11
|
delete() { }
|
|
13
12
|
paint(time, delta) {
|
|
14
13
|
this.logicFunction(time, delta);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9sb2dpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUMzQyxZQUNxQixhQUFvRCxFQUNyRSxVQUFxQyxFQUFFO1FBRXZDLEtBQUssRUFBRSxDQUFBO1FBSFUsa0JBQWEsR0FBYixhQUFhLENBQXVDO1FBSXJFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsTUFBTSxLQUFVLENBQUM7SUFFakIsS0FBSyxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ25DLENBQUM7Q0FDSiJ9
|
|
@@ -1,17 +1,39 @@
|
|
|
1
|
+
import { TgdContext } from "../../../context";
|
|
1
2
|
import { TgdMaterial } from "../../../material";
|
|
2
|
-
import { TgdVec4 } from "../../../math";
|
|
3
3
|
import type { TgdDataGlb } from "../../../parser";
|
|
4
|
-
import
|
|
4
|
+
import { TgdTextureCube } from "../../../texture";
|
|
5
|
+
import type { ArrayNumber3, ArrayNumber4 } from "../../../types";
|
|
5
6
|
import { TgdPainterMesh } from "../mesh";
|
|
6
|
-
|
|
7
|
+
export interface TgdPainterMeshGltfMaterialDescription {
|
|
8
|
+
name: string;
|
|
9
|
+
asset: TgdDataGlb;
|
|
10
|
+
context: TgdContext;
|
|
11
|
+
color?: ArrayNumber4;
|
|
12
|
+
abedo?: {
|
|
13
|
+
imageIndex: number;
|
|
14
|
+
};
|
|
15
|
+
metallicRoughness?: {
|
|
16
|
+
imageIndex: number;
|
|
17
|
+
};
|
|
18
|
+
normal?: {
|
|
19
|
+
imageIndex: number;
|
|
20
|
+
};
|
|
21
|
+
occlusion?: {
|
|
22
|
+
imageIndex: number;
|
|
23
|
+
};
|
|
24
|
+
emission?: {
|
|
25
|
+
imageIndex: number;
|
|
26
|
+
strength: ArrayNumber3;
|
|
27
|
+
};
|
|
28
|
+
skybox?: TgdTextureCube;
|
|
29
|
+
}
|
|
7
30
|
export interface TgdPainterMeshGltfOptions {
|
|
8
31
|
asset: TgdDataGlb;
|
|
9
32
|
meshIndexOrName?: number | string;
|
|
10
33
|
primitiveIndex?: number;
|
|
11
34
|
name?: string;
|
|
12
|
-
material?: TgdMaterial | ((this: void, options:
|
|
13
|
-
|
|
14
|
-
}) => TgdMaterial);
|
|
35
|
+
material?: TgdMaterial | ((this: void, options: TgdPainterMeshGltfMaterialDescription) => TgdMaterial);
|
|
36
|
+
skybox?: TgdTextureCube;
|
|
15
37
|
}
|
|
16
38
|
/**
|
|
17
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/gltf/gltf.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/gltf/gltf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAgB,cAAc,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,MAAM,WAAW,qCAAqC;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,KAAK,CAAC,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,iBAAiB,CAAC,EAAE;QAChB,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,MAAM,CAAC,EAAE;QACL,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,SAAS,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,QAAQ,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,YAAY,CAAA;KACzB,CAAA;IACD,MAAM,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,UAAU,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,qCAAqC,KAAK,WAAW,CAAC,CAAA;IACtG,MAAM,CAAC,EAAE,cAAc,CAAA;CAC1B;AAED;GACG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBACtC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,yBAAyB;CAiDtE"}
|
|
@@ -1,18 +1,25 @@
|
|
|
1
|
+
import { TgdColor } from "./../../../color/index.js";
|
|
1
2
|
import { TgdDataset } from "./../../../dataset/index.js";
|
|
2
3
|
import { TgdGeometry } from "./../../../geometry/index.js";
|
|
3
|
-
import { TgdLight } from "./../../../light/index.js";
|
|
4
4
|
import { TgdMaterial } from "./../../../material/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { TgdMaterialGltf } from "./../../../material/gltf.js";
|
|
6
|
+
import { tgdCalcRandom } from "./../../../math/index.js";
|
|
7
|
+
import { TgdTexture2D, TgdTextureCube } from "./../../../texture/index.js";
|
|
8
|
+
import { tgdCanvasCreateFill } from "./../../../utils/index.js";
|
|
7
9
|
import { TgdPainterMesh } from "../mesh/index.js";
|
|
8
10
|
/**
|
|
9
11
|
*/
|
|
10
12
|
export class TgdPainterMeshGltf extends TgdPainterMesh {
|
|
11
13
|
constructor(context, options) {
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const { asset, meshIndexOrName = 0, primitiveIndex = 0, skybox, material: materialFactory = makeMaterial, } = options;
|
|
15
|
+
const materialDescription = figureMaterialDescription({
|
|
16
|
+
asset,
|
|
17
|
+
meshIndexOrName,
|
|
18
|
+
primitiveIndex,
|
|
19
|
+
context,
|
|
20
|
+
skybox,
|
|
21
|
+
});
|
|
22
|
+
const material = materialFactory instanceof TgdMaterial ? materialFactory : materialFactory(materialDescription);
|
|
16
23
|
let computeNormals = false;
|
|
17
24
|
const attributes = {
|
|
18
25
|
POSITION: "vec3",
|
|
@@ -30,7 +37,7 @@ export class TgdPainterMeshGltf extends TgdPainterMesh {
|
|
|
30
37
|
else {
|
|
31
38
|
// It seems to be impossible to retrieve normals.
|
|
32
39
|
// We will compute them with a smooth shading.
|
|
33
|
-
console.warn("No normals found! We will apply smooth shading.");
|
|
40
|
+
context.console.warn("No normals found! We will apply smooth shading.");
|
|
34
41
|
computeNormals = true;
|
|
35
42
|
}
|
|
36
43
|
if (primitive.attributes.TEXCOORD_0) {
|
|
@@ -45,58 +52,97 @@ export class TgdPainterMeshGltf extends TgdPainterMesh {
|
|
|
45
52
|
}),
|
|
46
53
|
material,
|
|
47
54
|
});
|
|
48
|
-
this.name =
|
|
55
|
+
this.name = options.name ?? `Gltf/${this.name}`;
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
|
-
const DEFAULT_COLOR =
|
|
52
|
-
function
|
|
53
|
-
|
|
58
|
+
const DEFAULT_COLOR = [0.9, 0.5, 0.1, 1];
|
|
59
|
+
function figureMaterialDescription({ asset, meshIndexOrName, primitiveIndex, context, skybox, }) {
|
|
60
|
+
const description = {
|
|
61
|
+
asset,
|
|
62
|
+
context,
|
|
63
|
+
name: "Material",
|
|
64
|
+
skybox,
|
|
65
|
+
};
|
|
54
66
|
const primitive = asset.getMeshPrimitive(meshIndexOrName, primitiveIndex);
|
|
55
|
-
const materialIndex =
|
|
56
|
-
if (materialIndex === -1)
|
|
57
|
-
return
|
|
67
|
+
const materialIndex = primitive.material ?? -1;
|
|
68
|
+
if (materialIndex === -1) {
|
|
69
|
+
return {
|
|
70
|
+
...description,
|
|
71
|
+
color: DEFAULT_COLOR,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
58
74
|
const material = asset.getMaterial(materialIndex);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
75
|
+
description.name = material.name ?? description.name;
|
|
76
|
+
description.color = material.pbrMetallicRoughness?.baseColorFactor;
|
|
77
|
+
const abedoIndex = material.pbrMetallicRoughness?.baseColorTexture?.index;
|
|
78
|
+
if (typeof abedoIndex === "number") {
|
|
79
|
+
description.abedo = {
|
|
80
|
+
imageIndex: abedoIndex,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const roughnessIndex = material.pbrMetallicRoughness?.metallicRoughnessTexture?.index;
|
|
84
|
+
if (typeof roughnessIndex === "number") {
|
|
85
|
+
description.metallicRoughness = {
|
|
86
|
+
imageIndex: roughnessIndex,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const normalIndex = material.normalTexture?.index;
|
|
90
|
+
if (typeof normalIndex === "number") {
|
|
91
|
+
description.normal = {
|
|
92
|
+
imageIndex: normalIndex,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const occlusionIndex = material.occlusionTexture?.index;
|
|
96
|
+
if (typeof occlusionIndex === "number") {
|
|
97
|
+
description.occlusion = {
|
|
98
|
+
imageIndex: occlusionIndex,
|
|
99
|
+
};
|
|
71
100
|
}
|
|
72
|
-
|
|
73
|
-
|
|
101
|
+
const emissionIndex = material.emissiveTexture?.index;
|
|
102
|
+
if (typeof emissionIndex === "number") {
|
|
103
|
+
description.emission = {
|
|
104
|
+
imageIndex: emissionIndex,
|
|
105
|
+
strength: material.emissiveFactor ?? [1, 1, 1],
|
|
106
|
+
};
|
|
74
107
|
}
|
|
75
|
-
return
|
|
108
|
+
return description;
|
|
109
|
+
}
|
|
110
|
+
function makeMaterial({ asset, context, normal, abedo, emission, occlusion, metallicRoughness, color, skybox, }) {
|
|
111
|
+
const makeTexture = (index, name) => {
|
|
112
|
+
if (typeof index === "number") {
|
|
113
|
+
const texture = asset.createTexture2D(context, index);
|
|
114
|
+
texture.name = name;
|
|
115
|
+
return texture;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const fill = ([R, G, B, A]) => {
|
|
119
|
+
const texture = new TgdTexture2D(context);
|
|
120
|
+
texture.loadBitmap(tgdCanvasCreateFill(1, 1, new TgdColor(R, G, B, A).toString()));
|
|
121
|
+
return texture;
|
|
122
|
+
};
|
|
123
|
+
return new TgdMaterialGltf({
|
|
124
|
+
textures: {
|
|
125
|
+
normal: makeTexture(normal?.imageIndex, "Normal") ?? fill([0.5, 0.5, 1, 1]),
|
|
126
|
+
albedo: makeTexture(abedo?.imageIndex, "Abedo") ?? fill(color ?? DEFAULT_COLOR),
|
|
127
|
+
emission: makeTexture(emission?.imageIndex, "Emission") ?? fill([0, 0, 0, 1]),
|
|
128
|
+
occlusion: makeTexture(occlusion?.imageIndex, "Occlusion"),
|
|
129
|
+
metallicRoughness: makeTexture(metallicRoughness?.imageIndex, "Roughness") ?? fill([0, 0.5, 0.5, 1]),
|
|
130
|
+
skybox: skybox ?? makeDefaultSkybox(context),
|
|
131
|
+
},
|
|
132
|
+
});
|
|
76
133
|
}
|
|
77
|
-
function
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}),
|
|
86
|
-
ambient: new TgdLight({
|
|
87
|
-
color: new TgdVec4(0.2, 0.1, 0, 1),
|
|
88
|
-
}),
|
|
134
|
+
function makeDefaultSkybox(context) {
|
|
135
|
+
const skybox = new TgdTextureCube(context, {
|
|
136
|
+
imageNegX: randomCanvas(),
|
|
137
|
+
imageNegY: randomCanvas(),
|
|
138
|
+
imageNegZ: randomCanvas(),
|
|
139
|
+
imagePosX: randomCanvas(),
|
|
140
|
+
imagePosY: randomCanvas(),
|
|
141
|
+
imagePosZ: randomCanvas(),
|
|
89
142
|
});
|
|
90
|
-
return
|
|
143
|
+
return skybox;
|
|
91
144
|
}
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
const emissive = material.emissiveTexture;
|
|
95
|
-
if (!emissive)
|
|
96
|
-
return null;
|
|
97
|
-
const color = asset.createTexture2D(context, (_a = emissive.index) !== null && _a !== void 0 ? _a : 0);
|
|
98
|
-
if (context.paint)
|
|
99
|
-
color.eventChange.addListener(context.paint);
|
|
100
|
-
return color;
|
|
145
|
+
function randomCanvas() {
|
|
146
|
+
return tgdCanvasCreateFill(1, 1, new TgdColor(tgdCalcRandom(0, 0.2), tgdCalcRandom(0.5, 0.7), tgdCalcRandom(0.7, 1), 1));
|
|
101
147
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvZ2x0Zi9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsT0FBTyxFQUFFLFVBQVUsRUFBNkIsTUFBTSxjQUFjLENBQUE7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRTNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBbUN4QztHQUNHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFDbEQsWUFBWSxPQUFtQixFQUFFLE9BQWtDO1FBQy9ELE1BQU0sRUFDRixLQUFLLEVBQ0wsZUFBZSxHQUFHLENBQUMsRUFDbkIsY0FBYyxHQUFHLENBQUMsRUFDbEIsTUFBTSxFQUNOLFFBQVEsRUFBRSxlQUFlLEdBQUcsWUFBWSxHQUMzQyxHQUFHLE9BQU8sQ0FBQTtRQUNYLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUM7WUFDbEQsS0FBSztZQUNMLGVBQWU7WUFDZixjQUFjO1lBQ2QsT0FBTztZQUNQLE1BQU07U0FDVCxDQUFDLENBQUE7UUFDRixNQUFNLFFBQVEsR0FBRyxlQUFlLFlBQVksV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFB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
|