/** * Uniform Utilities */ export function cloneUniforms( src ) { var dst = {}; for ( var u in src ) { dst[ u ] = {}; for ( var p in src[ u ] ) { var property = src[ u ][ p ]; if ( property && ( property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture ) ) { dst[ u ][ p ] = property.clone(); } else if ( Array.isArray( property ) ) { dst[ u ][ p ] = property.slice(); } else { dst[ u ][ p ] = property; } } } return dst; } export function mergeUniforms( uniforms ) { var merged = {}; for ( var u = 0; u < uniforms.length; u ++ ) { var tmp = cloneUniforms( uniforms[ u ] ); for ( var p in tmp ) { merged[ p ] = tmp[ p ]; } } return merged; } // Legacy var UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms }; export { UniformsUtils };