three
Version:
JavaScript 3D library
76 lines (40 loc) • 1.02 kB
JavaScript
/**
* @author sunag / http://www.sunag.com.br/
*/
var NodeUtils = {
elements: [ 'x', 'y', 'z', 'w' ],
addShortcuts: function () {
function applyShortcut( proxy, property, subProperty ) {
if ( subProperty ) {
return {
get: function () {
return this[ proxy ][ property ][ subProperty ];
},
set: function ( val ) {
this[ proxy ][ property ][ subProperty ] = val;
}
};
} else {
return {
get: function () {
return this[ proxy ][ property ];
},
set: function ( val ) {
this[ proxy ][ property ] = val;
}
};
}
}
return function addShortcuts( proto, proxy, list ) {
var shortcuts = {};
for ( var i = 0; i < list.length; ++ i ) {
var data = list[ i ].split( "." ),
property = data[ 0 ],
subProperty = data[ 1 ];
shortcuts[ property ] = applyShortcut( proxy, property, subProperty );
}
Object.defineProperties( proto, shortcuts );
};
}()
};
export { NodeUtils };