1 line
2.3 KiB
JavaScript
1 line
2.3 KiB
JavaScript
"use strict";var e=function(e){return e&&e.__esModule?e["default"]:e},t=e(require("react")),r=require("animation-utilities"),n=r.visualize,a=r.THREE,i=r.JiboConfig,o=r.RobotInfo,s=e(require("./person.js")),c=new i;module.exports=t.createClass({displayName:"lps-view",getInitialState:function(){return{}},render:function(){var e={border:"1px solid grey",width:"97%",height:500,margin:"auto"};return t.createElement("div",null,t.createElement("div",{className:"panel-heading",style:{height:40}},t.createElement("h2",{style:{margin:"auto",textAlign:"center"}},"LPS View")),t.createElement("div",{style:e,ref:"content"}))},componentDidMount:function(){var e=this;this.tracks={};var r=t.findDOMNode(this.refs.content);o.createInfo(c,function(t){n.createRobotRenderer(t,r,n.DisplayType.BODY,function(t){t.setBackgroundColor(.7,.7,.7,0),e.renderer=t;var r=t.scene.getCamera();r.up=new a.Vector3(-1,0,0),t.setCamera(new a.Vector3(0,0,4),new a.Vector3(0,0,0)),t.scene.removeTrackballControls();var n=t.scene.getScene().getObjectByName("headMesh"),i=new a.MeshLambertMaterial({color:16711680,opacity:.1,transparent:!0}),o=2,s=100*Math.PI/180;e.cone={length:o,fov:s};var c=2*o*Math.cos(.5*s),l=new a.Mesh(new a.CylinderGeometry(0,c,o,50,50,!1),i);l.overdraw=.5,l.rotation.x=.5*Math.PI,l.position.z-=.5*o,l.position.y+=.15,e.cylinder=l,n.add(l),e.renderer=t})}),setInterval(this.update,this.props.intervalLength)},update:function(){var e=this.props.parent.motionInterface;if(e&&e.isConnected()&&!this.props.parent.paused){for(var t=e.getMotionDOFNames(),r={},n=0;n<t.length;n++){var a=e.getState(t[n]);r[t[n]]=a.pos}this.updateTrackInfo();try{this.renderer.display(r)}catch(i){console.log("renderer problem")}}},updateTrackInfo:function(){var e=this,t=this.props.tracks;if(t.length<Object.keys(this.tracks).length){var r=t.map(function(e){return String(e.id)});for(var n in this.tracks)n in r||(this.tracks[n].remove(),delete this.tracks[n])}t.forEach(function(t){try{if(e.tracks[t.id])e.tracks[t.id].setPosition(t.data.body.position);else{var r=new s(e.renderer.scene.getScene(),t.id);r.setPosition(t.data.body.position),e.tracks[t.id]=r}e.props.displayTrackLabel?e.tracks[t.id].displayID():e.tracks[t.id].hideID(),t.visible?e.tracks[t.id].setColor(45568):e.tracks[t.id].setColor(12303291)}catch(n){console.log("No renderer to attach scene obj to")}})},componentWillUnmount:function(){clearInterval(this.interval)}}); |