@jfk-solutions/demo3d-file-format 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/raw3d.js ADDED
@@ -0,0 +1,281 @@
1
+ import { decodeText, toUint8Array } from "./binary.js";
2
+ import { Demo3DUnsupportedError, Demo3DZipError } from "./errors.js";
3
+ import { parseDemo3DXmlFast } from "./fast-xml.js";
4
+ import { Demo3DResource } from "./model.js";
5
+ import { defaultParseXml, xmlDocumentToElement } from "./xml.js";
6
+ import { parseZip } from "./zip.js";
7
+ export class Raw3DView {
8
+ name;
9
+ position;
10
+ target;
11
+ constructor(name, position, target) {
12
+ this.name = name;
13
+ this.position = position;
14
+ this.target = target;
15
+ }
16
+ }
17
+ export class Raw3DNode {
18
+ index;
19
+ name;
20
+ parentIndex;
21
+ meshIndex;
22
+ layerIndex;
23
+ materialIndices;
24
+ location;
25
+ rotation;
26
+ scale;
27
+ castsShadow;
28
+ customAttributes;
29
+ xml;
30
+ constructor(index, name, parentIndex, meshIndex, layerIndex, materialIndices, location, rotation, scale, castsShadow, customAttributes, xml) {
31
+ this.index = index;
32
+ this.name = name;
33
+ this.parentIndex = parentIndex;
34
+ this.meshIndex = meshIndex;
35
+ this.layerIndex = layerIndex;
36
+ this.materialIndices = materialIndices;
37
+ this.location = location;
38
+ this.rotation = rotation;
39
+ this.scale = scale;
40
+ this.castsShadow = castsShadow;
41
+ this.customAttributes = customAttributes;
42
+ this.xml = xml;
43
+ }
44
+ }
45
+ export class Raw3DLayer {
46
+ name;
47
+ materialIndex;
48
+ xml;
49
+ constructor(name, materialIndex, xml) {
50
+ this.name = name;
51
+ this.materialIndex = materialIndex;
52
+ this.xml = xml;
53
+ }
54
+ }
55
+ export class Raw3DMaterial {
56
+ red;
57
+ green;
58
+ blue;
59
+ transparency;
60
+ reflectivity;
61
+ textureIndex;
62
+ normalTextureIndex;
63
+ normalScale;
64
+ scaleU;
65
+ scaleV;
66
+ xml;
67
+ constructor(red, green, blue, transparency, reflectivity, textureIndex, normalTextureIndex, normalScale, scaleU, scaleV, xml) {
68
+ this.red = red;
69
+ this.green = green;
70
+ this.blue = blue;
71
+ this.transparency = transparency;
72
+ this.reflectivity = reflectivity;
73
+ this.textureIndex = textureIndex;
74
+ this.normalTextureIndex = normalTextureIndex;
75
+ this.normalScale = normalScale;
76
+ this.scaleU = scaleU;
77
+ this.scaleV = scaleV;
78
+ this.xml = xml;
79
+ }
80
+ }
81
+ export class Raw3DTexture {
82
+ path;
83
+ data;
84
+ xml;
85
+ constructor(path, data, xml) {
86
+ this.path = path;
87
+ this.data = data;
88
+ this.xml = xml;
89
+ }
90
+ }
91
+ export class Raw3DVertexAttribute {
92
+ usage;
93
+ type;
94
+ componentCount;
95
+ offset;
96
+ xml;
97
+ constructor(usage, type, componentCount, offset, xml) {
98
+ this.usage = usage;
99
+ this.type = type;
100
+ this.componentCount = componentCount;
101
+ this.offset = offset;
102
+ this.xml = xml;
103
+ }
104
+ }
105
+ export class Raw3DVertexBuffer {
106
+ path;
107
+ attributes;
108
+ stride;
109
+ data;
110
+ xml;
111
+ constructor(path, attributes, stride, data, xml) {
112
+ this.path = path;
113
+ this.attributes = attributes;
114
+ this.stride = stride;
115
+ this.data = data;
116
+ this.xml = xml;
117
+ }
118
+ }
119
+ export class Raw3DIndexBuffer {
120
+ path;
121
+ data;
122
+ xml;
123
+ constructor(path, data, xml) {
124
+ this.path = path;
125
+ this.data = data;
126
+ this.xml = xml;
127
+ }
128
+ }
129
+ export class Raw3DMesh {
130
+ vertexBufferIndex;
131
+ indexBufferIndices;
132
+ xml;
133
+ constructor(vertexBufferIndex, indexBufferIndices, xml) {
134
+ this.vertexBufferIndex = vertexBufferIndex;
135
+ this.indexBufferIndices = indexBufferIndices;
136
+ this.xml = xml;
137
+ }
138
+ }
139
+ export class Raw3DProject {
140
+ root;
141
+ origin;
142
+ views;
143
+ nodes;
144
+ layers;
145
+ materials;
146
+ textures;
147
+ meshes;
148
+ vertexBuffers;
149
+ indexBuffers;
150
+ constructor(root, origin, views, nodes, layers, materials, textures, meshes, vertexBuffers, indexBuffers) {
151
+ this.root = root;
152
+ this.origin = origin;
153
+ this.views = views;
154
+ this.nodes = nodes;
155
+ this.layers = layers;
156
+ this.materials = materials;
157
+ this.textures = textures;
158
+ this.meshes = meshes;
159
+ this.vertexBuffers = vertexBuffers;
160
+ this.indexBuffers = indexBuffers;
161
+ }
162
+ }
163
+ export class Raw3DPackage {
164
+ entries;
165
+ modelEntryName;
166
+ modelXml;
167
+ model;
168
+ thumbnail;
169
+ aspects;
170
+ constructor(entries, modelEntryName, modelXml, model, thumbnail, aspects) {
171
+ this.entries = entries;
172
+ this.modelEntryName = modelEntryName;
173
+ this.modelXml = modelXml;
174
+ this.model = model;
175
+ this.thumbnail = thumbnail;
176
+ this.aspects = aspects;
177
+ }
178
+ }
179
+ export async function parseRaw3D(input, options = {}) {
180
+ const archive = parseZip(toUint8Array(input));
181
+ const entryByPath = new Map(archive.entries.map((entry) => [entry.name.toLowerCase(), entry]));
182
+ const modelEntry = entryByPath.get("model.xml");
183
+ if (!modelEntry) {
184
+ throw new Demo3DZipError('No "Model.xml" scene entry was found in the RAW3D package.');
185
+ }
186
+ if (modelEntry.uncompressedSize === 0) {
187
+ throw new Demo3DUnsupportedError('RAW3D scene entry "Model.xml" is empty.', "RAW3D_EMPTY_MODEL");
188
+ }
189
+ const modelXml = decodeText(await modelEntry.arrayBuffer(), "utf-8");
190
+ const root = options.parseXml || options.xmlParser === "dom"
191
+ ? xmlDocumentToElement((options.parseXml ?? defaultParseXml)(modelXml))
192
+ : parseDemo3DXmlFast(modelXml);
193
+ if (root.localName !== "Scene") {
194
+ throw new Demo3DUnsupportedError(`RAW3D Model.xml has unsupported root element "${root.name}".`, "RAW3D_MODEL_ROOT_UNSUPPORTED");
195
+ }
196
+ const loadData = async (path) => {
197
+ const entry = entryByPath.get(path.toLowerCase());
198
+ return entry ? entry.arrayBuffer() : undefined;
199
+ };
200
+ const model = await extractRaw3DProject(root, loadData);
201
+ const thumbnailEntry = entryByPath.get("thumbnail.png");
202
+ const aspectsEntry = entryByPath.get("aspects.json");
203
+ const [thumbnail, aspects] = await Promise.all([
204
+ thumbnailEntry ? toResource(thumbnailEntry) : undefined,
205
+ aspectsEntry ? toResource(aspectsEntry) : undefined
206
+ ]);
207
+ return new Raw3DPackage(archive.entries.map(toEntryInfo), modelEntry.name, modelXml, model, thumbnail, aspects);
208
+ }
209
+ async function extractRaw3DProject(root, loadData) {
210
+ const textureElements = root.child("Textures")?.childrenNamed("Texture") ?? [];
211
+ const vertexBufferElements = root.child("VertexBuffers")?.childrenNamed("VertexBuffer") ?? [];
212
+ const indexBufferElements = root.child("IndexBuffers")?.childrenNamed("IndexBuffer") ?? [];
213
+ const [textureData, vertexData, indexData] = await Promise.all([
214
+ Promise.all(textureElements.map((element) => loadData(attribute(element, "Path") ?? ""))),
215
+ Promise.all(vertexBufferElements.map((element) => loadData(attribute(element, "Path") ?? ""))),
216
+ Promise.all(indexBufferElements.map((element) => loadData(attribute(element, "Path") ?? "")))
217
+ ]);
218
+ return new Raw3DProject(root, attribute(root, "Origin"), (root.child("Views")?.childrenNamed("View") ?? []).map((element) => new Raw3DView(attribute(element, "Name") ?? "", numberList(attribute(element, "Position")), numberList(attribute(element, "Target")))), (root.child("Nodes")?.childrenNamed("Node") ?? []).map((element, position) => new Raw3DNode(integerAttribute(element, "Index") ?? position, attribute(element, "Name") ?? "", integerAttribute(element, "Parent"), integerAttribute(element, "Mesh"), integerAttribute(element, "Layer"), integerList(attribute(element, "Materials")), numberList(attribute(element, "Location")), numberList(attribute(element, "Rotation")), numberList(attribute(element, "Scale"), [1, 1, 1]), booleanAttribute(element, "CastsShadow", true), parseCustomAttributes(attribute(element, "CustomAttributes")), element)), (root.child("Layers")?.childrenNamed("Layer") ?? []).map((element) => new Raw3DLayer(attribute(element, "Name") ?? "", integerAttribute(element, "Material"), element)), (root.child("Materials")?.childrenNamed("Material") ?? []).map((element) => new Raw3DMaterial(numberAttribute(element, "R", 0), numberAttribute(element, "G", 0), numberAttribute(element, "B", 0), numberAttribute(element, "A", 0), numberAttribute(element, "Reflectivity", 0), integerAttribute(element, "Texture"), integerAttribute(element, "NormalTexture"), numberAttribute(element, "NormalScale", 1), numberAttribute(element, "SU", 1), numberAttribute(element, "SV", 1), element)), textureElements.map((element, index) => new Raw3DTexture(attribute(element, "Path") ?? "", textureData[index], element)), (root.child("Meshes")?.childrenNamed("Mesh") ?? []).map((element) => new Raw3DMesh(integerAttribute(element, "VertexBuffer") ?? -1, integerList(attribute(element, "IndexBuffers")), element)), vertexBufferElements.map((element, index) => {
219
+ let offset = 0;
220
+ const attributes = element.childrenNamed("Attribute").map((attributeElement) => {
221
+ const type = attribute(attributeElement, "Type") ?? "Vector3";
222
+ const componentCount = vectorComponentCount(type);
223
+ const result = new Raw3DVertexAttribute(attribute(attributeElement, "Usage") ?? "", type, componentCount, offset, attributeElement);
224
+ offset += componentCount * 4;
225
+ return result;
226
+ });
227
+ return new Raw3DVertexBuffer(attribute(element, "Path") ?? "", attributes, offset, vertexData[index], element);
228
+ }), indexBufferElements.map((element, index) => new Raw3DIndexBuffer(attribute(element, "Path") ?? "", indexData[index], element)));
229
+ }
230
+ function attribute(element, name) {
231
+ return element.attributes.find((item) => item.localName === name)?.value;
232
+ }
233
+ function numberAttribute(element, name, fallback) {
234
+ const parsed = Number.parseFloat(attribute(element, name) ?? "");
235
+ return Number.isFinite(parsed) ? parsed : fallback;
236
+ }
237
+ function integerAttribute(element, name) {
238
+ const parsed = Number.parseInt(attribute(element, name) ?? "", 10);
239
+ return Number.isFinite(parsed) ? parsed : undefined;
240
+ }
241
+ function booleanAttribute(element, name, fallback) {
242
+ const value = attribute(element, name)?.toLowerCase();
243
+ return value === undefined ? fallback : value !== "false" && value !== "0";
244
+ }
245
+ function numberList(value, fallback = []) {
246
+ if (!value) {
247
+ return [...fallback];
248
+ }
249
+ return value.trim().split(/\s+/).map(Number).filter(Number.isFinite);
250
+ }
251
+ function integerList(value) {
252
+ return numberList(value).map((item) => Math.trunc(item));
253
+ }
254
+ function vectorComponentCount(type) {
255
+ const match = /Vector([1-4])$/i.exec(type);
256
+ return match ? Number.parseInt(match[1], 10) : 3;
257
+ }
258
+ function parseCustomAttributes(value) {
259
+ const attributes = new Map();
260
+ const parts = value?.split("|") ?? [];
261
+ for (let index = 0; index + 1 < parts.length; index += 2) {
262
+ if (parts[index]) {
263
+ attributes.set(parts[index], parts[index + 1]);
264
+ }
265
+ }
266
+ return attributes;
267
+ }
268
+ function toEntryInfo(entry) {
269
+ return {
270
+ name: entry.name,
271
+ compressedSize: entry.compressedSize,
272
+ uncompressedSize: entry.uncompressedSize,
273
+ compressionMethod: entry.compressionMethod,
274
+ flags: entry.flags,
275
+ crc32: entry.crc32
276
+ };
277
+ }
278
+ async function toResource(entry) {
279
+ return new Demo3DResource(entry.name, toEntryInfo(entry), await entry.arrayBuffer());
280
+ }
281
+ //# sourceMappingURL=raw3d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw3d.js","sourceRoot":"","sources":["../src/raw3d.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type * as Three from "three";
2
2
  import { Demo3DMaterial, Demo3DMesh, Demo3DPackage, Demo3DProject } from "../model.js";
3
+ export { createRaw3DThreeGroup, createRaw3DThreeScene, decodeRaw3DThreeGeometry, type Raw3DThreeModule, type Raw3DThreeOptions, type Raw3DThreeScene, type Raw3DThreeStats, type Raw3DThreeWarning } from "./raw3d.js";
3
4
  export { createDemo3DThreeRenderer, type Demo3DThreeCanvasRendererOptions, type Demo3DThreeModule, type Demo3DThreeRendererInstance, type Demo3DThreeRendererFallback, type Demo3DThreeRendererResult, type Demo3DThreeRenderBackend, type Demo3DThreeWebGPUModule } from "./renderer.js";
4
5
  export type ThreeModule = typeof Three;
5
6
  export interface Demo3DThreeWarning {
@@ -15,6 +16,7 @@ export interface Demo3DThreeRendererOptions {
15
16
  readonly showPlaceholders?: boolean;
16
17
  readonly renderText?: boolean;
17
18
  readonly renderProceduralBelts?: boolean;
19
+ readonly renderProceduralRacks?: boolean;
18
20
  readonly renderProceduralSupportStands?: boolean;
19
21
  readonly renderProceduralConveyorSides?: boolean;
20
22
  readonly renderProceduralPhotoEyes?: boolean;
@@ -38,6 +40,7 @@ export interface Demo3DThreeStats {
38
40
  lines: number;
39
41
  directVisuals: number;
40
42
  proceduralBelts: number;
43
+ proceduralRacks: number;
41
44
  proceduralSupportStands: number;
42
45
  proceduralConveyorSides: number;
43
46
  proceduralPhotoEyes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/three/index.ts"],"names":[],"mappings":"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"}