@needle-tools/engine
Version:
Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.
28 lines • 1.09 kB
JavaScript
const $objectAnimationKey = Symbol("objectIsAnimatedData");
/** Internal method - This marks an object as being animated. Make sure to always call isAnimated=false if you stop animating the object
* @param obj The object to mark
* @param isAnimated Whether the object is animated or not
*/
export function setObjectAnimated(obj, animatedBy, isAnimated) {
if (!obj)
return;
if (obj[$objectAnimationKey] === undefined) {
if (!isAnimated)
return;
obj[$objectAnimationKey] = new Set();
}
const set = obj[$objectAnimationKey];
if (isAnimated) {
set.add(animatedBy);
}
else if (set.has(animatedBy))
set.delete(animatedBy);
}
/** Get is the object is currently animated. Currently used by the Animator to check if a timeline animationtrack is actively animating an object */
export function getObjectAnimated(obj) {
if (!obj)
return false;
const set = obj[$objectAnimationKey];
return set !== undefined && set.size > 0;
}
//# sourceMappingURL=AnimationUtils.js.map