diff --git a/CHANGELOG b/CHANGELOG index 409fbc862..539392ca5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ -DEVEL - **r2** +DEVEL - **r3** + +2013-04-03 - **r2** * Examples now use CDN version of DAE files (rctoris) * Maps module added with OccupancyGrid and client (rctoris) * SceneNode now takes an optional pose (rctoris) diff --git a/build/ros3d.js b/build/ros3d.js index 2f1718361..99a790358 100644 --- a/build/ros3d.js +++ b/build/ros3d.js @@ -4,7 +4,7 @@ */ var ROS3D = ROS3D || { - REVISION : '2-devel' + REVISION : '3-devel' }; // Marker types @@ -1233,7 +1233,7 @@ ROS3D.OccupancyGrid.prototype.__proto__ = THREE.Mesh.prototype; */ /** - * A marker client that listens to a given marker topic. + * An occupancy grid client that listens to a given map topic. * * Emits the following events: * * 'change' - there was an update or change in the marker @@ -1242,8 +1242,8 @@ ROS3D.OccupancyGrid.prototype.__proto__ = THREE.Mesh.prototype; * @param options - object with following keys: * * ros - the ROSLIB.Ros connection handle * * topic (optional) - the map topic to listen to - * * rootObject (optional) - the root object to add this marker to * * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM) + * * rootObject (optional) - the root object to add this marker to */ ROS3D.OccupancyGridClient = function(options) { var that = this; @@ -1264,7 +1264,7 @@ ROS3D.OccupancyGridClient = function(options) { compression : 'png' }); rosTopic.subscribe(function(message) { - // check for an old marker + // check for an old map if (that.currentGrid) { that.rootObject.remove(that.currentGrid); } diff --git a/build/ros3d.min.js b/build/ros3d.min.js index 938982a4a..4ab4776d2 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:"3-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 diff --git a/doc/files.html b/doc/files.html index 49aea41a8..126cf7359 100644 --- a/doc/files.html +++ b/doc/files.html @@ -237,7 +237,7 @@

File Index

-

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

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

+

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

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

- Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)

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

ROS3D.Viewer

- Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
\ No newline at end of file diff --git a/doc/symbols/ROS3D.Arrow.html b/doc/symbols/ROS3D.Arrow.html index 516b1ffdf..a916789b1 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Axes.html b/doc/symbols/ROS3D.Axes.html index 2ead1bb6e..cc76fef78 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Grid.html b/doc/symbols/ROS3D.Grid.html index 74cb17db6..38239b242 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Highlighter.html b/doc/symbols/ROS3D.Highlighter.html index 1b9412605..64e5ab2aa 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarker.html b/doc/symbols/ROS3D.InteractiveMarker.html index f55c79ce8..1152c7823 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerClient.html b/doc/symbols/ROS3D.InteractiveMarkerClient.html index cac714eb7..217edd6ef 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerControl.html b/doc/symbols/ROS3D.InteractiveMarkerControl.html index 38599844d..9e97b47c3 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerHandle.html b/doc/symbols/ROS3D.InteractiveMarkerHandle.html index b2ed3c202..8a00b8322 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.InteractiveMarkerMenu.html b/doc/symbols/ROS3D.InteractiveMarkerMenu.html index c7ff8e93d..54e9fc643 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Marker.html b/doc/symbols/ROS3D.Marker.html index 5b27c2147..d916f521d 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MarkerClient.html b/doc/symbols/ROS3D.MarkerClient.html index f874547c2..4019f69b1 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MeshResource.html b/doc/symbols/ROS3D.MeshResource.html index 63812d854..4317977a9 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.MouseHandler.html b/doc/symbols/ROS3D.MouseHandler.html index 5af1f3e47..3980980fd 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OccupancyGrid.html b/doc/symbols/ROS3D.OccupancyGrid.html index 2266cd460..a58b9a9ba 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OccupancyGridClient.html b/doc/symbols/ROS3D.OccupancyGridClient.html index a3e0d5ff7..22f04e458 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.

@@ -274,7 +274,7 @@

-
A marker client that listens to a given marker topic.
+
An occupancy grid client that listens to a given map topic.
@@ -301,7 +301,7 @@

- A marker client that listens to a given marker topic. + An occupancy grid client that listens to a given map topic. Emits the following events: * 'change' - there was an update or change in the marker @@ -322,8 +322,8 @@

- object with following keys: * ros - the ROSLIB.Ros connection handle * topic (optional) - the map topic to listen to - * rootObject (optional) - the root object to add this marker to - * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM)
+ * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM) + * rootObject (optional) - the root object to add this marker to @@ -353,7 +353,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.OrbitControls.html b/doc/symbols/ROS3D.OrbitControls.html index 20ff1b96a..7de4c0000 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.SceneNode.html b/doc/symbols/ROS3D.SceneNode.html index b206d83d4..6793fce69 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.

@@ -350,7 +350,7 @@

- Documentation generated by JsDoc Toolkit 2.4.0 on Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.TriangleList.html b/doc/symbols/ROS3D.TriangleList.html index 9aff362d9..5f8fc9b9b 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Urdf.html b/doc/symbols/ROS3D.Urdf.html index 6a9bd26ac..19dfed55a 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.UrdfClient.html b/doc/symbols/ROS3D.UrdfClient.html index 5f8988fe0..0f3a43a93 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/ROS3D.Viewer.html b/doc/symbols/ROS3D.Viewer.html index 539ae5730..1367a3ae3 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/_global_.html b/doc/symbols/_global_.html index dfa0a3b54..565621d2d 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 Mon Apr 01 2013 13:44:46 GMT-0700 (PDT) + Documentation generated by JsDoc Toolkit 2.4.0 on Wed Apr 03 2013 09:08:38 GMT-0700 (PDT)
diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html similarity index 99% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html index 9fffd0f33..f422975c2 100644 --- a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html +++ b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_Ros3D.js.html @@ -11,7 +11,7 @@ 4 */ 5 6 var ROS3D = ROS3D || { - 7 REVISION : '2-devel' + 7 REVISION : '2' 8 }; 9 10 // Marker types diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarker.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerClient.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerControl.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerHandle.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_interactivemarkers_InteractiveMarkerMenu.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGrid.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html similarity index 97% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html index 30f6ff9ec..f8bee7c86 100644 --- a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html +++ b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_maps_OccupancyGridClient.js.html @@ -10,7 +10,7 @@ 3 */ 4 5 /** - 6 * A marker client that listens to a given marker topic. + 6 * An occupancy grid client that listens to a given map topic. 7 * 8 * Emits the following events: 9 * * 'change' - there was an update or change in the marker @@ -19,8 +19,8 @@ 12 * @param options - object with following keys: 13 * * ros - the ROSLIB.Ros connection handle 14 * * topic (optional) - the map topic to listen to - 15 * * rootObject (optional) - the root object to add this marker to - 16 * * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM) + 15 * * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM) + 16 * * rootObject (optional) - the root object to add this marker to 17 */ 18 ROS3D.OccupancyGridClient = function(options) { 19 var that = this; @@ -41,7 +41,7 @@ 34 compression : 'png' 35 }); 36 rosTopic.subscribe(function(message) { - 37 // check for an old marker + 37 // check for an old map 38 if (that.currentGrid) { 39 that.rootObject.remove(that.currentGrid); 40 } diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_Marker.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_markers_MarkerClient.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Arrow.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Axes.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_Grid.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_MeshResource.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_models_TriangleList.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_Urdf.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_urdf_UrdfClient.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_SceneNode.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_Viewer.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_Highlighter.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_MouseHandler.js.html diff --git a/doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html b/doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html similarity index 100% rename from doc/symbols/src/_wg_stor5_rtoris_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html rename to doc/symbols/src/_home_tor1pal_Documents_WPI_RAIL_ROS_groovy_src_ros3djs_src_visualization_interaction_OrbitControls.js.html diff --git a/include/roslibjs/roslib.js b/include/roslibjs/roslib.js index 0bed2b90a..7d685c6d1 100644 --- a/include/roslibjs/roslib.js +++ b/include/roslibjs/roslib.js @@ -3,7 +3,7 @@ */ var ROSLIB = ROSLIB || { - REVISION : '4-devel' + REVISION : '4' }; //URDF types diff --git a/src/Ros3D.js b/src/Ros3D.js index 94229d911..8999eca31 100644 --- a/src/Ros3D.js +++ b/src/Ros3D.js @@ -4,7 +4,7 @@ */ var ROS3D = ROS3D || { - REVISION : '2-devel' + REVISION : '3-devel' }; // Marker types diff --git a/src/maps/OccupancyGridClient.js b/src/maps/OccupancyGridClient.js index 3175a39ca..9433f9e0e 100644 --- a/src/maps/OccupancyGridClient.js +++ b/src/maps/OccupancyGridClient.js @@ -3,7 +3,7 @@ */ /** - * A marker client that listens to a given marker topic. + * An occupancy grid client that listens to a given map topic. * * Emits the following events: * * 'change' - there was an update or change in the marker @@ -12,8 +12,8 @@ * @param options - object with following keys: * * ros - the ROSLIB.Ros connection handle * * topic (optional) - the map topic to listen to - * * rootObject (optional) - the root object to add this marker to * * continuous (optional) - if the map should be continuously loaded (e.g., for SLAM) + * * rootObject (optional) - the root object to add this marker to */ ROS3D.OccupancyGridClient = function(options) { var that = this; @@ -34,7 +34,7 @@ ROS3D.OccupancyGridClient = function(options) { compression : 'png' }); rosTopic.subscribe(function(message) { - // check for an old marker + // check for an old map if (that.currentGrid) { that.rootObject.remove(that.currentGrid); }