UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

27 lines (26 loc) 1.08 kB
"use strict"; 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; }