|  |  | @ -1910,6 +1910,8 @@ Graph3d.prototype._onMouseDown = function(event) { | 
			
		
	
		
			
				
					|  |  |  | // get mouse position (different code for IE and all other browsers) | 
			
		
	
		
			
				
					|  |  |  | this.startMouseX = getMouseX(event); | 
			
		
	
		
			
				
					|  |  |  | this.startMouseY = getMouseY(event); | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | this._startCameraOffset = this.camera.getOffset(); | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | this.startStart = new Date(this.start); | 
			
		
	
		
			
				
					|  |  |  | this.startEnd = new Date(this.end); | 
			
		
	
	
		
			
				
					|  |  | @ -1936,21 +1938,28 @@ Graph3d.prototype._onMouseDown = function(event) { | 
			
		
	
		
			
				
					|  |  |  | */ | 
			
		
	
		
			
				
					|  |  |  | Graph3d.prototype._onMouseMove = function (event) { | 
			
		
	
		
			
				
					|  |  |  | event = event || window.event; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // move with ctrl or rotate by other | 
			
		
	
		
			
				
					|  |  |  | if (event && event.ctrlKey === true) { | 
			
		
	
		
			
				
					|  |  |  | // calculate change in mouse position | 
			
		
	
		
			
				
					|  |  |  | var camera = this.camera, | 
			
		
	
		
			
				
					|  |  |  | offset = camera.getOffset(); | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | var diffX = parseFloat(getMouseX(event)) - this.startMouseX; | 
			
		
	
		
			
				
					|  |  |  | var diffY = parseFloat(getMouseY(event)) - this.startMouseY; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | var scale = this.frame.clientWidth * 0.6; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | var offXNew = offset.x - ((diffX / scale) * this.camera.armLength) * 0.1; | 
			
		
	
		
			
				
					|  |  |  | var offYNew = offset.y + ((diffY / scale) * this.camera.armLength) * 0.1; | 
			
		
	
		
			
				
					|  |  |  | var scaleX = this.frame.clientWidth * 0.5; | 
			
		
	
		
			
				
					|  |  |  | var scaleY = this.frame.clientHeight * 0.5; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | var offXNew = (this._startCameraOffset.x || 0) - ((diffX / scaleX) * this.camera.armLength) * 0.8; | 
			
		
	
		
			
				
					|  |  |  | var offYNew = (this._startCameraOffset.y || 0) + ((diffY / scaleY) * this.camera.armLength) * 0.8; | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | this.camera.setOffset(offXNew, offYNew); | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // меняем startX, startY и startOffset | 
			
		
	
		
			
				
					|  |  |  | this._startCameraOffset = this.camera.getOffset(); | 
			
		
	
		
			
				
					|  |  |  | this.startMouseX = getMouseX(event); | 
			
		
	
		
			
				
					|  |  |  | this.startMouseY = getMouseY(event); | 
			
		
	
		
			
				
					|  |  |  | } else { | 
			
		
	
		
			
				
					|  |  |  |  | 
			
		
	
		
			
				
					|  |  |  | // calculate change in mouse position | 
			
		
	
	
		
			
				
					|  |  |  |