2018-02-12 10:26:03 +01:00
|
|
|
if (!this.entityLoaded) {
|
|
|
|
return;
|
2018-02-12 09:17:51 +01:00
|
|
|
}
|
|
|
|
|
2018-02-12 12:06:24 +01:00
|
|
|
this.initialized = false;
|
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
if (!this.initialized) {
|
2018-02-12 12:06:24 +01:00
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
this.imageSpoon = this.entityLoaded.imageSpoon;
|
|
|
|
this.imageEarth = this.entityLoaded.imageEarth;
|
2018-02-12 12:06:24 +01:00
|
|
|
|
|
|
|
this.meshBox = this.entityLoaded.meshBox;
|
2018-02-12 13:04:18 +01:00
|
|
|
this.meshImageGrid = this.entityLoaded.meshImageGrid;
|
2018-02-12 12:24:49 +01:00
|
|
|
|
|
|
|
this.boxGeometry = this.entityLoaded.boxGeometry;
|
2018-02-12 12:06:24 +01:00
|
|
|
this.instancedGeometry = this.entityLoaded.instancedGeometry;
|
2018-02-12 12:49:39 +01:00
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
this.initialized = true;
|
2018-02-12 12:06:24 +01:00
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
console.log('key up initialized');
|
2018-02-12 09:23:06 +01:00
|
|
|
}
|
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
if (data.code === 'KeyL') {
|
|
|
|
|
2018-02-12 12:49:39 +01:00
|
|
|
var colors = [];
|
|
|
|
|
2018-02-12 14:46:24 +01:00
|
|
|
for (var i = 0; i < this.boxGeometry.instance.index.count; i++) {
|
2018-02-12 12:49:39 +01:00
|
|
|
colors.push(1, 1, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
this.boxGeometry.instance.addAttribute('color', new THREE.Float32BufferAttribute(colors, 3));
|
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
var heightData = this.imageSpoon.getHeightData();
|
|
|
|
|
2018-02-12 12:23:06 +01:00
|
|
|
var instances = 16384; //128 x 128
|
2018-02-12 12:06:24 +01:00
|
|
|
|
2018-02-12 12:23:06 +01:00
|
|
|
var x, y = 0;
|
2018-02-12 12:12:31 +01:00
|
|
|
|
2018-02-12 12:23:06 +01:00
|
|
|
var positions = [];
|
2018-02-12 13:12:14 +01:00
|
|
|
var quaternions = [];
|
|
|
|
var scales = [];
|
2018-02-12 13:24:39 +01:00
|
|
|
|
2018-02-12 14:20:46 +01:00
|
|
|
var height = 0;
|
|
|
|
|
2018-02-12 12:23:06 +01:00
|
|
|
for (x = 0; x < 128; x++) {
|
|
|
|
for (y = 0; y < 128; y++) {
|
2018-02-12 14:20:46 +01:00
|
|
|
|
|
|
|
height = heightData[(y * 128) + x] * 10;
|
|
|
|
scale = height * 0.1;
|
|
|
|
|
2018-02-12 14:34:31 +01:00
|
|
|
positions.push(x - 64, 64 - y, height);
|
2018-02-12 13:12:14 +01:00
|
|
|
quaternions.push(0, 0, 0, 1);
|
2018-02-12 14:20:46 +01:00
|
|
|
scales.push(scale, scale, scale);
|
2018-02-12 12:23:06 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-02-12 12:49:39 +01:00
|
|
|
this.instancedGeometry.instance.attributes.position = this.boxGeometry.instance.attributes.position;
|
2018-02-12 14:46:24 +01:00
|
|
|
//this.instancedGeometry.instance.attributes.position = this.boxGeometry.instance.attributes.position;
|
2018-02-12 13:21:11 +01:00
|
|
|
//this.instancedGeometry.instance.attributes.color = this.boxGeometry.instance.attributes.color;
|
2018-02-12 12:49:39 +01:00
|
|
|
|
2018-02-12 13:24:39 +01:00
|
|
|
|
|
|
|
this.instancedGeometry.instance.removeAttribute('color');
|
2018-02-12 13:21:11 +01:00
|
|
|
|
2018-02-12 13:12:14 +01:00
|
|
|
this.instancedGeometry.instance.removeAttribute('instancePosition');
|
|
|
|
this.instancedGeometry.instance.removeAttribute('instanceQuaternion');
|
|
|
|
this.instancedGeometry.instance.removeAttribute('instanceScale');
|
|
|
|
|
2018-02-12 12:23:06 +01:00
|
|
|
this.instancedGeometry.instance.addAttribute('instancePosition', new THREE.InstancedBufferAttribute( new Float32Array(positions), 3));
|
2018-02-12 13:12:14 +01:00
|
|
|
this.instancedGeometry.instance.addAttribute('instanceQuaternion', new THREE.InstancedBufferAttribute( new Float32Array(quaternions), 4));
|
|
|
|
this.instancedGeometry.instance.addAttribute('instanceScale', new THREE.InstancedBufferAttribute( new Float32Array(scales), 3));
|
2018-02-12 13:24:39 +01:00
|
|
|
|
|
|
|
this.instancedGeometry.instance.addAttribute('color', new THREE.Float32BufferAttribute(colors, 3));
|
2018-02-12 12:12:31 +01:00
|
|
|
|
2018-02-12 14:34:31 +01:00
|
|
|
this.instancedGeometry.instance.clearGroups();
|
|
|
|
|
2018-02-12 14:41:56 +01:00
|
|
|
this.instancedGeometry.instance.addGroup(0, 36, 0);
|
2018-02-12 13:21:11 +01:00
|
|
|
|
2018-02-12 13:24:39 +01:00
|
|
|
//this.meshImageGrid.geometry.instance = this.instancedGeometry.instance;
|
2018-02-12 13:04:18 +01:00
|
|
|
|
2018-02-12 13:24:39 +01:00
|
|
|
//this.meshImageGrid.materials[0].createInstance();
|
|
|
|
//this.meshImageGrid.updateInstance('materials');
|
2018-02-12 13:04:18 +01:00
|
|
|
|
2018-02-12 10:26:03 +01:00
|
|
|
console.log('got data');
|
|
|
|
}
|
2018-02-12 09:17:51 +01:00
|
|
|
|
|
|
|
//@ sourceURL=ccKeyUp.js
|