@flighthq/scene3d-formats 0.2.1-next.840.857425c

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.
Files changed (74) hide show
  1. package/dist/awd2Inflate.d.ts +4 -0
  2. package/dist/awd2Inflate.d.ts.map +1 -0
  3. package/dist/awd2Inflate.js +249 -0
  4. package/dist/awd2Inflate.js.map +1 -0
  5. package/dist/awd2Parse.d.ts +7 -0
  6. package/dist/awd2Parse.d.ts.map +1 -0
  7. package/dist/awd2Parse.js +1533 -0
  8. package/dist/awd2Parse.js.map +1 -0
  9. package/dist/awd2Schema.d.ts +44 -0
  10. package/dist/awd2Schema.d.ts.map +1 -0
  11. package/dist/awd2Schema.js +67 -0
  12. package/dist/awd2Schema.js.map +1 -0
  13. package/dist/gltfParse.d.ts +9 -0
  14. package/dist/gltfParse.d.ts.map +1 -0
  15. package/dist/gltfParse.js +1456 -0
  16. package/dist/gltfParse.js.map +1 -0
  17. package/dist/gltfPunctualLights.d.ts +3 -0
  18. package/dist/gltfPunctualLights.d.ts.map +1 -0
  19. package/dist/gltfPunctualLights.js +103 -0
  20. package/dist/gltfPunctualLights.js.map +1 -0
  21. package/dist/index.d.ts +12 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +12 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/md2Parse.d.ts +5 -0
  26. package/dist/md2Parse.d.ts.map +1 -0
  27. package/dist/md2Parse.js +408 -0
  28. package/dist/md2Parse.js.map +1 -0
  29. package/dist/md2Schema.d.ts +12 -0
  30. package/dist/md2Schema.d.ts.map +1 -0
  31. package/dist/md2Schema.js +193 -0
  32. package/dist/md2Schema.js.map +1 -0
  33. package/dist/md5AnimParse.d.ts +3 -0
  34. package/dist/md5AnimParse.d.ts.map +1 -0
  35. package/dist/md5AnimParse.js +385 -0
  36. package/dist/md5AnimParse.js.map +1 -0
  37. package/dist/md5Parse.d.ts +6 -0
  38. package/dist/md5Parse.d.ts.map +1 -0
  39. package/dist/md5Parse.js +635 -0
  40. package/dist/md5Parse.js.map +1 -0
  41. package/dist/mtlParse.d.ts +3 -0
  42. package/dist/mtlParse.d.ts.map +1 -0
  43. package/dist/mtlParse.js +256 -0
  44. package/dist/mtlParse.js.map +1 -0
  45. package/dist/objParse.d.ts +5 -0
  46. package/dist/objParse.d.ts.map +1 -0
  47. package/dist/objParse.js +464 -0
  48. package/dist/objParse.js.map +1 -0
  49. package/dist/sceneSkeleton.d.ts +3 -0
  50. package/dist/sceneSkeleton.d.ts.map +1 -0
  51. package/dist/sceneSkeleton.js +34 -0
  52. package/dist/sceneSkeleton.js.map +1 -0
  53. package/dist/shared.d.ts +18 -0
  54. package/dist/shared.d.ts.map +1 -0
  55. package/dist/shared.js +143 -0
  56. package/dist/shared.js.map +1 -0
  57. package/dist/threeDsParse.d.ts +4 -0
  58. package/dist/threeDsParse.d.ts.map +1 -0
  59. package/dist/threeDsParse.js +718 -0
  60. package/dist/threeDsParse.js.map +1 -0
  61. package/package.json +55 -0
  62. package/src/awd2Inflate.test.ts +118 -0
  63. package/src/awd2Parse.test.ts +2431 -0
  64. package/src/gltfParse.test.ts +2339 -0
  65. package/src/gltfPunctualLights.test.ts +184 -0
  66. package/src/gltfTreeShaking.test.ts +45 -0
  67. package/src/md2Parse.test.ts +1033 -0
  68. package/src/md5AnimParse.test.ts +673 -0
  69. package/src/md5Parse.test.ts +1094 -0
  70. package/src/mtlParse.test.ts +244 -0
  71. package/src/objParse.test.ts +690 -0
  72. package/src/sceneSkeleton.test.ts +35 -0
  73. package/src/shared.test.ts +210 -0
  74. package/src/threeDsParse.test.ts +1089 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md5Parse.js","sourceRoot":"","sources":["../src/md5Parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ImportDiagnostic, ObjMaterialLibrary } from '@flighthq/types';
2
+ export declare function parseObjMaterialLibrary(source: string, diagnostics?: ImportDiagnostic[]): ObjMaterialLibrary;
3
+ //# sourceMappingURL=mtlParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtlParse.d.ts","sourceRoot":"","sources":["../src/mtlParse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAe,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAQzF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAqK5G"}
@@ -0,0 +1,256 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics';
2
+ import { ImportDiagnosticSeverity } from '@flighthq/types';
3
+ // Parses a Wavefront MTL material library from its text source. Every recognized directive
4
+ // (`newmtl`, `Ka`, `Kd`, `Ks`, `Ns`, `d`, `Tr`, `illum`, `map_Kd`, `map_Ka`, `map_Ks`,
5
+ // `map_Bump`/`bump`) is read; unrecognized directives are silently skipped. Malformed values
6
+ // record a diagnostic and fall back to defaults rather than throwing. Repeated malformed lines are
7
+ // aggregated into one crumb per (kind, discriminator) — the collector contract forbids a per-line report.
8
+ export function parseObjMaterialLibrary(source, diagnostics) {
9
+ const materials = new Map();
10
+ let current = null;
11
+ const lines = source.split('\n');
12
+ // Tallied during the loop and flushed once after — null (every tally a no-op) when no collector is engaged.
13
+ const mtlDrops = diagnostics ? new Map() : null;
14
+ for (let i = 0; i < lines.length; i++) {
15
+ const raw = lines[i].trim();
16
+ if (raw.length === 0 || raw.charCodeAt(0) === 35)
17
+ continue; // skip empty and # comments
18
+ const spaceIndex = raw.indexOf(' ');
19
+ if (spaceIndex < 0) {
20
+ // A bare recognized directive carries no value — a data-dropping branch, not a silent no-op. Before a
21
+ // material it is a directive-before-material drop; after one, its value/filename is simply missing.
22
+ if (raw === 'newmtl') {
23
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Drop, 'mtl.newmtl-no-name', '', { firstLine: i + 1 });
24
+ }
25
+ else if (raw === 'Ka' || raw === 'Kd' || raw === 'Ks') {
26
+ if (current === null)
27
+ tallyDirectiveBeforeMaterial(mtlDrops, raw, i);
28
+ else
29
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Recover, 'mtl.color-malformed', 'too-few-components', {
30
+ firstDirective: raw,
31
+ firstLine: i + 1,
32
+ reason: 'too-few-components',
33
+ });
34
+ }
35
+ else if (raw === 'Ns' || raw === 'd' || raw === 'Tr' || raw === 'illum') {
36
+ if (current === null)
37
+ tallyDirectiveBeforeMaterial(mtlDrops, raw, i);
38
+ else
39
+ tallyInvalidValue(mtlDrops, raw, i);
40
+ }
41
+ else if (raw === 'map_Kd' || raw === 'map_Ka' || raw === 'map_Ks' || raw === 'map_Bump' || raw === 'bump') {
42
+ if (current === null)
43
+ tallyDirectiveBeforeMaterial(mtlDrops, raw, i);
44
+ else
45
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Drop, 'mtl.map-no-filename', raw, {
46
+ directive: raw,
47
+ firstLine: i + 1,
48
+ });
49
+ }
50
+ continue;
51
+ }
52
+ const directive = raw.slice(0, spaceIndex);
53
+ const args = raw.slice(spaceIndex + 1).trim();
54
+ switch (directive) {
55
+ case 'newmtl': {
56
+ current = createDefaultObjMaterial(args);
57
+ materials.set(args, current);
58
+ break;
59
+ }
60
+ case 'Ka': {
61
+ if (current === null) {
62
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
63
+ break;
64
+ }
65
+ const c = parseColor(args, mtlDrops, directive, i);
66
+ if (c !== null)
67
+ current.ambient = c;
68
+ break;
69
+ }
70
+ case 'Kd': {
71
+ if (current === null) {
72
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
73
+ break;
74
+ }
75
+ const c = parseColor(args, mtlDrops, directive, i);
76
+ if (c !== null)
77
+ current.diffuse = c;
78
+ break;
79
+ }
80
+ case 'Ks': {
81
+ if (current === null) {
82
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
83
+ break;
84
+ }
85
+ const c = parseColor(args, mtlDrops, directive, i);
86
+ if (c !== null)
87
+ current.specular = c;
88
+ break;
89
+ }
90
+ case 'Ns': {
91
+ if (current === null) {
92
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
93
+ break;
94
+ }
95
+ const v = parseFloat(args);
96
+ if (Number.isFinite(v))
97
+ current.specularExponent = v;
98
+ else
99
+ tallyInvalidValue(mtlDrops, directive, i);
100
+ break;
101
+ }
102
+ case 'd': {
103
+ if (current === null) {
104
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
105
+ break;
106
+ }
107
+ const v = parseFloat(args);
108
+ if (Number.isFinite(v))
109
+ current.dissolve = v;
110
+ else
111
+ tallyInvalidValue(mtlDrops, directive, i);
112
+ break;
113
+ }
114
+ case 'Tr': {
115
+ if (current === null) {
116
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
117
+ break;
118
+ }
119
+ const v = parseFloat(args);
120
+ if (Number.isFinite(v))
121
+ current.dissolve = 1 - v;
122
+ else
123
+ tallyInvalidValue(mtlDrops, directive, i);
124
+ break;
125
+ }
126
+ case 'illum': {
127
+ if (current === null) {
128
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
129
+ break;
130
+ }
131
+ const v = parseInt(args, 10);
132
+ if (Number.isFinite(v))
133
+ current.illumination = v;
134
+ else
135
+ tallyInvalidValue(mtlDrops, directive, i);
136
+ break;
137
+ }
138
+ case 'map_Kd': {
139
+ if (current === null) {
140
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
141
+ break;
142
+ }
143
+ current.mapDiffuse = args;
144
+ break;
145
+ }
146
+ case 'map_Ka': {
147
+ if (current === null) {
148
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
149
+ break;
150
+ }
151
+ current.mapAmbient = args;
152
+ break;
153
+ }
154
+ case 'map_Ks': {
155
+ if (current === null) {
156
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
157
+ break;
158
+ }
159
+ current.mapSpecular = args;
160
+ break;
161
+ }
162
+ case 'map_Bump':
163
+ case 'bump': {
164
+ if (current === null) {
165
+ tallyDirectiveBeforeMaterial(mtlDrops, directive, i);
166
+ break;
167
+ }
168
+ current.mapBump = args;
169
+ break;
170
+ }
171
+ default:
172
+ break;
173
+ }
174
+ }
175
+ // Emit the aggregated tallies here in parseObjMaterialLibrary (the emitting function, so it is the crumbs'
176
+ // origin per the collector contract) — one crumb per (kind, discriminator) with its total count.
177
+ if (mtlDrops !== null) {
178
+ for (const tally of mtlDrops.values()) {
179
+ reportImportDiagnostic(diagnostics, tally.severity, tally.kind, 'parseObjMaterialLibrary', {
180
+ ...tally.detail,
181
+ count: tally.count,
182
+ });
183
+ }
184
+ }
185
+ return { materials };
186
+ }
187
+ function createDefaultObjMaterial(name) {
188
+ return {
189
+ ambient: [0, 0, 0],
190
+ diffuse: [0.8, 0.8, 0.8],
191
+ dissolve: 1,
192
+ illumination: 2,
193
+ mapAmbient: null,
194
+ mapBump: null,
195
+ mapDiffuse: null,
196
+ mapSpecular: null,
197
+ name,
198
+ specular: [0, 0, 0],
199
+ specularExponent: 0,
200
+ };
201
+ }
202
+ // Reads a color triple, tallying a `mtl.color-malformed` drop (keyed by failure reason, first directive
203
+ // kept as an example) and returning null on malformed input so the caller keeps the material's default.
204
+ function parseColor(args, mtlDrops, directive, lineIndex) {
205
+ const parts = args.split(/\s+/);
206
+ if (parts.length < 3) {
207
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Recover, 'mtl.color-malformed', 'too-few-components', {
208
+ firstDirective: directive,
209
+ firstLine: lineIndex + 1,
210
+ reason: 'too-few-components',
211
+ });
212
+ return null;
213
+ }
214
+ const r = parseFloat(parts[0]);
215
+ const g = parseFloat(parts[1]);
216
+ const b = parseFloat(parts[2]);
217
+ if (!Number.isFinite(r) || !Number.isFinite(g) || !Number.isFinite(b)) {
218
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Recover, 'mtl.color-malformed', 'non-numeric', {
219
+ firstDirective: directive,
220
+ firstLine: lineIndex + 1,
221
+ reason: 'non-numeric',
222
+ });
223
+ return null;
224
+ }
225
+ return [r, g, b];
226
+ }
227
+ // A directive carrying (or missing) a value before any `newmtl` drops it — no material to attach to.
228
+ // Aggregated as one crumb; the first offending directive is kept as an example.
229
+ function tallyDirectiveBeforeMaterial(mtlDrops, directive, lineIndex) {
230
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Drop, 'mtl.directive-before-material', '', {
231
+ firstDirective: directive,
232
+ firstLine: lineIndex + 1,
233
+ });
234
+ }
235
+ // A non-numeric (or missing) Ns/d/Tr/illum value is dropped and the material keeps its default (Recover).
236
+ // Keyed by the directive so each property's failures aggregate separately.
237
+ function tallyInvalidValue(mtlDrops, directive, lineIndex) {
238
+ tallyMtlDrop(mtlDrops, ImportDiagnosticSeverity.Recover, 'mtl.invalid-value', directive, {
239
+ directive,
240
+ firstLine: lineIndex + 1,
241
+ });
242
+ }
243
+ // Records one offender against its (kind, discriminator) tally — the aggregate-once alternative to a
244
+ // per-line `reportImportDiagnostic`. No-op (never allocates) when no collector is engaged. `firstDetail` is
245
+ // kept from the FIRST offender; later ones only bump the count.
246
+ function tallyMtlDrop(tallies, severity, kind, discriminator, firstDetail) {
247
+ if (tallies === null)
248
+ return;
249
+ const key = `${kind}|${discriminator}`;
250
+ const existing = tallies.get(key);
251
+ if (existing === undefined)
252
+ tallies.set(key, { count: 1, detail: firstDetail, kind, severity });
253
+ else
254
+ existing.count++;
255
+ }
256
+ //# sourceMappingURL=mtlParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mtlParse.js","sourceRoot":"","sources":["../src/mtlParse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Scene3D } from '@flighthq/types';
2
+ import type { ImportDiagnostic, Scene3DDocument, ObjMaterialLibrary } from '@flighthq/types';
3
+ export declare function createScene3DFromObj(source: string, materials?: Readonly<ObjMaterialLibrary>, diagnostics?: ImportDiagnostic[]): Scene3D;
4
+ export declare function parseObj(source: string, materials?: Readonly<ObjMaterialLibrary>, diagnostics?: ImportDiagnostic[]): Scene3DDocument;
5
+ //# sourceMappingURL=objParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objParse.d.ts","sourceRoot":"","sources":["../src/objParse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAEV,gBAAgB,EAIhB,eAAe,EAKf,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAOzB,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACxC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,OAAO,CAET;AAiBD,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EACxC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,eAAe,CAoOjB"}