/**
* @module lib/THREEx/WindowResize
*/
/**
* This helper makes it easy to handle window resize.
* It will update renderer and camera when window is resized.
*
* @example
* // Start updating renderer and camera
* var windowResize = WindowResize(aRenderer, aCamera);
* //Start updating renderer and camera
* windowResize.stop()
*
* @namespace
* @param {Object} renderer the renderer to update
* @param {Object} Camera the camera to update
*/
var windowResize = function (renderer, camera) {
var callback = function() {
// notify the renderer of the size change
renderer.setSize( window.innerWidth, window.innerHeight );
// update the camera
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
};
// bind the resize event
window.addEventListener('resize', callback, false);
// return .stop() the function to stop watching window resize
return {
stop : function(){
window.removeEventListener('resize', callback);
}
};
};
/**
* @static
* @param {THREE.WebGLRenderer} renderer
* @param {THREE.PerspectiveCamera} camera
* @return {Object}
*/
windowResize.bind = function(renderer, camera){
return windowResize(renderer, camera);
};
module.exports = windowResize;