@headless-three/renderer 0.1.7 → 0.1.8

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 (58) hide show
  1. package/README.md +227 -52
  2. package/dist/attributes.d.ts +7 -5
  3. package/dist/attributes.d.ts.map +1 -1
  4. package/dist/attributes.js +112 -36
  5. package/dist/attributes.js.map +1 -1
  6. package/dist/camera.d.ts +1 -0
  7. package/dist/camera.d.ts.map +1 -1
  8. package/dist/camera.js +52 -13
  9. package/dist/camera.js.map +1 -1
  10. package/dist/clipping.d.ts +6 -0
  11. package/dist/clipping.d.ts.map +1 -0
  12. package/dist/clipping.js +84 -0
  13. package/dist/clipping.js.map +1 -0
  14. package/dist/color.d.ts +8 -3
  15. package/dist/color.d.ts.map +1 -1
  16. package/dist/color.js +136 -11
  17. package/dist/color.js.map +1 -1
  18. package/dist/index.d.ts +770 -5
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6208 -46
  21. package/dist/index.js.map +1 -1
  22. package/dist/layers.d.ts +3 -0
  23. package/dist/layers.d.ts.map +1 -0
  24. package/dist/layers.js +33 -0
  25. package/dist/layers.js.map +1 -0
  26. package/dist/lights.d.ts +5 -4
  27. package/dist/lights.d.ts.map +1 -1
  28. package/dist/lights.js +473 -77
  29. package/dist/lights.js.map +1 -1
  30. package/dist/loaders.d.ts +92 -0
  31. package/dist/loaders.d.ts.map +1 -0
  32. package/dist/loaders.js +858 -0
  33. package/dist/loaders.js.map +1 -0
  34. package/dist/materials.d.ts +38 -6
  35. package/dist/materials.d.ts.map +1 -1
  36. package/dist/materials.js +4236 -162
  37. package/dist/materials.js.map +1 -1
  38. package/dist/math.js +2 -2
  39. package/dist/math.js.map +1 -1
  40. package/dist/morphs.d.ts.map +1 -1
  41. package/dist/morphs.js +50 -15
  42. package/dist/morphs.js.map +1 -1
  43. package/dist/objects.d.ts +4 -0
  44. package/dist/objects.d.ts.map +1 -0
  45. package/dist/objects.js +25 -0
  46. package/dist/objects.js.map +1 -0
  47. package/dist/scene.d.ts +251 -2
  48. package/dist/scene.d.ts.map +1 -1
  49. package/dist/scene.js +3679 -105
  50. package/dist/scene.js.map +1 -1
  51. package/dist/skinning.d.ts.map +1 -1
  52. package/dist/skinning.js +37 -18
  53. package/dist/skinning.js.map +1 -1
  54. package/dist/types.d.ts +1261 -12
  55. package/dist/types.d.ts.map +1 -1
  56. package/native.d.ts +761 -3
  57. package/native.js +54 -52
  58. package/package.json +20 -9
package/dist/color.js CHANGED
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_BACKGROUND_COLOR = void 0;
3
4
  exports.colorLikeToArray = colorLikeToArray;
5
+ exports.strictColorLikeToArray = strictColorLikeToArray;
6
+ exports.validatedColorLikeToArray = validatedColorLikeToArray;
7
+ exports.cssColorStringToArray = cssColorStringToArray;
8
+ exports.cssColorStringToLinearArray = cssColorStringToLinearArray;
4
9
  exports.normalizeColorArray = normalizeColorArray;
5
10
  exports.resolveBackground = resolveBackground;
6
11
  const math_1 = require("./math");
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ const { Color: ThreeColor, ColorManagement: ThreeColorManagement } = require('three');
14
+ exports.DEFAULT_BACKGROUND_COLOR = [0.04, 0.045, 0.05, 1];
7
15
  function colorLikeToArray(value) {
8
16
  if (!value)
9
17
  return null;
@@ -15,22 +23,139 @@ function colorLikeToArray(value) {
15
23
  }
16
24
  return null;
17
25
  }
18
- function normalizeColorArray(values) {
26
+ function strictColorLikeToArray(value, label) {
27
+ if (!value)
28
+ return null;
29
+ if (Array.isArray(value))
30
+ return normalizeColorArray(value, label);
31
+ if (typeof value === 'string')
32
+ return cssColorStringToArray(value, label);
33
+ if (typeof value !== 'object')
34
+ return null;
35
+ const color = value;
36
+ if (!isColorShaped(color))
37
+ return null;
38
+ return [
39
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.r, `${label}.r`)),
40
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.g, `${label}.g`)),
41
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.b, `${label}.b`)),
42
+ (0, math_1.clamp01)(color.a === undefined ? 1 : assertFiniteColorComponent(color.a, `${label}.a`)),
43
+ ];
44
+ }
45
+ function validatedColorLikeToArray(value, label) {
46
+ if (value == null)
47
+ return null;
48
+ if (Array.isArray(value))
49
+ return normalizeColorArray(value, label);
50
+ if (typeof value === 'string')
51
+ return cssColorStringToLinearArray(value, label);
52
+ if (typeof value !== 'object') {
53
+ throw new TypeError(`${label} must be a color-like object, CSS color string, or [r, g, b].`);
54
+ }
55
+ const color = value;
56
+ if (!isColorShaped(color)) {
57
+ throw new TypeError(`${label} must be a color-like object, CSS color string, or [r, g, b].`);
58
+ }
59
+ return [
60
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.r, `${label}.r`)),
61
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.g, `${label}.g`)),
62
+ (0, math_1.clamp01)(assertFiniteColorComponent(color.b, `${label}.b`)),
63
+ (0, math_1.clamp01)(color.a === undefined ? 1 : assertFiniteColorComponent(color.a, `${label}.a`)),
64
+ ];
65
+ }
66
+ function cssColorStringToArray(value, label) {
67
+ const color = parseCssColorString(value, label);
68
+ color.convertLinearToSRGB();
69
+ return [(0, math_1.clamp01)(color.r), (0, math_1.clamp01)(color.g), (0, math_1.clamp01)(color.b), 1];
70
+ }
71
+ function cssColorStringToLinearArray(value, label) {
72
+ const color = parseCssColorString(value, label);
73
+ return [(0, math_1.clamp01)(color.r), (0, math_1.clamp01)(color.g), (0, math_1.clamp01)(color.b), 1];
74
+ }
75
+ function parseCssColorString(value, label) {
76
+ if (value.trim() === '') {
77
+ throw new TypeError(`${label} must be a non-empty CSS color string.`);
78
+ }
79
+ const warnings = [];
80
+ const originalWarn = console.warn;
81
+ const originalColorManagementEnabled = ThreeColorManagement.enabled;
82
+ console.warn = (...args) => { warnings.push(args.map(String).join(' ')); };
83
+ try {
84
+ ThreeColorManagement.enabled = true;
85
+ const color = new ThreeColor().setStyle(value);
86
+ const invalidWarning = warnings.find((message) => /Unknown color|Invalid hex color/i.test(message));
87
+ if (invalidWarning) {
88
+ throw new TypeError(`${label} ${JSON.stringify(value)} is not a supported CSS color string.`);
89
+ }
90
+ return color;
91
+ }
92
+ finally {
93
+ console.warn = originalWarn;
94
+ ThreeColorManagement.enabled = originalColorManagementEnabled;
95
+ }
96
+ }
97
+ function normalizeColorArray(values, label) {
19
98
  if (values.length !== 3 && values.length !== 4) {
20
- throw new TypeError('Color arrays must be [r, g, b] or [r, g, b, a]');
99
+ throw new TypeError(label ? `${label} must be [r, g, b] or [r, g, b, a]` : 'Color arrays must be [r, g, b] or [r, g, b, a]');
100
+ }
101
+ return [
102
+ (0, math_1.clamp01)(assertFiniteColorComponent(values[0], colorComponentLabel(label, 0, 'r'))),
103
+ (0, math_1.clamp01)(assertFiniteColorComponent(values[1], colorComponentLabel(label, 1, 'g'))),
104
+ (0, math_1.clamp01)(assertFiniteColorComponent(values[2], colorComponentLabel(label, 2, 'b'))),
105
+ (0, math_1.clamp01)(values.length === 4 ? assertFiniteColorComponent(values[3], colorComponentLabel(label, 3, 'a')) : 1),
106
+ ];
107
+ }
108
+ function resolveBackground(scene, options, hasBackgroundTexture = false, fallbackBackground = exports.DEFAULT_BACKGROUND_COLOR, outputColorSpace = options.outputColorSpace) {
109
+ const hasBackgroundOverride = options.background !== undefined;
110
+ if (hasBackgroundOverride) {
111
+ const color = strictBackgroundColorToArray(options.background, 'options.background', outputColorSpace);
112
+ if (color)
113
+ return color;
114
+ if (options.background == null || hasBackgroundTexture)
115
+ return fallbackBackground;
116
+ throw new TypeError('options.background must be a color, texture, or null.');
21
117
  }
118
+ const color = strictBackgroundColorToArray(scene.background, 'scene.background', outputColorSpace);
119
+ if (color)
120
+ return color;
121
+ if (scene.background == null || hasBackgroundTexture)
122
+ return fallbackBackground;
123
+ throw new TypeError('scene.background must be a color, texture, or null.');
124
+ }
125
+ function strictBackgroundColorToArray(value, label, outputColorSpace) {
126
+ const color = strictColorLikeToArray(value, label);
127
+ if (!color)
128
+ return null;
129
+ if (!isThreeColorLike(value) || outputColorSpaceIsLinear(outputColorSpace))
130
+ return color;
22
131
  return [
23
- (0, math_1.clamp01)((0, math_1.assertFinite)(values[0], 'color r')),
24
- (0, math_1.clamp01)((0, math_1.assertFinite)(values[1], 'color g')),
25
- (0, math_1.clamp01)((0, math_1.assertFinite)(values[2], 'color b')),
26
- (0, math_1.clamp01)(values.length === 4 ? (0, math_1.assertFinite)(values[3], 'color a') : 1),
132
+ linearToSrgb(color[0]),
133
+ linearToSrgb(color[1]),
134
+ linearToSrgb(color[2]),
135
+ color[3],
27
136
  ];
28
137
  }
29
- function resolveBackground(scene, options) {
30
- if (Array.isArray(options.background)) {
31
- return normalizeColorArray(options.background);
138
+ function isThreeColorLike(value) {
139
+ return typeof value === 'object' && value !== null && value.isColor === true;
140
+ }
141
+ function outputColorSpaceIsLinear(value) {
142
+ return value === 'srgb-linear' || value === 'linear-srgb' || value === 'linearsrgb' || value === 'linear';
143
+ }
144
+ function linearToSrgb(value) {
145
+ return value <= 0.0031308
146
+ ? value * 12.92
147
+ : 1.055 * (value ** (1 / 2.4)) - 0.055;
148
+ }
149
+ function isColorShaped(value) {
150
+ return value.isColor === true || 'r' in value || 'g' in value || 'b' in value || 'a' in value;
151
+ }
152
+ function colorComponentLabel(label, index, component) {
153
+ return label ? `${label}[${index}]` : `color ${component}`;
154
+ }
155
+ function assertFiniteColorComponent(value, label) {
156
+ if (!Number.isFinite(value)) {
157
+ throw new TypeError(`${label} must be a finite number.`);
32
158
  }
33
- const color = colorLikeToArray(options.background) ?? colorLikeToArray(scene.background);
34
- return color ?? [0.04, 0.045, 0.05, 1];
159
+ return value;
35
160
  }
36
161
  //# sourceMappingURL=color.js.map
package/dist/color.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../api/color.ts"],"names":[],"mappings":";;AAGA,4CAQC;AAED,kDAUC;AAED,8CAOC;AA/BD,iCAAgE;AAEhE,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,GAAG,KAAgC,CAAA;IAC1C,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,IAAA,uBAAgB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAA,cAAO,EAAC,CAAC,CAAC,CAAE,CAAC,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,CAAE,CAAC,EAAE,IAAA,cAAO,EAAC,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,mBAAmB,CAAC,MAAgB;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAA;IACvE,CAAC;IACD,OAAO;QACL,IAAA,cAAO,EAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAA,cAAO,EAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAA,cAAO,EAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,IAAA,cAAO,EAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACtE,CAAA;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAqB,EAAE,OAAsB;IAC7E,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,OAAO,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACxF,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../api/color.ts"],"names":[],"mappings":"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"}