From 5ccc56b28c870a0c3e65bd08ffab99f829c50f4f Mon Sep 17 00:00:00 2001 From: Russell Toris Date: Mon, 1 Apr 2013 09:32:07 -0700 Subject: [PATCH 1/4] continuous flag in OccupancyGridClient fixed --- src/maps/OccupancyGridClient.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/maps/OccupancyGridClient.js b/src/maps/OccupancyGridClient.js index c935eb6da..3175a39ca 100644 --- a/src/maps/OccupancyGridClient.js +++ b/src/maps/OccupancyGridClient.js @@ -20,7 +20,7 @@ ROS3D.OccupancyGridClient = function(options) { var options = options || {}; var ros = options.ros; var topic = options.topic || '/map'; - this.tfClient = options.tfClient; + this.continuous = options.continuous; this.rootObject = options.rootObject || new THREE.Object3D(); // current grid that is displayed @@ -45,6 +45,11 @@ ROS3D.OccupancyGridClient = function(options) { that.rootObject.add(that.currentGrid); that.emit('change'); + + // check if we should unsubscribe + if(!that.continuous) { + rosTopic.unsubscribe(); + } }); }; ROS3D.OccupancyGridClient.prototype.__proto__ = EventEmitter2.prototype; From d036bca569718f4e85d9b016cdd95aee4baf982e Mon Sep 17 00:00:00 2001 From: Russell Toris Date: Mon, 1 Apr 2013 09:38:13 -0700 Subject: [PATCH 2/4] README updated --- README | 1 - README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index e4cf84fa2..000000000 --- a/README +++ /dev/null @@ -1 +0,0 @@ -NOTE: THIS CODE IS HIGHLY EXPERIMENTAL. IT IS MEANT AS A RESTRUCTURING AND STANDARDIZATION ATTEMPT FOR THE ROS JAVASCRIPT LIBRARIES. USE AT YOUR OWN RISK UNTIL AN OFFICIAL RELEASE IS MADE. FOR MORE INFORMATION, REFER TO https://github.com/RobotWebTools/robotwebtools.github.com/wiki/Libraries-Structure-Overview diff --git a/README.md b/README.md new file mode 100644 index 000000000..4695560c9 --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +ros3djs +======== + +#### 3D Visualization Library for use with the ROS JavaScript Libraries #### + +For full documentation, see [the ROS wiki](http://ros.org/wiki/ros3djs) or check out some [working demos](http://robotwebtools.org/). + +[JSDoc](http://robotwebtools.org/jsdoc/ros3djs/current/) can be found on the Robot Web Tools website. + +This project is released as part of the [Robot Web Tools](http://robotwebtools.org/) effort. + +### Usage ### +Pre-built files can be found in either [ros3d.js](build/ros3d.js) or [ros3d.min.js](build/ros3d.min.js). + +Alternatively, you can use the current release via the Robot Web Tools CDN ([full](http://cdn.robotsfor.me/ros3djs/current/ros3d.js)) | ([min](http://cdn.robotsfor.me/ros3djs/current/ros3d.min.js)) + +### Dependencies ### +ros3djs depends on: + +[EventEmitter2](https://github.com/hij1nx/EventEmitter2). The current supported version is 0.4.11. +The current supported version can be found [in this project](include/EventEmitter2/eventemitter2.js) or on the Robot Web Tools CDN ([full](http://cdn.robotsfor.me/EventEmitter2/0.4.11/eventemitter2.js)) | ([min](http://cdn.robotsfor.me/EventEmitter2/0.4.11/eventemitter2.min.js)) + +[three.js](https://github.com/mrdoob/three.js/). The current supported version is r56. +The current supported version can be found [in this project](include/threejs/three.js) or on the Robot Web Tools CDN ([full](http://cdn.robotsfor.me/threejs/r56/three.js)) | ([min](http://cdn.robotsfor.me/threejs/r56/three.minjs)). + +[roslibjs](https://github.com/RobotWebTools/roslibjs). The current supported version is r4. +The current supported version can be found [in this project](include/roslibjs/roslib.js) or on the Robot Web Tools CDN ([full](http://cdn.robotsfor.me/roslibjs/r4/roslib.js)) | ([min](http://cdn.robotsfor.me/roslibjs/r4/roslib.min.js)). + +### Build ### +To build from source, use the provided [ANT script](utils/build.xml). + +The script requires ANT, YUI Compressor, and JSDoc. To install these on an Ubuntu machine, use the following: + + sudo apt-get install ant yui-compressor jsdoc-toolkit + +To run the build script, use the following: + + cd utils/ + ant + +### License ### +ros3djs is released with a BSD license. For full terms and conditions, see the [LICENSE](LICENSE) file. + +### Authors ### +See the [AUTHORS](AUTHORS) file for a full list of contributors. + From 1cc7201b2a51dcff6c7588d26e0deca217ae8897 Mon Sep 17 00:00:00 2001 From: Russell Toris Date: Mon, 1 Apr 2013 09:38:35 -0700 Subject: [PATCH 3/4] build updated --- build/ros3d.js | 7 ++++++- build/ros3d.min.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/build/ros3d.js b/build/ros3d.js index 4669beb22..2f1718361 100644 --- a/build/ros3d.js +++ b/build/ros3d.js @@ -1250,7 +1250,7 @@ ROS3D.OccupancyGridClient = function(options) { var options = options || {}; var ros = options.ros; var topic = options.topic || '/map'; - this.tfClient = options.tfClient; + this.continuous = options.continuous; this.rootObject = options.rootObject || new THREE.Object3D(); // current grid that is displayed @@ -1275,6 +1275,11 @@ ROS3D.OccupancyGridClient = function(options) { that.rootObject.add(that.currentGrid); that.emit('change'); + + // check if we should unsubscribe + if(!that.continuous) { + rosTopic.unsubscribe(); + } }); }; ROS3D.OccupancyGridClient.prototype.__proto__ = EventEmitter2.prototype; diff --git a/build/ros3d.min.js b/build/ros3d.min.js index 071bf38f2..938982a4a 100644 --- a/build/ros3d.min.js +++ b/build/ros3d.min.js @@ -1 +1 @@ -var ROS3D=ROS3D||{REVISION:"2-devel"};ROS3D.MARKER_ARROW=0;ROS3D.MARKER_CUBE=1;ROS3D.MARKER_SPHERE=2;ROS3D.MARKER_CYLINDER=3;ROS3D.MARKER_LINE_STRIP=4;ROS3D.MARKER_LINE_LIST=5;ROS3D.MARKER_CUBE_LIST=6;ROS3D.MARKER_SPHERE_LIST=7;ROS3D.MARKER_POINTS=8;ROS3D.MARKER_TEXT_VIEW_FACING=9;ROS3D.MARKER_MESH_RESOURCE=10;ROS3D.MARKER_TRIANGLE_LIST=11;ROS3D.INTERACTIVE_MARKER_KEEP_ALIVE=0;ROS3D.INTERACTIVE_MARKER_POSE_UPDATE=1;ROS3D.INTERACTIVE_MARKER_MENU_SELECT=2;ROS3D.INTERACTIVE_MARKER_BUTTON_CLICK=3;ROS3D.INTERACTIVE_MARKER_MOUSE_DOWN=4;ROS3D.INTERACTIVE_MARKER_MOUSE_UP=5;ROS3D.INTERACTIVE_MARKER_NONE=0;ROS3D.INTERACTIVE_MARKER_MENU=1;ROS3D.INTERACTIVE_MARKER_BUTTON=2;ROS3D.INTERACTIVE_MARKER_MOVE_AXIS=3;ROS3D.INTERACTIVE_MARKER_MOVE_PLANE=4;ROS3D.INTERACTIVE_MARKER_ROTATE_AXIS=5;ROS3D.INTERACTIVE_MARKER_MOVE_ROTATE=6;ROS3D.INTERACTIVE_MARKER_INHERIT=0;ROS3D.INTERACTIVE_MARKER_FIXED=1;ROS3D.INTERACTIVE_MARKER_VIEW_FACING=2;ROS3D.makeColorMaterial=function(h,f,c,d){var e=new THREE.Color();e.setRGB(h,f,c);if(d<=0.99){return new THREE.MeshBasicMaterial({color:e.getHex(),opacity:d+0.1,transparent:true,depthWrite:true,blendSrc:THREE.SrcAlphaFactor,blendDst:THREE.OneMinusSrcAlphaFactor,blendEquation:THREE.ReverseSubtractEquation,blending:THREE.NormalBlending})}else{return new THREE.MeshLambertMaterial({color:e.getHex(),opacity:d,blending:THREE.NormalBlending})}};ROS3D.intersectPlane=function(d,a,e){var b=new THREE.Vector3();var c=new THREE.Vector3();b.subVectors(a,d.origin);dot=d.direction.dot(e);if(Math.abs(dot)0){this.menu=new ROS3D.InteractiveMarkerMenu({menuEntries:d.menuEntries});this.menu.addEventListener("menu-select",function(f){c.dispatchEvent(f)})}};ROS3D.InteractiveMarker.prototype.__proto__=THREE.Object3D.prototype;ROS3D.InteractiveMarker.prototype.showMenu=function(b,a){if(this.menu){this.menu.show(b,a)}};ROS3D.InteractiveMarker.prototype.moveAxis=function(e,h,f){if(this.dragging){var d=e.currentControlOri;var c=h.clone().applyQuaternion(d);var g=this.dragStart.event3d.intersection.point;var l=c.clone().applyQuaternion(this.dragStart.orientationWorld.clone());var a=new THREE.Ray(g,l);var k=ROS3D.closestAxisPoint(a,f.camera,f.mousePos);var b=new THREE.Vector3;b.addVectors(this.dragStart.position,c.clone().applyQuaternion(this.dragStart.orientation).multiplyScalar(k));this.setPosition(e,b);f.stopPropagation()}};ROS3D.InteractiveMarker.prototype.movePlane=function(d,g,h){if(this.dragging){var c=d.currentControlOri;var f=g.clone().applyQuaternion(c);var k=this.dragStart.event3d.intersection.point;var e=f.clone().applyQuaternion(this.dragStart.orientationWorld);var a=ROS3D.intersectPlane(h.mouseRay,k,e);var b=new THREE.Vector3;b.subVectors(a,k);b.add(this.dragStart.positionWorld);this.setPosition(d,b);h.stopPropagation()}};ROS3D.InteractiveMarker.prototype.rotateAxis=function(l,g,c){if(this.dragging){l.updateMatrixWorld();var q=l.currentControlOri;var e=q.clone().multiply(g.clone());var t=(new THREE.Vector3(1,0,0)).applyQuaternion(e);var n=this.dragStart.event3d.intersection.point;var f=t.applyQuaternion(this.dragStart.orientationWorld);var k=ROS3D.intersectPlane(c.mouseRay,n,f);var b=new THREE.Ray(this.dragStart.positionWorld,f);var d=ROS3D.intersectPlane(b,n,f);var m=this.dragStart.orientationWorld.clone().multiply(e);var p=m.clone().inverse();k.sub(d);k.applyQuaternion(p);var o=this.dragStart.event3d.intersection.point.clone();o.sub(d);o.applyQuaternion(p);var u=Math.atan2(k.y,k.z);var s=Math.atan2(o.y,o.z);var r=s-u;var h=new THREE.Quaternion();h.setFromAxisAngle(t,r);this.setOrientation(l,h.multiply(this.dragStart.orientationWorld));c.stopPropagation()}};ROS3D.InteractiveMarker.prototype.feedbackEvent=function(a,b){this.dispatchEvent({type:a,position:this.position.clone(),orientation:this.quaternion.clone(),controlName:b.name})};ROS3D.InteractiveMarker.prototype.startDrag=function(b,a){if(a.domEvent.button===0){a.stopPropagation();this.dragging=true;this.updateMatrixWorld(true);var c=new THREE.Vector3();this.matrixWorld.decompose(this.dragStart.positionWorld,this.dragStart.orientationWorld,c);this.dragStart.position=this.position.clone();this.dragStart.orientation=this.quaternion.clone();this.dragStart.event3d=a;this.feedbackEvent("user-mousedown",b)}};ROS3D.InteractiveMarker.prototype.stopDrag=function(b,a){if(a.domEvent.button===0){a.stopPropagation();this.dragging=false;this.dragStart.event3d={};this.onServerSetPose(this.bufferedPoseEvent);this.bufferedPoseEvent=undefined;this.feedbackEvent("user-mouseup",b)}};ROS3D.InteractiveMarker.prototype.buttonClick=function(b,a){a.stopPropagation();this.feedbackEvent("user-button-click",b)};ROS3D.InteractiveMarker.prototype.setPosition=function(b,a){this.position=a;this.feedbackEvent("user-pose-change",b)};ROS3D.InteractiveMarker.prototype.setOrientation=function(b,a){a.normalize();this.quaternion=a;this.feedbackEvent("user-pose-change",b)};ROS3D.InteractiveMarker.prototype.onServerSetPose=function(a){if(a!==undefined){if(this.dragging){this.bufferedPoseEvent=a}else{var b=a.pose;this.position.x=b.position.x;this.position.y=b.position.y;this.position.z=b.position.z;this.useQuaternion=true;this.quaternion=new THREE.Quaternion(b.orientation.x,b.orientation.y,b.orientation.z,b.orientation.w);this.updateMatrixWorld(true)}}};ROS3D.InteractiveMarkerClient=function(a){var b=this;var a=a||{};this.ros=a.ros;this.tfClient=a.tfClient;this.topic=a.topic;this.path=a.path||"/";this.camera=a.camera;this.rootObject=a.rootObject||new THREE.Object3D();this.interactiveMarkers={};this.updateTopic=null;this.feedbackTopic=null;if(this.topic){this.subscribe(this.topic)}};ROS3D.InteractiveMarkerClient.prototype.subscribe=function(a){this.unsubscribe();this.updateTopic=new ROSLIB.Topic({ros:this.ros,name:a+"/tunneled/update",messageType:"visualization_msgs/InteractiveMarkerUpdate",compression:"png"});this.updateTopic.subscribe(this.processUpdate.bind(this));this.feedbackTopic=new ROSLIB.Topic({ros:this.ros,name:a+"/feedback",messageType:"visualization_msgs/InteractiveMarkerFeedback",compression:"png"});this.feedbackTopic.advertise();this.initService=new ROSLIB.Service({ros:this.ros,name:a+"/tunneled/get_init",serviceType:"demo_interactive_markers/GetInit"});var b=new ROSLIB.ServiceRequest({});this.initService.callService(b,this.processInit.bind(this))};ROS3D.InteractiveMarkerClient.prototype.unsubscribe=function(){if(this.updateTopic){this.updateTopic.unsubscribe()}if(this.feedbackTopic){this.feedbackTopic.unadvertise()}for(intMarkerName in this.interactiveMarkers){this.eraseIntMarker(intMarkerName)}this.interactiveMarkers={}};ROS3D.InteractiveMarkerClient.prototype.processInit=function(b){var a=b.msg;a.erases=[];for(intMarkerName in this.interactiveMarkers){a.erases.push(intMarkerName)}a.poses=[];this.processUpdate(a)};ROS3D.InteractiveMarkerClient.prototype.processUpdate=function(b){var a=this;b.erases.forEach(function(d){var c=a.interactiveMarkers[d];a.eraseIntMarker(d)});b.poses.forEach(function(d){var c=a.interactiveMarkers[d.name];if(c){c.setPoseFromServer(d.pose)}});b.markers.forEach(function(f){var e=a.interactiveMarkers[f.name];if(e){a.eraseIntMarker(e.name)}var d=new ROS3D.InteractiveMarkerHandle({message:f,feedbackTopic:a.feedbackTopic,tfClient:a.tfClient});a.interactiveMarkers[f.name]=d;var c=new ROS3D.InteractiveMarker({handle:d,camera:a.camera,path:a.path});a.rootObject.add(c);d.on("pose",function(g){c.onServerSetPose({pose:g})});c.addEventListener("user-pose-change",d.setPoseFromClient.bind(d));c.addEventListener("user-mousedown",d.onMouseDown.bind(d));c.addEventListener("user-mouseup",d.onMouseUp.bind(d));c.addEventListener("user-button-click",d.onButtonClick.bind(d));c.addEventListener("menu-select",d.onMenuSelect.bind(d));d.subscribeTf()})};ROS3D.InteractiveMarkerClient.prototype.eraseIntMarker=function(a){if(this.interactiveMarkers[a]){delete this.interactiveMarkers[a]}};ROS3D.InteractiveMarkerControl=function(k){var e=this;THREE.Object3D.call(this);THREE.EventDispatcher.call(this);var k=k||{};this.parent=k.parent;var h=k.message;this.name=h.name;this.camera=k.camera;this.path=k.path||"/";this.dragging=false;var a=new THREE.Quaternion(h.orientation.x,h.orientation.y,h.orientation.z,h.orientation.w);a.normalize();var f=new THREE.Vector3(1,0,0);f.applyQuaternion(a);this.currentControlOri=new THREE.Quaternion();switch(h.interaction_mode){case ROS3D.INTERACTIVE_MARKER_MOVE_AXIS:this.addEventListener("mousemove",this.parent.moveAxis.bind(this.parent,this,f));this.addEventListener("touchmove",this.parent.moveAxis.bind(this.parent,this,f));break;case ROS3D.INTERACTIVE_MARKER_ROTATE_AXIS:this.addEventListener("mousemove",this.parent.rotateAxis.bind(this.parent,this,a));break;case ROS3D.INTERACTIVE_MARKER_MOVE_PLANE:this.addEventListener("mousemove",this.parent.movePlane.bind(this.parent,this,f));break;case ROS3D.INTERACTIVE_MARKER_BUTTON:this.addEventListener("click",this.parent.buttonClick.bind(this.parent,this));break;default:break}function g(l){l.stopPropagation()}if(h.interaction_mode!=ROS3D.INTERACTIVE_MARKER_NONE){this.addEventListener("mousedown",this.parent.startDrag.bind(this.parent,this));this.addEventListener("mouseup",this.parent.stopDrag.bind(this.parent,this));this.addEventListener("contextmenu",this.parent.showMenu.bind(this.parent,this));this.addEventListener("mouseover",g);this.addEventListener("mouseout",g);this.addEventListener("click",g);this.addEventListener("touchstart",function(l){console.log(l.domEvent);if(l.domEvent.touches.length==1){l.type="mousedown";l.domEvent.button=0;e.dispatchEvent(l)}});this.addEventListener("touchmove",function(l){if(l.domEvent.touches.length==1){console.log(l.domEvent);l.type="mousemove";l.domEvent.button=0;e.dispatchEvent(l)}});this.addEventListener("touchend",function(l){if(l.domEvent.touches.length==0){l.domEvent.button=0;l.type="mouseup";e.dispatchEvent(l);l.type="click";e.dispatchEvent(l)}})}var d=new THREE.Quaternion();var b=this.parent.position.clone().multiplyScalar(-1);switch(h.orientation_mode){case ROS3D.INTERACTIVE_MARKER_INHERIT:d=this.parent.quaternion.clone().inverse();this.updateMatrixWorld=function(l){ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,l);e.currentControlOri.copy(e.quaternion);e.currentControlOri.normalize()};break;case ROS3D.INTERACTIVE_MARKER_FIXED:this.updateMatrixWorld=function(l){e.useQuaternion=true;e.quaternion=e.parent.quaternion.clone().inverse();e.updateMatrix();e.matrixWorldNeedsUpdate=true;ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,l);e.currentControlOri.copy(e.quaternion)};break;case ROS3D.INTERACTIVE_MARKER_VIEW_FACING:var c=h.independentMarkerOrientation;this.updateMatrixWorld=function(n){e.camera.updateMatrixWorld();var q=new THREE.Matrix4().extractRotation(e.camera.matrixWorld);var o=new THREE.Matrix4();var m=Math.PI*0.5;var p=new THREE.Vector3(-m,0,m);o.setRotationFromEuler(p);var l=new THREE.Matrix4();l.getInverse(e.parent.matrixWorld);q.multiplyMatrices(q,o);q.multiplyMatrices(l,q);e.currentControlOri.setFromRotationMatrix(q);if(!c){e.useQuaternion=true;e.quaternion.copy(e.currentControlOri);e.updateMatrix();e.matrixWorldNeedsUpdate=true}ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,n)};break;default:console.error("Unkown orientation mode: "+h.orientation_mode);break}h.markers.forEach(function(m){var l=new ROS3D.Marker({message:m,path:e.path});if(m.header.frame_id!==""){l.position.add(b);l.position.applyQuaternion(d);l.quaternion.multiplyQuaternions(d,l.quaternion);l.updateMatrixWorld()}e.add(l)})};ROS3D.InteractiveMarkerControl.prototype.__proto__=THREE.Object3D.prototype;ROS3D.InteractiveMarkerHandle=function(a){var a=a||{};this.message=a.message;this.feedbackTopic=a.feedbackTopic;this.tfClient=a.tfClient;this.name=this.message.name;this.header=this.message.header;this.controls=this.message.controls;this.menuEntries=this.message.menu_entries;this.dragging=false;this.timeoutHandle=null;this.tfTransform=new ROSLIB.Transform();this.pose=new ROSLIB.Pose();this.setPoseFromServer(this.message.pose)};ROS3D.InteractiveMarkerHandle.prototype.__proto__=EventEmitter2.prototype;ROS3D.InteractiveMarkerHandle.prototype.subscribeTf=function(){if(this.message.header.stamp.secs===0&&this.message.header.stamp.nsecs===0){this.tfClient.subscribe(this.message.header.frame_id,this.tfUpdate.bind(this))}};ROS3D.InteractiveMarkerHandle.prototype.emitServerPoseUpdate=function(){var a=new ROSLIB.Pose(this.pose);a.applyTransform(this.tfTransform);this.emit("pose",a)};ROS3D.InteractiveMarkerHandle.prototype.setPoseFromServer=function(a){this.pose=new ROSLIB.Pose(a);this.emitServerPoseUpdate()};ROS3D.InteractiveMarkerHandle.prototype.tfUpdate=function(a){this.tfTransform=new ROSLIB.Transform(a);this.emitServerPoseUpdate()};ROS3D.InteractiveMarkerHandle.prototype.setPoseFromClient=function(b){this.pose=new ROSLIB.Pose(b);var a=this.tfTransform.clone();a.rotation.invert();this.pose.applyTransform(a);this.sendFeedback(ROS3D.INTERACTIVE_MARKER_POSE_UPDATE,undefined,0,b.controlName);if(this.dragging){if(this.timeoutHandle){clearTimeout(this.timeoutHandle)}this.timeoutHandle=setTimeout(this.setPoseFromClient.bind(this,b),250)}};ROS3D.InteractiveMarkerHandle.prototype.onButtonClick=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_BUTTON_CLICK,a.clickPosition,0,a.controlName)};ROS3D.InteractiveMarkerHandle.prototype.onMouseDown=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MOUSE_DOWN,a.clickPosition,0,a.controlName);this.dragging=true};ROS3D.InteractiveMarkerHandle.prototype.onMouseUp=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MOUSE_UP,a.clickPosition,0,a.controlName);this.dragging=false;if(this.timeoutHandle){clearTimeout(this.timeoutHandle)}};ROS3D.InteractiveMarkerHandle.prototype.onMenuSelect=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MENU_SELECT,undefined,a.id,a.controlName)};ROS3D.InteractiveMarkerHandle.prototype.sendFeedback=function(c,d,e,f){var b=d!==undefined;var d=d||{x:0,y:0,z:0};var a={header:this.header,client_id:this.clientID,marker_name:this.name,control_name:f,event_type:c,pose:this.pose,mouse_point:d,mouse_point_valid:b,menu_entry_id:e};this.feedbackTopic.publish(a)};ROS3D.InteractiveMarkerMenu=function(q){var g=this;var q=q||{};var f=q.menuEntries;var h=q.className||"default-interactive-marker-menu";var p=q.entryClassName||"default-interactive-marker-menu-entry";var o=q.overlayClassName||"default-interactive-marker-overlay";var d=[];d[0]={children:[]};THREE.EventDispatcher.call(this);if(document.getElementById("default-interactive-marker-menu-css")===null){var a=document.createElement("style");a.id="default-interactive-marker-menu-css";a.type="text/css";a.innerHTML=".default-interactive-marker-menu {background-color: #444444;border: 1px solid #888888;border: 1px solid #888888;padding: 0px 0px 0px 0px;color: #FFFFFF;font-family: sans-serif;font-size: 0.8em;z-index: 1002;}.default-interactive-marker-menu ul {padding: 0px 0px 5px 0px;margin: 0px;list-style-type: none;}.default-interactive-marker-menu ul li div {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;cursor: default;padding: 3px 10px 3px 10px;}.default-interactive-marker-menu-entry:hover { background-color: #666666; cursor: pointer;}.default-interactive-marker-menu ul ul { font-style: italic; padding-left: 10px;}.default-interactive-marker-overlay { position: absolute; top: 0%; left: 0%; width: 100%; height: 100%; background-color: black; z-index: 1001; -moz-opacity: 0.0; opacity: .0; filter: alpha(opacity = 0);}";document.getElementsByTagName("head")[0].appendChild(a)}this.menuDomElem=document.createElement("div");this.menuDomElem.style.position="absolute";this.menuDomElem.className=h;this.menuDomElem.addEventListener("contextmenu",function(r){r.preventDefault()});this.overlayDomElem=document.createElement("div");this.overlayDomElem.className=o;this.hideListener=this.hide.bind(this);this.overlayDomElem.addEventListener("contextmenu",this.hideListener);this.overlayDomElem.addEventListener("click",this.hideListener);for(var e=0;e0){l(x,t[s]);w.addEventListener("click",g.hide.bind(g))}else{w.addEventListener("click",k.bind(g,t[s]));w.className="default-interactive-marker-menu-entry"}}}l(this.menuDomElem,d[0])};ROS3D.InteractiveMarkerMenu.prototype.show=function(b,a){if(a&&a.preventDefault){a.preventDefault()}this.controlName=b.name;this.menuDomElem.style.left=a.domEvent.clientX+"px";this.menuDomElem.style.top=a.domEvent.clientY+"px";document.body.appendChild(this.overlayDomElem);document.body.appendChild(this.menuDomElem)};ROS3D.InteractiveMarkerMenu.prototype.hide=function(a){if(a&&a.preventDefault){a.preventDefault()}document.body.removeChild(this.overlayDomElem);document.body.removeChild(this.menuDomElem)};ROS3D.OccupancyGrid=function(p){var p=p||{};var o=p.message;var a=o.info.width;var m=o.info.height;var l=new THREE.PlaneGeometry(a,m);var g=new Uint8Array(a*m*3);for(var n=0;n=0;f--){if(a[f].object===d[g]){b.push(a[f]);break}}this.getWebglObjects(e,d[g].children,b)}}};ROS3D.Highlighter.prototype.renderHighlight=function(c,d,a){var b=[];this.getWebglObjects(d,this.hoverObjs,b);d.overrideMaterial=new THREE.MeshBasicMaterial({fog:false,opacity:0.5,depthTest:true,depthWrite:false,polygonOffset:true,polygonOffsetUnits:-1,side:THREE.DoubleSide});var e=d.__webglObjects;d.__webglObjects=b;c.render(d,a);d.__webglObjects=e;d.overrideMaterial=null};ROS3D.MouseHandler=function(a){THREE.EventDispatcher.call(this);this.renderer=a.renderer;this.camera=a.camera;this.rootObject=a.rootObject;this.fallbackTarget=a.fallbackTarget;this.lastTarget=this.fallbackTarget;this.dragging=false;this.projector=new THREE.Projector();var b=["contextmenu","click","dblclick","mouseout","mousedown","mouseup","mousemove","mousewheel","DOMMouseScroll","touchstart","touchend","touchcancel","touchleave","touchmove"];this.listeners={};b.forEach(function(c){this.listeners[c]=this.processDomEvent.bind(this);this.renderer.domElement.addEventListener(c,this.listeners[c],false)},this)};ROS3D.MouseHandler.prototype.processDomEvent=function(k){k.preventDefault();var l=k.target;var n=l.getBoundingClientRect();var f=k.clientX-n.left-l.clientLeft+l.scrollLeft;var m=k.clientY-n.top-l.clientTop+l.scrollTop;var c=f/l.clientWidth*2-1;var a=-m/l.clientHeight*2+1;var e=new THREE.Vector3(c,a,0.5);this.projector.unprojectVector(e,this.camera);var h=new THREE.Raycaster(this.camera.position.clone(),e.sub(this.camera.position).normalize());var o=h.ray;var b={mousePos:new THREE.Vector2(c,a),mouseRay:o,domEvent:k,camera:this.camera,intersection:this.lastIntersection};if(k.type=="mouseout"){if(this.dragging){this.notify(this.lastTarget,"mouseup",b);this.dragging=false}this.notify(this.lastTarget,"mouseout",b);this.lastTarget=null;return}if(this.dragging){this.notify(this.lastTarget,k.type,b);if((k.type==="mouseup"&&k.button===2)||k.type==="click"){this.dragging=false}return}var l=this.lastTarget;var d=[];d=h.intersectObject(this.rootObject,true);if(d.length>0){l=d[0].object;b.intersection=this.lastIntersection=d[0]}else{l=this.fallbackTarget}if(l!==this.lastTarget){var g=this.notify(l,"mouseover",b);if(g){this.notify(this.lastTarget,"mouseout",b)}else{l=this.fallbackTarget;if(l!==this.lastTarget){this.notify(l,"mouseover",b);this.notify(this.lastTarget,"mouseout",b)}}}this.notify(l,k.type,b);if(k.type==="mousedown"){this.dragging=true}this.lastTarget=l};ROS3D.MouseHandler.prototype.notify=function(c,b,a){a.type=b;a.cancelBubble=false;a.stopPropagation=function(){a.cancelBubble=true};a.currentTarget=c;while(a.currentTarget){if(a.currentTarget.dispatchEvent&&a.currentTarget.dispatchEvent instanceof Function){a.currentTarget.dispatchEvent(a);if(a.cancelBubble){this.dispatchEvent(a);return true}}a.currentTarget=a.currentTarget.parent}return false};ROS3D.MouseHandler.prototype.destroy=function(){this.listeners.forEach(function(a){this.renderer.domElement.removeEventListener(eventName,a,false)},this)};ROS3D.OrbitControls=function(e){THREE.EventDispatcher.call(this);var l=this;var e=e||{};var w=e.scene;this.camera=e.camera;this.center=new THREE.Vector3();this.userZoom=true;this.userZoomSpeed=e.userZoomSpeed||1;this.userRotate=true;this.userRotateSpeed=e.userRotateSpeed||1;this.autoRotate=e.autoRotate;this.autoRotateSpeed=e.autoRotateSpeed||2;this.camera.up=new THREE.Vector3(0,0,1);var u=1800;var v=new THREE.Vector2();var g=new THREE.Vector2();var r=new THREE.Vector2();var t=new THREE.Vector2();var x=new THREE.Vector2();var o=new THREE.Vector2();var m=new THREE.Vector3();var p=new THREE.Vector3();var c=new THREE.Vector3();var b=new THREE.Vector3();this.phiDelta=0;this.thetaDelta=0;this.scale=1;this.lastPosition=new THREE.Vector3();var s={NONE:-1,ROTATE:0,ZOOM:1,MOVE:2};var h=s.NONE;this.axes=new ROS3D.Axes({shaftRadius:0.025,headRadius:0.07,headLength:0.2});w.add(this.axes);this.axes.traverse(function(y){y.visible=false});function k(y){var z=y.domEvent;z.preventDefault();switch(z.button){case 0:h=s.ROTATE;v.set(z.clientX,z.clientY);break;case 1:h=s.MOVE;p=new THREE.Vector3(0,0,1);var A=new THREE.Matrix4().extractRotation(this.camera.matrix);p.applyMatrix4(A);m=l.center.clone();c=l.camera.position.clone();b=ROS3D.intersectPlane(y.mouseRay,m,p);break;case 2:h=s.ZOOM;t.set(z.clientX,z.clientY);break}this.showAxes()}function q(y){var z=y.domEvent;if(h===s.ROTATE){g.set(z.clientX,z.clientY);r.subVectors(g,v);l.rotateLeft(2*Math.PI*r.x/u*l.userRotateSpeed);l.rotateUp(2*Math.PI*r.y/u*l.userRotateSpeed);v.copy(g);this.showAxes()}else{if(h===s.ZOOM){x.set(z.clientX,z.clientY);o.subVectors(x,t);if(o.y>0){l.zoomIn()}else{l.zoomOut()}t.copy(x);this.showAxes()}else{if(h===s.MOVE){var B=ROS3D.intersectPlane(y.mouseRay,l.center,p);if(!B){return}var A=new THREE.Vector3().subVectors(b.clone(),B.clone());l.center.addVectors(m.clone(),A.clone());l.camera.position.addVectors(c.clone(),A.clone());l.update();l.camera.updateMatrixWorld();this.showAxes()}}}}function d(y){if(!l.userRotate){return}h=s.NONE}function n(y){if(!l.userZoom){return}var z=y.domEvent;if(typeof(z.wheelDelta)!=="undefined"){var A=z.wheelDelta}else{var A=-z.detail}if(A>0){l.zoomOut()}else{l.zoomIn()}this.showAxes()}function a(y){k(y);y.preventDefault()}function f(y){q(y);y.preventDefault()}this.addEventListener("mousedown",k);this.addEventListener("mouseup",d);this.addEventListener("mousemove",q);this.addEventListener("touchstart",a);this.addEventListener("touchmove",f);this.addEventListener("mousewheel",n);this.addEventListener("DOMMouseScroll",n)};ROS3D.OrbitControls.prototype.showAxes=function(){var a=this;this.axes.traverse(function(b){b.visible=true});if(this.hideTimeout){clearTimeout(this.hideTimeout)}this.hideTimeout=setTimeout(function(){a.axes.traverse(function(b){b.visible=false});a.hideTimeout=false},1000)};ROS3D.OrbitControls.prototype.rotateLeft=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.thetaDelta-=a};ROS3D.OrbitControls.prototype.rotateRight=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.thetaDelta+=a};ROS3D.OrbitControls.prototype.rotateUp=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.phiDelta-=a};ROS3D.OrbitControls.prototype.rotateDown=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.phiDelta+=a};ROS3D.OrbitControls.prototype.zoomIn=function(a){if(a===undefined){a=Math.pow(0.95,this.userZoomSpeed)}this.scale/=a};ROS3D.OrbitControls.prototype.zoomOut=function(a){if(a===undefined){a=Math.pow(0.95,this.userZoomSpeed)}this.scale*=a};ROS3D.OrbitControls.prototype.update=function(){var b=this.camera.position;var f=b.clone().sub(this.center);var d=Math.atan2(f.y,f.x);var e=Math.atan2(Math.sqrt(f.y*f.y+f.x*f.x),f.z);if(this.autoRotate){this.rotateLeft(2*Math.PI/60/60*this.autoRotateSpeed)}d+=this.thetaDelta;e+=this.phiDelta;var c=0.000001;e=Math.max(c,Math.min(Math.PI-c,e));var a=f.length();f.y=a*Math.sin(e)*Math.sin(d);f.z=a*Math.cos(e);f.x=a*Math.sin(e)*Math.cos(d);f.multiplyScalar(this.scale);b.copy(this.center).add(f);this.camera.lookAt(this.center);a=f.length();this.axes.position=this.center.clone();this.axes.scale.x=this.axes.scale.y=this.axes.scale.z=a*0.05;this.axes.updateMatrixWorld(true);this.thetaDelta=0;this.phiDelta=0;this.scale=1;if(this.lastPosition.distanceTo(this.camera.position)>0){this.dispatchEvent({type:"change"});this.lastPosition.copy(this.camera.position)}};THREE.ColladaLoader=function(){var an=null;var I=null;var Y;var aK=null;var ab={};var m={};var Q={};var ag={};var ar={};var S={};var au={};var af={};var aO;var aI;var aR;var f;var L;var u=true;var R=THREE.SmoothShading;var ad={centerGeometry:false,convertUpAxis:false,subdivideFaces:true,upAxis:"Y",defaultEnvMap:null};var aQ=1;var av="Y";var A=null;var B=Math.PI/180;function g(a0,a4,a3){var a2=0;if(document.implementation&&document.implementation.createDocument){var a1=new XMLHttpRequest();a1.onreadystatechange=function(){if(a1.readyState==4){if(a1.status==0||a1.status==200){if(a1.responseXML){aK=a4;am(a1.responseXML,undefined,a0)}else{if(a1.responseText){aK=a4;var a5=new DOMParser();var a6=a5.parseFromString(a1.responseText,"application/xml");am(a6,undefined,a0)}else{console.error("ColladaLoader: Empty or non-existing file ("+a0+")")}}}}else{if(a1.readyState==3){if(a3){if(a2==0){a2=a1.getResponseHeader("Content-Length")}a3({total:a2,loaded:a1.responseText.length})}}}};a1.open("GET",a0,true);a1.send(null)}else{alert("Don't know how to parse XML!")}}function am(a5,a3,a1){an=a5;a3=a3||aK;if(a1!==undefined){var a4=a1.split("/");a4.pop();aR=(a4.length<1?".":a4.join("/"))+"/"}z();W();m=az("//dae:library_images/dae:image",ae,"image");S=az("//dae:library_materials/dae:material",c,"material");au=az("//dae:library_effects/dae:effect",P,"effect");ar=az("//dae:library_geometries/dae:geometry",aB,"geometry");af=az(".//dae:library_cameras/dae:camera",aP,"camera");ag=az("//dae:library_controllers/dae:controller",K,"controller");Q=az("//dae:library_animations/dae:animation",aS,"animation");aI=az(".//dae:library_visual_scenes/dae:visual_scene",aL,"visual_scene");f=[];L=[];Y=Z();I=new THREE.Object3D();for(var a2=0;a20?a0:"visual_scene0"]}else{return null}}function w(){aO=[];q(I)}function q(a5){var a7=Y.getChildById(a5.name,true),a4=null;if(a7&&a7.keys){a4={fps:60,hierarchy:[{node:a7,keys:a7.keys,sids:a7.sids}],node:a5,name:"animation_"+a5.name,length:0};aO.push(a4);for(var a3=0,a0=a7.keys.length;a3=0){var a4=a7.invBindMatrices[a8];a6.invBindMatrix=a4;a6.skinningMatrix=new THREE.Matrix4();a6.skinningMatrix.multiply(a6.world,a4);a6.weights=[];for(var a2=0;a21){be=new THREE.MeshFaceMaterial(bt);for(bp=0;bp1?bf.add(a1):bf=a1}}for(br=0;bra9){a8=a6.output[a3];break}}if(a8!==undefined){if(a8 instanceof THREE.Matrix4){a7=a7.multiply(a7,a8)}else{a7=a7.multiply(a7,a0.matrix)}}else{a7=a7.multiply(a7,a0.matrix)}}else{a7=a7.multiply(a7,a0.matrix)}}return a7}function aF(ba){if(ba.channels&&ba.channels.length){var a8=[],be=[];for(var bc=0,a5=ba.channels.length;bca5){break}}}return a4}function x(a4,a5){var a1=-1;for(var a3=0,a0=a4.length;a3=a5){a1=a3}}return a1}function v(ba,a7,a8,a5){var bb=ay(ba,a5,a8?a8-1:0),a6=l(ba,a5,a8+1);if(bb&&a6){var a1=(a7.time-bb.time)/(a6.time-bb.time),a9=bb.getTarget(a5),a4=a6.getTarget(a5).data,a0=a9.data,a3;if(a9.type==="matrix"){a3=a0}else{if(a0.length){a3=[];for(var a2=0;a2=0?a0:a0+a2.length;for(;a0>=0;a0--){var a1=a2[a0];if(a1.hasTarget(a3)){return a1}}return null}function ae(){this.id="";this.init_from=""}ae.prototype.parse=function(a1){this.id=a1.getAttribute("id");for(var a0=0;a0=0);var a9=(a1.indexOf("(")>=0);var a3;var a5;if(a8){a4=a1.split(".");a1=a4.shift();a5=a4.shift()}else{if(a9){a3=a1.split("(");a1=a3.shift();for(var a2=0;a24&&ad.subdivideFaces){var a1=bd.length?bd:new THREE.Color(),bu,bt,bs,bz,by,bw;for(bo=1;bo4){be=[bg[0],bg[a8+1],bg[a8+2]]}else{if(bj===4){be=[bg[0],bg[1],bg[2],bg[3]]}else{be=[bg[0],bg[1],bg[2]]}}if(!a2.faceVertexUvs[bo]){a2.faceVertexUvs[bo]=[]}a2.faceVertexUvs[bo].push(be)}}}else{console.log("dropped face with vcount "+bj+" for geometry with id: "+a2.id)}br+=bf*bj}}};function C(){this.material="";this.count=0;this.inputs=[];this.vcount=null;this.p=[];this.geometry=new THREE.Geometry()}C.prototype.setVertices=function(a0){for(var a1=0;a10){this[a3.nodeName]=parseFloat(a2[0].textContent)}break;default:break}}this.create();return this};at.prototype.create=function(){var a5={};var a8=(this["transparency"]!==undefined&&this["transparency"]<1);for(var a0 in this){switch(a0){case"ambient":case"emission":case"diffuse":case"specular":var a7=this[a0];if(a7 instanceof ao){if(a7.isTexture()){var a1=a7.texture;var a6=this.effect.sampler[a1].source;if(a6){var a2=this.effect.surface[a6];var a3=m[a2.init_from];if(a3){var a4=THREE.ImageUtils.loadTexture(aR+a3.init_from);a4.wrapS=a7.texOpts.wrapU?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping;a4.wrapT=a7.texOpts.wrapV?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping;a4.offset.x=a7.texOpts.offsetU;a4.offset.y=a7.texOpts.offsetV;a4.repeat.x=a7.texOpts.repeatU;a4.repeat.y=a7.texOpts.repeatV;a5.map=a4;if(a0==="emission"){a5.emissive=16777215}}}}else{if(a0==="diffuse"||!a8){if(a0==="emission"){a5.emissive=a7.color.getHex()}else{a5[a0]=a7.color.getHex()}}}}break;case"shininess":a5[a0]=this[a0];break;case"reflectivity":a5[a0]=this[a0];if(a5[a0]>0){a5.envMap=ad.defaultEnvMap}a5.combine=THREE.MixOperation;break;case"index_of_refraction":a5.refractionRatio=this[a0];if(this[a0]!==1){a5.envMap=ad.defaultEnvMap}break;case"transparency":if(a8){a5.transparent=true;a5.opacity=this[a0];a8=true}break;default:break}}a5.shading=R;a5.side=this.effect.doubleSided?THREE.DoubleSide:THREE.FrontSide;switch(this.type){case"constant":if(a5.emissive!=undefined){a5.color=a5.emissive}this.material=new THREE.MeshBasicMaterial(a5);break;case"phong":case"blinn":if(a5.diffuse!=undefined){a5.color=a5.diffuse}this.material=new THREE.MeshPhongMaterial(a5);break;case"lambert":default:if(a5.diffuse!=undefined){a5.color=a5.diffuse}this.material=new THREE.MeshLambertMaterial(a5);break}return this.material};function b(a0){this.effect=a0;this.init_from=null;this.format=null}b.prototype.parse=function(a1){for(var a0=0;a0=0);var a3=(a0.indexOf("(")>=0);if(a6){a4=a0.split(".");this.sid=a4.shift();this.member=a4.shift()}else{if(a3){var a5=a0.split("(");this.sid=a5.shift();for(var a1=0;a11){a3=[];a0*=this.strideOut;for(var a1=0;a11){console.log("Key.interpolate: Warning! Scale out of bounds:"+a3);a3=a3<0?0:1}if(a1.length){a5=[];for(var a4=0;a40)?t(a0).split(/\s+/):[]}function t(a0){return a0.replace(/^\s+/,"").replace(/\s+$/,"")}function aY(a2,a1,a0){if(a2.hasAttribute(a1)){return parseFloat(a2.getAttribute(a1))}else{return a0}}function n(a2,a1,a0){if(a2.hasAttribute(a1)){return parseInt(a2.getAttribute(a1),10)}else{return a0}}function aJ(a2,a1,a0){if(a2.hasAttribute(a1)){return a2.getAttribute(a1)}else{return a0}}function aZ(a2,a0){if(a2===undefined){var a1="0.";while(a1.length1?a3[1].substr(0,a0):"0";while(a3[1].length-1&&a1<3){var a0=["X","Y","Z"],a2={X:0,Y:1,Z:2};a1=V(a0[a1]);a1=a2[a1]}return a1}function V(a0){if(ad.convertUpAxis){switch(a0){case"X":switch(A){case"XtoY":case"XtoZ":case"YtoX":a0="Y";break;case"ZtoX":a0="Z";break}break;case"Y":switch(A){case"XtoY":case"YtoX":case"ZtoX":a0="X";break;case"XtoZ":case"YtoZ":case"ZtoY":a0="Z";break}break;case"Z":switch(A){case"XtoZ":a0="X";break;case"YtoZ":case"ZtoX":case"ZtoY":a0="Y";break}break}}return a0}return{load:g,parse:am,setPreferredShading:E,applySkin:aT,geometries:ar,options:ad}}; \ No newline at end of file +var ROS3D=ROS3D||{REVISION:"2-devel"};ROS3D.MARKER_ARROW=0;ROS3D.MARKER_CUBE=1;ROS3D.MARKER_SPHERE=2;ROS3D.MARKER_CYLINDER=3;ROS3D.MARKER_LINE_STRIP=4;ROS3D.MARKER_LINE_LIST=5;ROS3D.MARKER_CUBE_LIST=6;ROS3D.MARKER_SPHERE_LIST=7;ROS3D.MARKER_POINTS=8;ROS3D.MARKER_TEXT_VIEW_FACING=9;ROS3D.MARKER_MESH_RESOURCE=10;ROS3D.MARKER_TRIANGLE_LIST=11;ROS3D.INTERACTIVE_MARKER_KEEP_ALIVE=0;ROS3D.INTERACTIVE_MARKER_POSE_UPDATE=1;ROS3D.INTERACTIVE_MARKER_MENU_SELECT=2;ROS3D.INTERACTIVE_MARKER_BUTTON_CLICK=3;ROS3D.INTERACTIVE_MARKER_MOUSE_DOWN=4;ROS3D.INTERACTIVE_MARKER_MOUSE_UP=5;ROS3D.INTERACTIVE_MARKER_NONE=0;ROS3D.INTERACTIVE_MARKER_MENU=1;ROS3D.INTERACTIVE_MARKER_BUTTON=2;ROS3D.INTERACTIVE_MARKER_MOVE_AXIS=3;ROS3D.INTERACTIVE_MARKER_MOVE_PLANE=4;ROS3D.INTERACTIVE_MARKER_ROTATE_AXIS=5;ROS3D.INTERACTIVE_MARKER_MOVE_ROTATE=6;ROS3D.INTERACTIVE_MARKER_INHERIT=0;ROS3D.INTERACTIVE_MARKER_FIXED=1;ROS3D.INTERACTIVE_MARKER_VIEW_FACING=2;ROS3D.makeColorMaterial=function(h,f,c,d){var e=new THREE.Color();e.setRGB(h,f,c);if(d<=0.99){return new THREE.MeshBasicMaterial({color:e.getHex(),opacity:d+0.1,transparent:true,depthWrite:true,blendSrc:THREE.SrcAlphaFactor,blendDst:THREE.OneMinusSrcAlphaFactor,blendEquation:THREE.ReverseSubtractEquation,blending:THREE.NormalBlending})}else{return new THREE.MeshLambertMaterial({color:e.getHex(),opacity:d,blending:THREE.NormalBlending})}};ROS3D.intersectPlane=function(d,a,e){var b=new THREE.Vector3();var c=new THREE.Vector3();b.subVectors(a,d.origin);dot=d.direction.dot(e);if(Math.abs(dot)0){this.menu=new ROS3D.InteractiveMarkerMenu({menuEntries:d.menuEntries});this.menu.addEventListener("menu-select",function(f){c.dispatchEvent(f)})}};ROS3D.InteractiveMarker.prototype.__proto__=THREE.Object3D.prototype;ROS3D.InteractiveMarker.prototype.showMenu=function(b,a){if(this.menu){this.menu.show(b,a)}};ROS3D.InteractiveMarker.prototype.moveAxis=function(e,h,f){if(this.dragging){var d=e.currentControlOri;var c=h.clone().applyQuaternion(d);var g=this.dragStart.event3d.intersection.point;var l=c.clone().applyQuaternion(this.dragStart.orientationWorld.clone());var a=new THREE.Ray(g,l);var k=ROS3D.closestAxisPoint(a,f.camera,f.mousePos);var b=new THREE.Vector3;b.addVectors(this.dragStart.position,c.clone().applyQuaternion(this.dragStart.orientation).multiplyScalar(k));this.setPosition(e,b);f.stopPropagation()}};ROS3D.InteractiveMarker.prototype.movePlane=function(d,g,h){if(this.dragging){var c=d.currentControlOri;var f=g.clone().applyQuaternion(c);var k=this.dragStart.event3d.intersection.point;var e=f.clone().applyQuaternion(this.dragStart.orientationWorld);var a=ROS3D.intersectPlane(h.mouseRay,k,e);var b=new THREE.Vector3;b.subVectors(a,k);b.add(this.dragStart.positionWorld);this.setPosition(d,b);h.stopPropagation()}};ROS3D.InteractiveMarker.prototype.rotateAxis=function(l,g,c){if(this.dragging){l.updateMatrixWorld();var q=l.currentControlOri;var e=q.clone().multiply(g.clone());var t=(new THREE.Vector3(1,0,0)).applyQuaternion(e);var n=this.dragStart.event3d.intersection.point;var f=t.applyQuaternion(this.dragStart.orientationWorld);var k=ROS3D.intersectPlane(c.mouseRay,n,f);var b=new THREE.Ray(this.dragStart.positionWorld,f);var d=ROS3D.intersectPlane(b,n,f);var m=this.dragStart.orientationWorld.clone().multiply(e);var p=m.clone().inverse();k.sub(d);k.applyQuaternion(p);var o=this.dragStart.event3d.intersection.point.clone();o.sub(d);o.applyQuaternion(p);var u=Math.atan2(k.y,k.z);var s=Math.atan2(o.y,o.z);var r=s-u;var h=new THREE.Quaternion();h.setFromAxisAngle(t,r);this.setOrientation(l,h.multiply(this.dragStart.orientationWorld));c.stopPropagation()}};ROS3D.InteractiveMarker.prototype.feedbackEvent=function(a,b){this.dispatchEvent({type:a,position:this.position.clone(),orientation:this.quaternion.clone(),controlName:b.name})};ROS3D.InteractiveMarker.prototype.startDrag=function(b,a){if(a.domEvent.button===0){a.stopPropagation();this.dragging=true;this.updateMatrixWorld(true);var c=new THREE.Vector3();this.matrixWorld.decompose(this.dragStart.positionWorld,this.dragStart.orientationWorld,c);this.dragStart.position=this.position.clone();this.dragStart.orientation=this.quaternion.clone();this.dragStart.event3d=a;this.feedbackEvent("user-mousedown",b)}};ROS3D.InteractiveMarker.prototype.stopDrag=function(b,a){if(a.domEvent.button===0){a.stopPropagation();this.dragging=false;this.dragStart.event3d={};this.onServerSetPose(this.bufferedPoseEvent);this.bufferedPoseEvent=undefined;this.feedbackEvent("user-mouseup",b)}};ROS3D.InteractiveMarker.prototype.buttonClick=function(b,a){a.stopPropagation();this.feedbackEvent("user-button-click",b)};ROS3D.InteractiveMarker.prototype.setPosition=function(b,a){this.position=a;this.feedbackEvent("user-pose-change",b)};ROS3D.InteractiveMarker.prototype.setOrientation=function(b,a){a.normalize();this.quaternion=a;this.feedbackEvent("user-pose-change",b)};ROS3D.InteractiveMarker.prototype.onServerSetPose=function(a){if(a!==undefined){if(this.dragging){this.bufferedPoseEvent=a}else{var b=a.pose;this.position.x=b.position.x;this.position.y=b.position.y;this.position.z=b.position.z;this.useQuaternion=true;this.quaternion=new THREE.Quaternion(b.orientation.x,b.orientation.y,b.orientation.z,b.orientation.w);this.updateMatrixWorld(true)}}};ROS3D.InteractiveMarkerClient=function(a){var b=this;var a=a||{};this.ros=a.ros;this.tfClient=a.tfClient;this.topic=a.topic;this.path=a.path||"/";this.camera=a.camera;this.rootObject=a.rootObject||new THREE.Object3D();this.interactiveMarkers={};this.updateTopic=null;this.feedbackTopic=null;if(this.topic){this.subscribe(this.topic)}};ROS3D.InteractiveMarkerClient.prototype.subscribe=function(a){this.unsubscribe();this.updateTopic=new ROSLIB.Topic({ros:this.ros,name:a+"/tunneled/update",messageType:"visualization_msgs/InteractiveMarkerUpdate",compression:"png"});this.updateTopic.subscribe(this.processUpdate.bind(this));this.feedbackTopic=new ROSLIB.Topic({ros:this.ros,name:a+"/feedback",messageType:"visualization_msgs/InteractiveMarkerFeedback",compression:"png"});this.feedbackTopic.advertise();this.initService=new ROSLIB.Service({ros:this.ros,name:a+"/tunneled/get_init",serviceType:"demo_interactive_markers/GetInit"});var b=new ROSLIB.ServiceRequest({});this.initService.callService(b,this.processInit.bind(this))};ROS3D.InteractiveMarkerClient.prototype.unsubscribe=function(){if(this.updateTopic){this.updateTopic.unsubscribe()}if(this.feedbackTopic){this.feedbackTopic.unadvertise()}for(intMarkerName in this.interactiveMarkers){this.eraseIntMarker(intMarkerName)}this.interactiveMarkers={}};ROS3D.InteractiveMarkerClient.prototype.processInit=function(b){var a=b.msg;a.erases=[];for(intMarkerName in this.interactiveMarkers){a.erases.push(intMarkerName)}a.poses=[];this.processUpdate(a)};ROS3D.InteractiveMarkerClient.prototype.processUpdate=function(b){var a=this;b.erases.forEach(function(d){var c=a.interactiveMarkers[d];a.eraseIntMarker(d)});b.poses.forEach(function(d){var c=a.interactiveMarkers[d.name];if(c){c.setPoseFromServer(d.pose)}});b.markers.forEach(function(f){var e=a.interactiveMarkers[f.name];if(e){a.eraseIntMarker(e.name)}var d=new ROS3D.InteractiveMarkerHandle({message:f,feedbackTopic:a.feedbackTopic,tfClient:a.tfClient});a.interactiveMarkers[f.name]=d;var c=new ROS3D.InteractiveMarker({handle:d,camera:a.camera,path:a.path});a.rootObject.add(c);d.on("pose",function(g){c.onServerSetPose({pose:g})});c.addEventListener("user-pose-change",d.setPoseFromClient.bind(d));c.addEventListener("user-mousedown",d.onMouseDown.bind(d));c.addEventListener("user-mouseup",d.onMouseUp.bind(d));c.addEventListener("user-button-click",d.onButtonClick.bind(d));c.addEventListener("menu-select",d.onMenuSelect.bind(d));d.subscribeTf()})};ROS3D.InteractiveMarkerClient.prototype.eraseIntMarker=function(a){if(this.interactiveMarkers[a]){delete this.interactiveMarkers[a]}};ROS3D.InteractiveMarkerControl=function(k){var e=this;THREE.Object3D.call(this);THREE.EventDispatcher.call(this);var k=k||{};this.parent=k.parent;var h=k.message;this.name=h.name;this.camera=k.camera;this.path=k.path||"/";this.dragging=false;var a=new THREE.Quaternion(h.orientation.x,h.orientation.y,h.orientation.z,h.orientation.w);a.normalize();var f=new THREE.Vector3(1,0,0);f.applyQuaternion(a);this.currentControlOri=new THREE.Quaternion();switch(h.interaction_mode){case ROS3D.INTERACTIVE_MARKER_MOVE_AXIS:this.addEventListener("mousemove",this.parent.moveAxis.bind(this.parent,this,f));this.addEventListener("touchmove",this.parent.moveAxis.bind(this.parent,this,f));break;case ROS3D.INTERACTIVE_MARKER_ROTATE_AXIS:this.addEventListener("mousemove",this.parent.rotateAxis.bind(this.parent,this,a));break;case ROS3D.INTERACTIVE_MARKER_MOVE_PLANE:this.addEventListener("mousemove",this.parent.movePlane.bind(this.parent,this,f));break;case ROS3D.INTERACTIVE_MARKER_BUTTON:this.addEventListener("click",this.parent.buttonClick.bind(this.parent,this));break;default:break}function g(l){l.stopPropagation()}if(h.interaction_mode!=ROS3D.INTERACTIVE_MARKER_NONE){this.addEventListener("mousedown",this.parent.startDrag.bind(this.parent,this));this.addEventListener("mouseup",this.parent.stopDrag.bind(this.parent,this));this.addEventListener("contextmenu",this.parent.showMenu.bind(this.parent,this));this.addEventListener("mouseover",g);this.addEventListener("mouseout",g);this.addEventListener("click",g);this.addEventListener("touchstart",function(l){console.log(l.domEvent);if(l.domEvent.touches.length==1){l.type="mousedown";l.domEvent.button=0;e.dispatchEvent(l)}});this.addEventListener("touchmove",function(l){if(l.domEvent.touches.length==1){console.log(l.domEvent);l.type="mousemove";l.domEvent.button=0;e.dispatchEvent(l)}});this.addEventListener("touchend",function(l){if(l.domEvent.touches.length==0){l.domEvent.button=0;l.type="mouseup";e.dispatchEvent(l);l.type="click";e.dispatchEvent(l)}})}var d=new THREE.Quaternion();var b=this.parent.position.clone().multiplyScalar(-1);switch(h.orientation_mode){case ROS3D.INTERACTIVE_MARKER_INHERIT:d=this.parent.quaternion.clone().inverse();this.updateMatrixWorld=function(l){ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,l);e.currentControlOri.copy(e.quaternion);e.currentControlOri.normalize()};break;case ROS3D.INTERACTIVE_MARKER_FIXED:this.updateMatrixWorld=function(l){e.useQuaternion=true;e.quaternion=e.parent.quaternion.clone().inverse();e.updateMatrix();e.matrixWorldNeedsUpdate=true;ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,l);e.currentControlOri.copy(e.quaternion)};break;case ROS3D.INTERACTIVE_MARKER_VIEW_FACING:var c=h.independentMarkerOrientation;this.updateMatrixWorld=function(n){e.camera.updateMatrixWorld();var q=new THREE.Matrix4().extractRotation(e.camera.matrixWorld);var o=new THREE.Matrix4();var m=Math.PI*0.5;var p=new THREE.Vector3(-m,0,m);o.setRotationFromEuler(p);var l=new THREE.Matrix4();l.getInverse(e.parent.matrixWorld);q.multiplyMatrices(q,o);q.multiplyMatrices(l,q);e.currentControlOri.setFromRotationMatrix(q);if(!c){e.useQuaternion=true;e.quaternion.copy(e.currentControlOri);e.updateMatrix();e.matrixWorldNeedsUpdate=true}ROS3D.InteractiveMarkerControl.prototype.updateMatrixWorld.call(e,n)};break;default:console.error("Unkown orientation mode: "+h.orientation_mode);break}h.markers.forEach(function(m){var l=new ROS3D.Marker({message:m,path:e.path});if(m.header.frame_id!==""){l.position.add(b);l.position.applyQuaternion(d);l.quaternion.multiplyQuaternions(d,l.quaternion);l.updateMatrixWorld()}e.add(l)})};ROS3D.InteractiveMarkerControl.prototype.__proto__=THREE.Object3D.prototype;ROS3D.InteractiveMarkerHandle=function(a){var a=a||{};this.message=a.message;this.feedbackTopic=a.feedbackTopic;this.tfClient=a.tfClient;this.name=this.message.name;this.header=this.message.header;this.controls=this.message.controls;this.menuEntries=this.message.menu_entries;this.dragging=false;this.timeoutHandle=null;this.tfTransform=new ROSLIB.Transform();this.pose=new ROSLIB.Pose();this.setPoseFromServer(this.message.pose)};ROS3D.InteractiveMarkerHandle.prototype.__proto__=EventEmitter2.prototype;ROS3D.InteractiveMarkerHandle.prototype.subscribeTf=function(){if(this.message.header.stamp.secs===0&&this.message.header.stamp.nsecs===0){this.tfClient.subscribe(this.message.header.frame_id,this.tfUpdate.bind(this))}};ROS3D.InteractiveMarkerHandle.prototype.emitServerPoseUpdate=function(){var a=new ROSLIB.Pose(this.pose);a.applyTransform(this.tfTransform);this.emit("pose",a)};ROS3D.InteractiveMarkerHandle.prototype.setPoseFromServer=function(a){this.pose=new ROSLIB.Pose(a);this.emitServerPoseUpdate()};ROS3D.InteractiveMarkerHandle.prototype.tfUpdate=function(a){this.tfTransform=new ROSLIB.Transform(a);this.emitServerPoseUpdate()};ROS3D.InteractiveMarkerHandle.prototype.setPoseFromClient=function(b){this.pose=new ROSLIB.Pose(b);var a=this.tfTransform.clone();a.rotation.invert();this.pose.applyTransform(a);this.sendFeedback(ROS3D.INTERACTIVE_MARKER_POSE_UPDATE,undefined,0,b.controlName);if(this.dragging){if(this.timeoutHandle){clearTimeout(this.timeoutHandle)}this.timeoutHandle=setTimeout(this.setPoseFromClient.bind(this,b),250)}};ROS3D.InteractiveMarkerHandle.prototype.onButtonClick=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_BUTTON_CLICK,a.clickPosition,0,a.controlName)};ROS3D.InteractiveMarkerHandle.prototype.onMouseDown=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MOUSE_DOWN,a.clickPosition,0,a.controlName);this.dragging=true};ROS3D.InteractiveMarkerHandle.prototype.onMouseUp=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MOUSE_UP,a.clickPosition,0,a.controlName);this.dragging=false;if(this.timeoutHandle){clearTimeout(this.timeoutHandle)}};ROS3D.InteractiveMarkerHandle.prototype.onMenuSelect=function(a){this.sendFeedback(ROS3D.INTERACTIVE_MARKER_MENU_SELECT,undefined,a.id,a.controlName)};ROS3D.InteractiveMarkerHandle.prototype.sendFeedback=function(c,d,e,f){var b=d!==undefined;var d=d||{x:0,y:0,z:0};var a={header:this.header,client_id:this.clientID,marker_name:this.name,control_name:f,event_type:c,pose:this.pose,mouse_point:d,mouse_point_valid:b,menu_entry_id:e};this.feedbackTopic.publish(a)};ROS3D.InteractiveMarkerMenu=function(q){var g=this;var q=q||{};var f=q.menuEntries;var h=q.className||"default-interactive-marker-menu";var p=q.entryClassName||"default-interactive-marker-menu-entry";var o=q.overlayClassName||"default-interactive-marker-overlay";var d=[];d[0]={children:[]};THREE.EventDispatcher.call(this);if(document.getElementById("default-interactive-marker-menu-css")===null){var a=document.createElement("style");a.id="default-interactive-marker-menu-css";a.type="text/css";a.innerHTML=".default-interactive-marker-menu {background-color: #444444;border: 1px solid #888888;border: 1px solid #888888;padding: 0px 0px 0px 0px;color: #FFFFFF;font-family: sans-serif;font-size: 0.8em;z-index: 1002;}.default-interactive-marker-menu ul {padding: 0px 0px 5px 0px;margin: 0px;list-style-type: none;}.default-interactive-marker-menu ul li div {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;cursor: default;padding: 3px 10px 3px 10px;}.default-interactive-marker-menu-entry:hover { background-color: #666666; cursor: pointer;}.default-interactive-marker-menu ul ul { font-style: italic; padding-left: 10px;}.default-interactive-marker-overlay { position: absolute; top: 0%; left: 0%; width: 100%; height: 100%; background-color: black; z-index: 1001; -moz-opacity: 0.0; opacity: .0; filter: alpha(opacity = 0);}";document.getElementsByTagName("head")[0].appendChild(a)}this.menuDomElem=document.createElement("div");this.menuDomElem.style.position="absolute";this.menuDomElem.className=h;this.menuDomElem.addEventListener("contextmenu",function(r){r.preventDefault()});this.overlayDomElem=document.createElement("div");this.overlayDomElem.className=o;this.hideListener=this.hide.bind(this);this.overlayDomElem.addEventListener("contextmenu",this.hideListener);this.overlayDomElem.addEventListener("click",this.hideListener);for(var e=0;e0){l(x,t[s]);w.addEventListener("click",g.hide.bind(g))}else{w.addEventListener("click",k.bind(g,t[s]));w.className="default-interactive-marker-menu-entry"}}}l(this.menuDomElem,d[0])};ROS3D.InteractiveMarkerMenu.prototype.show=function(b,a){if(a&&a.preventDefault){a.preventDefault()}this.controlName=b.name;this.menuDomElem.style.left=a.domEvent.clientX+"px";this.menuDomElem.style.top=a.domEvent.clientY+"px";document.body.appendChild(this.overlayDomElem);document.body.appendChild(this.menuDomElem)};ROS3D.InteractiveMarkerMenu.prototype.hide=function(a){if(a&&a.preventDefault){a.preventDefault()}document.body.removeChild(this.overlayDomElem);document.body.removeChild(this.menuDomElem)};ROS3D.OccupancyGrid=function(p){var p=p||{};var o=p.message;var a=o.info.width;var m=o.info.height;var l=new THREE.PlaneGeometry(a,m);var g=new Uint8Array(a*m*3);for(var n=0;n=0;f--){if(a[f].object===d[g]){b.push(a[f]);break}}this.getWebglObjects(e,d[g].children,b)}}};ROS3D.Highlighter.prototype.renderHighlight=function(c,d,a){var b=[];this.getWebglObjects(d,this.hoverObjs,b);d.overrideMaterial=new THREE.MeshBasicMaterial({fog:false,opacity:0.5,depthTest:true,depthWrite:false,polygonOffset:true,polygonOffsetUnits:-1,side:THREE.DoubleSide});var e=d.__webglObjects;d.__webglObjects=b;c.render(d,a);d.__webglObjects=e;d.overrideMaterial=null};ROS3D.MouseHandler=function(a){THREE.EventDispatcher.call(this);this.renderer=a.renderer;this.camera=a.camera;this.rootObject=a.rootObject;this.fallbackTarget=a.fallbackTarget;this.lastTarget=this.fallbackTarget;this.dragging=false;this.projector=new THREE.Projector();var b=["contextmenu","click","dblclick","mouseout","mousedown","mouseup","mousemove","mousewheel","DOMMouseScroll","touchstart","touchend","touchcancel","touchleave","touchmove"];this.listeners={};b.forEach(function(c){this.listeners[c]=this.processDomEvent.bind(this);this.renderer.domElement.addEventListener(c,this.listeners[c],false)},this)};ROS3D.MouseHandler.prototype.processDomEvent=function(k){k.preventDefault();var l=k.target;var n=l.getBoundingClientRect();var f=k.clientX-n.left-l.clientLeft+l.scrollLeft;var m=k.clientY-n.top-l.clientTop+l.scrollTop;var c=f/l.clientWidth*2-1;var a=-m/l.clientHeight*2+1;var e=new THREE.Vector3(c,a,0.5);this.projector.unprojectVector(e,this.camera);var h=new THREE.Raycaster(this.camera.position.clone(),e.sub(this.camera.position).normalize());var o=h.ray;var b={mousePos:new THREE.Vector2(c,a),mouseRay:o,domEvent:k,camera:this.camera,intersection:this.lastIntersection};if(k.type=="mouseout"){if(this.dragging){this.notify(this.lastTarget,"mouseup",b);this.dragging=false}this.notify(this.lastTarget,"mouseout",b);this.lastTarget=null;return}if(this.dragging){this.notify(this.lastTarget,k.type,b);if((k.type==="mouseup"&&k.button===2)||k.type==="click"){this.dragging=false}return}var l=this.lastTarget;var d=[];d=h.intersectObject(this.rootObject,true);if(d.length>0){l=d[0].object;b.intersection=this.lastIntersection=d[0]}else{l=this.fallbackTarget}if(l!==this.lastTarget){var g=this.notify(l,"mouseover",b);if(g){this.notify(this.lastTarget,"mouseout",b)}else{l=this.fallbackTarget;if(l!==this.lastTarget){this.notify(l,"mouseover",b);this.notify(this.lastTarget,"mouseout",b)}}}this.notify(l,k.type,b);if(k.type==="mousedown"){this.dragging=true}this.lastTarget=l};ROS3D.MouseHandler.prototype.notify=function(c,b,a){a.type=b;a.cancelBubble=false;a.stopPropagation=function(){a.cancelBubble=true};a.currentTarget=c;while(a.currentTarget){if(a.currentTarget.dispatchEvent&&a.currentTarget.dispatchEvent instanceof Function){a.currentTarget.dispatchEvent(a);if(a.cancelBubble){this.dispatchEvent(a);return true}}a.currentTarget=a.currentTarget.parent}return false};ROS3D.MouseHandler.prototype.destroy=function(){this.listeners.forEach(function(a){this.renderer.domElement.removeEventListener(eventName,a,false)},this)};ROS3D.OrbitControls=function(e){THREE.EventDispatcher.call(this);var l=this;var e=e||{};var w=e.scene;this.camera=e.camera;this.center=new THREE.Vector3();this.userZoom=true;this.userZoomSpeed=e.userZoomSpeed||1;this.userRotate=true;this.userRotateSpeed=e.userRotateSpeed||1;this.autoRotate=e.autoRotate;this.autoRotateSpeed=e.autoRotateSpeed||2;this.camera.up=new THREE.Vector3(0,0,1);var u=1800;var v=new THREE.Vector2();var g=new THREE.Vector2();var r=new THREE.Vector2();var t=new THREE.Vector2();var x=new THREE.Vector2();var o=new THREE.Vector2();var m=new THREE.Vector3();var p=new THREE.Vector3();var c=new THREE.Vector3();var b=new THREE.Vector3();this.phiDelta=0;this.thetaDelta=0;this.scale=1;this.lastPosition=new THREE.Vector3();var s={NONE:-1,ROTATE:0,ZOOM:1,MOVE:2};var h=s.NONE;this.axes=new ROS3D.Axes({shaftRadius:0.025,headRadius:0.07,headLength:0.2});w.add(this.axes);this.axes.traverse(function(y){y.visible=false});function k(y){var z=y.domEvent;z.preventDefault();switch(z.button){case 0:h=s.ROTATE;v.set(z.clientX,z.clientY);break;case 1:h=s.MOVE;p=new THREE.Vector3(0,0,1);var A=new THREE.Matrix4().extractRotation(this.camera.matrix);p.applyMatrix4(A);m=l.center.clone();c=l.camera.position.clone();b=ROS3D.intersectPlane(y.mouseRay,m,p);break;case 2:h=s.ZOOM;t.set(z.clientX,z.clientY);break}this.showAxes()}function q(y){var z=y.domEvent;if(h===s.ROTATE){g.set(z.clientX,z.clientY);r.subVectors(g,v);l.rotateLeft(2*Math.PI*r.x/u*l.userRotateSpeed);l.rotateUp(2*Math.PI*r.y/u*l.userRotateSpeed);v.copy(g);this.showAxes()}else{if(h===s.ZOOM){x.set(z.clientX,z.clientY);o.subVectors(x,t);if(o.y>0){l.zoomIn()}else{l.zoomOut()}t.copy(x);this.showAxes()}else{if(h===s.MOVE){var B=ROS3D.intersectPlane(y.mouseRay,l.center,p);if(!B){return}var A=new THREE.Vector3().subVectors(b.clone(),B.clone());l.center.addVectors(m.clone(),A.clone());l.camera.position.addVectors(c.clone(),A.clone());l.update();l.camera.updateMatrixWorld();this.showAxes()}}}}function d(y){if(!l.userRotate){return}h=s.NONE}function n(y){if(!l.userZoom){return}var z=y.domEvent;if(typeof(z.wheelDelta)!=="undefined"){var A=z.wheelDelta}else{var A=-z.detail}if(A>0){l.zoomOut()}else{l.zoomIn()}this.showAxes()}function a(y){k(y);y.preventDefault()}function f(y){q(y);y.preventDefault()}this.addEventListener("mousedown",k);this.addEventListener("mouseup",d);this.addEventListener("mousemove",q);this.addEventListener("touchstart",a);this.addEventListener("touchmove",f);this.addEventListener("mousewheel",n);this.addEventListener("DOMMouseScroll",n)};ROS3D.OrbitControls.prototype.showAxes=function(){var a=this;this.axes.traverse(function(b){b.visible=true});if(this.hideTimeout){clearTimeout(this.hideTimeout)}this.hideTimeout=setTimeout(function(){a.axes.traverse(function(b){b.visible=false});a.hideTimeout=false},1000)};ROS3D.OrbitControls.prototype.rotateLeft=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.thetaDelta-=a};ROS3D.OrbitControls.prototype.rotateRight=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.thetaDelta+=a};ROS3D.OrbitControls.prototype.rotateUp=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.phiDelta-=a};ROS3D.OrbitControls.prototype.rotateDown=function(a){if(a===undefined){a=2*Math.PI/60/60*this.autoRotateSpeed}this.phiDelta+=a};ROS3D.OrbitControls.prototype.zoomIn=function(a){if(a===undefined){a=Math.pow(0.95,this.userZoomSpeed)}this.scale/=a};ROS3D.OrbitControls.prototype.zoomOut=function(a){if(a===undefined){a=Math.pow(0.95,this.userZoomSpeed)}this.scale*=a};ROS3D.OrbitControls.prototype.update=function(){var b=this.camera.position;var f=b.clone().sub(this.center);var d=Math.atan2(f.y,f.x);var e=Math.atan2(Math.sqrt(f.y*f.y+f.x*f.x),f.z);if(this.autoRotate){this.rotateLeft(2*Math.PI/60/60*this.autoRotateSpeed)}d+=this.thetaDelta;e+=this.phiDelta;var c=0.000001;e=Math.max(c,Math.min(Math.PI-c,e));var a=f.length();f.y=a*Math.sin(e)*Math.sin(d);f.z=a*Math.cos(e);f.x=a*Math.sin(e)*Math.cos(d);f.multiplyScalar(this.scale);b.copy(this.center).add(f);this.camera.lookAt(this.center);a=f.length();this.axes.position=this.center.clone();this.axes.scale.x=this.axes.scale.y=this.axes.scale.z=a*0.05;this.axes.updateMatrixWorld(true);this.thetaDelta=0;this.phiDelta=0;this.scale=1;if(this.lastPosition.distanceTo(this.camera.position)>0){this.dispatchEvent({type:"change"});this.lastPosition.copy(this.camera.position)}};THREE.ColladaLoader=function(){var an=null;var I=null;var Y;var aK=null;var ab={};var m={};var Q={};var ag={};var ar={};var S={};var au={};var af={};var aO;var aI;var aR;var f;var L;var u=true;var R=THREE.SmoothShading;var ad={centerGeometry:false,convertUpAxis:false,subdivideFaces:true,upAxis:"Y",defaultEnvMap:null};var aQ=1;var av="Y";var A=null;var B=Math.PI/180;function g(a0,a4,a3){var a2=0;if(document.implementation&&document.implementation.createDocument){var a1=new XMLHttpRequest();a1.onreadystatechange=function(){if(a1.readyState==4){if(a1.status==0||a1.status==200){if(a1.responseXML){aK=a4;am(a1.responseXML,undefined,a0)}else{if(a1.responseText){aK=a4;var a5=new DOMParser();var a6=a5.parseFromString(a1.responseText,"application/xml");am(a6,undefined,a0)}else{console.error("ColladaLoader: Empty or non-existing file ("+a0+")")}}}}else{if(a1.readyState==3){if(a3){if(a2==0){a2=a1.getResponseHeader("Content-Length")}a3({total:a2,loaded:a1.responseText.length})}}}};a1.open("GET",a0,true);a1.send(null)}else{alert("Don't know how to parse XML!")}}function am(a5,a3,a1){an=a5;a3=a3||aK;if(a1!==undefined){var a4=a1.split("/");a4.pop();aR=(a4.length<1?".":a4.join("/"))+"/"}z();W();m=az("//dae:library_images/dae:image",ae,"image");S=az("//dae:library_materials/dae:material",c,"material");au=az("//dae:library_effects/dae:effect",P,"effect");ar=az("//dae:library_geometries/dae:geometry",aB,"geometry");af=az(".//dae:library_cameras/dae:camera",aP,"camera");ag=az("//dae:library_controllers/dae:controller",K,"controller");Q=az("//dae:library_animations/dae:animation",aS,"animation");aI=az(".//dae:library_visual_scenes/dae:visual_scene",aL,"visual_scene");f=[];L=[];Y=Z();I=new THREE.Object3D();for(var a2=0;a20?a0:"visual_scene0"]}else{return null}}function w(){aO=[];q(I)}function q(a5){var a7=Y.getChildById(a5.name,true),a4=null;if(a7&&a7.keys){a4={fps:60,hierarchy:[{node:a7,keys:a7.keys,sids:a7.sids}],node:a5,name:"animation_"+a5.name,length:0};aO.push(a4);for(var a3=0,a0=a7.keys.length;a3=0){var a4=a7.invBindMatrices[a8];a6.invBindMatrix=a4;a6.skinningMatrix=new THREE.Matrix4();a6.skinningMatrix.multiply(a6.world,a4);a6.weights=[];for(var a2=0;a21){be=new THREE.MeshFaceMaterial(bt);for(bp=0;bp1?bf.add(a1):bf=a1}}for(br=0;bra9){a8=a6.output[a3];break}}if(a8!==undefined){if(a8 instanceof THREE.Matrix4){a7=a7.multiply(a7,a8)}else{a7=a7.multiply(a7,a0.matrix)}}else{a7=a7.multiply(a7,a0.matrix)}}else{a7=a7.multiply(a7,a0.matrix)}}return a7}function aF(ba){if(ba.channels&&ba.channels.length){var a8=[],be=[];for(var bc=0,a5=ba.channels.length;bca5){break}}}return a4}function x(a4,a5){var a1=-1;for(var a3=0,a0=a4.length;a3=a5){a1=a3}}return a1}function v(ba,a7,a8,a5){var bb=ay(ba,a5,a8?a8-1:0),a6=l(ba,a5,a8+1);if(bb&&a6){var a1=(a7.time-bb.time)/(a6.time-bb.time),a9=bb.getTarget(a5),a4=a6.getTarget(a5).data,a0=a9.data,a3;if(a9.type==="matrix"){a3=a0}else{if(a0.length){a3=[];for(var a2=0;a2=0?a0:a0+a2.length;for(;a0>=0;a0--){var a1=a2[a0];if(a1.hasTarget(a3)){return a1}}return null}function ae(){this.id="";this.init_from=""}ae.prototype.parse=function(a1){this.id=a1.getAttribute("id");for(var a0=0;a0=0);var a9=(a1.indexOf("(")>=0);var a3;var a5;if(a8){a4=a1.split(".");a1=a4.shift();a5=a4.shift()}else{if(a9){a3=a1.split("(");a1=a3.shift();for(var a2=0;a24&&ad.subdivideFaces){var a1=bd.length?bd:new THREE.Color(),bu,bt,bs,bz,by,bw;for(bo=1;bo4){be=[bg[0],bg[a8+1],bg[a8+2]]}else{if(bj===4){be=[bg[0],bg[1],bg[2],bg[3]]}else{be=[bg[0],bg[1],bg[2]]}}if(!a2.faceVertexUvs[bo]){a2.faceVertexUvs[bo]=[]}a2.faceVertexUvs[bo].push(be)}}}else{console.log("dropped face with vcount "+bj+" for geometry with id: "+a2.id)}br+=bf*bj}}};function C(){this.material="";this.count=0;this.inputs=[];this.vcount=null;this.p=[];this.geometry=new THREE.Geometry()}C.prototype.setVertices=function(a0){for(var a1=0;a10){this[a3.nodeName]=parseFloat(a2[0].textContent)}break;default:break}}this.create();return this};at.prototype.create=function(){var a5={};var a8=(this["transparency"]!==undefined&&this["transparency"]<1);for(var a0 in this){switch(a0){case"ambient":case"emission":case"diffuse":case"specular":var a7=this[a0];if(a7 instanceof ao){if(a7.isTexture()){var a1=a7.texture;var a6=this.effect.sampler[a1].source;if(a6){var a2=this.effect.surface[a6];var a3=m[a2.init_from];if(a3){var a4=THREE.ImageUtils.loadTexture(aR+a3.init_from);a4.wrapS=a7.texOpts.wrapU?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping;a4.wrapT=a7.texOpts.wrapV?THREE.RepeatWrapping:THREE.ClampToEdgeWrapping;a4.offset.x=a7.texOpts.offsetU;a4.offset.y=a7.texOpts.offsetV;a4.repeat.x=a7.texOpts.repeatU;a4.repeat.y=a7.texOpts.repeatV;a5.map=a4;if(a0==="emission"){a5.emissive=16777215}}}}else{if(a0==="diffuse"||!a8){if(a0==="emission"){a5.emissive=a7.color.getHex()}else{a5[a0]=a7.color.getHex()}}}}break;case"shininess":a5[a0]=this[a0];break;case"reflectivity":a5[a0]=this[a0];if(a5[a0]>0){a5.envMap=ad.defaultEnvMap}a5.combine=THREE.MixOperation;break;case"index_of_refraction":a5.refractionRatio=this[a0];if(this[a0]!==1){a5.envMap=ad.defaultEnvMap}break;case"transparency":if(a8){a5.transparent=true;a5.opacity=this[a0];a8=true}break;default:break}}a5.shading=R;a5.side=this.effect.doubleSided?THREE.DoubleSide:THREE.FrontSide;switch(this.type){case"constant":if(a5.emissive!=undefined){a5.color=a5.emissive}this.material=new THREE.MeshBasicMaterial(a5);break;case"phong":case"blinn":if(a5.diffuse!=undefined){a5.color=a5.diffuse}this.material=new THREE.MeshPhongMaterial(a5);break;case"lambert":default:if(a5.diffuse!=undefined){a5.color=a5.diffuse}this.material=new THREE.MeshLambertMaterial(a5);break}return this.material};function b(a0){this.effect=a0;this.init_from=null;this.format=null}b.prototype.parse=function(a1){for(var a0=0;a0=0);var a3=(a0.indexOf("(")>=0);if(a6){a4=a0.split(".");this.sid=a4.shift();this.member=a4.shift()}else{if(a3){var a5=a0.split("(");this.sid=a5.shift();for(var a1=0;a11){a3=[];a0*=this.strideOut;for(var a1=0;a11){console.log("Key.interpolate: Warning! Scale out of bounds:"+a3);a3=a3<0?0:1}if(a1.length){a5=[];for(var a4=0;a40)?t(a0).split(/\s+/):[]}function t(a0){return a0.replace(/^\s+/,"").replace(/\s+$/,"")}function aY(a2,a1,a0){if(a2.hasAttribute(a1)){return parseFloat(a2.getAttribute(a1))}else{return a0}}function n(a2,a1,a0){if(a2.hasAttribute(a1)){return parseInt(a2.getAttribute(a1),10)}else{return a0}}function aJ(a2,a1,a0){if(a2.hasAttribute(a1)){return a2.getAttribute(a1)}else{return a0}}function aZ(a2,a0){if(a2===undefined){var a1="0.";while(a1.length1?a3[1].substr(0,a0):"0";while(a3[1].length-1&&a1<3){var a0=["X","Y","Z"],a2={X:0,Y:1,Z:2};a1=V(a0[a1]);a1=a2[a1]}return a1}function V(a0){if(ad.convertUpAxis){switch(a0){case"X":switch(A){case"XtoY":case"XtoZ":case"YtoX":a0="Y";break;case"ZtoX":a0="Z";break}break;case"Y":switch(A){case"XtoY":case"YtoX":case"ZtoX":a0="X";break;case"XtoZ":case"YtoZ":case"ZtoY":a0="Z";break}break;case"Z":switch(A){case"XtoZ":a0="X";break;case"YtoZ":case"ZtoX":case"ZtoY":a0="Y";break}break}}return a0}return{load:g,parse:am,setPreferredShading:E,applySkin:aT,geometries:ar,options:ad}}; \ No newline at end of file From ac79e38741e08e9fb4e31678005007cc59234b4e Mon Sep 17 00:00:00 2001 From: Russell Toris Date: Mon, 1 Apr 2013 13:44:58 -0700 Subject: [PATCH 4/4] doc updated --- doc/files.html | 46 ++++++------ doc/index.html | 2 +- doc/symbols/ROS3D.Arrow.html | 4 +- doc/symbols/ROS3D.Axes.html | 4 +- doc/symbols/ROS3D.Grid.html | 4 +- doc/symbols/ROS3D.Highlighter.html | 4 +- doc/symbols/ROS3D.InteractiveMarker.html | 4 +- .../ROS3D.InteractiveMarkerClient.html | 4 +- .../ROS3D.InteractiveMarkerControl.html | 4 +- .../ROS3D.InteractiveMarkerHandle.html | 4 +- doc/symbols/ROS3D.InteractiveMarkerMenu.html | 4 +- doc/symbols/ROS3D.Marker.html | 4 +- doc/symbols/ROS3D.MarkerClient.html | 4 +- doc/symbols/ROS3D.MeshResource.html | 4 +- doc/symbols/ROS3D.MouseHandler.html | 4 +- doc/symbols/ROS3D.OccupancyGrid.html | 4 +- doc/symbols/ROS3D.OccupancyGridClient.html | 4 +- doc/symbols/ROS3D.OrbitControls.html | 4 +- doc/symbols/ROS3D.SceneNode.html | 5 +- doc/symbols/ROS3D.TriangleList.html | 4 +- doc/symbols/ROS3D.Urdf.html | 4 +- doc/symbols/ROS3D.UrdfClient.html | 4 +- doc/symbols/ROS3D.Viewer.html | 4 +- doc/symbols/_global_.html | 4 +- ..._ROS_groovy_src_ros3djs_src_Ros3D.js.html} | 2 +- ...eractivemarkers_InteractiveMarker.js.html} | 0 ...vemarkers_InteractiveMarkerClient.js.html} | 2 +- ...emarkers_InteractiveMarkerControl.js.html} | 0 ...vemarkers_InteractiveMarkerHandle.js.html} | 4 +- ...tivemarkers_InteractiveMarkerMenu.js.html} | 0 ...rc_ros3djs_src_maps_OccupancyGrid.js.html} | 0 ...3djs_src_maps_OccupancyGridClient.js.html} | 15 ++-- ...vy_src_ros3djs_src_markers_Marker.js.html} | 0 ..._ros3djs_src_markers_MarkerClient.js.html} | 0 ...oovy_src_ros3djs_src_models_Arrow.js.html} | 0 ...roovy_src_ros3djs_src_models_Axes.js.html} | 0 ...roovy_src_ros3djs_src_models_Grid.js.html} | 0 ...c_ros3djs_src_models_MeshResource.js.html} | 0 ...c_ros3djs_src_models_TriangleList.js.html} | 0 ..._groovy_src_ros3djs_src_urdf_Urdf.js.html} | 29 ++++---- ...y_src_ros3djs_src_urdf_UrdfClient.js.html} | 0 ...s3djs_src_visualization_SceneNode.js.html} | 70 ++++++++++--------- ..._ros3djs_src_visualization_Viewer.js.html} | 0 ...alization_interaction_Highlighter.js.html} | 0 ...lization_interaction_MouseHandler.js.html} | 0 ...ization_interaction_OrbitControls.js.html} | 0 46 files changed, 134 insertions(+), 125 deletions(-) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html} (99%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html} (99%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html} (98%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html} (87%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html} (94%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html} (81%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html} (100%) rename doc/symbols/src/{_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html => _wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html} (100%) diff --git a/doc/files.html b/doc/files.html index 03bba3c99..49aea41a8 100644 --- a/doc/files.html +++ b/doc/files.html @@ -237,7 +237,7 @@

File Index

-

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarker.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarker.js

@@ -249,7 +249,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerClient.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerClient.js

@@ -261,7 +261,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerControl.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerControl.js

@@ -273,7 +273,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerHandle.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerHandle.js

@@ -285,7 +285,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerMenu.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/interactivemarkers/InteractiveMarkerMenu.js

@@ -297,7 +297,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/maps/OccupancyGrid.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/maps/OccupancyGrid.js

@@ -309,7 +309,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/maps/OccupancyGridClient.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/maps/OccupancyGridClient.js

@@ -321,7 +321,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/markers/Marker.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/markers/Marker.js

@@ -333,7 +333,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/markers/MarkerClient.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/markers/MarkerClient.js

@@ -345,7 +345,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Arrow.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Arrow.js

@@ -357,7 +357,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Axes.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Axes.js

@@ -369,7 +369,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Grid.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/Grid.js

@@ -381,7 +381,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/MeshResource.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/MeshResource.js

@@ -393,7 +393,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/TriangleList.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/models/TriangleList.js

@@ -405,7 +405,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/Ros3D.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/Ros3D.js

@@ -417,7 +417,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/urdf/Urdf.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/urdf/Urdf.js

@@ -429,7 +429,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/urdf/UrdfClient.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/urdf/UrdfClient.js

@@ -441,7 +441,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/Highlighter.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/Highlighter.js

@@ -453,7 +453,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/MouseHandler.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/MouseHandler.js

@@ -465,7 +465,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/OrbitControls.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/interaction/OrbitControls.js

@@ -477,7 +477,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/SceneNode.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/SceneNode.js

@@ -489,7 +489,7 @@

/home/rctoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/Viewer.js

+

/wg/stor5/rtoris/Documents/WPI/RAIL/ROS/groovy/src/ros3djs/src/visualization/Viewer.js

@@ -504,7 +504,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)

\ No newline at end of file diff --git a/doc/index.html b/doc/index.html index 45d9ae46b..9d372a23f 100644 --- a/doc/index.html +++ b/doc/index.html @@ -372,7 +372,7 @@

ROS3D.Viewer

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
\ No newline at end of file diff --git a/doc/symbols/ROS3D.Arrow.html b/doc/symbols/ROS3D.Arrow.html index 9814222fe..516b1ffdf 100644 --- a/doc/symbols/ROS3D.Arrow.html +++ b/doc/symbols/ROS3D.Arrow.html @@ -253,7 +253,7 @@

-
Defined in: Arrow.js. +
Defined in: Arrow.js.

@@ -511,7 +511,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Axes.html b/doc/symbols/ROS3D.Axes.html index f39b4637f..2ead1bb6e 100644 --- a/doc/symbols/ROS3D.Axes.html +++ b/doc/symbols/ROS3D.Axes.html @@ -253,7 +253,7 @@

-
Defined in: Axes.js. +
Defined in: Axes.js.

@@ -417,7 +417,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Grid.html b/doc/symbols/ROS3D.Grid.html index 463c06a65..74cb17db6 100644 --- a/doc/symbols/ROS3D.Grid.html +++ b/doc/symbols/ROS3D.Grid.html @@ -253,7 +253,7 @@

-
Defined in: Grid.js. +
Defined in: Grid.js.

@@ -349,7 +349,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Highlighter.html b/doc/symbols/ROS3D.Highlighter.html index 089e404e1..1b9412605 100644 --- a/doc/symbols/ROS3D.Highlighter.html +++ b/doc/symbols/ROS3D.Highlighter.html @@ -253,7 +253,7 @@

-
Defined in: Highlighter.js. +
Defined in: Highlighter.js.

@@ -574,7 +574,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarker.html b/doc/symbols/ROS3D.InteractiveMarker.html index 5d3c3a316..f55c79ce8 100644 --- a/doc/symbols/ROS3D.InteractiveMarker.html +++ b/doc/symbols/ROS3D.InteractiveMarker.html @@ -253,7 +253,7 @@

-
Defined in: InteractiveMarker.js. +
Defined in: InteractiveMarker.js.

@@ -945,7 +945,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerClient.html b/doc/symbols/ROS3D.InteractiveMarkerClient.html index dce5da82f..cac714eb7 100644 --- a/doc/symbols/ROS3D.InteractiveMarkerClient.html +++ b/doc/symbols/ROS3D.InteractiveMarkerClient.html @@ -253,7 +253,7 @@

-
Defined in: InteractiveMarkerClient.js. +
Defined in: InteractiveMarkerClient.js.

@@ -589,7 +589,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerControl.html b/doc/symbols/ROS3D.InteractiveMarkerControl.html index 1b16c9b2f..38599844d 100644 --- a/doc/symbols/ROS3D.InteractiveMarkerControl.html +++ b/doc/symbols/ROS3D.InteractiveMarkerControl.html @@ -253,7 +253,7 @@

-
Defined in: InteractiveMarkerControl.js. +
Defined in: InteractiveMarkerControl.js.

@@ -463,7 +463,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerHandle.html b/doc/symbols/ROS3D.InteractiveMarkerHandle.html index 7cfa9a055..b2ed3c202 100644 --- a/doc/symbols/ROS3D.InteractiveMarkerHandle.html +++ b/doc/symbols/ROS3D.InteractiveMarkerHandle.html @@ -253,7 +253,7 @@

-
Defined in: InteractiveMarkerHandle.js. +
Defined in: InteractiveMarkerHandle.js.

@@ -821,7 +821,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerMenu.html b/doc/symbols/ROS3D.InteractiveMarkerMenu.html index d06fcadc5..c7ff8e93d 100644 --- a/doc/symbols/ROS3D.InteractiveMarkerMenu.html +++ b/doc/symbols/ROS3D.InteractiveMarkerMenu.html @@ -253,7 +253,7 @@

-
Defined in: InteractiveMarkerMenu.js. +
Defined in: InteractiveMarkerMenu.js.

@@ -520,7 +520,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Marker.html b/doc/symbols/ROS3D.Marker.html index d2498b84e..5b27c2147 100644 --- a/doc/symbols/ROS3D.Marker.html +++ b/doc/symbols/ROS3D.Marker.html @@ -253,7 +253,7 @@

-
Defined in: Marker.js. +
Defined in: Marker.js.

@@ -416,7 +416,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MarkerClient.html b/doc/symbols/ROS3D.MarkerClient.html index 92cc70d30..f874547c2 100644 --- a/doc/symbols/ROS3D.MarkerClient.html +++ b/doc/symbols/ROS3D.MarkerClient.html @@ -253,7 +253,7 @@

-
Defined in: MarkerClient.js. +
Defined in: MarkerClient.js.

@@ -353,7 +353,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MeshResource.html b/doc/symbols/ROS3D.MeshResource.html index 75189dd53..63812d854 100644 --- a/doc/symbols/ROS3D.MeshResource.html +++ b/doc/symbols/ROS3D.MeshResource.html @@ -253,7 +253,7 @@

-
Defined in: MeshResource.js. +
Defined in: MeshResource.js.

@@ -349,7 +349,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MouseHandler.html b/doc/symbols/ROS3D.MouseHandler.html index 020dbdc00..5af1f3e47 100644 --- a/doc/symbols/ROS3D.MouseHandler.html +++ b/doc/symbols/ROS3D.MouseHandler.html @@ -253,7 +253,7 @@

-
Defined in: MouseHandler.js. +
Defined in: MouseHandler.js.

@@ -516,7 +516,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OccupancyGrid.html b/doc/symbols/ROS3D.OccupancyGrid.html index 835849405..2266cd460 100644 --- a/doc/symbols/ROS3D.OccupancyGrid.html +++ b/doc/symbols/ROS3D.OccupancyGrid.html @@ -253,7 +253,7 @@

-
Defined in: OccupancyGrid.js. +
Defined in: OccupancyGrid.js.

@@ -347,7 +347,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OccupancyGridClient.html b/doc/symbols/ROS3D.OccupancyGridClient.html index 53b6a3b40..a3e0d5ff7 100644 --- a/doc/symbols/ROS3D.OccupancyGridClient.html +++ b/doc/symbols/ROS3D.OccupancyGridClient.html @@ -253,7 +253,7 @@

-
Defined in: OccupancyGridClient.js. +
Defined in: OccupancyGridClient.js.

@@ -353,7 +353,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OrbitControls.html b/doc/symbols/ROS3D.OrbitControls.html index 6c9095e2b..20ff1b96a 100644 --- a/doc/symbols/ROS3D.OrbitControls.html +++ b/doc/symbols/ROS3D.OrbitControls.html @@ -253,7 +253,7 @@

-
Defined in: OrbitControls.js. +
Defined in: OrbitControls.js.

@@ -1007,7 +1007,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.SceneNode.html b/doc/symbols/ROS3D.SceneNode.html index b299ccb52..b206d83d4 100644 --- a/doc/symbols/ROS3D.SceneNode.html +++ b/doc/symbols/ROS3D.SceneNode.html @@ -253,7 +253,7 @@

-
Defined in: SceneNode.js. +
Defined in: SceneNode.js.

@@ -319,6 +319,7 @@

- object with following keys: * tfClient - a handle to the TF client * frameID - the frame ID this object belongs to + * pose (optional) - the pose associated with this object * object - the THREE 3D object to be rendered
@@ -349,7 +350,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.TriangleList.html b/doc/symbols/ROS3D.TriangleList.html index c3413744d..9aff362d9 100644 --- a/doc/symbols/ROS3D.TriangleList.html +++ b/doc/symbols/ROS3D.TriangleList.html @@ -253,7 +253,7 @@

-
Defined in: TriangleList.js. +
Defined in: TriangleList.js.

@@ -417,7 +417,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Urdf.html b/doc/symbols/ROS3D.Urdf.html index 6ba3608c5..6a9bd26ac 100644 --- a/doc/symbols/ROS3D.Urdf.html +++ b/doc/symbols/ROS3D.Urdf.html @@ -253,7 +253,7 @@

-
Defined in: Urdf.js. +
Defined in: Urdf.js.

@@ -349,7 +349,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.UrdfClient.html b/doc/symbols/ROS3D.UrdfClient.html index e8947905e..5f8988fe0 100644 --- a/doc/symbols/ROS3D.UrdfClient.html +++ b/doc/symbols/ROS3D.UrdfClient.html @@ -253,7 +253,7 @@

-
Defined in: UrdfClient.js. +
Defined in: UrdfClient.js.

@@ -356,7 +356,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Viewer.html b/doc/symbols/ROS3D.Viewer.html index 85d02b43d..539ae5730 100644 --- a/doc/symbols/ROS3D.Viewer.html +++ b/doc/symbols/ROS3D.Viewer.html @@ -253,7 +253,7 @@

-
Defined in: Viewer.js. +
Defined in: Viewer.js.

@@ -459,7 +459,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/_global_.html b/doc/symbols/_global_.html index a3dab33d4..dfa0a3b54 100644 --- a/doc/symbols/_global_.html +++ b/doc/symbols/_global_.html @@ -314,7 +314,7 @@


- Defined in: Ros3D.js. + Defined in: Ros3D.js.
Author: Russell Toris - rctoris@wpi.edu, David Gossow - dgossow@willowgarage.com. @@ -343,7 +343,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Thu Mar 28 2013 21:18:20 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT)
diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html similarity index 99% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html index 4132f7f69..9fffd0f33 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html @@ -11,7 +11,7 @@ 4 */ 5 6 var ROS3D = ROS3D || { - 7 REVISION : '1' + 7 REVISION : '2-devel' 8 }; 9 10 // Marker types diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html similarity index 99% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html index f22be9dd1..91b8c2220 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html @@ -27,7 +27,7 @@ 20 this.ros = options.ros; 21 this.tfClient = options.tfClient; 22 this.topic = options.topic; - 23 this.path = ''; + 23 this.path = options.path || '/'; 24 this.camera = options.camera; 25 this.rootObject = options.rootObject || new THREE.Object3D(); 26 diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html similarity index 98% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html index 24c5654ab..d685c36b0 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html @@ -172,8 +172,8 @@ 165 event_type : eventType, 166 pose : this.pose, 167 mouse_point : clickPosition, -168 mousePointValid : mousePointValid, -169 menuEntryID : menuEntryID +168 mouse_point_valid : mousePointValid, +169 menu_entry_id : menuEntryID 170 }; 171 this.feedbackTopic.publish(feedback); 172 }; diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html similarity index 87% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html index a04b033fb..30f6ff9ec 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html @@ -27,7 +27,7 @@ 20 var options = options || {}; 21 var ros = options.ros; 22 var topic = options.topic || '/map'; - 23 this.tfClient = options.tfClient; + 23 this.continuous = options.continuous; 24 this.rootObject = options.rootObject || new THREE.Object3D(); 25 26 // current grid that is displayed @@ -52,7 +52,12 @@ 45 that.rootObject.add(that.currentGrid); 46 47 that.emit('change'); - 48 }); - 49 }; - 50 ROS3D.OccupancyGridClient.prototype.__proto__ = EventEmitter2.prototype; - 51 \ No newline at end of file + 48 + 49 // check if we should unsubscribe + 50 if(!that.continuous) { + 51 rosTopic.unsubscribe(); + 52 } + 53 }); + 54 }; + 55 ROS3D.OccupancyGridClient.prototype.__proto__ = EventEmitter2.prototype; + 56 \ No newline at end of file diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html similarity index 94% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html index 99a0f391c..e5a4bb2f0 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html @@ -43,17 +43,18 @@ 36 // create a scene node with the model 37 var sceneNode = new ROS3D.SceneNode({ 38 frameID : frameID, - 39 tfClient : tfClient, - 40 object : new ROS3D.MeshResource({ - 41 path : path, - 42 resource : uri.substring(10) - 43 }) - 44 }); - 45 this.add(sceneNode); - 46 } - 47 } - 48 } - 49 } - 50 }; - 51 ROS3D.Urdf.prototype.__proto__ = THREE.Object3D.prototype; - 52 \ No newline at end of file + 39 pose : link.visual.origin, + 40 tfClient : tfClient, + 41 object : new ROS3D.MeshResource({ + 42 path : path, + 43 resource : uri.substring(10) + 44 }) + 45 }); + 46 this.add(sceneNode); + 47 } + 48 } + 49 } + 50 } + 51 }; + 52 ROS3D.Urdf.prototype.__proto__ = THREE.Object3D.prototype; + 53 \ No newline at end of file diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html similarity index 81% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html index d4c5b54fe..28debf076 100644 --- a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html +++ b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html @@ -17,37 +17,39 @@ 10 * @param options - object with following keys: 11 * * tfClient - a handle to the TF client 12 * * frameID - the frame ID this object belongs to - 13 * * object - the THREE 3D object to be rendered - 14 */ - 15 ROS3D.SceneNode = function(options) { - 16 var options = options || {}; - 17 var that = this; - 18 var tfClient = options.tfClient; - 19 var frameID = options.frameID; - 20 var object = options.object; - 21 - 22 THREE.Object3D.call(this); - 23 this.useQuaternion = true; - 24 - 25 // add the model - 26 this.add(object); - 27 - 28 // listen for TF updates - 29 tfClient.subscribe(frameID, - 30 function(msg) { - 31 // apply the transform - 32 var tf = new ROSLIB.Transform(msg); - 33 var poseTransformed = new ROSLIB.Pose(); - 34 poseTransformed.applyTransform(tf); - 35 - 36 // update the world - 37 that.position.x = poseTransformed.position.x; - 38 that.position.y = poseTransformed.position.y; - 39 that.position.z = poseTransformed.position.z; - 40 that.quaternion = new THREE.Quaternion(poseTransformed.orientation.x, - 41 poseTransformed.orientation.y, poseTransformed.orientation.z, - 42 poseTransformed.orientation.w); - 43 that.updateMatrixWorld(true); - 44 }); - 45 }; - 46 ROS3D.SceneNode.prototype.__proto__ = THREE.Object3D.prototype; \ No newline at end of file + 13 * * pose (optional) - the pose associated with this object + 14 * * object - the THREE 3D object to be rendered + 15 */ + 16 ROS3D.SceneNode = function(options) { + 17 var options = options || {}; + 18 var that = this; + 19 var tfClient = options.tfClient; + 20 var frameID = options.frameID; + 21 var object = options.object; + 22 this.pose = options.pose || new ROSLIB.Pose(); + 23 + 24 THREE.Object3D.call(this); + 25 this.useQuaternion = true; + 26 + 27 // add the model + 28 this.add(object); + 29 + 30 // listen for TF updates + 31 tfClient.subscribe(frameID, + 32 function(msg) { + 33 // apply the transform + 34 var tf = new ROSLIB.Transform(msg); + 35 var poseTransformed = new ROSLIB.Pose(that.pose); + 36 poseTransformed.applyTransform(tf); + 37 + 38 // update the world + 39 that.position.x = poseTransformed.position.x; + 40 that.position.y = poseTransformed.position.y; + 41 that.position.z = poseTransformed.position.z; + 42 that.quaternion = new THREE.Quaternion(poseTransformed.orientation.x, + 43 poseTransformed.orientation.y, poseTransformed.orientation.z, + 44 poseTransformed.orientation.w); + 45 that.updateMatrixWorld(true); + 46 }); + 47 }; + 48 ROS3D.SceneNode.prototype.__proto__ = THREE.Object3D.prototype; \ No newline at end of file diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html diff --git a/doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html b/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html similarity index 100% rename from doc/symbols/src/_home_rctoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html rename to doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html