Comparing version 1.0.0 to 1.0.1
@@ -1,2 +0,2 @@ | ||
class t{static clamp(t,e,s){return Math.max(e,Math.min(s,t))}static is_int(t){return Number(t)===t&&t%1==0}}var e=new class{constructor(){this.operating_systems={ANDROID:"android",IOS:"ios",LINUX:"linux",MAC:"mac",WINDOWS:"windows"}}get_os(){let t=window.navigator.userAgent,e=window.navigator.platform,s=null;return-1!==["Macintosh","MacIntel","MacPPC","Mac68K"].indexOf(e)?s=this.operating_systems.MAC:-1!==["iPhone","iPad","iPod"].indexOf(e)?s=this.operating_systems.IOS:-1!==["Win32","Win64","Windows","WinCE"].indexOf(e)?s=this.operating_systems.WINDOWS:/Android/.test(t)?s=this.operating_systems.ANDROID:!s&&/Linux/.test(e)&&(s=this.operating_systems.LINUX),s}get is_android(){return this.get_os()===this.operating_systems.ANDROID}get is_ios(){return navigator.userAgent.match(/(iPhone|iPod|iPad)/)}get is_ipad(){return navigator.userAgent.match(/(iPad)/)}get is_mobile(){return!!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/)}get is_linux(){return this.get_os()===this.operating_systems.LINUX}get is_mac(){return this.get_os()===this.operating_systems.MAC}get is_windows(){return this.get_os()===this.operating_systems.WINDOWS}};class s{constructor(){this.left_mouse_button_pressed=!1,this.left_mouse_button_down=!1,this.left_mouse_button_released=!1,this.right_mouse_button_pressed=!1,this.right_mouse_button_down=!1,this.right_mouse_button_released=!1,this.middle_mouse_button_pressed=!1,this.middle_mouse_button_down=!1,this.middle_mouse_button_released=!1,this.pointer_pos={x:0,y:0},this.scroll_delta=0}get pointer_count(){return this.left_mouse_button_down||this.right_mouse_button_down||this.middle_mouse_button_down?1:0}pointer_down(t){switch(this.pointer_pos.x=t.clientX,this.pointer_pos.y=t.clientY,t.button){case 0:this.left_mouse_button_pressed=!0,this.left_mouse_button_down=!0;break;case 1:this.middle_mouse_button_pressed=!0,this.middle_mouse_button_down=!0;break;case 2:this.right_mouse_button_pressed=!0,this.right_mouse_button_down=!0}}pointer_up(t){switch(t.button){case 0:this.left_mouse_button_released=!0,this.left_mouse_button_down=!1;break;case 1:this.middle_mouse_button_released=!0,this.middle_mouse_button_down=!1;break;case 2:this.right_mouse_button_released=!0,this.right_mouse_button_down=!1}}pointer_move(t){this.pointer_pos.x=t.clientX,this.pointer_pos.y=t.clientY}pointer_cancel(t){this.pointer_pos(t)}pointer_out(t){this.left_mouse_button_down&&(this.left_mouse_button_down=!1,this.left_mouse_button_released=!0),this.middle_mouse_button_down&&(this.middle_mouse_button_down=!1,this.middle_mouse_button_released=!0),this.right_mouse_button_down&&(this.right_mouse_button_down=!1,this.right_mouse_button_released=!0)}scroll(s){this.pointer_pos.x=s.clientX,this.pointer_pos.y=s.clientY,e.is_mac?s.ctrlKey||(t.is_int(s.deltaY)?this.scroll_delta=-1*t.clamp(s.deltaY/350,-1,1):this.scroll_delta=s.deltaY/Math.abs(s.deltaY)):Math.abs(s.deltaY)<1e-4?this.scroll_delta=0:this.scroll_delta=s.deltaY/Math.abs(s.deltaY)}clear(){this.left_mouse_button_pressed=!1,this.left_mouse_button_released=!1,this.right_mouse_button_pressed=!1,this.right_mouse_button_released=!1,this.middle_mouse_button_pressed=!1,this.middle_mouse_button_released=!1,this.scroll_delta=0}}class o{constructor(){this.left_mouse_button_pressed=!1,this.left_mouse_button_down=!1,this.left_mouse_button_released=!1,this.pointers=[],this.previous_separation_distance=void 0,this.scroll_delta=0}get pointer_pos(){let t=0,e=0;for(let s=0;s<this.pointers.length;s++)t+=this.pointers[s].x,e+=this.pointers[s].y;return t/=Math.max(1,this.pointers.length),e/=Math.max(1,this.pointers.length),{x:t,y:e}}get pointer_count(){return this.pointers.length}update_pointer_separation(){if(2===this.pointers.length){let t=this.pointers[0].x,e=this.pointers[0].y,s=this.pointers[1].x,o=this.pointers[1].y,i=Math.sqrt(Math.pow(t-s,2)+Math.pow(e-o,2));void 0===this.previous_separation_distance&&(this.previous_separation_distance=i);let _=.15;this.scroll_delta=-(i-this.previous_separation_distance)*_,this.previous_separation_distance=i}else this.previous_separation_distance=void 0,this.scroll_delta=0}update_pointer(t,e,s){let o=this.pointers.find((e=>e.id===t));return void 0===o&&(o={id:t,x:e,y:s,is_primary:0===this.pointers.length},this.pointers.push(o)),o.x=e,o.y=s,this.update_pointer_separation(),o}remove_pointer(t){let e=this.pointers.findIndex((e=>e.id===t));void 0!==e&&this.pointers.splice(e,1),this.update_pointer_separation()}pointer_down(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t];this.update_pointer(s.identifier,s.clientX,s.clientY).is_primary&&(this.left_mouse_button_pressed=!0,this.left_mouse_button_down=!0)}}pointer_up(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t],o=this.update_pointer(s.identifier,s.clientX,s.clientY);o.is_primary&&(this.left_mouse_button_released=!0,this.left_mouse_button_down=!1),this.remove_pointer(o.id)}}pointer_move(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t];this.update_pointer(s.identifier,s.clientX,s.clientY)}}pointer_cancel(t){this.pointer_out(t)}pointer_out(t){let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t],o=this.update_pointer(s.identifier,s.clientX,s.clientY);this.left_mouse_button_down&&o.is_primary&&(this.left_mouse_button_down=!1,this.left_mouse_button_released=!0),this.remove_pointer(o.id)}}clear(){this.left_mouse_button_pressed=!1,this.left_mouse_button_released=!1,this.scroll_delta=0}}export class InputController{constructor(t){this.dom_element=t,this.mouse_input_module=new s,this.touch_input_module=new o,this.active_input_module=this.mouse_input_module,this.element_bounds={x:0,y:0,width:1,height:1},this.last_mouse_pos={x:0,y:0},this.update_element_bounds(),this.touch_cooldown=new Date-1e3;let e=this;t.addEventListener("wheel",(t=>{e.mouse_input_module.scroll(t),e.set_mouse_input_active()})),t.addEventListener("touchstart",(t=>{e.touch_input_module.pointer_down(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchmove",(t=>{e.touch_input_module.pointer_move(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchcancel",(t=>{e.touch_input_module.pointer_cancel(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchend",(t=>{e.touch_input_module.pointer_up(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("mousedown",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_down(t),e.update_last_mouse_pos(),e.set_mouse_input_active())}),!1),t.addEventListener("mousemove",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_move(t),e.set_mouse_input_active())}),!1),t.addEventListener("mouseup",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_up(t),e.set_mouse_input_active())}),!1),t.addEventListener("mouseleave",(t=>{e.mouse_input_module.pointer_out(t),e.set_mouse_input_active()}),!1)}clear(){this.touch_input_module.clear(),this.mouse_input_module.clear(),this.update_last_mouse_pos()}update_element_bounds(){let t=this.dom_element.getBoundingClientRect();this.element_bounds.x=t.x,this.element_bounds.y=t.y,this.element_bounds.width=t.width,this.element_bounds.height=t.height}mouse_input_allowed(){return(new Date-this.touch_cooldown)/1e3>.75}set_mouse_input_active(){this.active_input_module=this.mouse_input_module}set_touch_input_active(){this.active_input_module=this.touch_input_module,this.touch_cooldown=new Date}get left_mouse_button_pressed(){return this.active_input_module.left_mouse_button_pressed}get left_mouse_button_down(){return this.active_input_module.left_mouse_button_down}get left_mouse_button_released(){return this.active_input_module.left_mouse_button_released}get right_mouse_button_pressed(){return this.mouse_input_module.right_mouse_button_pressed}get right_mouse_button_down(){return this.mouse_input_module.right_mouse_button_down}get right_mouse_button_released(){return this.mouse_input_module.right_mouse_button_released}get middle_mouse_button_pressed(){return this.mouse_input_module.middle_mouse_button_pressed}get middle_mouse_button_down(){return this.mouse_input_module.middle_mouse_button_down}get middle_mouse_button_released(){return this.mouse_input_module.middle_mouse_button_released}get mouse_pos(){return{x:this.active_input_module.pointer_pos.x,y:this.element_bounds.height-this.active_input_module.pointer_pos.y}}get mouse_pos_delta(){return{x:this.mouse_pos.x-this.last_mouse_pos.x,y:this.mouse_pos.y-this.last_mouse_pos.y}}get NDC(){return this.check_for_legal_bounds(this.mouse_pos),{x:this.mouse_pos.x/this.element_bounds.width*2-1,y:this.mouse_pos.y/this.element_bounds.height*2-1}}get NDC_delta(){return this.check_for_legal_bounds(this.mouse_pos),{x:this.mouse_pos_delta.x/this.element_bounds.width,y:this.mouse_pos_delta.y/this.element_bounds.height}}check_for_legal_bounds(){0!==this.element_bounds.width&&0!==this.element_bounds.height||console.error("Cannot get normalized mouse position for target element due to the element having 0 width or height",this.dom_element,this.element_bounds)}update_last_mouse_pos(){this.last_mouse_pos.x=this.mouse_pos.x,this.last_mouse_pos.y=this.mouse_pos.y}get scroll_delta(){return this.active_input_module.scroll_delta}get pointer_count(){return this.active_input_module.pointers_count}} | ||
class t{static clamp(t,e,s){return Math.max(e,Math.min(s,t))}static is_int(t){return Number(t)===t&&t%1==0}}var e=new class{constructor(){this.operating_systems={ANDROID:"android",IOS:"ios",LINUX:"linux",MAC:"mac",WINDOWS:"windows"}}get_os(){let t=window.navigator.userAgent,e=window.navigator.platform,s=null;return-1!==["Macintosh","MacIntel","MacPPC","Mac68K"].indexOf(e)?s=this.operating_systems.MAC:-1!==["iPhone","iPad","iPod"].indexOf(e)?s=this.operating_systems.IOS:-1!==["Win32","Win64","Windows","WinCE"].indexOf(e)?s=this.operating_systems.WINDOWS:/Android/.test(t)?s=this.operating_systems.ANDROID:!s&&/Linux/.test(e)&&(s=this.operating_systems.LINUX),s}get is_android(){return this.get_os()===this.operating_systems.ANDROID}get is_ios(){return navigator.userAgent.match(/(iPhone|iPod|iPad)/)}get is_ipad(){return navigator.userAgent.match(/(iPad)/)}get is_mobile(){return!!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|playbook|silk|BlackBerry|BB10|Windows Phone|Tizen|Bada|webOS|IEMobile|Opera Mini)/)}get is_linux(){return this.get_os()===this.operating_systems.LINUX}get is_mac(){return this.get_os()===this.operating_systems.MAC}get is_windows(){return this.get_os()===this.operating_systems.WINDOWS}};class s{constructor(){this.left_mouse_button_pressed=!1,this.left_mouse_button_down=!1,this.left_mouse_button_released=!1,this.right_mouse_button_pressed=!1,this.right_mouse_button_down=!1,this.right_mouse_button_released=!1,this.middle_mouse_button_pressed=!1,this.middle_mouse_button_down=!1,this.middle_mouse_button_released=!1,this.pointer_pos={x:0,y:0},this.previous_pointer_pos={x:0,y:0},this.scroll_delta=0}get pointer_count(){return this.left_mouse_button_down||this.right_mouse_button_down||this.middle_mouse_button_down?1:0}pointer_down(t){switch(this.previous_pointer_pos.x=this.pointer_pos.x,this.previous_pointer_pos.y=this.pointer_pos.y,this.pointer_pos.x=t.clientX,this.pointer_pos.y=t.clientY,t.button){case 0:this.left_mouse_button_pressed=!0,this.left_mouse_button_down=!0;break;case 1:this.middle_mouse_button_pressed=!0,this.middle_mouse_button_down=!0;break;case 2:this.right_mouse_button_pressed=!0,this.right_mouse_button_down=!0}}pointer_up(t){switch(t.button){case 0:this.left_mouse_button_released=!0,this.left_mouse_button_down=!1;break;case 1:this.middle_mouse_button_released=!0,this.middle_mouse_button_down=!1;break;case 2:this.right_mouse_button_released=!0,this.right_mouse_button_down=!1}}pointer_move(t){this.pointer_pos.x=t.clientX,this.pointer_pos.y=t.clientY}pointer_cancel(t){this.pointer_out(t)}pointer_out(t){this.left_mouse_button_down&&(this.left_mouse_button_down=!1,this.left_mouse_button_released=!0),this.middle_mouse_button_down&&(this.middle_mouse_button_down=!1,this.middle_mouse_button_released=!0),this.right_mouse_button_down&&(this.right_mouse_button_down=!1,this.right_mouse_button_released=!0)}scroll(s){this.pointer_pos.x=s.clientX,this.pointer_pos.y=s.clientY,e.is_mac?s.ctrlKey||(t.is_int(s.deltaY)?this.scroll_delta=-1*t.clamp(s.deltaY/350,-1,1):this.scroll_delta=s.deltaY/Math.abs(s.deltaY)):Math.abs(s.deltaY)<1e-4?this.scroll_delta=0:this.scroll_delta=s.deltaY/Math.abs(s.deltaY)}clear(){this.left_mouse_button_pressed=!1,this.left_mouse_button_released=!1,this.right_mouse_button_pressed=!1,this.right_mouse_button_released=!1,this.middle_mouse_button_pressed=!1,this.middle_mouse_button_released=!1,this.scroll_delta=0,this.update_previous_pointer_pos()}get pointer_pos_delta(){return{x:this.pointer_pos.x-this.previous_pointer_pos.x,y:this.pointer_pos.y-this.previous_pointer_pos.y}}update_previous_pointer_pos(){this.previous_pointer_pos.x=this.pointer_pos.x,this.previous_pointer_pos.y=this.pointer_pos.y}}class i{constructor(){this.left_mouse_button_pressed=!1,this.left_mouse_button_down=!1,this.left_mouse_button_released=!1,this.pointers=[],this.previous_separation_distance=void 0,this.scroll_delta=0}get pointer_pos(){let t=0,e=0,s=this.pointers.find((t=>t.is_primary));return s&&(t=s.x,e=s.y),{x:t,y:e}}get pointer_pos_delta(){let t=0,e=0,s=this.pointers.find((t=>t.is_primary));return s&&(t=s.x-s.previous_x,e=s.y-s.previous_y),{x:t,y:e}}get pointer_count(){return this.pointers.length}update_pointer_separation(){if(2===this.pointers.length){let t=this.pointers[0].x,e=this.pointers[0].y,s=this.pointers[1].x,i=this.pointers[1].y,o=Math.sqrt(Math.pow(t-s,2)+Math.pow(e-i,2));void 0===this.previous_separation_distance&&(this.previous_separation_distance=o);let _=.15;this.scroll_delta=-(o-this.previous_separation_distance)*_,this.previous_separation_distance=o}else this.previous_separation_distance=void 0,this.scroll_delta=0}update_pointer(t,e,s){let i=this.pointers.find((e=>e.id===t));return void 0===i&&(i={id:t,x:e,y:s,previous_x:e,previous_y:s,is_primary:0===this.pointers.length},this.pointers.push(i)),i.previous_x=i.x,i.previous_y=i.y,i.x=e,i.y=s,this.update_pointer_separation(),i}remove_pointer(t){let e=this.pointers.findIndex((e=>e.id===t));void 0!==e&&this.pointers.splice(e,1),this.update_pointer_separation()}pointer_down(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t];this.update_pointer(s.identifier,s.clientX,s.clientY).is_primary&&(this.left_mouse_button_pressed=!0,this.left_mouse_button_down=!0)}}pointer_up(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t],i=this.update_pointer(s.identifier,s.clientX,s.clientY);i.is_primary&&(this.left_mouse_button_released=!0,this.left_mouse_button_down=!1),this.remove_pointer(i.id)}}pointer_move(t){1!==t.scale&&t.preventDefault();let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t];this.update_pointer(s.identifier,s.clientX,s.clientY)}}pointer_cancel(t){this.pointer_out(t)}pointer_out(t){let e=t.changedTouches;for(let t=0;t<e.length;t++){let s=e[t],i=this.update_pointer(s.identifier,s.clientX,s.clientY);this.left_mouse_button_down&&i.is_primary&&(this.left_mouse_button_down=!1,this.left_mouse_button_released=!0),this.remove_pointer(i.id)}}clear(){this.left_mouse_button_pressed=!1,this.left_mouse_button_released=!1,this.scroll_delta=0}}export class InputController{constructor(t){this.dom_element=t,this.mouse_input_module=new s,this.touch_input_module=new i,this.active_input_module=this.mouse_input_module,this.element_bounds={x:0,y:0,width:1,height:1},this.update_element_bounds(),this.touch_cooldown=new Date-1e3;let e=this;t.addEventListener("wheel",(t=>{e.mouse_input_module.scroll(t),e.set_mouse_input_active()})),t.addEventListener("touchstart",(t=>{e.touch_input_module.pointer_down(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchmove",(t=>{e.touch_input_module.pointer_move(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchcancel",(t=>{e.touch_input_module.pointer_cancel(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("touchend",(t=>{e.touch_input_module.pointer_up(t),e.set_touch_input_active()}),{passive:!1}),t.addEventListener("mousedown",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_down(t),e.set_mouse_input_active())}),!1),t.addEventListener("mousemove",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_move(t),e.set_mouse_input_active())}),!1),t.addEventListener("mouseup",(t=>{e.mouse_input_allowed()&&(e.mouse_input_module.pointer_up(t),e.set_mouse_input_active())}),!1),t.addEventListener("mouseleave",(t=>{e.mouse_input_module.pointer_out(t),e.set_mouse_input_active()}),!1)}clear(){this.touch_input_module.clear(),this.mouse_input_module.clear()}update_element_bounds(){let t=this.dom_element.getBoundingClientRect();this.element_bounds.x=t.x,this.element_bounds.y=t.y,this.element_bounds.width=t.width,this.element_bounds.height=t.height}mouse_input_allowed(){return(new Date-this.touch_cooldown)/1e3>.75}set_mouse_input_active(){this.active_input_module=this.mouse_input_module}set_touch_input_active(){this.active_input_module=this.touch_input_module,this.touch_cooldown=new Date}get left_mouse_button_pressed(){return this.active_input_module.left_mouse_button_pressed}get left_mouse_button_down(){return this.active_input_module.left_mouse_button_down}get left_mouse_button_released(){return this.active_input_module.left_mouse_button_released}get right_mouse_button_pressed(){return this.mouse_input_module.right_mouse_button_pressed}get right_mouse_button_down(){return this.mouse_input_module.right_mouse_button_down}get right_mouse_button_released(){return this.mouse_input_module.right_mouse_button_released}get middle_mouse_button_pressed(){return this.mouse_input_module.middle_mouse_button_pressed}get middle_mouse_button_down(){return this.mouse_input_module.middle_mouse_button_down}get middle_mouse_button_released(){return this.mouse_input_module.middle_mouse_button_released}get mouse_pos(){return{x:this.active_input_module.pointer_pos.x,y:this.element_bounds.height-this.active_input_module.pointer_pos.y}}get mouse_pos_delta(){let t=this.active_input_module.pointer_pos_delta;return t.y*=-1,t}get NDC(){return this.check_for_legal_bounds(this.mouse_pos),{x:this.mouse_pos.x/this.element_bounds.width*2-1,y:this.mouse_pos.y/this.element_bounds.height*2-1}}get NDC_delta(){return this.check_for_legal_bounds(this.mouse_pos),{x:this.mouse_pos_delta.x/this.element_bounds.width,y:this.mouse_pos_delta.y/this.element_bounds.height}}check_for_legal_bounds(){0!==this.element_bounds.width&&0!==this.element_bounds.height||console.error("Cannot get normalized mouse position for target element due to the element having 0 width or height",this.dom_element,this.element_bounds)}get scroll_delta(){return this.active_input_module.scroll_delta}get pointer_count(){return this.active_input_module.pointer_count}} | ||
//# sourceMappingURL=PIT.js.map |
{ | ||
"name": "pit-js", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Pollable Input", | ||
@@ -5,0 +5,0 @@ "module": "examples/build/PIT.js", |
@@ -49,3 +49,3 @@ # Pollable InpuT | ||
console.log("mouse_pos", input.mouse_pos) // on mobile this will represent the center of all active touches | ||
console.log("mouse_pos", input.mouse_pos) // on mobile this will represent the position of the primary touch | ||
console.log("normalized mouse pos", input.NDC) // NDC stands for normalized device coordinates | ||
@@ -79,5 +79,5 @@ | ||
input.mouse_pos //{x,y} screen coordinates of the mouse position, or the center of all active touches | ||
input.mouse_pos //{x,y} screen coordinates of the mouse (or primary touch) position | ||
input.mouse_pos_delta //{x,y} difference between previous position and current position. | ||
input.NDC //{x,y} [-1..1] normalized device coordinates for mouse or center of all active touches | ||
input.NDC //{x,y} [-1..1] normalized device coordinates for mouse or primary touch | ||
input.NDC_delta //{x,y} [-1..1] difference between previous normalized position and current normalized position | ||
@@ -84,0 +84,0 @@ |
@@ -21,3 +21,2 @@ import MouseInputModule from './MouseInputModule'; | ||
}; | ||
this.last_mouse_pos = {x: 0, y:0}; | ||
@@ -65,3 +64,2 @@ this.update_element_bounds(); | ||
self.mouse_input_module.pointer_down(event); | ||
self.update_last_mouse_pos(); | ||
self.set_mouse_input_active() | ||
@@ -101,3 +99,2 @@ } | ||
this.update_last_mouse_pos(); | ||
} | ||
@@ -173,2 +170,17 @@ | ||
get mouse_pos() | ||
@@ -184,6 +196,5 @@ { | ||
{ | ||
return { | ||
x: this.mouse_pos.x - this.last_mouse_pos.x, | ||
y: this.mouse_pos.y - this.last_mouse_pos.y | ||
}; | ||
let pos_delta = this.active_input_module.pointer_pos_delta; | ||
pos_delta.y *= -1; | ||
return pos_delta; | ||
} | ||
@@ -218,8 +229,2 @@ | ||
update_last_mouse_pos() | ||
{ | ||
this.last_mouse_pos.x = this.mouse_pos.x; | ||
this.last_mouse_pos.y = this.mouse_pos.y; | ||
} | ||
get scroll_delta() | ||
@@ -232,4 +237,4 @@ { | ||
{ | ||
return this.active_input_module.pointers_count; | ||
return this.active_input_module.pointer_count; | ||
} | ||
} |
@@ -21,2 +21,3 @@ import MathUtilities from './utilities/MathUtilities'; | ||
this.pointer_pos = {x: 0, y: 0}; | ||
this.previous_pointer_pos = {x: 0, y: 0}; | ||
@@ -39,5 +40,9 @@ this.scroll_delta = 0; | ||
{ | ||
this.pointer_pos.x = event.clientX; | ||
this.pointer_pos.y = event.clientY; | ||
this.previous_pointer_pos.x = event.clientX; | ||
this.previous_pointer_pos.y = event.clientY; | ||
switch(event.button) | ||
@@ -87,3 +92,3 @@ { | ||
{ | ||
this.pointer_pos(event) | ||
this.pointer_out(event) | ||
} | ||
@@ -171,4 +176,20 @@ pointer_out(event) | ||
this.update_previous_pointer_pos(); | ||
} | ||
get pointer_pos_delta() | ||
{ | ||
return { | ||
x: this.pointer_pos.x - this.previous_pointer_pos.x, | ||
y: this.pointer_pos.y - this.previous_pointer_pos.y | ||
} | ||
} | ||
update_previous_pointer_pos() | ||
{ | ||
this.previous_pointer_pos.x = this.pointer_pos.x; | ||
this.previous_pointer_pos.y = this.pointer_pos.y; | ||
} | ||
} |
@@ -21,11 +21,11 @@ export default class TouchInputModule | ||
for(let i=0; i< this.pointers.length; i++) | ||
let p = this.pointers.find( p => p.is_primary ); | ||
if(p) | ||
{ | ||
x += this.pointers[i].x; | ||
y += this.pointers[i].y; | ||
x = p.x; | ||
y = p.y; | ||
} | ||
x /= Math.max(1, this.pointers.length); | ||
y /= Math.max(1, this.pointers.length); | ||
return { | ||
@@ -37,2 +37,21 @@ x: x, | ||
get pointer_pos_delta() | ||
{ | ||
let x = 0; | ||
let y = 0; | ||
let p = this.pointers.find( p => p.is_primary ); | ||
if(p) | ||
{ | ||
x = p.x - p.previous_x | ||
y = p.y - p.previous_y | ||
} | ||
return { | ||
x: x, | ||
y: y | ||
} | ||
} | ||
get pointer_count() | ||
@@ -70,3 +89,3 @@ { | ||
{ | ||
let p = this.pointers.find((p)=>{ return p.id === pointer_id}); | ||
let p = this.pointers.find( p => p.id === pointer_id ); | ||
if(p === undefined) | ||
@@ -78,2 +97,4 @@ { | ||
y: y, | ||
previous_x: x, | ||
previous_y: y, | ||
is_primary: this.pointers.length === 0 | ||
@@ -84,2 +105,5 @@ } | ||
p.previous_x = p.x; | ||
p.previous_y = p.y; | ||
p.x = x; | ||
@@ -95,3 +119,3 @@ p.y = y; | ||
{ | ||
let index = this.pointers.findIndex((p)=>{ return p.id === pointer_id}); | ||
let index = this.pointers.findIndex( p => p.id === pointer_id ); | ||
if(index !== undefined) | ||
@@ -98,0 +122,0 @@ { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1306076
32353