annotate service/beacon/house-model.html @ 1754:92999dfbf321 default tip

add shelly support
author drewp@bigasterisk.com
date Tue, 04 Jun 2024 13:03:43 -0700
parents 299ddd7e2070
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
291
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
1 <link rel="import" href="/lib/polymer/1.0.9/polymer/polymer.html">
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
2
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
3 <dom-module id="house-model">
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
4 <template>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
5 <style>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
6 #scene {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
7 position: relative;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
8 overflow: hidden;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
9 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
10 .label {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
11 position: absolute;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
12 color: white;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
13 font-family: sans-serif;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
14 font-size: 10px;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
15 font-weight: bold;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
16 text-shadow: 0 0 1px black;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
17 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
18 </style>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
19 <div id="scene"></div>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
20 </template>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
21 <script src="/lib/threejs/r78/three.js"></script>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
22 <script src="dat.gui.js"></script>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
23
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
24 <script>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
25
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
26 function Bar(sceneParent, domParent, pos) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
27 this.domParent = domParent;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
28 this.mesh = new THREE.Mesh(Bar.geometry, Bar.material);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
29 this.mesh.scale.set(.1, 1, .1);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
30 this.mesh.translateX(pos.x);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
31 this.mesh.translateZ(pos.z);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
32 this.pos = pos;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
33
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
34 sceneParent.add(this.mesh);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
35
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
36 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
37 Bar.material = new THREE.MeshLambertMaterial({
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
38 "color": 0xe314a3,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
39 "emissive": 0x531251
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
40 });
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
41 Bar.geometry = new THREE.CylinderGeometry( 1, 1, 1, 32 );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
42 Bar.prototype.setValue = function(value, label) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
43 this.value = value;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
44 this.label = label;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
45 this.mesh.position.setY(this.pos.y + value / 2);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
46 this.mesh.scale.setY(value);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
47 if (this.div) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
48 this.div.innerText = '' + label;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
49 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
50 };
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
51 Bar.prototype.update2d = function(camera, screenSize) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
52 if (!this.div) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
53 this.div = document.createElement("div");
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
54 this.div.classList.add("label");
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
55 this.domParent.appendChild(this.div);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
56 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
57
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
58 var vector = this.mesh.position.clone().project(camera);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
59 vector.x = (vector.x + 1) / 2 * screenSize.x;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
60 vector.y = -(vector.y - 1) / 2 * screenSize.y;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
61
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
62 this.div.style.left = vector.x + 'px';
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
63 this.div.style.top = vector.y + 'px';
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
64 };
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
65
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
66
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
67
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
68 Polymer({
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
69 is: "house-model",
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
70 properties: {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
71 positionEstimates: {type: Object, notify: true, observer: 'onPositionEstimates'},
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
72 beacons: {type: Array, notify: true, observer: 'onBeacons'},
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
73 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
74 addLights: function(scene) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
75 var addLight = function(color, pos) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
76 var light = new THREE.PointLight(color, 1, 0, 0);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
77 light.position.set.apply(pos);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
78 scene.add(light);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
79 return light;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
80 };
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
81 addLight(0xffafff, [0, 6, 0]);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
82 addLight(0xffffaf, [-6, 6, 9]);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
83 addLight(0xffcfaf, [5, 5, 0]);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
84 addLight(0xefffef, [6, 4, 2]);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
85 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
86 setMaterials: function(scene) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
87 this.wall = new THREE.MeshPhongMaterial({
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
88 color : 0x7c7c7c,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
89 emissive: 0x303030,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
90 name : "wall",
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
91 opacity : 0.34,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
92 shininess : 1.3,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
93 side : THREE.DoubleSide,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
94 specular : 16777215,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
95 transparent : true,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
96 depthTest: true,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
97 depthWrite: false,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
98 alphaTest: 0.01,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
99 });
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
100
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
101
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
102 scene.children.forEach(function(obj) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
103 obj.material = this.wall;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
104 }.bind(this));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
105 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
106 ready: function() {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
107 var container = this.$.scene;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
108
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
109 this.renderer = new THREE.WebGLRenderer( { antialias: true } );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
110 this.size = new THREE.Vector2(800, 500);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
111 this.renderer.setSize(this.size.x, this.size.y);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
112 container.appendChild( this.renderer.domElement );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
113
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
114 this.config = {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
115 camRotSpeed: 5,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
116 camY: 8.5,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
117 camDist: 11,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
118 cursorX: 0, cursorY: 0, cursorZ: 0,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
119 };
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
120
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
121 var gui = new dat.GUI();
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
122 gui.add(this.config, 'camRotSpeed', -80, 80);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
123 gui.add(this.config, 'camY', -2, 10);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
124 gui.add(this.config, 'camDist', 1, 25);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
125 gui.add(this.config, 'cursorX', -7, 7);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
126 gui.add(this.config, 'cursorY', -7, 7);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
127 gui.add(this.config, 'cursorZ', -7, 7);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
128
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
129 this.bars = {}; // pos : Bar
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
130 this.scene = null;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
131
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
132 var loader = new THREE.ObjectLoader();
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
133 loader.load('house.json', function(scene) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
134 window.scene = scene;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
135 this.scene = scene;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
136 this.addLights(scene);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
137
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
138 this.setMaterials(scene);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
139
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
140 gui.add(this.wall, 'depthTest');
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
141 gui.add(this.wall, 'depthWrite');
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
142 gui.add(this.wall, 'transparent');
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
143 gui.add(this.wall, 'opacity', 0, 1);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
144 gui.add(this.wall, 'shininess', 0, 3);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
145 gui.add(this.wall, 'alphaTest', 0, 1);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
146 gui.listen({updateDisplay: function() { this.wall.needsUpdate = true; }.bind(this)});
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
147
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
148 this.camera = new THREE.PerspectiveCamera( 45, this.size.x / this.size.y, .1, 100 );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
149 scene.add(this.camera);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
150
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
151 var geometry = new THREE.SphereGeometry( .3, 32, 32 );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
152 var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
153 this.cursor = new THREE.Mesh( geometry, material );
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
154 scene.add(this.cursor);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
155
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
156 this.rotY = 0;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
157 this.startAnimLoop();
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
158 }.bind(this));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
159 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
160 startAnimLoop: function() {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
161 var lastTime = Date.now();
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
162 requestAnimationFrame(function animate(){
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
163 var now = Date.now();
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
164 var dt = (now - lastTime) / 1000;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
165 lastTime = now;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
166 this.step(dt);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
167 requestAnimationFrame(animate.bind(this));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
168 }.bind(this))
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
169 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
170 step: function(dt) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
171 this.rotY += this.config.camRotSpeed * dt;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
172
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
173 var p = new THREE.Vector3(this.config.camDist, this.config.camY, 0);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
174 p.applyAxisAngle(new THREE.Vector3(0, 1, 0), this.rotY / 360 * 6.28);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
175 this.camera.position.copy(p);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
176
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
177 this.camera.lookAt(new THREE.Vector3(-1, 0, 0));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
178
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
179 this.cursor.position.set(this.config.cursorX, this.config.cursorY, this.config.cursorZ);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
180 for (var p of Object.keys(this.bars)) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
181 var b = this.bars[p];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
182 b.update2d(this.camera, this.size);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
183 b.setValue(b.value, b.label);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
184 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
185 this.renderer.render(this.scene, this.camera);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
186 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
187 onPositionEstimates: function() {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
188 if (!this.scene) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
189 return;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
190 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
191
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
192 for (var p of Object.keys(this.bars)) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
193 var b = this.bars[p];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
194 b.setValue(0.001, '');
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
195 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
196 this.positionEstimates.forEach(function(row) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
197 var posKey = (Math.round(row[1][0] * 100) + ' ' +
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
198 Math.round(row[1][1] * 100) + ' ' +
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
199 Math.round(row[1][2] * 100));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
200 var b = this.bars[posKey];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
201 if (!b) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
202 b = new Bar(this.scene, this.$.scene,
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
203 new THREE.Vector3(-row[1][0], row[1][2], row[1][1]));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
204 this.bars[posKey] = b;
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
205 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
206 b.setValue(10 / row[0], Math.round(row[0] * 100) / 100);
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
207 }.bind(this));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
208 },
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
209 onBeacons: function() {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
210 this.beacons.forEach(function(b) {
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
211 this.config.cursorX = -b.pos[0];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
212 this.config.cursorY = b.pos[2];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
213 this.config.cursorZ = b.pos[1];
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
214 }.bind(this));
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
215 }
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
216 });
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
217 </script>
299ddd7e2070 start bt beacon tools
drewp@bigasterisk.com
parents:
diff changeset
218 </dom-module>