/** * @author Kai Salmen / https://kaisalmen.de * Development repository: https://github.com/kaisalmen/WWOBJLoader */ const ObjectManipulator = { /** * Applies values from parameter object via set functions or via direct assignment. * * @param {Object} objToAlter The objToAlter instance * @param {Object} params The parameter object */ applyProperties: function ( objToAlter, params, forceCreation ) { // fast-fail if ( objToAlter === undefined || objToAlter === null || params === undefined || params === null ) return; let property, funcName, values; for ( property in params ) { funcName = 'set' + property.substring( 0, 1 ).toLocaleUpperCase() + property.substring( 1 ); values = params[ property ]; if ( typeof objToAlter[ funcName ] === 'function' ) { objToAlter[ funcName ]( values ); } else if ( objToAlter.hasOwnProperty( property ) || forceCreation ) { objToAlter[ property ] = values; } } } }; export { ObjectManipulator };