pointcloud_layer = new deck.PointCloudLayer({
id: 'pointcloud_layer',
data: scatter_data_proc,
getPosition: d => {
return [d.x, d.y, scale_z * d.z]
},
getColor: d => {
var inst_color
var unselected_color = [0, 0, 0, 1]
var rgb = d3.color(cell_colors[d.cell_type])
if (select_cell === 'none'){
inst_color = [rgb.r, rgb.g, rgb.b, opacity_255(cell_opacity)]
} else {
inst_color = unselected_color
if (d.cell_type === select_cell){
inst_color = [rgb.r, rgb.g, rgb.b, opacity_255(cell_opacity)]
}
}
return inst_color
},
getRadius: cell_size,
pickable: true,
pointSize: cell_size,
sizeUnits:'meters',
highlightColor: d => [50, 50, 50],
radiusMinPixels: radius_min_pixels,
updateTriggers: {
getColor: [select_cell]
},
onClick: (info, event) => {
if (select_cell !== info.object.cell_type){
mutable select_cell = info.object.cell_type
d3.select('#meta_dropdown').select('select').node().value = info.object.cell_type
} else {
mutable select_cell = 'none'
d3.select('#meta_dropdown').select('select').node().value = 'none'
}
}
})