Loading x3d_web_viewer/viewmodel.js +78 −8 Original line number Original line Diff line number Diff line Loading @@ -12,26 +12,34 @@ var NSN = "m"; var elphel_wiki_prefix = "http://wiki.elphel.com/index.php?search=" var elphel_wiki_prefix = "http://wiki.elphel.com/index.php?search=" var nobuttons = false; var nobuttons = false; var nocontrols = false; var nocontrols = false; var notitle = false; var nodocs = false; var animate = false; var animate = false; var settings_file = "settings.xml"; var settings_file = "settings.xml"; var path = ""; var path = ""; var inherited_parameters = ""; var inherited_parameters = ""; var screen_ratio = 1;//w/h var zoom = 0.9; function resize(){ function resize(){ console.log("resize"); console.log("resize"); var w = $(window).width(); var w = $(window).width(); var h = $(window).height(); var h = $(window).height(); if (w>h){ if (w>h){ $("#main").css({width:(h-10)+"px",height:(h-10)+"px"}); $("#main").css({width:(Math.round(h*screen_ratio)-10)+"px",height:(h-10)+"px"}); $("#x3d_canvas").css({width:(h-10)+"px",height:(h-10)+"px"}); $("#x3d_canvas").css({width:(Math.round(h*screen_ratio)-10)+"px",height:(h-10)+"px"}); $("#bom").css({left:(h)+"px"}); $("#bom").css({left:(Math.round(h*screen_ratio))+"px"}); //$("#thrd").css({left:(h-107)+"px"}); //$("#thrd").css({left:(h-107)+"px"}); }else{ }else{ $("#main").css({width:(w-10)+"px",height:(w-10)+"px"}); $("#main").css({width:(w-10)+"px",height:(Math.round(w/screen_ratio)-10)+"px"}); $("#x3d_canvas").css({width:(w-10)+"px",height:(w-10)+"px"}); $("#x3d_canvas").css({width:(w-10)+"px",height:(Math.round(w/screen_ratio)-10)+"px"}); $("#bom").css({left:(w)+"px"}); $("#bom").css({left:(w)+"px"}); //$("#thrd").css({left:(w-107)+"px"}); //$("#thrd").css({left:(w-107)+"px"}); } } $("#title").css({ left: ($("#main").width()/2-$("#title").width()/2)+"px", }); } } var resizeTimer; var resizeTimer; Loading Loading @@ -328,6 +336,36 @@ function prerun(){ $("#thrd").css({display:"none"}); $("#thrd").css({display:"none"}); } } var index = model.lastIndexOf("/"); /* if (index<0){ index = 0; } */ var model_pn = model.substr(index+1); model_pn = model_pn.slice(0,-4); var pn_title = $("<div>",{id:"title"}).css({ position:"absolute", "border-radius":"2px 2px 2px 2px", border: "1px solid gray", color:"white", "font-size":"1.2em", padding:"10px 10px 10px 10px", background:"rgba(50,50,50,0.9)" }).html(model_pn); $("#main").append(pn_title); pn_title.css({ top: "0px", left: ($("#main").width()/2-pn_title.width()/2)+"px", }); if (notitle){ pn_title.css({display:"none"}); } } } Loading Loading @@ -371,7 +409,7 @@ function place_camera(){ console.log("field of view is "+fov); console.log("field of view is "+fov); //(top_bboxsize[1]/2) / l = tg a/2 //(top_bboxsize[1]/2) / l = tg a/2 fov=fov*0.9; fov=fov*zoom; var phi = -0.7; var phi = -0.7; var boxsize; var boxsize; Loading Loading @@ -595,7 +633,9 @@ function unbindCanvas(){ canvas.removeEventListener("mousedown", mousestarted,false); canvas.removeEventListener("mousedown", mousestarted,false); canvas.removeEventListener("mousemove", mousemoved,true); //does not work with false canvas.removeEventListener("mousemove", mousemoved,true); //does not work with false canvas.removeEventListener("mouseup", mouseended,true); canvas.removeEventListener("mouseup", mouseended,true); canvas.removeEventListener("mouseleave",mouseleft,false); canvas.removeEventListener("touchend", mouseended,false); canvas.removeEventListener("touchend", mouseended,false); canvas.removeEventListener("touchcancel", touchcanceled,false); } } function bindCanvas(){ function bindCanvas(){ Loading Loading @@ -628,8 +668,10 @@ function bindCanvas(){ canvas.addEventListener("touchmove", touchmoved,false); canvas.addEventListener("touchmove", touchmoved,false); canvas.addEventListener("mousedown", mousestarted,false); canvas.addEventListener("mousedown", mousestarted,false); canvas.addEventListener("mousemove", mousemoved,true); //does not work with false canvas.addEventListener("mousemove", mousemoved,true); //does not work with false canvas.addEventListener("mouseleave", mouseleft,false); canvas.addEventListener("mouseup", mouseended,true); canvas.addEventListener("mouseup", mouseended,true); canvas.addEventListener("touchend", mouseended,false); canvas.addEventListener("touchend", mouseended,false); canvas.addEventListener("touchcancel",touchcanceled,false); console.log("Added event listeners"); console.log("Added event listeners"); //click //click Loading Loading @@ -663,8 +705,24 @@ function bindCanvas(){ var switch_click_time = 0; var switch_click_time = 0; function touchstarted(){ function mouseleft(e){ console.log("Mouseleft!"); mouseended(e); } function touchcanceled(e){ console.log("Touchcanceled"); mouseended(e); } var touched_element; function touchstarted(event){ stop_animation(); stop_animation(); /* var touch = event.touches[0]; touched_element = document.elementFromPoint(touch.pageX,touch.pageY); */ blockclick = false; blockclick = false; dragging = false; dragging = false; moveTimeStamp = getTimeStamp(); moveTimeStamp = getTimeStamp(); Loading @@ -673,6 +731,12 @@ function touchstarted(){ } } function touchmoved(event){ function touchmoved(event){ /* var touches = event.touches[0]; if (touched_element !== document.elementFromPoint(touch.pageX,touch.pageY)) { mouseended(event); } */ //blockclick = true; //blockclick = true; if ((getTimeStamp()-moveTimeStamp)>100){ if ((getTimeStamp()-moveTimeStamp)>100){ blockclick = true; blockclick = true; Loading Loading @@ -981,7 +1045,9 @@ function update_info(name,state,cmd){ model_run_cmd(name,"info-hide-click"); model_run_cmd(name,"info-hide-click"); }); }); $("#info").append(pn).append($("<span>").append(open_btn)).append($("<span>").append(wiki_btn)).append($("<span>").append(hide_btn)).css({display:""}); $("#info").append(pn).append($("<span>").append(open_btn)); if (!nodocs) $("#info").append($("<span>").append(wiki_btn)); $("#info").append($("<span>").append(hide_btn)).css({display:""}); } } break; break; case "click-ext": case "click-ext": Loading Loading @@ -1245,9 +1311,13 @@ function parseURL() { case "nobuttons": nobuttons = true;break; case "nobuttons": nobuttons = true;break; case "animate": animate = true;break; case "animate": animate = true;break; case "nocontrols": nocontrols = true;break; case "nocontrols": nocontrols = true;break; case "notitle": notitle = true;break; case "nodocs": nodocs = true;break; case "fraction": fraction = parseInt(parameters[i][1]);break; case "fraction": fraction = parseInt(parameters[i][1]);break; case "halflife": halflife = parseInt(parameters[i][1]);break; case "halflife": halflife = parseInt(parameters[i][1]);break; case "releasetimelimit": moveReleaseTimeLimit = parseInt(parameters[i][1]);break; case "releasetimelimit": moveReleaseTimeLimit = parseInt(parameters[i][1]);break; case "screen_ratio": screen_ratio = parseFloat(parameters[i][1]);break; case "zoom": zoom = parseFloat(parameters[i][1]);break; //case "settings": settings_file = parameters[i][1];break; //case "settings": settings_file = parameters[i][1];break; } } } } Loading Loading
x3d_web_viewer/viewmodel.js +78 −8 Original line number Original line Diff line number Diff line Loading @@ -12,26 +12,34 @@ var NSN = "m"; var elphel_wiki_prefix = "http://wiki.elphel.com/index.php?search=" var elphel_wiki_prefix = "http://wiki.elphel.com/index.php?search=" var nobuttons = false; var nobuttons = false; var nocontrols = false; var nocontrols = false; var notitle = false; var nodocs = false; var animate = false; var animate = false; var settings_file = "settings.xml"; var settings_file = "settings.xml"; var path = ""; var path = ""; var inherited_parameters = ""; var inherited_parameters = ""; var screen_ratio = 1;//w/h var zoom = 0.9; function resize(){ function resize(){ console.log("resize"); console.log("resize"); var w = $(window).width(); var w = $(window).width(); var h = $(window).height(); var h = $(window).height(); if (w>h){ if (w>h){ $("#main").css({width:(h-10)+"px",height:(h-10)+"px"}); $("#main").css({width:(Math.round(h*screen_ratio)-10)+"px",height:(h-10)+"px"}); $("#x3d_canvas").css({width:(h-10)+"px",height:(h-10)+"px"}); $("#x3d_canvas").css({width:(Math.round(h*screen_ratio)-10)+"px",height:(h-10)+"px"}); $("#bom").css({left:(h)+"px"}); $("#bom").css({left:(Math.round(h*screen_ratio))+"px"}); //$("#thrd").css({left:(h-107)+"px"}); //$("#thrd").css({left:(h-107)+"px"}); }else{ }else{ $("#main").css({width:(w-10)+"px",height:(w-10)+"px"}); $("#main").css({width:(w-10)+"px",height:(Math.round(w/screen_ratio)-10)+"px"}); $("#x3d_canvas").css({width:(w-10)+"px",height:(w-10)+"px"}); $("#x3d_canvas").css({width:(w-10)+"px",height:(Math.round(w/screen_ratio)-10)+"px"}); $("#bom").css({left:(w)+"px"}); $("#bom").css({left:(w)+"px"}); //$("#thrd").css({left:(w-107)+"px"}); //$("#thrd").css({left:(w-107)+"px"}); } } $("#title").css({ left: ($("#main").width()/2-$("#title").width()/2)+"px", }); } } var resizeTimer; var resizeTimer; Loading Loading @@ -328,6 +336,36 @@ function prerun(){ $("#thrd").css({display:"none"}); $("#thrd").css({display:"none"}); } } var index = model.lastIndexOf("/"); /* if (index<0){ index = 0; } */ var model_pn = model.substr(index+1); model_pn = model_pn.slice(0,-4); var pn_title = $("<div>",{id:"title"}).css({ position:"absolute", "border-radius":"2px 2px 2px 2px", border: "1px solid gray", color:"white", "font-size":"1.2em", padding:"10px 10px 10px 10px", background:"rgba(50,50,50,0.9)" }).html(model_pn); $("#main").append(pn_title); pn_title.css({ top: "0px", left: ($("#main").width()/2-pn_title.width()/2)+"px", }); if (notitle){ pn_title.css({display:"none"}); } } } Loading Loading @@ -371,7 +409,7 @@ function place_camera(){ console.log("field of view is "+fov); console.log("field of view is "+fov); //(top_bboxsize[1]/2) / l = tg a/2 //(top_bboxsize[1]/2) / l = tg a/2 fov=fov*0.9; fov=fov*zoom; var phi = -0.7; var phi = -0.7; var boxsize; var boxsize; Loading Loading @@ -595,7 +633,9 @@ function unbindCanvas(){ canvas.removeEventListener("mousedown", mousestarted,false); canvas.removeEventListener("mousedown", mousestarted,false); canvas.removeEventListener("mousemove", mousemoved,true); //does not work with false canvas.removeEventListener("mousemove", mousemoved,true); //does not work with false canvas.removeEventListener("mouseup", mouseended,true); canvas.removeEventListener("mouseup", mouseended,true); canvas.removeEventListener("mouseleave",mouseleft,false); canvas.removeEventListener("touchend", mouseended,false); canvas.removeEventListener("touchend", mouseended,false); canvas.removeEventListener("touchcancel", touchcanceled,false); } } function bindCanvas(){ function bindCanvas(){ Loading Loading @@ -628,8 +668,10 @@ function bindCanvas(){ canvas.addEventListener("touchmove", touchmoved,false); canvas.addEventListener("touchmove", touchmoved,false); canvas.addEventListener("mousedown", mousestarted,false); canvas.addEventListener("mousedown", mousestarted,false); canvas.addEventListener("mousemove", mousemoved,true); //does not work with false canvas.addEventListener("mousemove", mousemoved,true); //does not work with false canvas.addEventListener("mouseleave", mouseleft,false); canvas.addEventListener("mouseup", mouseended,true); canvas.addEventListener("mouseup", mouseended,true); canvas.addEventListener("touchend", mouseended,false); canvas.addEventListener("touchend", mouseended,false); canvas.addEventListener("touchcancel",touchcanceled,false); console.log("Added event listeners"); console.log("Added event listeners"); //click //click Loading Loading @@ -663,8 +705,24 @@ function bindCanvas(){ var switch_click_time = 0; var switch_click_time = 0; function touchstarted(){ function mouseleft(e){ console.log("Mouseleft!"); mouseended(e); } function touchcanceled(e){ console.log("Touchcanceled"); mouseended(e); } var touched_element; function touchstarted(event){ stop_animation(); stop_animation(); /* var touch = event.touches[0]; touched_element = document.elementFromPoint(touch.pageX,touch.pageY); */ blockclick = false; blockclick = false; dragging = false; dragging = false; moveTimeStamp = getTimeStamp(); moveTimeStamp = getTimeStamp(); Loading @@ -673,6 +731,12 @@ function touchstarted(){ } } function touchmoved(event){ function touchmoved(event){ /* var touches = event.touches[0]; if (touched_element !== document.elementFromPoint(touch.pageX,touch.pageY)) { mouseended(event); } */ //blockclick = true; //blockclick = true; if ((getTimeStamp()-moveTimeStamp)>100){ if ((getTimeStamp()-moveTimeStamp)>100){ blockclick = true; blockclick = true; Loading Loading @@ -981,7 +1045,9 @@ function update_info(name,state,cmd){ model_run_cmd(name,"info-hide-click"); model_run_cmd(name,"info-hide-click"); }); }); $("#info").append(pn).append($("<span>").append(open_btn)).append($("<span>").append(wiki_btn)).append($("<span>").append(hide_btn)).css({display:""}); $("#info").append(pn).append($("<span>").append(open_btn)); if (!nodocs) $("#info").append($("<span>").append(wiki_btn)); $("#info").append($("<span>").append(hide_btn)).css({display:""}); } } break; break; case "click-ext": case "click-ext": Loading Loading @@ -1245,9 +1311,13 @@ function parseURL() { case "nobuttons": nobuttons = true;break; case "nobuttons": nobuttons = true;break; case "animate": animate = true;break; case "animate": animate = true;break; case "nocontrols": nocontrols = true;break; case "nocontrols": nocontrols = true;break; case "notitle": notitle = true;break; case "nodocs": nodocs = true;break; case "fraction": fraction = parseInt(parameters[i][1]);break; case "fraction": fraction = parseInt(parameters[i][1]);break; case "halflife": halflife = parseInt(parameters[i][1]);break; case "halflife": halflife = parseInt(parameters[i][1]);break; case "releasetimelimit": moveReleaseTimeLimit = parseInt(parameters[i][1]);break; case "releasetimelimit": moveReleaseTimeLimit = parseInt(parameters[i][1]);break; case "screen_ratio": screen_ratio = parseFloat(parameters[i][1]);break; case "zoom": zoom = parseFloat(parameters[i][1]);break; //case "settings": settings_file = parameters[i][1];break; //case "settings": settings_file = parameters[i][1];break; } } } } Loading