Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
teh-cmc committed Jul 31, 2024
1 parent e1343f4 commit 56a0706
Showing 1 changed file with 42 additions and 23 deletions.
65 changes: 42 additions & 23 deletions crates/viewer/re_space_view_spatial/src/visualizers/depth_images.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use re_types::{
archetypes::DepthImage,
components::{self, Colormap, DepthMeter, DrawOrder, FillRatio, ViewCoordinates},
tensor_data::TensorDataMeaning,
Loggable as _,
};
use re_viewer_context::{
gpu_bridge::colormap_to_re_renderer, ApplicableEntities, IdentifiedViewSystem, ImageInfo,
Expand Down Expand Up @@ -257,39 +258,57 @@ impl VisualizerSystem for DepthImageVisualizer {
let mut depth_clouds = Vec::new();
let transforms = context_systems.get::<TransformContext>()?;

super::entity_iterator::process_archetype::<Self, DepthImage, _>(
use super::entity_iterator::{iter_buffer, process_archetype2};
process_archetype2::<Self, DepthImage, _>(
ctx,
view_query,
context_systems,
|ctx, spatial_ctx, results| {
use re_space_view::RangeResultsExt as _;
use re_space_view::RangeResultsExt2 as _;

let resolver = ctx.recording().resolver();

let blobs = match results.get_required_component_dense::<components::Blob>(resolver)
{
Some(blobs) => blobs?,
_ => return Ok(()),
};
let data_types = match results
.get_required_component_dense::<components::ChannelDataType>(resolver)
{
Some(data_types) => data_types?,
_ => return Ok(()),
let Some(all_blob_chunks) = results.get_required_chunks(&components::Blob::name())
else {
return Ok(());
};
let resolutions = match results
.get_required_component_dense::<components::Resolution2D>(resolver)
{
Some(resolutions) => resolutions?,
_ => return Ok(()),

// TODO
// let data_types = match results
// .get_required_component_dense::<components::ChannelDataType>(resolver)
// {
// Some(data_types) => data_types?,
// _ => return Ok(()),
// };

let timeline = ctx.query.timeline();
let all_blobs_indexed =
iter_buffer::<u8>(&all_blob_chunks, timeline, components::Blob::name());
let all_resolutions = results.iter_as(timeline, components::Resolution2D::name());

// TODO(#6386): we have to deserialize here because `TensorData` is still a complex
// type at this point.
let all_color_map_chunks =
results.get_optional_chunks(&components::Colormap::name());
let mut all_color_maps_iters = all_color_map_chunks
.iter()
.map(|chunk| chunk.iter_component::<components::Colormap>())
.collect_vec();
let all_color_maps_indexed = {
let all_color_maps = all_color_maps_iters
.iter_mut()
.flat_map(|it| it.into_iter());
let all_color_maps_indices = all_color_map_chunks.iter().flat_map(|chunk| {
chunk.iter_component_indices(&timeline, &components::Colormap::name())
});
itertools::izip!(all_color_maps_indices, all_color_maps)
};

let colormap = results.get_or_empty_dense(resolver)?;
let depth_meter = results.get_or_empty_dense(resolver)?;
let fill_ratio = results.get_or_empty_dense(resolver)?;
// TODO
// let colormap = results.get_or_empty_dense(resolver)?;
// let depth_meter = results.get_or_empty_dense(resolver)?;
// let fill_ratio = results.get_or_empty_dense(resolver)?;

let mut data = re_query::range_zip_1x5(
blobs.range_indexed(),
all_blobs_indexed,
data_types.range_indexed(),
resolutions.range_indexed(),
colormap.range_indexed(),
Expand Down

0 comments on commit 56a0706

Please sign in to comment.