Blame view

js/threejs/THREEx_002.js 1.13 KB
670b6d6f8   tuan   2016/09/22 - Copy...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  // This THREEx helper makes it easy to handle window resize.
  // It will update renderer and camera when window is resized.
  //
  // # Usage
  //
  // **Step 1**: Start updating renderer and camera
  //
  // ```var windowResize = THREEx.WindowResize(aRenderer, aCamera)```
  //    
  // **Step 2**: Start updating renderer and camera
  //
  // ```windowResize.stop()```
  // # Code
  
  //
  
  /** @namespace */
  var THREEx	= THREEx 		|| {};
  
  /**
   * Update renderer and camera when the window is resized
   * 
   * @param {Object} renderer the renderer to update
   * @param {Object} Camera the camera to update
  */
  THREEx.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 watching window resize
  		*/
  		stop	: function(){
  			window.removeEventListener('resize', callback);
  		}
  	};
  }