@flighthq/mesh 0.2.1-next.451.d9a4a4e → 0.2.1-next.530.a223ca9

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 (39) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/meshGeometryAttributes.d.ts +26 -0
  6. package/dist/meshGeometryAttributes.d.ts.map +1 -1
  7. package/dist/meshGeometryAttributes.js +186 -2
  8. package/dist/meshGeometryAttributes.js.map +1 -1
  9. package/dist/meshGeometryCompute.d.ts +1 -0
  10. package/dist/meshGeometryCompute.d.ts.map +1 -1
  11. package/dist/meshGeometryCompute.js +11 -0
  12. package/dist/meshGeometryCompute.js.map +1 -1
  13. package/dist/meshGeometryDeformationClone.d.ts +3 -0
  14. package/dist/meshGeometryDeformationClone.d.ts.map +1 -0
  15. package/dist/meshGeometryDeformationClone.js +47 -0
  16. package/dist/meshGeometryDeformationClone.js.map +1 -0
  17. package/dist/meshGeometryIndex.d.ts +3 -0
  18. package/dist/meshGeometryIndex.d.ts.map +1 -1
  19. package/dist/meshGeometryIndex.js +138 -9
  20. package/dist/meshGeometryIndex.js.map +1 -1
  21. package/dist/meshGeometryLayout.d.ts.map +1 -1
  22. package/dist/meshGeometryLayout.js +94 -45
  23. package/dist/meshGeometryLayout.js.map +1 -1
  24. package/dist/meshGeometryOperations.d.ts +6 -0
  25. package/dist/meshGeometryOperations.d.ts.map +1 -1
  26. package/dist/meshGeometryOperations.js +34 -0
  27. package/dist/meshGeometryOperations.js.map +1 -1
  28. package/dist/meshGeometrySubset.d.ts +1 -0
  29. package/dist/meshGeometrySubset.d.ts.map +1 -1
  30. package/dist/meshGeometrySubset.js +22 -0
  31. package/dist/meshGeometrySubset.js.map +1 -1
  32. package/package.json +4 -4
  33. package/src/meshGeometryAttributes.test.ts +182 -0
  34. package/src/meshGeometryCompute.test.ts +16 -0
  35. package/src/meshGeometryDeformationClone.test.ts +59 -0
  36. package/src/meshGeometryIndex.test.ts +176 -1
  37. package/src/meshGeometryLayout.test.ts +55 -0
  38. package/src/meshGeometryOperations.test.ts +56 -0
  39. package/src/meshGeometrySubset.test.ts +25 -0
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './meshGeometry';
2
2
  export * from './meshGeometryAttributes';
3
3
  export * from './meshGeometryBuilders';
4
4
  export * from './meshGeometryCompute';
5
+ export * from './meshGeometryDeformationClone';
5
6
  export * from './meshGeometryIndex';
6
7
  export * from './meshGeometryLayout';
7
8
  export * from './meshGeometryOperations';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './meshGeometry';
2
2
  export * from './meshGeometryAttributes';
3
3
  export * from './meshGeometryBuilders';
4
4
  export * from './meshGeometryCompute';
5
+ export * from './meshGeometryDeformationClone';
5
6
  export * from './meshGeometryIndex';
6
7
  export * from './meshGeometryLayout';
7
8
  export * from './meshGeometryOperations';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -1,4 +1,16 @@
1
1
  import type { MeshGeometry, VertexAttribute, VertexAttributeLayout, VertexSemantic } from '@flighthq/types';
2
+ export declare function getMeshGeometryVertexColor0(out: {
3
+ w: number;
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ }, geometry: Readonly<MeshGeometry>, vertexIndex: number): boolean;
8
+ export declare function getMeshGeometryVertexJoints0(out: {
9
+ w: number;
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ }, geometry: Readonly<MeshGeometry>, vertexIndex: number): boolean;
2
14
  export declare function getMeshGeometryVertexNormal(out: {
3
15
  x: number;
4
16
  y: number;
@@ -19,10 +31,24 @@ export declare function getMeshGeometryVertexUv0(out: {
19
31
  x: number;
20
32
  y: number;
21
33
  }, geometry: Readonly<MeshGeometry>, vertexIndex: number): boolean;
34
+ export declare function getMeshGeometryVertexUv1(out: {
35
+ x: number;
36
+ y: number;
37
+ }, geometry: Readonly<MeshGeometry>, vertexIndex: number): boolean;
38
+ export declare function getMeshGeometryVertexWeights0(out: {
39
+ w: number;
40
+ x: number;
41
+ y: number;
42
+ z: number;
43
+ }, geometry: Readonly<MeshGeometry>, vertexIndex: number): boolean;
22
44
  export declare function getVertexAttribute(layout: Readonly<VertexAttributeLayout>, semantic: VertexSemantic): VertexAttribute | null;
23
45
  export declare function getVertexAttributeFloatOffset(layout: Readonly<VertexAttributeLayout>, semantic: VertexSemantic): number;
46
+ export declare function setMeshGeometryVertexColor0(geometry: MeshGeometry, vertexIndex: number, r: number, g: number, b: number, a: number): boolean;
47
+ export declare function setMeshGeometryVertexJoints0(geometry: MeshGeometry, vertexIndex: number, x: number, y: number, z: number, w: number): boolean;
24
48
  export declare function setMeshGeometryVertexNormal(geometry: MeshGeometry, vertexIndex: number, x: number, y: number, z: number): boolean;
25
49
  export declare function setMeshGeometryVertexPosition(geometry: MeshGeometry, vertexIndex: number, x: number, y: number, z: number): boolean;
26
50
  export declare function setMeshGeometryVertexTangent(geometry: MeshGeometry, vertexIndex: number, x: number, y: number, z: number, w: number): boolean;
27
51
  export declare function setMeshGeometryVertexUv0(geometry: MeshGeometry, vertexIndex: number, u: number, v: number): boolean;
52
+ export declare function setMeshGeometryVertexUv1(geometry: MeshGeometry, vertexIndex: number, u: number, v: number): boolean;
53
+ export declare function setMeshGeometryVertexWeights0(geometry: MeshGeometry, vertexIndex: number, x: number, y: number, z: number, w: number): boolean;
28
54
  //# sourceMappingURL=meshGeometryAttributes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meshGeometryAttributes.d.ts","sourceRoot":"","sources":["../src/meshGeometryAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAS5G,wBAAgB,2BAA2B,CACzC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAET;AAID,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACxC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAET;AAID,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAYT;AAID,wBAAgB,wBAAwB,CACtC,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,EAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAUT;AAGD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,cAAc,GACvB,eAAe,GAAG,IAAI,CAMxB;AAKD,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,EACvC,QAAQ,EAAE,cAAc,GACvB,MAAM,CAUR;AAID,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAET;AAID,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAET;AAID,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAaT;AAID,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAWnH"}
1
+ {"version":3,"file":"meshGeometryAttributes.d.ts","sourceRoot":"","sources":["../src/meshGeometryAttributes.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,20 @@
2
2
  // Every accessor resolves float offsets through getVertexAttributeFloatOffset, so they work on any
3
3
  // layout — not just the canonical PBR record. set* functions bump geometry.version so backends
4
4
  // know to re-upload.
5
- // Reads the position (x, y, z) of vertex `vertexIndex` into `out`. Returns false when the
6
- // layout has no position semantic or vertexIndex is out of range; out is unchanged.
5
+ // Reads the primary vertex color into `out`. Packed unorm8 values are decoded to [0, 1], while
6
+ // uint8/uint16 values remain integer-valued. A float32x3 color receives the same implicit alpha=1
7
+ // that the GL vertex-input contract supplies. Returns false without touching `out` when absent,
8
+ // malformed, or out of range.
9
+ export function getMeshGeometryVertexColor0(out, geometry, vertexIndex) {
10
+ return getFourComponentAttribute(out, geometry, vertexIndex, 'color0', true);
11
+ }
12
+ // Reads the four primary joint indices. Supports the declared float32x4, uint8x4, and uint16x4
13
+ // encodings so CPU skinning and inspection observe the same values as a backend upload.
14
+ export function getMeshGeometryVertexJoints0(out, geometry, vertexIndex) {
15
+ return getFourComponentAttribute(out, geometry, vertexIndex, 'joints0', false);
16
+ }
17
+ // Reads the normal (x, y, z) of vertex `vertexIndex` into `out`. Returns false when the
18
+ // layout has no normal semantic or vertexIndex is out of range; out is unchanged.
7
19
  export function getMeshGeometryVertexNormal(out, geometry, vertexIndex) {
8
20
  return getFloat3Attribute(out, geometry, vertexIndex, 'normal');
9
21
  }
@@ -44,6 +56,15 @@ export function getMeshGeometryVertexUv0(out, geometry, vertexIndex) {
44
56
  out.y = geometry.vertices[base + 1];
45
57
  return true;
46
58
  }
59
+ // Reads the secondary texture coordinate channel. This is deliberately a sibling of uv0 rather
60
+ // than a material-specific helper: which map consumes uv1 is material policy.
61
+ export function getMeshGeometryVertexUv1(out, geometry, vertexIndex) {
62
+ return getFloat2Attribute(out, geometry, vertexIndex, 'uv1');
63
+ }
64
+ // Reads the four primary skin weights, decoding unorm8 storage when present.
65
+ export function getMeshGeometryVertexWeights0(out, geometry, vertexIndex) {
66
+ return getFourComponentAttribute(out, geometry, vertexIndex, 'weights0', false);
67
+ }
47
68
  // Returns the VertexAttribute for the given semantic from the layout, or null if absent.
48
69
  export function getVertexAttribute(layout, semantic) {
49
70
  const attrs = layout.attributes;
@@ -68,6 +89,15 @@ export function getVertexAttributeFloatOffset(layout, semantic) {
68
89
  }
69
90
  return -1;
70
91
  }
92
+ // Writes color0 through its declared storage format. Packed writes clamp to the representable range;
93
+ // float32x3 storage intentionally ignores alpha. Bumps geometry.version exactly once on success.
94
+ export function setMeshGeometryVertexColor0(geometry, vertexIndex, r, g, b, a) {
95
+ return setFourComponentAttribute(geometry, vertexIndex, 'color0', r, g, b, a, true);
96
+ }
97
+ // Writes the four primary joint indices through float or packed unsigned storage.
98
+ export function setMeshGeometryVertexJoints0(geometry, vertexIndex, x, y, z, w) {
99
+ return setFourComponentAttribute(geometry, vertexIndex, 'joints0', x, y, z, w, false);
100
+ }
71
101
  // Writes the normal (x, y, z) for vertex `vertexIndex`. Bumps geometry.version. Returns false
72
102
  // when the layout has no normal semantic or vertexIndex is out of range; geometry is unchanged.
73
103
  export function setMeshGeometryVertexNormal(geometry, vertexIndex, x, y, z) {
@@ -112,6 +142,160 @@ export function setMeshGeometryVertexUv0(geometry, vertexIndex, u, v) {
112
142
  geometry.version++;
113
143
  return true;
114
144
  }
145
+ // Writes the secondary texture coordinate channel.
146
+ export function setMeshGeometryVertexUv1(geometry, vertexIndex, u, v) {
147
+ return setFloat2Attribute(geometry, vertexIndex, 'uv1', u, v);
148
+ }
149
+ // Writes the four primary skin weights, quantizing and clamping unorm8 storage when present.
150
+ export function setMeshGeometryVertexWeights0(geometry, vertexIndex, x, y, z, w) {
151
+ return setFourComponentAttribute(geometry, vertexIndex, 'weights0', x, y, z, w, false);
152
+ }
153
+ function getFloat2Attribute(out, geometry, vertexIndex, semantic) {
154
+ const floatOffset = getVertexAttributeFloatOffset(geometry.layout, semantic);
155
+ if (floatOffset < 0)
156
+ return false;
157
+ const attribute = getVertexAttribute(geometry.layout, semantic);
158
+ if (attribute?.format !== 'float32x2')
159
+ return false;
160
+ const floatsPerVertex = geometry.layout.stride / 4;
161
+ const vertexCount = floatsPerVertex > 0 ? Math.floor(geometry.vertices.length / floatsPerVertex) : 0;
162
+ if (vertexIndex < 0 || vertexIndex >= vertexCount)
163
+ return false;
164
+ const base = vertexIndex * floatsPerVertex + floatOffset;
165
+ out.x = geometry.vertices[base];
166
+ out.y = geometry.vertices[base + 1];
167
+ return true;
168
+ }
169
+ function getFourComponentAttribute(out, geometry, vertexIndex, semantic, allowFloat3) {
170
+ const location = getAttributeByteLocation(geometry, vertexIndex, semantic);
171
+ if (location === null)
172
+ return false;
173
+ const { attribute, byteOffset, view } = location;
174
+ const componentCount = getVertexFormatComponentCount(attribute.format);
175
+ if (componentCount !== 4 && !(allowFloat3 && attribute.format === 'float32x3'))
176
+ return false;
177
+ const x = readVertexComponent(view, byteOffset, attribute.format, 0);
178
+ const y = readVertexComponent(view, byteOffset, attribute.format, 1);
179
+ const z = readVertexComponent(view, byteOffset, attribute.format, 2);
180
+ const w = componentCount === 4 ? readVertexComponent(view, byteOffset, attribute.format, 3) : 1;
181
+ out.x = x;
182
+ out.y = y;
183
+ out.z = z;
184
+ out.w = w;
185
+ return true;
186
+ }
187
+ function setFloat2Attribute(geometry, vertexIndex, semantic, x, y) {
188
+ const attribute = getVertexAttribute(geometry.layout, semantic);
189
+ if (attribute?.format !== 'float32x2')
190
+ return false;
191
+ const location = getAttributeByteLocation(geometry, vertexIndex, semantic);
192
+ if (location === null)
193
+ return false;
194
+ location.view.setFloat32(location.byteOffset, x, true);
195
+ location.view.setFloat32(location.byteOffset + 4, y, true);
196
+ geometry.version++;
197
+ return true;
198
+ }
199
+ function setFourComponentAttribute(geometry, vertexIndex, semantic, x, y, z, w, allowFloat3) {
200
+ const location = getAttributeByteLocation(geometry, vertexIndex, semantic);
201
+ if (location === null)
202
+ return false;
203
+ const { attribute, byteOffset, view } = location;
204
+ const componentCount = getVertexFormatComponentCount(attribute.format);
205
+ if (componentCount !== 4 && !(allowFloat3 && attribute.format === 'float32x3'))
206
+ return false;
207
+ writeVertexComponent(view, byteOffset, attribute.format, 0, x);
208
+ writeVertexComponent(view, byteOffset, attribute.format, 1, y);
209
+ writeVertexComponent(view, byteOffset, attribute.format, 2, z);
210
+ if (componentCount === 4)
211
+ writeVertexComponent(view, byteOffset, attribute.format, 3, w);
212
+ geometry.version++;
213
+ return true;
214
+ }
215
+ function getAttributeByteLocation(geometry, vertexIndex, semantic) {
216
+ const attribute = getVertexAttribute(geometry.layout, semantic);
217
+ if (attribute === null || vertexIndex < 0 || geometry.layout.stride <= 0)
218
+ return null;
219
+ const attributeByteLength = getVertexFormatByteLength(attribute.format);
220
+ if (attributeByteLength === 0 || attribute.byteOffset < 0)
221
+ return null;
222
+ if (attribute.byteOffset + attributeByteLength > geometry.layout.stride)
223
+ return null;
224
+ const vertexCount = Math.floor(geometry.vertices.byteLength / geometry.layout.stride);
225
+ if (vertexIndex >= vertexCount)
226
+ return null;
227
+ const byteOffset = vertexIndex * geometry.layout.stride + attribute.byteOffset;
228
+ if (byteOffset + attributeByteLength > geometry.vertices.byteLength)
229
+ return null;
230
+ return {
231
+ attribute,
232
+ byteOffset,
233
+ view: new DataView(geometry.vertices.buffer, geometry.vertices.byteOffset, geometry.vertices.byteLength),
234
+ };
235
+ }
236
+ function getVertexFormatByteLength(format) {
237
+ switch (format) {
238
+ case 'float32x2':
239
+ return 8;
240
+ case 'float32x3':
241
+ return 12;
242
+ case 'float32x4':
243
+ return 16;
244
+ case 'uint16x4':
245
+ return 8;
246
+ case 'uint8x4':
247
+ case 'unorm8x4':
248
+ return 4;
249
+ }
250
+ }
251
+ function getVertexFormatComponentCount(format) {
252
+ switch (format) {
253
+ case 'float32x2':
254
+ return 2;
255
+ case 'float32x3':
256
+ return 3;
257
+ case 'float32x4':
258
+ case 'uint16x4':
259
+ case 'uint8x4':
260
+ case 'unorm8x4':
261
+ return 4;
262
+ }
263
+ }
264
+ function readVertexComponent(view, byteOffset, format, component) {
265
+ switch (format) {
266
+ case 'float32x2':
267
+ case 'float32x3':
268
+ case 'float32x4':
269
+ return view.getFloat32(byteOffset + component * 4, true);
270
+ case 'uint16x4':
271
+ return view.getUint16(byteOffset + component * 2, true);
272
+ case 'uint8x4':
273
+ return view.getUint8(byteOffset + component);
274
+ case 'unorm8x4':
275
+ return view.getUint8(byteOffset + component) / 255;
276
+ }
277
+ }
278
+ function writeVertexComponent(view, byteOffset, format, component, value) {
279
+ switch (format) {
280
+ case 'float32x2':
281
+ case 'float32x3':
282
+ case 'float32x4':
283
+ view.setFloat32(byteOffset + component * 4, value, true);
284
+ break;
285
+ case 'uint16x4':
286
+ view.setUint16(byteOffset + component * 2, Math.round(clamp(value, 0, 65_535)), true);
287
+ break;
288
+ case 'uint8x4':
289
+ view.setUint8(byteOffset + component, Math.round(clamp(value, 0, 255)));
290
+ break;
291
+ case 'unorm8x4':
292
+ view.setUint8(byteOffset + component, Math.round(clamp(value, 0, 1) * 255));
293
+ break;
294
+ }
295
+ }
296
+ function clamp(value, min, max) {
297
+ return Math.min(max, Math.max(min, value));
298
+ }
115
299
  function getFloat3Attribute(out, geometry, vertexIndex, semantic) {
116
300
  const floatOffset = getVertexAttributeFloatOffset(geometry.layout, semantic);
117
301
  if (floatOffset < 0)
@@ -1 +1 @@
1
- {"version":3,"file":"meshGeometryAttributes.js","sourceRoot":"","sources":["../src/meshGeometryAttributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meshGeometryAttributes.js","sourceRoot":"","sources":["../src/meshGeometryAttributes.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export declare function computeMeshGeometryBounds(out: AabbLike, geometry: Reado
4
4
  export declare function computeMeshGeometryFlatNormals(out: MeshGeometry, geometry: Readonly<MeshGeometry>): void;
5
5
  export declare function computeMeshGeometryNormals(out: MeshGeometry, geometry: Readonly<MeshGeometry>): void;
6
6
  export declare function computeMeshGeometryTangents(out: MeshGeometry, geometry: Readonly<MeshGeometry>): void;
7
+ export declare function refreshMeshGeometryBounds(geometry: MeshGeometry): void;
7
8
  //# sourceMappingURL=meshGeometryCompute.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meshGeometryCompute.d.ts","sourceRoot":"","sources":["../src/meshGeometryCompute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAclF,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAoDjH;AAKD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA+B/F;AASD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA2DxG;AAOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAyDpG;AAQD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA0GrG"}
1
+ {"version":3,"file":"meshGeometryCompute.d.ts","sourceRoot":"","sources":["../src/meshGeometryCompute.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAclF,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAoDjH;AAKD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA+B/F;AASD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA2DxG;AAOD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAyDpG;AAQD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA0GrG;AAID,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAOtE"}
@@ -1,3 +1,4 @@
1
+ import { createAabb } from '@flighthq/geometry';
1
2
  // Per-vertex compute over the canonical interleaved PBR record: position(3) + normal(3) +
2
3
  // tangent(4) + uv0(2) = 12 floats / 48 bytes, stride read from geometry.layout. These functions
3
4
  // derive normals, tangents, and the local-space AABB from `geometry.vertices` (+ `geometry.indices`)
@@ -290,6 +291,16 @@ export function computeMeshGeometryTangents(out, geometry) {
290
291
  target[base + 3] = w;
291
292
  }
292
293
  }
294
+ // Recomputes a geometry's cached local bounds after an in-place vertex edit. Reuses the existing AABB
295
+ // when present and allocates it only on the first refresh; steady-state deformation is allocation-free.
296
+ export function refreshMeshGeometryBounds(geometry) {
297
+ let bounds = geometry.bounds;
298
+ if (bounds === null) {
299
+ bounds = createAabb();
300
+ geometry.bounds = bounds;
301
+ }
302
+ computeMeshGeometryBounds(bounds, geometry);
303
+ }
293
304
  // Canonical interleaved PBR record float offsets within one vertex (stride = 48 bytes / 12 floats):
294
305
  // position[0..2], normal[3..5], tangent[6..9] (w = handedness), uv0[10..11].
295
306
  const NORMAL_OFFSET = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"meshGeometryCompute.js","sourceRoot":"","sources":["../src/meshGeometryCompute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meshGeometryCompute.js","sourceRoot":"","sources":["../src/meshGeometryCompute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MeshGeometry } from '@flighthq/types';
2
+ export declare function cloneMeshGeometryForDeformation(source: Readonly<MeshGeometry>): MeshGeometry;
3
+ //# sourceMappingURL=meshGeometryDeformationClone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meshGeometryDeformationClone.d.ts","sourceRoot":"","sources":["../src/meshGeometryDeformationClone.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAuC,MAAM,iBAAiB,CAAC;AAUzF,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAW5F"}
@@ -0,0 +1,47 @@
1
+ import { createAabb } from '@flighthq/geometry';
2
+ import { cloneMeshGeometry, getMeshGeometryMorphBindPose, getMeshGeometrySkinBindPose } from './meshGeometry';
3
+ import { getVertexAttributeFloatOffset } from './meshGeometryAttributes';
4
+ import { computeMeshGeometryBounds } from './meshGeometryCompute';
5
+ // Clones geometry for an independently updated CPU-deformed mesh. Unlike the general clone, this
6
+ // restores the deepest captured undeformed attributes when the source has already been morphed or
7
+ // skinned, then gives the clone a fresh runtime so its future bind-pose scratch cannot alias source.
8
+ // Rigid callers should keep using cloneMeshGeometry (or share geometry) and pay no extra work.
9
+ export function cloneMeshGeometryForDeformation(source) {
10
+ const clone = cloneMeshGeometry(source);
11
+ const morphBindPose = getMeshGeometryMorphBindPose(source);
12
+ const skinBindPose = getMeshGeometrySkinBindPose(source);
13
+ if (morphBindPose !== null)
14
+ restoreMorphBindPose(clone, morphBindPose);
15
+ else if (skinBindPose !== null)
16
+ restoreSkinBindPose(clone, skinBindPose);
17
+ const bounds = createAabb();
18
+ computeMeshGeometryBounds(bounds, clone);
19
+ clone.bounds = bounds;
20
+ return clone;
21
+ }
22
+ function restoreMorphBindPose(geometry, bindPose) {
23
+ restoreFloat3(geometry, 'position', bindPose.positions);
24
+ if (bindPose.normals !== null)
25
+ restoreFloat3(geometry, 'normal', bindPose.normals);
26
+ if (bindPose.tangents !== null)
27
+ restoreFloat3(geometry, 'tangent', bindPose.tangents);
28
+ }
29
+ function restoreSkinBindPose(geometry, bindPose) {
30
+ restoreFloat3(geometry, 'position', bindPose.positions);
31
+ restoreFloat3(geometry, 'normal', bindPose.normals);
32
+ }
33
+ function restoreFloat3(geometry, semantic, source) {
34
+ const offset = getVertexAttributeFloatOffset(geometry.layout, semantic);
35
+ if (offset < 0)
36
+ return;
37
+ const floatsPerVertex = geometry.layout.stride / 4;
38
+ const vertexCount = Math.min((geometry.vertices.length / floatsPerVertex) | 0, (source.length / 3) | 0);
39
+ for (let vertex = 0; vertex < vertexCount; vertex++) {
40
+ const target = vertex * floatsPerVertex + offset;
41
+ const from = vertex * 3;
42
+ geometry.vertices[target] = source[from];
43
+ geometry.vertices[target + 1] = source[from + 1];
44
+ geometry.vertices[target + 2] = source[from + 2];
45
+ }
46
+ }
47
+ //# sourceMappingURL=meshGeometryDeformationClone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meshGeometryDeformationClone.js","sourceRoot":"","sources":["../src/meshGeometryDeformationClone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,iGAAiG;AACjG,kGAAkG;AAClG,qGAAqG;AACrG,+FAA+F;AAC/F,MAAM,UAAU,+BAA+B,CAAC,MAA8B;IAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,aAAa,KAAK,IAAI;QAAE,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SAClE,IAAI,YAAY,KAAK,IAAI;QAAE,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAsB,EAAE,QAAqC;IACzF,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI;QAAE,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnF,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAsB,EAAE,QAAoC;IACvF,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxD,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CACpB,QAAsB,EACtB,QAA2C,EAC3C,MAA8B;IAE9B,MAAM,MAAM,GAAG,6BAA6B,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxE,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO;IACvB,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxG,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACjD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import type { MeshGeometry } from '@flighthq/types';
2
+ export declare function compactMeshGeometryVertices(geometry: Readonly<MeshGeometry>): MeshGeometry;
2
3
  export declare function computeMeshGeometryWireframeIndices(geometry: Readonly<MeshGeometry>): Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer>;
3
4
  export declare function expandMeshGeometryIndices(geometry: Readonly<MeshGeometry>): MeshGeometry;
5
+ export declare function indexMeshGeometryVertices(geometry: Readonly<MeshGeometry>): MeshGeometry;
6
+ export declare function weldMeshGeometryVertices(geometry: Readonly<MeshGeometry>): MeshGeometry;
4
7
  //# sourceMappingURL=meshGeometryIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meshGeometryIndex.d.ts","sourceRoot":"","sources":["../src/meshGeometryIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAcpD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAoCrD;AAOD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAqBxF"}
1
+ {"version":3,"file":"meshGeometryIndex.d.ts","sourceRoot":"","sources":["../src/meshGeometryIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAapD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CA2C1F;AAQD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,WAAW,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAoCrD;AAQD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAoBxF;AAMD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAQxF;AAOD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,YAAY,CAoDvF"}