aframe-babia-components
Version:
A data visualization set of components for A-Frame.
49 lines (43 loc) • 1.45 kB
JavaScript
AFRAME.registerComponent('babia-terrain', {
schema: {
width: {type: 'number', default: 1},
height: {type: 'number', default: 1},
segmentsHeight: {type: 'number', default: 1},
segmentsWidth: {type: 'number', default: 1},
data: {type: 'array'},
color: {type: 'string', default: '0xdddddd'},
filled: {type: 'boolean', default: false}
},
/**
* Initial creation and setting of the mesh.
*/
init: function () {
var data = this.data;
var el = this.el;
var vertices = data.data
console.log("Vertices:")
console.log(vertices)
// Create geometry.
this.geometry = new THREE.PlaneGeometry(data.width, data.height, data.segmentsHeight, data.segmentsWidth);
for (var i = 0, l = this.geometry.vertices.length; i < l; i++) {
this.geometry.vertices[i].z = vertices[i];
}
// Create material.
var color = data.color
if (data.filled){
this.material = new THREE.MeshPhongMaterial({
color: color,
wireframe: false
});
} else {
this.material = new THREE.MeshPhongMaterial({
color: color,
wireframe: true
});
}
// Create mesh.
this.mesh = new THREE.Mesh(this.geometry, this.material);
// Set mesh on entity.
el.setObject3D('mesh', this.mesh);
}
});