Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split entity properties into separate components #4442

Closed
jleibs opened this issue Dec 6, 2023 · 1 comment
Closed

Split entity properties into separate components #4442

jleibs opened this issue Dec 6, 2023 · 1 comment
Assignees
Labels
🟦 blueprint The data that defines our UI

Comments

@jleibs
Copy link
Member

jleibs commented Dec 6, 2023

EntityProperties is currently a single serde-based mono-component:

pub struct EntityProperties {
    pub interactive: bool,

    /// What kind of color mapping should be applied (none, map, texture, transfer..)?
    pub color_mapper: EditableAutoValue<ColorMapper>,

    /// Distance of the projection plane (frustum far plane).
    ///
    /// Only applies to pinhole cameras when in a spatial view, using 3D navigation.
    pub pinhole_image_plane_distance: EditableAutoValue<f32>,

    /// Should the depth texture be backprojected into a point cloud?
    ///
    /// Only applies to tensors with meaning=depth that are affected by a pinhole transform.
    ///
    /// The default for 3D views is `true`, but for 2D views it is `false`.
    pub backproject_depth: EditableAutoValue<bool>,

    /// How many depth units per world-space unit. e.g. 1000 for millimeters.
    ///
    /// This corresponds to `re_components::Tensor::meter`.
    pub depth_from_world_scale: EditableAutoValue<f32>,

    /// Used to scale the radii of the points in the resulting point cloud.
    pub backproject_radius_scale: EditableAutoValue<f32>,

    /// Whether to show the 3D transform visualization at all.
    pub transform_3d_visible: EditableAutoValue<bool>,

    /// The length of the arrows in the entity's own coordinate system (space).
    pub transform_3d_size: EditableAutoValue<f32>,

    /// Should the legend be shown (for plot space views).
    pub show_legend: EditableAutoValue<bool>,

    /// The location of the legend (for plot space views).
    ///
    /// This is an Option instead of an EditableAutoValue to let each space view class decide on
    /// what's the best default.
    pub legend_location: Option<LegendCorner>,

    /// What kind of data aggregation to perform (for plot space views).
    pub time_series_aggregator: EditableAutoValue<TimeSeriesAggregator>,
}

For each of these fields, there should be a new, explicit component.

@jleibs jleibs added the 🟦 blueprint The data that defines our UI label Dec 6, 2023
@Wumpf Wumpf self-assigned this Jun 12, 2024
Wumpf added a commit that referenced this issue Jun 14, 2024
… default per View) (#6558)

### What

Adds `TimeSeriesAggreation` component to `SeriesLine`, allowing to set
it both per line and as a component default.

example:
```python
rr.log("trig/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)", aggregator="minmax"), static=True)
```

This is good step forward overall but there's problems with this PR
* ui is a bit worse #6556
* one would expect this setting still on the view since most of the time
one wants to change the aggregation for all lines (i.e. the default):
#6557

--
* Part of #4442
* If not already fixed, fixes
#6460

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6558?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6558?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!

- [PR Build Summary](https://build.rerun.io/pr/6558)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
@Wumpf
Copy link
Member

Wumpf commented Jun 27, 2024

forgot to close this, it's doooone!

@Wumpf Wumpf closed this as completed Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🟦 blueprint The data that defines our UI
Projects
None yet
Development

No branches or pull requests

2 participants