pointsToMesh = function(layer) {
let tx = -0;
let ty = -0;
let scale = .01;
const material = new THREE.MeshStandardMaterial({
color: 0xff3333
});
material.color.convertSRGBToLinear();
var extrudeSettings = {
steps: 4,
depth: .1,
bevelEnabled: false
};
let meshes = layer.map((points, i) => {
let shape = new THREE.Shape();
extrudeSettings.depth =
Math.abs(Math.sin(((Math.PI * i) / layer.length) * 8)) * 0.4 + 0.05;
shape.moveTo(tx + points[0].x * scale, ty + points[0].y * scale);
points.forEach(d => {
let x = tx + d.x * scale;
let y = ty + d.y * scale;
shape.lineTo(x, y);
});
let geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);
let mesh = new THREE.Mesh(geometry, material);
return mesh;
});
return meshes;
}