angular-three 2.0.0-beta.243 → 2.0.0-beta.244

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.
@@ -32,26 +32,30 @@ export function merge(objFn, toMerge, mode = 'override') {
32
32
  return computed(() => ({ ...objFn(), ...toMerge }));
33
33
  return computed(() => ({ ...toMerge, ...objFn() }));
34
34
  }
35
- export function vector2(options, key) {
35
+ export function vector2(options, key, keepUndefined = false) {
36
36
  return computed(() => {
37
37
  const value = options()[key];
38
+ if (keepUndefined && value == undefined)
39
+ return undefined;
38
40
  if (typeof value === 'number')
39
41
  return new Vector2(value, value);
40
42
  else if (value)
41
43
  return new Vector2(...value);
42
44
  else
43
45
  return new Vector2();
44
- }, { equal: (a, b) => a.equals(b) });
46
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
45
47
  }
46
- export function vector3(options, key) {
48
+ export function vector3(options, key, keepUndefined = false) {
47
49
  return computed(() => {
48
50
  const value = options()[key];
51
+ if (keepUndefined && value == undefined)
52
+ return undefined;
49
53
  if (typeof value === 'number')
50
54
  return new Vector3(value, value, value);
51
55
  else if (value)
52
56
  return new Vector3(...value);
53
57
  else
54
58
  return new Vector3();
55
- }, { equal: (a, b) => a.equals(b) });
59
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
56
60
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3BhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixPQUFPLEVBQWdCLE1BQU0sT0FBTyxDQUFDO0FBZXJFLE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBeUIsRUFBRSxVQUFvQjtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsRUFBa0IsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBVUQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUF5QixFQUFFLFNBQTRCO0lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFrQixDQUFDO1lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FDcEIsS0FBb0IsRUFDcEIsT0FBeUIsRUFDekIsT0FBZ0MsVUFBVTtJQUUxQyxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQXlCLE9BQXdCLEVBQUUsR0FBb0M7SUFDN0csT0FBTyxRQUFRLENBQ2QsR0FBRyxFQUFFO1FBQ0osTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDM0QsSUFBSSxLQUFLO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFJLEtBQXNCLENBQUMsQ0FBQzs7WUFDMUQsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUMsRUFDRCxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEMsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUF5QixPQUF3QixFQUFFLEdBQW9DO0lBQzdHLE9BQU8sUUFBUSxDQUNkLEdBQUcsRUFBRTtRQUNKLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtZQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsRSxJQUFJLEtBQUs7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUksS0FBc0IsQ0FBQyxDQUFDOztZQUMxRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNoQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlY3RvcjIsIFZlY3RvcjJUdXBsZSwgVmVjdG9yMywgVmVjdG9yM1R1cGxlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0VmVjdG9yMiwgTmd0VmVjdG9yMyB9IGZyb20gJy4uL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBLZXlzT2ZUeXBlPFRPYmplY3QgZXh0ZW5kcyBvYmplY3QsIFRUeXBlPiA9IEV4Y2x1ZGU8XG5cdHtcblx0XHRbSyBpbiBrZXlvZiBUT2JqZWN0XTogVE9iamVjdFtLXSBleHRlbmRzIFRUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCA/IEsgOiBuZXZlcjtcblx0fVtrZXlvZiBUT2JqZWN0XSxcblx0dW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gb21pdDxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXNUb09taXQ6IFRLZXlzLFxuKTogU2lnbmFsPE9taXQ8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIG9taXQob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5c1RvT21pdDogc3RyaW5nW10pIHtcblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBvYmogPSBvYmpGbigpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IHt9IGFzIE5ndEFueVJlY29yZDtcblxuXHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcblx0XHRcdGlmIChrZXlzVG9PbWl0LmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlO1xuXHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2tleV06IG9ialtrZXldIH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5IGV4dGVuZHMga2V5b2YgVE9iamVjdD4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXk6IFRLZXksXG4pOiBTaWduYWw8VE9iamVjdFtUS2V5XT47XG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXM6IFRLZXlzLFxuKTogU2lnbmFsPFBpY2s8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5T3JLZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheShrZXlPcktleXMpKSB7XG5cdFx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IG9iakZuKCk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlPcktleXMpIHtcblx0XHRcdFx0aWYgKCEoa2V5IGluIG9iaikpIGNvbnRpbnVlO1xuXHRcdFx0XHRPYmplY3QuYXNzaWduKHJlc3VsdCwgeyBba2V5XTogb2JqW2tleV0gfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0pO1xuXHR9XG5cblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IG9iakZuKClba2V5T3JLZXlzXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0Pihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdHRvTWVyZ2U6IFBhcnRpYWw8VE9iamVjdD4sXG5cdG1vZGU6ICdvdmVycmlkZScgfCAnYmFja2ZpbGwnID0gJ292ZXJyaWRlJyxcbikge1xuXHRpZiAobW9kZSA9PT0gJ292ZXJyaWRlJykgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7IC4uLm9iakZuKCksIC4uLnRvTWVyZ2UgfSkpO1xuXHRyZXR1cm4gY29tcHV0ZWQoKCkgPT4gKHsgLi4udG9NZXJnZSwgLi4ub2JqRm4oKSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFNpZ25hbDxUT2JqZWN0Piwga2V5OiBLZXlzT2ZUeXBlPFRPYmplY3QsIE5ndFZlY3RvcjI+KSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMih2YWx1ZSwgdmFsdWUpO1xuXHRcdFx0ZWxzZSBpZiAodmFsdWUpIHJldHVybiBuZXcgVmVjdG9yMiguLi4odmFsdWUgYXMgVmVjdG9yMlR1cGxlKSk7XG5cdFx0XHRlbHNlIHJldHVybiBuZXcgVmVjdG9yMigpO1xuXHRcdH0sXG5cdFx0eyBlcXVhbDogKGEsIGIpID0+IGEuZXF1YWxzKGIpIH0sXG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFNpZ25hbDxUT2JqZWN0Piwga2V5OiBLZXlzT2ZUeXBlPFRPYmplY3QsIE5ndFZlY3RvcjM+KSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMyh2YWx1ZSwgdmFsdWUsIHZhbHVlKTtcblx0XHRcdGVsc2UgaWYgKHZhbHVlKSByZXR1cm4gbmV3IFZlY3RvcjMoLi4uKHZhbHVlIGFzIFZlY3RvcjNUdXBsZSkpO1xuXHRcdFx0ZWxzZSByZXR1cm4gbmV3IFZlY3RvcjMoKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiBhLmVxdWFscyhiKSB9LFxuXHQpO1xufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3BhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFnQixPQUFPLEVBQWdCLE1BQU0sT0FBTyxDQUFDO0FBZXJFLE1BQU0sVUFBVSxJQUFJLENBQUMsS0FBeUIsRUFBRSxVQUFvQjtJQUNuRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsRUFBa0IsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUFFLFNBQVM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBVUQsTUFBTSxVQUFVLElBQUksQ0FBQyxLQUF5QixFQUFFLFNBQTRCO0lBQzNFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxFQUFrQixDQUFDO1lBQ2xDLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUM7b0JBQUUsU0FBUztnQkFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUssQ0FDcEIsS0FBb0IsRUFDcEIsT0FBeUIsRUFDekIsT0FBZ0MsVUFBVTtJQUUxQyxJQUFJLElBQUksS0FBSyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQVdELE1BQU0sVUFBVSxPQUFPLENBQUMsT0FBNkIsRUFBRSxHQUFXLEVBQUUsYUFBYSxHQUFHLEtBQUs7SUFDeEYsT0FBTyxRQUFRLENBQ2QsR0FBRyxFQUFFO1FBQ0osTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxhQUFhLElBQUksS0FBSyxJQUFJLFNBQVM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMxRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMzRCxJQUFJLEtBQUs7WUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUksS0FBc0IsQ0FBQyxDQUFDOztZQUMxRCxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQyxFQUNELEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDOUMsQ0FBQztBQUNILENBQUM7QUFVRCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQTZCLEVBQUUsR0FBVyxFQUFFLGFBQWEsR0FBRyxLQUFLO0lBQ3hGLE9BQU8sUUFBUSxDQUNkLEdBQUcsRUFBRTtRQUNKLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksYUFBYSxJQUFJLEtBQUssSUFBSSxTQUFTO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDMUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ2xFLElBQUksS0FBSztZQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBSSxLQUFzQixDQUFDLENBQUM7O1lBQzFELE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDLEVBQ0QsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM5QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZlY3RvcjIsIFZlY3RvcjJUdXBsZSwgVmVjdG9yMywgVmVjdG9yM1R1cGxlIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0VmVjdG9yMiwgTmd0VmVjdG9yMyB9IGZyb20gJy4uL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcblxudHlwZSBLZXlzT2ZUeXBlPFRPYmplY3QgZXh0ZW5kcyBvYmplY3QsIFRUeXBlPiA9IEV4Y2x1ZGU8XG5cdHtcblx0XHRbSyBpbiBrZXlvZiBUT2JqZWN0XTogVE9iamVjdFtLXSBleHRlbmRzIFRUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCA/IEsgOiBuZXZlcjtcblx0fVtrZXlvZiBUT2JqZWN0XSxcblx0dW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gb21pdDxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXNUb09taXQ6IFRLZXlzLFxuKTogU2lnbmFsPE9taXQ8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIG9taXQob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5c1RvT21pdDogc3RyaW5nW10pIHtcblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBvYmogPSBvYmpGbigpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IHt9IGFzIE5ndEFueVJlY29yZDtcblxuXHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcblx0XHRcdGlmIChrZXlzVG9PbWl0LmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlO1xuXHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgW2tleV06IG9ialtrZXldIH0pO1xuXHRcdH1cblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5IGV4dGVuZHMga2V5b2YgVE9iamVjdD4oXG5cdG9iakZuOiAoKSA9PiBUT2JqZWN0LFxuXHRrZXk6IFRLZXksXG4pOiBTaWduYWw8VE9iamVjdFtUS2V5XT47XG5leHBvcnQgZnVuY3Rpb24gcGljazxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0LCBUS2V5cyBleHRlbmRzIChrZXlvZiBUT2JqZWN0KVtdPihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdGtleXM6IFRLZXlzLFxuKTogU2lnbmFsPFBpY2s8VE9iamVjdCwgVEtleXNbbnVtYmVyXT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqRm46ICgpID0+IE5ndEFueVJlY29yZCwga2V5T3JLZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuXHRpZiAoQXJyYXkuaXNBcnJheShrZXlPcktleXMpKSB7XG5cdFx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IG9iakZuKCk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSB7fSBhcyBOZ3RBbnlSZWNvcmQ7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBrZXlPcktleXMpIHtcblx0XHRcdFx0aWYgKCEoa2V5IGluIG9iaikpIGNvbnRpbnVlO1xuXHRcdFx0XHRPYmplY3QuYXNzaWduKHJlc3VsdCwgeyBba2V5XTogb2JqW2tleV0gfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0pO1xuXHR9XG5cblx0cmV0dXJuIGNvbXB1dGVkKCgpID0+IG9iakZuKClba2V5T3JLZXlzXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxUT2JqZWN0IGV4dGVuZHMgb2JqZWN0Pihcblx0b2JqRm46ICgpID0+IFRPYmplY3QsXG5cdHRvTWVyZ2U6IFBhcnRpYWw8VE9iamVjdD4sXG5cdG1vZGU6ICdvdmVycmlkZScgfCAnYmFja2ZpbGwnID0gJ292ZXJyaWRlJyxcbikge1xuXHRpZiAobW9kZSA9PT0gJ292ZXJyaWRlJykgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICh7IC4uLm9iakZuKCksIC4uLnRvTWVyZ2UgfSkpO1xuXHRyZXR1cm4gY29tcHV0ZWQoKCkgPT4gKHsgLi4udG9NZXJnZSwgLi4ub2JqRm4oKSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IyPixcbik6IFNpZ25hbDxWZWN0b3IyPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IyPixcblx0a2VlcFVuZGVmaW5lZDogdHJ1ZSxcbik6IFNpZ25hbDxWZWN0b3IyIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IyKG9wdGlvbnM6IFNpZ25hbDxOZ3RBbnlSZWNvcmQ+LCBrZXk6IHN0cmluZywga2VlcFVuZGVmaW5lZCA9IGZhbHNlKSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKGtlZXBVbmRlZmluZWQgJiYgdmFsdWUgPT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMih2YWx1ZSwgdmFsdWUpO1xuXHRcdFx0ZWxzZSBpZiAodmFsdWUpIHJldHVybiBuZXcgVmVjdG9yMiguLi4odmFsdWUgYXMgVmVjdG9yMlR1cGxlKSk7XG5cdFx0XHRlbHNlIHJldHVybiBuZXcgVmVjdG9yMigpO1xuXHRcdH0sXG5cdFx0eyBlcXVhbDogKGEsIGIpID0+ICEhYSAmJiAhIWIgJiYgYS5lcXVhbHMoYikgfSxcblx0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IzPixcbik6IFNpZ25hbDxWZWN0b3IzPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzPFRPYmplY3QgZXh0ZW5kcyBvYmplY3Q+KFxuXHRvcHRpb25zOiBTaWduYWw8VE9iamVjdD4sXG5cdGtleTogS2V5c09mVHlwZTxUT2JqZWN0LCBOZ3RWZWN0b3IzPixcblx0a2VlcFVuZGVmaW5lZDogdHJ1ZSxcbik6IFNpZ25hbDxWZWN0b3IzIHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3IzKG9wdGlvbnM6IFNpZ25hbDxOZ3RBbnlSZWNvcmQ+LCBrZXk6IHN0cmluZywga2VlcFVuZGVmaW5lZCA9IGZhbHNlKSB7XG5cdHJldHVybiBjb21wdXRlZChcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IG9wdGlvbnMoKVtrZXldO1xuXHRcdFx0aWYgKGtlZXBVbmRlZmluZWQgJiYgdmFsdWUgPT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHJldHVybiBuZXcgVmVjdG9yMyh2YWx1ZSwgdmFsdWUsIHZhbHVlKTtcblx0XHRcdGVsc2UgaWYgKHZhbHVlKSByZXR1cm4gbmV3IFZlY3RvcjMoLi4uKHZhbHVlIGFzIFZlY3RvcjNUdXBsZSkpO1xuXHRcdFx0ZWxzZSByZXR1cm4gbmV3IFZlY3RvcjMoKTtcblx0XHR9LFxuXHRcdHsgZXF1YWw6IChhLCBiKSA9PiAhIWEgJiYgISFiICYmIGEuZXF1YWxzKGIpIH0sXG5cdCk7XG59XG4iXX0=
@@ -2824,27 +2824,31 @@ function merge(objFn, toMerge, mode = 'override') {
2824
2824
  return computed(() => ({ ...objFn(), ...toMerge }));
2825
2825
  return computed(() => ({ ...toMerge, ...objFn() }));
2826
2826
  }
2827
- function vector2(options, key) {
2827
+ function vector2(options, key, keepUndefined = false) {
2828
2828
  return computed(() => {
2829
2829
  const value = options()[key];
2830
+ if (keepUndefined && value == undefined)
2831
+ return undefined;
2830
2832
  if (typeof value === 'number')
2831
2833
  return new Vector2(value, value);
2832
2834
  else if (value)
2833
2835
  return new Vector2(...value);
2834
2836
  else
2835
2837
  return new Vector2();
2836
- }, { equal: (a, b) => a.equals(b) });
2838
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
2837
2839
  }
2838
- function vector3(options, key) {
2840
+ function vector3(options, key, keepUndefined = false) {
2839
2841
  return computed(() => {
2840
2842
  const value = options()[key];
2843
+ if (keepUndefined && value == undefined)
2844
+ return undefined;
2841
2845
  if (typeof value === 'number')
2842
2846
  return new Vector3(value, value, value);
2843
2847
  else if (value)
2844
2848
  return new Vector3(...value);
2845
2849
  else
2846
2850
  return new Vector3();
2847
- }, { equal: (a, b) => a.equals(b) });
2851
+ }, { equal: (a, b) => !!a && !!b && a.equals(b) });
2848
2852
  }
2849
2853
 
2850
2854
  function resolveRef(ref) {