@tolokoban/tgd 2.0.24 → 2.0.25
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-orthographic.d.ts +1 -0
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +21 -1
- 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 +21 -1
- 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 +4 -1
- package/lib/dist/canvas/gizmo/painter/shader.frag +1 -1
- package/lib/dist/canvas/gizmo/painter/shader.vert +1 -1
- package/lib/dist/code/color.d.ts +4 -4
- package/lib/dist/code/color.d.ts.map +1 -1
- package/lib/dist/code/color.js +3 -3
- package/lib/dist/code/coords.d.ts +4 -4
- package/lib/dist/code/coords.d.ts.map +1 -1
- package/lib/dist/code/coords.js +4 -4
- package/lib/dist/code/random.d.ts +2 -2
- package/lib/dist/code/random.d.ts.map +1 -1
- package/lib/dist/code/random.js +2 -2
- package/lib/dist/context/animation/animation-manager.d.ts +1 -0
- package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
- package/lib/dist/context/animation/animation-manager.js +11 -3
- package/lib/dist/context/context.d.ts +12 -2
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +80 -37
- package/lib/dist/controller/camera/orbit.d.ts +15 -2
- package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
- package/lib/dist/controller/camera/orbit.js +15 -3
- package/lib/dist/data/gltf/gltf.d.ts +60 -0
- package/lib/dist/data/gltf/gltf.d.ts.map +1 -0
- package/lib/dist/data/gltf/gltf.js +337 -0
- package/lib/dist/data/gltf/index.d.ts +2 -0
- package/lib/dist/data/gltf/index.d.ts.map +1 -0
- package/lib/dist/data/gltf/index.js +2 -0
- package/lib/dist/data/gltf/parser.d.ts +13 -0
- package/lib/dist/data/gltf/parser.d.ts.map +1 -0
- package/lib/dist/data/gltf/parser.js +54 -0
- package/lib/dist/data/index.d.ts +2 -0
- package/lib/dist/data/index.d.ts.map +1 -0
- package/lib/dist/data/index.js +2 -0
- package/lib/dist/factory/index.d.ts +2 -0
- package/lib/dist/factory/index.d.ts.map +1 -0
- package/lib/dist/factory/index.js +2 -0
- package/lib/dist/factory/mesh-glb.d.ts +42 -0
- package/lib/dist/factory/mesh-glb.d.ts.map +1 -0
- package/lib/dist/factory/mesh-glb.js +91 -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/input/pointer.d.ts +2 -1
- package/lib/dist/input/pointer.d.ts.map +1 -1
- package/lib/dist/input/pointer.js +8 -1
- package/lib/dist/interface/transformable.d.ts +1 -0
- package/lib/dist/interface/transformable.d.ts.map +1 -1
- package/lib/dist/loader/asset.d.ts +2 -2
- package/lib/dist/loader/asset.d.ts.map +1 -1
- package/lib/dist/loader/asset.js +1 -1
- package/lib/dist/loader/binary.d.ts +3 -2
- package/lib/dist/loader/binary.d.ts.map +1 -1
- package/lib/dist/loader/binary.js +20 -4
- package/lib/dist/material/diffuse.d.ts.map +1 -1
- package/lib/dist/material/diffuse.js +7 -5
- package/lib/dist/material/flat.d.ts +20 -0
- package/lib/dist/material/flat.d.ts.map +1 -0
- package/lib/dist/material/flat.js +18 -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/index.d.ts +1 -0
- package/lib/dist/math/index.d.ts.map +1 -1
- package/lib/dist/math/index.js +2 -1
- package/lib/dist/math/mat2.d.ts +29 -0
- package/lib/dist/math/mat2.d.ts.map +1 -0
- package/lib/dist/math/mat2.js +94 -0
- package/lib/dist/math/quat.d.ts +2 -1
- package/lib/dist/math/quat.d.ts.map +1 -1
- package/lib/dist/math/quat.js +6 -28
- package/lib/dist/math/transfo.d.ts +8 -4
- package/lib/dist/math/transfo.d.ts.map +1 -1
- package/lib/dist/math/transfo.js +41 -27
- package/lib/dist/math/vec3.d.ts +2 -2
- package/lib/dist/math/vec3.d.ts.map +1 -1
- package/lib/dist/math/vec3.js +6 -5
- package/lib/dist/painter/axes/axes.frag +1 -1
- package/lib/dist/painter/axes/axes.vert +1 -1
- package/lib/dist/painter/background/background.d.ts +28 -2
- package/lib/dist/painter/background/background.d.ts.map +1 -1
- package/lib/dist/painter/background/background.frag +1 -1
- package/lib/dist/painter/background/background.js +47 -13
- package/lib/dist/painter/background-with-depth/background-with-depth.d.ts +24 -0
- package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -0
- package/lib/dist/painter/background-with-depth/background-with-depth.js +120 -0
- package/lib/dist/painter/background-with-depth/background.frag +17 -0
- package/lib/dist/painter/background-with-depth/background.vert +13 -0
- package/lib/dist/painter/background-with-depth/index.d.ts +2 -0
- package/lib/dist/painter/background-with-depth/index.d.ts.map +1 -0
- package/lib/dist/painter/background-with-depth/index.js +2 -0
- package/lib/dist/painter/debug/stencil/stencil.frag +1 -1
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +2 -2
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +1 -1
- 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/mesh/gltf/gltf.d.ts +8 -4
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +23 -13
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +12 -3
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +4 -2
- package/lib/dist/painter/mesh/normals/shader.vert +1 -1
- package/lib/dist/painter/node/node.d.ts +20 -7
- package/lib/dist/painter/node/node.d.ts.map +1 -1
- package/lib/dist/painter/node/node.js +74 -17
- package/lib/dist/painter/segments/segments.d.ts +9 -7
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.frag +12 -2
- package/lib/dist/painter/segments/segments.js +64 -36
- package/lib/dist/painter/segments/segments.vert +12 -5
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +21 -16
- package/lib/dist/painter/state/state.d.ts +10 -2
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +49 -19
- package/lib/dist/parser/gltf/gltf.d.ts +15 -2
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +55 -2
- package/lib/dist/parser/gltf/parser.d.ts +4 -0
- package/lib/dist/parser/gltf/parser.d.ts.map +1 -1
- package/lib/dist/parser/gltf/parser.js +5 -2
- package/lib/dist/program/program.d.ts +4 -3
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +22 -8
- package/lib/dist/shader/code.d.ts +2 -2
- package/lib/dist/shader/code.d.ts.map +1 -1
- package/lib/dist/shader/code.js +16 -3
- package/lib/dist/shader/fragment.d.ts.map +1 -1
- package/lib/dist/shader/fragment.js +2 -2
- package/lib/dist/shader/vertex.d.ts.map +1 -1
- package/lib/dist/shader/vertex.js +2 -3
- package/lib/dist/texture/texture-depth.d.ts +36 -0
- package/lib/dist/texture/texture-depth.d.ts.map +1 -0
- package/lib/dist/texture/texture-depth.js +63 -0
- package/lib/dist/texture/texture2d.d.ts +15 -2
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +87 -27
- package/lib/dist/types/animation.d.ts +11 -2
- package/lib/dist/types/animation.d.ts.map +1 -1
- package/lib/dist/types/index.d.ts +1 -0
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +2 -1
- package/lib/dist/types/input-pointer.d.ts +1 -0
- package/lib/dist/types/input-pointer.d.ts.map +1 -1
- package/lib/dist/types/program.d.ts +5 -0
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.d.ts.map +1 -1
- package/lib/dist/utils/action/camera.js +2 -2
- package/lib/dist/utils/action/transfo.d.ts +1 -1
- package/lib/dist/utils/action/transfo.d.ts.map +1 -1
- package/lib/dist/utils/action/transfo.js +17 -23
- package/lib/dist/utils/animation/chain-transfo-interpolations.d.ts +18 -0
- package/lib/dist/utils/animation/chain-transfo-interpolations.d.ts.map +1 -0
- package/lib/dist/utils/animation/chain-transfo-interpolations.js +15 -0
- package/lib/dist/utils/animation/chain.d.ts +11 -0
- package/lib/dist/utils/animation/chain.d.ts.map +1 -0
- package/lib/dist/utils/animation/chain.js +61 -0
- package/lib/dist/utils/animation/index.d.ts +3 -0
- package/lib/dist/utils/animation/index.d.ts.map +1 -0
- package/lib/dist/utils/animation/index.js +3 -0
- package/lib/dist/utils/index.d.ts +1 -0
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +2 -1
- package/lib/dist/utils/math.d.ts +13 -0
- package/lib/dist/utils/math.d.ts.map +1 -1
- package/lib/dist/utils/math.js +34 -1
- package/lib/dist/utils/math.test.d.ts +2 -0
- package/lib/dist/utils/math.test.d.ts.map +1 -0
- package/lib/dist/utils/math.test.js +22 -0
- 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 +21 -3
- package/lib/dist/utils/state/depth.d.ts +1 -1
- package/lib/dist/utils/state/depth.d.ts.map +1 -1
- package/lib/dist/utils/state/depth.js +23 -2
- 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 -1
- package/package.json +1 -1
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
/**
|
|
3
|
+
* GLTF specs can be found here:
|
|
4
|
+
* https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html
|
|
5
|
+
*/
|
|
6
|
+
import { TgdDataset } from "./../../dataset/index.js";
|
|
7
|
+
import { parseGLB } from "./parser.js";
|
|
8
|
+
import { assertTgdTypeArrayForElements, } from "./../../types/index.js";
|
|
9
|
+
import { TgdGeometry } from "./../../geometry/index.js";
|
|
10
|
+
import { TgdTexture2D } from "./../../texture/index.js";
|
|
11
|
+
export class TgdDataGLB {
|
|
12
|
+
/**
|
|
13
|
+
* @param content The binary content of a GLB file.
|
|
14
|
+
*/
|
|
15
|
+
constructor(content) {
|
|
16
|
+
this.chunkDetails = [];
|
|
17
|
+
this.cacheImages = new Map();
|
|
18
|
+
this.cacheImageURLs = new Map();
|
|
19
|
+
this.cacheBufferViewDatas = new Map();
|
|
20
|
+
try {
|
|
21
|
+
const data = parseGLB(content);
|
|
22
|
+
this.gltf = data.gltf;
|
|
23
|
+
this.chunks = data.chunks;
|
|
24
|
+
this.chunkDetails = data.chunkTypes;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
const message = error instanceof Error ? error.message : JSON.stringify(error);
|
|
28
|
+
throw new Error(`[TgdParserGLTransfertFormatBinary] ${message}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
getChunkDetails() {
|
|
32
|
+
return structuredClone(this.chunkDetails);
|
|
33
|
+
}
|
|
34
|
+
get fileSize() {
|
|
35
|
+
return (12 + this.chunks.reduce((size, chunk) => size + chunk.byteLength, 0));
|
|
36
|
+
}
|
|
37
|
+
getScenes() {
|
|
38
|
+
var _a;
|
|
39
|
+
return (_a = this.gltf.scenes) !== null && _a !== void 0 ? _a : [];
|
|
40
|
+
}
|
|
41
|
+
getScene(sceneIndex) {
|
|
42
|
+
var _a;
|
|
43
|
+
const scene = (_a = this.gltf.scenes) === null || _a === void 0 ? void 0 : _a[sceneIndex];
|
|
44
|
+
if (!scene) {
|
|
45
|
+
throw new Error(`Asset has no scene with index #${sceneIndex}!`);
|
|
46
|
+
}
|
|
47
|
+
return scene;
|
|
48
|
+
}
|
|
49
|
+
getNode(nodeIndex) {
|
|
50
|
+
var _a;
|
|
51
|
+
const node = (_a = this.gltf.nodes) === null || _a === void 0 ? void 0 : _a[nodeIndex];
|
|
52
|
+
if (!node) {
|
|
53
|
+
throw new Error(`Asset has no node with index #${nodeIndex}!`);
|
|
54
|
+
}
|
|
55
|
+
return node;
|
|
56
|
+
}
|
|
57
|
+
getNodeByName(nodeName) {
|
|
58
|
+
const nodes = this.gltf.nodes;
|
|
59
|
+
if (!nodes)
|
|
60
|
+
return;
|
|
61
|
+
for (const node of nodes) {
|
|
62
|
+
if (node.name === nodeName)
|
|
63
|
+
return node;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getNodeByNameOrThrow(nodeName) {
|
|
67
|
+
var _a;
|
|
68
|
+
const node = this.getNodeByName(nodeName);
|
|
69
|
+
if (node)
|
|
70
|
+
return node;
|
|
71
|
+
throw new Error(`Unknown node "${nodeName}"!\nAvailable names:${((_a = this.gltf.nodes) !== null && _a !== void 0 ? _a : [])
|
|
72
|
+
.map((node, index) => `\n - ${typeof node.name === "string"
|
|
73
|
+
? JSON.stringify(node.name)
|
|
74
|
+
: `#${index}`}`)
|
|
75
|
+
.join("")}`);
|
|
76
|
+
}
|
|
77
|
+
getAccessor(accessorIndex = 0) {
|
|
78
|
+
var _a;
|
|
79
|
+
const accessor = (_a = this.gltf.accessors) === null || _a === void 0 ? void 0 : _a[accessorIndex];
|
|
80
|
+
if (!accessor) {
|
|
81
|
+
throw new Error(`Asset has no accessor with index #${accessorIndex}!`);
|
|
82
|
+
}
|
|
83
|
+
return accessor;
|
|
84
|
+
}
|
|
85
|
+
getMaterial(materialIndex) {
|
|
86
|
+
var _a;
|
|
87
|
+
const material = (_a = this.gltf.materials) === null || _a === void 0 ? void 0 : _a[materialIndex];
|
|
88
|
+
if (!material) {
|
|
89
|
+
throw new Error(`Asset has no material with index #${materialIndex}!`);
|
|
90
|
+
}
|
|
91
|
+
return material;
|
|
92
|
+
}
|
|
93
|
+
getMesh(meshIndex = 0) {
|
|
94
|
+
var _a;
|
|
95
|
+
const mesh = (_a = this.gltf.meshes) === null || _a === void 0 ? void 0 : _a[meshIndex];
|
|
96
|
+
if (!mesh) {
|
|
97
|
+
throw new Error(`Asset has no mesh with index #${meshIndex}!`);
|
|
98
|
+
}
|
|
99
|
+
return mesh;
|
|
100
|
+
}
|
|
101
|
+
getMeshPrimitive(meshIndex = 0, primitiveIndex = 0) {
|
|
102
|
+
const mesh = this.getMesh(meshIndex);
|
|
103
|
+
const primitive = mesh.primitives[primitiveIndex];
|
|
104
|
+
if (!primitive) {
|
|
105
|
+
throw new Error(`Asset has no primitive #${primitiveIndex} in mesh #${meshIndex}!`);
|
|
106
|
+
}
|
|
107
|
+
return primitive;
|
|
108
|
+
}
|
|
109
|
+
getMeshPrimitiveIndices(meshIndex = 0, primitiveIndex = 0) {
|
|
110
|
+
var _a, _b;
|
|
111
|
+
const primitive = this.getMeshPrimitive(meshIndex, primitiveIndex);
|
|
112
|
+
const accessor = this.getAccessor((_a = primitive.indices) !== null && _a !== void 0 ? _a : 0);
|
|
113
|
+
const elements = this.getBufferViewData((_b = accessor.bufferView) !== null && _b !== void 0 ? _b : 0, accessor.componentType);
|
|
114
|
+
assertTgdTypeArrayForElements(elements);
|
|
115
|
+
return elements;
|
|
116
|
+
}
|
|
117
|
+
getAccessorByAttributeName(primitive, attribName) {
|
|
118
|
+
const { attributes } = primitive;
|
|
119
|
+
if (!attributes || Object.keys(attributes).length === 0)
|
|
120
|
+
throw new Error("No attributes found!");
|
|
121
|
+
const accessorIndex = attributes[attribName];
|
|
122
|
+
if (typeof accessorIndex !== "number") {
|
|
123
|
+
throw new TypeError(`No attribute with name "${attribName}"!\nAvailable names are: ${Object.keys(attributes)
|
|
124
|
+
.map(name => JSON.stringify(name))
|
|
125
|
+
.join(", ")}.`);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
return this.getAccessor(accessorIndex);
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
const message = error instanceof Error ? error.message : JSON.stringify(error);
|
|
132
|
+
throw new Error(`Attribute "${attribName}" pointed to an inexisting accessor!\n${message}`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
createTexture2D(context, textureIndex) {
|
|
136
|
+
var _a, _b, _c, _d, _e;
|
|
137
|
+
const gltfTex = (_a = this.gltf.textures) === null || _a === void 0 ? void 0 : _a[textureIndex];
|
|
138
|
+
if (!gltfTex) {
|
|
139
|
+
throw new Error(`Asset has no texture with index #${textureIndex}!`);
|
|
140
|
+
}
|
|
141
|
+
const source = (_e = (_b = gltfTex.source) !== null && _b !== void 0 ? _b : (_d = (_c = gltfTex.extensions) === null || _c === void 0 ? void 0 : _c.EXT_texture_webp) === null || _d === void 0 ? void 0 : _d.source) !== null && _e !== void 0 ? _e : 0;
|
|
142
|
+
const url = this.getImageURL(source);
|
|
143
|
+
const texture = new TgdTexture2D(context);
|
|
144
|
+
if (url) {
|
|
145
|
+
loadImage(url)
|
|
146
|
+
.then(bmp => {
|
|
147
|
+
if (bmp)
|
|
148
|
+
texture.loadBitmap(bmp);
|
|
149
|
+
else
|
|
150
|
+
console.error("Unable to load this file:", url);
|
|
151
|
+
})
|
|
152
|
+
.catch(console.error);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.error(`[GLTF] texture index #${textureIndex} is empty!`);
|
|
156
|
+
}
|
|
157
|
+
return texture;
|
|
158
|
+
}
|
|
159
|
+
loadImage(imageIndex) {
|
|
160
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
161
|
+
const fromCache = this.cacheImages.get(imageIndex);
|
|
162
|
+
if (fromCache)
|
|
163
|
+
return fromCache;
|
|
164
|
+
const url = this.getImageURL(imageIndex);
|
|
165
|
+
if (!url)
|
|
166
|
+
return;
|
|
167
|
+
const promise = new Promise((resolve, reject) => {
|
|
168
|
+
const img = new Image();
|
|
169
|
+
img.src = url;
|
|
170
|
+
img.addEventListener("load", () => {
|
|
171
|
+
resolve(img);
|
|
172
|
+
});
|
|
173
|
+
img.addEventListener("error", () => {
|
|
174
|
+
var _a;
|
|
175
|
+
console.error(`Unable to load image #${imageIndex}!`, (_a = this.gltf.images) === null || _a === void 0 ? void 0 : _a[imageIndex]);
|
|
176
|
+
reject();
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
this.cacheImages.set(imageIndex, promise);
|
|
180
|
+
return promise;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
getImageURL(imageIndex) {
|
|
184
|
+
var _a;
|
|
185
|
+
const fromCache = this.cacheImageURLs.get(imageIndex);
|
|
186
|
+
if (fromCache)
|
|
187
|
+
return fromCache;
|
|
188
|
+
const { gltf } = this;
|
|
189
|
+
const image = (_a = gltf.images) === null || _a === void 0 ? void 0 : _a[imageIndex];
|
|
190
|
+
if (!image)
|
|
191
|
+
return;
|
|
192
|
+
if (image.uri)
|
|
193
|
+
return image.uri;
|
|
194
|
+
if (typeof image.bufferView !== "number")
|
|
195
|
+
return;
|
|
196
|
+
const buffer = this.getBufferViewData(image.bufferView, "Uint8");
|
|
197
|
+
if (!buffer)
|
|
198
|
+
return;
|
|
199
|
+
const blob = new Blob([buffer], {
|
|
200
|
+
type: image.mimeType,
|
|
201
|
+
});
|
|
202
|
+
const url = URL.createObjectURL(blob);
|
|
203
|
+
this.cacheImageURLs.set(imageIndex, url);
|
|
204
|
+
return url;
|
|
205
|
+
}
|
|
206
|
+
getBufferViewData(accessor, type = "Float32") {
|
|
207
|
+
var _a, _b, _c, _d, _e;
|
|
208
|
+
if (typeof accessor !== "number") {
|
|
209
|
+
return this.getBufferViewData((_a = accessor.bufferView) !== null && _a !== void 0 ? _a : 0, accessor.componentType);
|
|
210
|
+
}
|
|
211
|
+
const bufferViewIndex = accessor;
|
|
212
|
+
const fromCache = this.cacheBufferViewDatas.get(bufferViewIndex);
|
|
213
|
+
if (fromCache)
|
|
214
|
+
return fromCache;
|
|
215
|
+
const { gltf } = this;
|
|
216
|
+
const bufferView = (_b = gltf.bufferViews) === null || _b === void 0 ? void 0 : _b[bufferViewIndex];
|
|
217
|
+
if (!bufferView)
|
|
218
|
+
throw new Error(`No bufferView with index #${bufferViewIndex}!`);
|
|
219
|
+
const buffer = this.chunks[bufferView.buffer];
|
|
220
|
+
const byteOffset = (_c = bufferView.byteOffset) !== null && _c !== void 0 ? _c : 0;
|
|
221
|
+
const data = buffer.slice(byteOffset, byteOffset + bufferView.byteLength);
|
|
222
|
+
const view = figureOutView(data, convertTypeToNumber((_e = type !== null && type !== void 0 ? type : (_d = this.findAccessorForBufferView(bufferViewIndex)) === null || _d === void 0 ? void 0 : _d.componentType) !== null && _e !== void 0 ? _e : "Float32"));
|
|
223
|
+
this.cacheBufferViewDatas.set(bufferViewIndex, view);
|
|
224
|
+
return view;
|
|
225
|
+
}
|
|
226
|
+
findAccessorForBufferView(bufferViewIndex) {
|
|
227
|
+
var _a;
|
|
228
|
+
return ((_a = this.gltf.accessors) !== null && _a !== void 0 ? _a : []).find(accessor => accessor.bufferView === bufferViewIndex);
|
|
229
|
+
}
|
|
230
|
+
setAttrib(dataset, attribName, meshIndex = 0, primitiveIndex = 0, primitiveAttribName) {
|
|
231
|
+
var _a, _b, _c, _d, _e;
|
|
232
|
+
const { gltf } = this;
|
|
233
|
+
const accessorIndex = (_b = (_a = gltf.meshes) === null || _a === void 0 ? void 0 : _a[meshIndex].primitives[primitiveIndex].attributes[primitiveAttribName !== null && primitiveAttribName !== void 0 ? primitiveAttribName : attribName]) !== null && _b !== void 0 ? _b : -1;
|
|
234
|
+
const accessor = (_c = gltf.accessors) === null || _c === void 0 ? void 0 : _c[accessorIndex];
|
|
235
|
+
if (!accessor) {
|
|
236
|
+
throw new Error(`No attribute "${primitiveAttribName !== null && primitiveAttribName !== void 0 ? primitiveAttribName : attribName}" for primitive #${primitiveIndex} of mesh #${meshIndex}!`);
|
|
237
|
+
}
|
|
238
|
+
const bufferViewIndex = (_d = accessor.bufferView) !== null && _d !== void 0 ? _d : 0;
|
|
239
|
+
const bufferView = (_e = gltf.bufferViews) === null || _e === void 0 ? void 0 : _e[bufferViewIndex];
|
|
240
|
+
if (!bufferView) {
|
|
241
|
+
throw new Error(`No bufferView with index #${bufferViewIndex}!`);
|
|
242
|
+
}
|
|
243
|
+
const view = this.getBufferViewData(bufferViewIndex, accessor.componentType);
|
|
244
|
+
dataset.set(attribName, view, {
|
|
245
|
+
byteStride: bufferView.byteStride,
|
|
246
|
+
byteOffset: accessor.byteOffset,
|
|
247
|
+
count: accessor.count,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
makeGeometry({ computeNormals, meshIndex = 0, primitiveIndex = 0, attPositionName = "POSITION", attNormalName = "NORMAL", attTextureCoordsName = "TEXCOORD_0", } = {}) {
|
|
251
|
+
const primitive = this.getMeshPrimitive(meshIndex, primitiveIndex);
|
|
252
|
+
try {
|
|
253
|
+
const { attributes } = primitive;
|
|
254
|
+
if (!attributes)
|
|
255
|
+
throw new Error("No attributes found!");
|
|
256
|
+
const elements = this.getMeshPrimitiveIndices(meshIndex, primitiveIndex);
|
|
257
|
+
const definition = {
|
|
258
|
+
[attPositionName]: "vec3",
|
|
259
|
+
};
|
|
260
|
+
if (typeof attributes[attNormalName] === "string") {
|
|
261
|
+
definition[attNormalName] = "vec3";
|
|
262
|
+
}
|
|
263
|
+
if (typeof attributes[attTextureCoordsName] === "string") {
|
|
264
|
+
definition[attTextureCoordsName] = "vec2";
|
|
265
|
+
}
|
|
266
|
+
const dataset = new TgdDataset(definition);
|
|
267
|
+
dataset.set(attPositionName, returnFloat32Array(this.getBufferViewData(this.getAccessorByAttributeName(primitive, attPositionName))));
|
|
268
|
+
if (typeof attributes[attNormalName] === "string") {
|
|
269
|
+
dataset.set(attNormalName, returnFloat32Array(this.getBufferViewData(this.getAccessorByAttributeName(primitive, attNormalName))));
|
|
270
|
+
}
|
|
271
|
+
if (typeof attributes[attTextureCoordsName] === "string") {
|
|
272
|
+
dataset.set(attTextureCoordsName, returnFloat32Array(this.getBufferViewData(this.getAccessorByAttributeName(primitive, attTextureCoordsName))));
|
|
273
|
+
}
|
|
274
|
+
return new TgdGeometry({
|
|
275
|
+
computeNormalsIfMissing: computeNormals,
|
|
276
|
+
dataset,
|
|
277
|
+
elements,
|
|
278
|
+
attPosition: attPositionName,
|
|
279
|
+
attNormal: attNormalName,
|
|
280
|
+
attUV: attTextureCoordsName,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
const message = error instanceof Error ? error.message : JSON.stringify(error);
|
|
285
|
+
throw new Error(`Error in primitive #${primitiveIndex} of mesh #${meshIndex}:\n${message}`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
function figureOutView(data, componentType) {
|
|
290
|
+
switch (componentType) {
|
|
291
|
+
case 5120:
|
|
292
|
+
return new Int8Array(data);
|
|
293
|
+
case 5121:
|
|
294
|
+
return new Uint8Array(data);
|
|
295
|
+
case 5122:
|
|
296
|
+
return new Int16Array(data);
|
|
297
|
+
case 5123:
|
|
298
|
+
return new Uint16Array(data);
|
|
299
|
+
case 5125:
|
|
300
|
+
return new Uint32Array(data);
|
|
301
|
+
default:
|
|
302
|
+
return new Float32Array(data);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
function convertTypeToNumber(type) {
|
|
306
|
+
if (typeof type === "number")
|
|
307
|
+
return type;
|
|
308
|
+
switch (type) {
|
|
309
|
+
case "Int8":
|
|
310
|
+
return 5120;
|
|
311
|
+
case "Uint8":
|
|
312
|
+
return 5121;
|
|
313
|
+
case "Int16":
|
|
314
|
+
return 5122;
|
|
315
|
+
case "Uint16":
|
|
316
|
+
return 5123;
|
|
317
|
+
case "Uint32":
|
|
318
|
+
return 5125;
|
|
319
|
+
default:
|
|
320
|
+
return WebGL2RenderingContext.FLOAT;
|
|
321
|
+
}
|
|
322
|
+
throw new Error("Function not implemented.");
|
|
323
|
+
}
|
|
324
|
+
function returnFloat32Array(data) {
|
|
325
|
+
if (data instanceof Float32Array)
|
|
326
|
+
return data;
|
|
327
|
+
throw new Error("We were expecting a Float32Array!");
|
|
328
|
+
}
|
|
329
|
+
function loadImage(url) {
|
|
330
|
+
return new Promise(resolve => {
|
|
331
|
+
const img = new Image();
|
|
332
|
+
img.src = url;
|
|
333
|
+
img.addEventListener("load", () => resolve(img));
|
|
334
|
+
img.addEventListener("error", () => resolve(null));
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhL2dsdGYvZ2x0Zi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUE7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQVVuQyxPQUFPLEVBQ0gsNkJBQTZCLEdBRWhDLE1BQU0sWUFBWSxDQUFBO0FBQ25CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxNQUFNLE9BQU8sVUFBVTtJQXVCbkI7O09BRUc7SUFDSCxZQUFZLE9BQW9CO1FBdEJmLGlCQUFZLEdBR3hCLEVBQUUsQ0FBQTtRQUNVLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBR25DLENBQUE7UUFDYyxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO1FBQzFDLHlCQUFvQixHQUFHLElBQUksR0FBRyxFQVE1QyxDQUFBO1FBTUMsSUFBSSxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ3ZDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxPQUFPLEdBQ1QsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNsRSxNQUFNLElBQUksS0FBSyxDQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/gltf/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TgdFormatGltf } from "../../types/gltf";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://www.khronos.org/files/gltf20-reference-guide.pdf
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseGLB(data: ArrayBuffer): {
|
|
6
|
+
gltf: TgdFormatGltf;
|
|
7
|
+
chunks: ArrayBuffer[];
|
|
8
|
+
chunkTypes: Array<{
|
|
9
|
+
size: number;
|
|
10
|
+
type: "JSON" | "BIN";
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/data/gltf/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,kBAAkB,CAAA;AAErE;;GAEG;AAEH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG;IACzC,IAAI,EAAE,aAAa,CAAA;IACnB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC,CAAA;CAC5D,CAiDA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { assertTgdFormatGltf } from "../../types/gltf.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://www.khronos.org/files/gltf20-reference-guide.pdf
|
|
4
|
+
*/
|
|
5
|
+
export function parseGLB(data) {
|
|
6
|
+
const view = new DataView(data);
|
|
7
|
+
const magicNumber = view.getUint32(0, true);
|
|
8
|
+
if (magicNumber !== 0x46546c67) {
|
|
9
|
+
throw new Error("Invalid magic number for GLB file!");
|
|
10
|
+
}
|
|
11
|
+
const version = view.getUint32(4, true);
|
|
12
|
+
if (version !== 2) {
|
|
13
|
+
throw new Error(`We support only version 2, but this file is in version ${version}!`);
|
|
14
|
+
}
|
|
15
|
+
const length = view.getUint32(8, true);
|
|
16
|
+
let gltf = {};
|
|
17
|
+
const chunks = [];
|
|
18
|
+
const chunkTypes = [];
|
|
19
|
+
let offset = 12;
|
|
20
|
+
while (offset < length) {
|
|
21
|
+
const chunkLength = view.getUint32(offset, true);
|
|
22
|
+
offset += 4;
|
|
23
|
+
const chunkType = view.getUint32(offset, true);
|
|
24
|
+
offset += 4;
|
|
25
|
+
const chunkData = data.slice(offset, offset + chunkLength);
|
|
26
|
+
offset += chunkLength;
|
|
27
|
+
if (chunkType === 0x4e4f534a) {
|
|
28
|
+
// This is the JSON part.
|
|
29
|
+
const json = new TextDecoder().decode(chunkData);
|
|
30
|
+
try {
|
|
31
|
+
const object = JSON.parse(json);
|
|
32
|
+
assertTgdFormatGltf(object);
|
|
33
|
+
gltf = object;
|
|
34
|
+
chunkTypes.push({ type: "JSON", size: chunkData.byteLength });
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error("Unable to parse this JSON file:", json);
|
|
38
|
+
console.error(error);
|
|
39
|
+
throw new Error("Invalid JSON data in the chunk!");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (chunkType === 0x004e4942) {
|
|
43
|
+
chunks.push(chunkData);
|
|
44
|
+
chunkTypes.push({ type: "BIN", size: chunkData.byteLength });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw new Error(`We got an invalid chunk type: 0x${chunkType
|
|
48
|
+
.toString(16)
|
|
49
|
+
.padStart(8, "0")}!`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return { gltf, chunks, chunkTypes };
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RhdGEvZ2x0Zi9wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRXJFOztHQUVHO0FBRUgsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFpQjtJQUt0QyxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMzQyxJQUFJLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZDLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQ1gsMERBQTBELE9BQU8sR0FBRyxDQUN2RSxDQUFBO0lBQ0wsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3RDLElBQUksSUFBSSxHQUFHLEVBQW1CLENBQUE7SUFDOUIsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQTtJQUNoQyxNQUFNLFVBQVUsR0FBa0QsRUFBRSxDQUFBO0lBQ3BFLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUNmLE9BQU8sTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQ2hELE1BQU0sSUFBSSxDQUFDLENBQUE7UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM5QyxNQUFNLElBQUksQ0FBQyxDQUFBO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFBO1FBQzFELE1BQU0sSUFBSSxXQUFXLENBQUE7UUFDckIsSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0IseUJBQXlCO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2hELElBQUksQ0FBQztnQkFDRCxNQUFNLE1BQU0sR0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN4QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFDM0IsSUFBSSxHQUFHLE1BQU0sQ0FBQTtnQkFDYixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7WUFDakUsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDdEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO1lBQ3RELENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtZQUN0QixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLElBQUksS0FBSyxDQUNYLG1DQUFtQyxTQUFTO2lCQUN2QyxRQUFRLENBQUMsRUFBRSxDQUFDO2lCQUNaLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FDM0IsQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUE7QUFDdkMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TgdContext } from "../context";
|
|
2
|
+
import { TgdMaterial } from "../material";
|
|
3
|
+
import { TgdVec4 } from "../math";
|
|
4
|
+
import { TgdPainterNode } from "../painter";
|
|
5
|
+
import { TgdDataGlb } from "../parser";
|
|
6
|
+
import { TgdTexture2D } from "../texture";
|
|
7
|
+
import { TgdFormatGltfMesh, TgdFormatGltfMeshPrimitive, TgdFormatGltfNode } from "../types";
|
|
8
|
+
interface OverrideMaterialOptions {
|
|
9
|
+
data: TgdDataGlb;
|
|
10
|
+
mesh: TgdFormatGltfMesh;
|
|
11
|
+
primitive: TgdFormatGltfMeshPrimitive;
|
|
12
|
+
}
|
|
13
|
+
type MaterialOverrider = (options: OverrideMaterialOptions) => (this: void, options: {
|
|
14
|
+
color?: TgdVec4 | TgdTexture2D;
|
|
15
|
+
}) => TgdMaterial;
|
|
16
|
+
interface MakeMeshGlbPainterOptions {
|
|
17
|
+
data: TgdDataGlb;
|
|
18
|
+
context: TgdContext;
|
|
19
|
+
node: number | string | TgdFormatGltfNode;
|
|
20
|
+
overrideMaterial?: MaterialOverrider;
|
|
21
|
+
/**
|
|
22
|
+
* If defined, we skip all primitive with a material's name in the list.
|
|
23
|
+
*/
|
|
24
|
+
excludeByMaterialName?: string[];
|
|
25
|
+
/**
|
|
26
|
+
* If defined, we skip all primitives with a material's name NOT in the list.
|
|
27
|
+
*/
|
|
28
|
+
includeOnlyMaterialNames?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a `TgdPainterNode` from a node hierarchy from a GLTF structure.
|
|
32
|
+
* @param options
|
|
33
|
+
* * `data`: a GLTF parser
|
|
34
|
+
* * `context`: we will create painters, so we need a TgdContext
|
|
35
|
+
* * `node`: the root node you want to paint.
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
export declare function tgdMakeMeshGlbPainter(options: MakeMeshGlbPainterOptions): {
|
|
39
|
+
painter: TgdPainterNode;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=mesh-glb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh-glb.d.ts","sourceRoot":"","sources":["../../src/factory/mesh-glb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAqB,OAAO,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAEH,cAAc,EAEjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EACH,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EAEpB,MAAM,YAAY,CAAA;AAGnB,UAAU,uBAAuB;IAC7B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,iBAAiB,CAAA;IACvB,SAAS,EAAE,0BAA0B,CAAA;CACxC;AAED,KAAK,iBAAiB,GAAG,CACrB,OAAO,EAAE,uBAAuB,KAC/B,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;CAAE,KAAK,WAAW,CAAA;AAE7E,UAAU,yBAAyB;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAA;IACzC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;IAChC;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;CACtC;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG;IACvE,OAAO,EAAE,cAAc,CAAA;CAC1B,CAKA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { TgdPainterMeshGltf, TgdPainterNode, } from "./../painter/index.js";
|
|
2
|
+
import { isNumber, isString } from "./../types/guards.js";
|
|
3
|
+
/**
|
|
4
|
+
* Create a `TgdPainterNode` from a node hierarchy from a GLTF structure.
|
|
5
|
+
* @param options
|
|
6
|
+
* * `data`: a GLTF parser
|
|
7
|
+
* * `context`: we will create painters, so we need a TgdContext
|
|
8
|
+
* * `node`: the root node you want to paint.
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export function tgdMakeMeshGlbPainter(options) {
|
|
12
|
+
const { data, node = 0 } = options;
|
|
13
|
+
const actualNode = getActualNode(data, node);
|
|
14
|
+
const painter = makeNodePainter(actualNode, options);
|
|
15
|
+
return { painter };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Retrieve node by index or by name
|
|
19
|
+
*/
|
|
20
|
+
function getActualNode(data, node) {
|
|
21
|
+
if (isNumber(node))
|
|
22
|
+
return data.getNode(node);
|
|
23
|
+
if (isString(node))
|
|
24
|
+
return data.getNodeByNameOrThrow(node);
|
|
25
|
+
return node;
|
|
26
|
+
}
|
|
27
|
+
function makeNodePainter(node, options) {
|
|
28
|
+
const transfo = {};
|
|
29
|
+
if (node.translation) {
|
|
30
|
+
transfo.position = node.translation;
|
|
31
|
+
}
|
|
32
|
+
if (node.rotation) {
|
|
33
|
+
transfo.orientation = node.rotation;
|
|
34
|
+
}
|
|
35
|
+
if (node.scale) {
|
|
36
|
+
transfo.scale = node.scale;
|
|
37
|
+
}
|
|
38
|
+
const { data } = options;
|
|
39
|
+
const children = makeMeshPainters(node.mesh, options);
|
|
40
|
+
if (node.children) {
|
|
41
|
+
for (const nodeIndex of node.children) {
|
|
42
|
+
children.push(makeNodePainter(data.getNode(nodeIndex), options));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const painter = new TgdPainterNode({
|
|
46
|
+
name: `TgdPainterNode::${node.name}`,
|
|
47
|
+
transfo,
|
|
48
|
+
children,
|
|
49
|
+
});
|
|
50
|
+
return painter;
|
|
51
|
+
}
|
|
52
|
+
function makeMeshPainters(meshIndex, options) {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
if (!isNumber(meshIndex))
|
|
55
|
+
return [];
|
|
56
|
+
const { data, context, overrideMaterial, excludeByMaterialName, includeOnlyMaterialNames, } = options;
|
|
57
|
+
const mesh = data.getMesh(meshIndex);
|
|
58
|
+
const targets = [];
|
|
59
|
+
for (let primitiveIndex = 0; primitiveIndex < mesh.primitives.length; primitiveIndex++) {
|
|
60
|
+
const primitive = data.getMeshPrimitive(meshIndex, primitiveIndex);
|
|
61
|
+
const material = isNumber(primitive.material)
|
|
62
|
+
? data.getMaterial(primitive.material)
|
|
63
|
+
: null;
|
|
64
|
+
const materialName = (_a = material === null || material === void 0 ? void 0 : material.name) !== null && _a !== void 0 ? _a : `#${primitive.material}`;
|
|
65
|
+
if (excludeByMaterialName &&
|
|
66
|
+
excludeByMaterialName.includes(materialName)) {
|
|
67
|
+
// Skipping this primitive because the material has been excluded.
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (includeOnlyMaterialNames &&
|
|
71
|
+
!includeOnlyMaterialNames.includes(materialName)) {
|
|
72
|
+
// If we have an include only list, we skip everything else.
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const materialFactory = overrideMaterial === null || overrideMaterial === void 0 ? void 0 : overrideMaterial({
|
|
76
|
+
data,
|
|
77
|
+
mesh,
|
|
78
|
+
primitive,
|
|
79
|
+
});
|
|
80
|
+
const target = new TgdPainterMeshGltf(context, {
|
|
81
|
+
name: `${mesh.name}/${(_b = material === null || material === void 0 ? void 0 : material.name) !== null && _b !== void 0 ? _b : ""}`,
|
|
82
|
+
asset: data,
|
|
83
|
+
meshIndex,
|
|
84
|
+
primitiveIndex,
|
|
85
|
+
materialFactory,
|
|
86
|
+
});
|
|
87
|
+
targets.push(target);
|
|
88
|
+
}
|
|
89
|
+
return targets;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1nbGIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9tZXNoLWdsYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGNBQWMsR0FFakIsTUFBTSxjQUFjLENBQUE7QUFTckIsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQTJCdEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFrQztJQUdwRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUE7SUFDbEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGFBQWEsQ0FDbEIsSUFBZ0IsRUFDaEIsSUFBeUM7SUFFekMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzdDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFELE9BQU8sSUFBSSxDQUFBO0FBQ2YsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUNwQixJQUF1QixFQUN2QixPQUFrQztJQUVsQyxNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFBO0lBQzlDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN2QyxDQUFDO0lBQ0QsSUFBSSxJ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
|
package/lib/dist/index.d.ts
CHANGED
package/lib/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AAEvB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AAEvB,cAAc,SAAS,CAAA"}
|