if(!self._ctr) return; var x=e.clientX-self._ctr.x; var y=e.clientY-self._ctr.y; var dx=x-self._lp.x; var dy=y-self._lp.y; self._absEnd={x:x, y:y}; if(self._c){ self._c.doChange({dx:Math.round(dx/self.zoomFactor), dy:Math.round(dy/|>self.zoomFactor)}); self._c.setBinding({dx:Math.round(dx/self.zoomFactor), dy:Math.round(dy/|>self.zoomFactor)}); self._lp={x:x, y:y}; } else { self._end={x:dx, y:dy}; var rect={ x:Math.min(self._start.x,self._absEnd.x), y:Math.min(self._start.y,self._absEnd.y), width:Math.abs(self._start.x-self._absEnd.x), height:Math.abs(self._start.y-self._absEnd.y) } self._ctool.onMouseMove(e,rect); }