kopia lustrzana https://github.com/robhawkes/vizicities
				
				
				
			
		
			
				
	
	
		
			61 wiersze
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			61 wiersze
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
| importScripts('../vendor/three.min.js');
 | |
| 
 | |
| // Special version of ViziCities without controls (no DOM errors)
 | |
| importScripts('../../dist/vizicities-worker.min.js');
 | |
| 
 | |
| const DEBUG = false;
 | |
| 
 | |
| if (DEBUG) { console.log('Worker started', Date.now()); }
 | |
| 
 | |
| // Send startup message to main thread
 | |
| postMessage({
 | |
|   type: 'startup',
 | |
|   payload: Date.now()
 | |
| });
 | |
| 
 | |
| // Recieve message from main thread
 | |
| onmessage = function(event) {
 | |
|   if (!event.data.method) {
 | |
|     postMessage({
 | |
|       type: 'error',
 | |
|       payload: 'No method provided'
 | |
|     });
 | |
| 
 | |
|     return;
 | |
|   }
 | |
| 
 | |
|   var time = Date.now();
 | |
|   if (DEBUG) { console.log('Message received from main thread', time, event.data); }
 | |
|   // if (DEBUG) console.log('Time to receive message', time - event.data);
 | |
| 
 | |
|   // Run method
 | |
|   // if (!methods[event.data.method]) {
 | |
|   //   postMessage({
 | |
|   //     type: 'error',
 | |
|   //     payload: 'Method not found'
 | |
|   //   });
 | |
| 
 | |
|   //   return;
 | |
|   // }
 | |
| 
 | |
|   var methods = event.data.method.split('.');
 | |
| 
 | |
|   var _method = VIZI[methods[0]];
 | |
| 
 | |
|   if (methods.length > 1) {
 | |
|     for (var i = 1; i < methods.length; i++) {
 | |
|       _method = _method[methods[i]];
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   // Call method with given arguments
 | |
|   _method.apply(this, event.data.args).then(function(result) {
 | |
|     if (DEBUG) { console.log('Message sent from worker', Date.now()); }
 | |
| 
 | |
|     // Return results
 | |
|     postMessage({
 | |
|       type: 'result',
 | |
|       payload: result.data
 | |
|     }, result.transferrables);
 | |
|   });
 | |
| }; |