src/shadowProperty.js
import { isObject } from "akutils";
/**
Function used by shaders to instantiate shadow implementation classes, subclasses of ShadowImpl.
@ignore
*/
export default function shadowProperty(time, ImplClass, property, name, state, parent, shader) {
const impl = new ImplClass(time, property, name, state, parent, shader);
// set the current implementation
property.setImpl(impl);
// invoke will shadow life-cycle method
property.onPropertyWillShadow();
impl.setupPropertyAccess();
return impl;
}