@aardworx/wombat.rendering 0.9.30 → 0.9.31

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.
@@ -73,20 +73,16 @@ export function gpuFlipCullByDeterminant(inputUniform, declared = "back") {
73
73
  domain: ["back", "front", "none"],
74
74
  gpu: { kernel: "flipCullByDeterminant", inputUniform, declared },
75
75
  evaluate: (u, declaredFromCtx) => {
76
- const m = u[inputUniform];
77
- // Accept Trafo3d ({forward: M44d}), M44 ({_data}), or row-major
78
- // Float32Array. Reads upper-left 3x3.
79
- const data = m.forward?._data ??
80
- m._data ??
81
- m;
82
- if (data === undefined)
76
+ // Accept Trafo3d ({forward: M44d}) — the wombat.base shape used
77
+ // by SG ModelTrafo or any object with M00..M22 accessors.
78
+ const raw = u[inputUniform];
79
+ const m = raw.forward
80
+ ?? raw;
81
+ if (m === undefined || typeof m.M00 !== "number")
83
82
  return declaredFromCtx;
84
- const m00 = data[0], m01 = data[1], m02 = data[2];
85
- const m10 = data[4], m11 = data[5], m12 = data[6];
86
- const m20 = data[8], m21 = data[9], m22 = data[10];
87
- const det = m00 * (m11 * m22 - m12 * m21)
88
- - m01 * (m10 * m22 - m12 * m20)
89
- + m02 * (m10 * m21 - m11 * m20);
83
+ const det = m.M00 * (m.M11 * m.M22 - m.M12 * m.M21)
84
+ - m.M01 * (m.M10 * m.M22 - m.M12 * m.M20)
85
+ + m.M02 * (m.M10 * m.M21 - m.M11 * m.M20);
90
86
  return det < 0 ? flipCull(declaredFromCtx) : declaredFromCtx;
91
87
  },
92
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/runtime/derivedModes/rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule.js","sourceRoot":"","sources":["../../../src/runtime/derivedModes/rule.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oEAAoE;AACpE,iBAAiB;AACjB,EAAE;AACF,mEAAmE;AACnE,kEAAkE;AAClE,oEAAoE;AACpE,oEAAoE;AACpE,iEAAiE;AACjE,iEAAiE;AACjE,sBAAsB;AACtB,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,4DAA4D;AAC5D,EAAE;AACF,uEAAuE;AACvE,oEAAoE;AACpE,oDAAoD;AA8EpD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,WAAW,CACzB,IAAO,EACP,QAA+B,EAC/B,UAA6D,EAAE;IAE/D,MAAM,GAAG,GAAuB,OAAO,CAAC,MAAM,KAAK,SAAS;QAC1D,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QACrE,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;WAClC,CAAqC,CAAC,iBAAiB,KAAK,IAAI,CAAC;AAC3E,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,QAAQ,CAAC,CAAW;IAClC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,wBAAwB,CACtC,YAAoB,EACpB,WAGI,MAAM;IAEV,OAAO;QACL,iBAAiB,EAAE,IAAI;QACvB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;QACjC,GAAG,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,YAAY,EAAE,QAAQ,EAAE;QAChE,QAAQ,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE;YAC/B,gEAAgE;YAChE,4DAA4D;YAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAI5B,MAAM,CAAC,GACJ,GAAuB,CAAC,OAAO;mBAC5B,GAAS,CAAC;YAChB,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,eAAe,CAAC;YACzE,MAAM,GAAG,GACP,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;kBACvC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;kBACvC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QAC/D,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aardworx/wombat.rendering",
3
- "version": "0.9.30",
3
+ "version": "0.9.31",
4
4
  "description": "WebGPU rendering layer for the Wombat TypeScript stack — RenderObject/RenderTask/runtime + window glue, port of Aardvark.Rendering's lower layers on top of WebGPU and wombat.shader.",
5
5
  "license": "MIT",
6
6
  "author": "krauthaufen",
@@ -163,20 +163,20 @@ export function gpuFlipCullByDeterminant(
163
163
  domain: ["back", "front", "none"],
164
164
  gpu: { kernel: "flipCullByDeterminant", inputUniform, declared },
165
165
  evaluate: (u, declaredFromCtx) => {
166
- const m = u[inputUniform] as { forward?: { _data?: Float64Array | Float32Array } } | { _data?: Float64Array | Float32Array };
167
- // Accept Trafo3d ({forward: M44d}), M44 ({_data}), or row-major
168
- // Float32Array. Reads upper-left 3x3.
169
- const data: ArrayLike<number> | undefined =
170
- (m as { forward?: { _data?: ArrayLike<number> } }).forward?._data ??
171
- (m as { _data?: ArrayLike<number> })._data ??
172
- (m as unknown as ArrayLike<number>);
173
- if (data === undefined) return declaredFromCtx;
174
- const m00 = data[0]!, m01 = data[1]!, m02 = data[2]!;
175
- const m10 = data[4]!, m11 = data[5]!, m12 = data[6]!;
176
- const m20 = data[8]!, m21 = data[9]!, m22 = data[10]!;
177
- const det = m00 * (m11 * m22 - m12 * m21)
178
- - m01 * (m10 * m22 - m12 * m20)
179
- + m02 * (m10 * m21 - m11 * m20);
166
+ // Accept Trafo3d ({forward: M44d}) the wombat.base shape used
167
+ // by SG ModelTrafo or any object with M00..M22 accessors.
168
+ const raw = u[inputUniform];
169
+ type M = { M00: number; M01: number; M02: number;
170
+ M10: number; M11: number; M12: number;
171
+ M20: number; M21: number; M22: number };
172
+ const m: M | undefined =
173
+ (raw as { forward?: M }).forward
174
+ ?? (raw as M);
175
+ if (m === undefined || typeof m.M00 !== "number") return declaredFromCtx;
176
+ const det =
177
+ m.M00 * (m.M11 * m.M22 - m.M12 * m.M21)
178
+ - m.M01 * (m.M10 * m.M22 - m.M12 * m.M20)
179
+ + m.M02 * (m.M10 * m.M21 - m.M11 * m.M20);
180
180
  return det < 0 ? flipCull(declaredFromCtx) : declaredFromCtx;
181
181
  },
182
182
  };