@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
27 lines (26 loc) • 1.08 kB
JavaScript
;
import { Vector3, Euler, Quaternion, Matrix4 } from "three";
import { objectContentCopyProperties } from "../../ObjectContent";
export function copyObject3DProperties(srcObject, destObject) {
objectContentCopyProperties(srcObject, destObject);
destObject.position.copy(srcObject.position);
destObject.quaternion.copy(srcObject.quaternion);
destObject.scale.copy(srcObject.scale);
destObject.matrix.copy(srcObject.matrix);
}
const UNCOPYABLE_PROPERTIES = /* @__PURE__ */ new Set(["animations", "children", "layers", "parent", "userData"]);
export function copyObjectAllProperties(srcObject, destObject) {
const keys = Object.keys(destObject);
for (const key of keys) {
if (UNCOPYABLE_PROPERTIES.has(key)) {
continue;
}
const destProperty = destObject[key];
if (destProperty instanceof Vector3 || destProperty instanceof Euler || destProperty instanceof Quaternion || destProperty instanceof Matrix4) {
destProperty.copy(srcObject[key]);
} else {
destObject[key] = srcObject[key];
}
}
return destObject;
}