1#![warn(clippy::iter_over_hash_type)] mod color;
9mod datatype_uis;
10mod entity_path;
11mod geo_line_string;
12mod image_format;
13mod lat_lon;
14mod line_strip;
15mod map_provider;
16mod marker_shape;
17mod pinhole;
18mod plane3d;
19mod radius;
20mod resolution;
21mod response_utils;
22mod transforms;
23mod variant_uis;
24mod video_timestamp;
25mod view_coordinates;
26mod visual_bounds2d;
27mod zoom_level;
28
29use datatype_uis::{
30 edit_bool, edit_f32_min_to_max_float, edit_f32_zero_to_max, edit_f32_zero_to_one,
31 edit_f64_min_to_max_float, edit_f64_zero_to_max, edit_multiline_string, edit_or_view_vec2d,
32 edit_or_view_vec3d, edit_singleline_string, edit_u64_range, edit_ui_points, edit_view_enum,
33 edit_view_enum_with_variant_available, edit_view_range1d, view_timestamp, view_uuid,
34 view_view_id,
35};
36
37use re_types::{
38 blueprint::components::{
39 BackgroundKind, Corner2D, Enabled, Eye3DKind, ForceDistance, ForceIterations,
40 ForceStrength, GridSpacing, LinkAxis, LockRangeDuringZoom, MapProvider, NearClipPlane,
41 RootContainer, ViewFit, ViewMaximized,
42 },
43 components::{
44 AggregationPolicy, AlbedoFactor, AxisLength, Color, DepthMeter, DrawOrder, FillMode,
45 FillRatio, GammaCorrection, GraphType, ImagePlaneDistance, LinearSpeed,
46 MagnificationFilter, MarkerSize, Name, Opacity, Position2D, Range1D, Scale3D,
47 SeriesVisible, ShowLabels, StrokeWidth, Text, Timestamp, TransformRelation, Translation3D,
48 ValueRange, VideoCodec, Visible,
49 },
50};
51use re_viewer_context::gpu_bridge::colormap_edit_or_view_ui;
52
53const DEFAULT_NUMBER_WIDTH: f32 = 52.0;
55
56pub const REDAP_URI_BUTTON_VARIANT: &str = "redap_uri";
59
60pub const REDAP_ENTRY_KIND_VARIANT: &str = "redap_entry_kind";
61
62pub const REDAP_THUMBNAIL_VARIANT: &str = "redap_thumbnail";
63
64pub fn create_component_ui_registry() -> re_viewer_context::ComponentUiRegistry {
71 re_tracing::profile_function!();
72
73 let mut registry = re_viewer_context::ComponentUiRegistry::new();
74
75 registry.add_singleline_edit_or_view::<Color>(color::edit_rgba32);
77 registry.add_singleline_edit_or_view::<AlbedoFactor>(color::edit_rgba32);
78
79 registry.add_singleline_edit_or_view::<AxisLength>(edit_f32_zero_to_max);
81 registry.add_singleline_edit_or_view::<DepthMeter>(edit_f32_zero_to_max);
82 registry.add_singleline_edit_or_view::<FillRatio>(edit_f32_zero_to_max);
83 registry.add_singleline_edit_or_view::<ForceDistance>(edit_f64_zero_to_max);
84 registry.add_singleline_edit_or_view::<GammaCorrection>(edit_f32_zero_to_max);
85 registry.add_singleline_edit_or_view::<GridSpacing>(edit_f32_zero_to_max);
86 registry.add_singleline_edit_or_view::<ImagePlaneDistance>(edit_f32_zero_to_max);
87 registry.add_singleline_edit_or_view::<LinearSpeed>(edit_f64_zero_to_max);
88 registry.add_singleline_edit_or_view::<MarkerSize>(edit_ui_points);
89 registry.add_singleline_edit_or_view::<NearClipPlane>(edit_f32_zero_to_max);
90 registry.add_singleline_edit_or_view::<StrokeWidth>(edit_ui_points);
91
92 registry.add_singleline_edit_or_view::<DrawOrder>(edit_f32_min_to_max_float);
94 registry.add_singleline_edit_or_view::<ForceStrength>(edit_f64_min_to_max_float);
95
96 registry.add_singleline_edit_or_view::<Opacity>(edit_f32_zero_to_one);
98
99 registry.add_singleline_edit_or_view::<ForceIterations>(|ctx, ui, value| {
101 edit_u64_range(ctx, ui, value, 1..=5)
102 });
103
104 registry.add_singleline_edit_or_view::<Enabled>(edit_bool);
106 registry.add_singleline_edit_or_view::<LockRangeDuringZoom>(edit_bool);
107 registry.add_singleline_edit_or_view::<ShowLabels>(edit_bool);
108 registry.add_singleline_edit_or_view::<Visible>(edit_bool);
109 registry.add_singleline_edit_or_view::<SeriesVisible>(edit_bool);
110
111 registry.add_singleline_edit_or_view::<Timestamp>(view_timestamp);
113
114 registry.add_singleline_edit_or_view::<Text>(edit_singleline_string);
116 registry.add_multiline_edit_or_view::<Text>(edit_multiline_string);
117 registry.add_singleline_edit_or_view::<Name>(edit_singleline_string);
118 registry.add_multiline_edit_or_view::<Name>(edit_multiline_string);
119
120 registry.add_singleline_edit_or_view::<AggregationPolicy>(edit_view_enum);
123 registry.add_singleline_edit_or_view::<BackgroundKind>(edit_view_enum);
124 registry.add_singleline_edit_or_view::<Corner2D>(edit_view_enum);
125 registry.add_singleline_edit_or_view::<Eye3DKind>(edit_view_enum);
126 registry.add_singleline_edit_or_view::<FillMode>(edit_view_enum);
127 registry.add_singleline_edit_or_view::<GraphType>(edit_view_enum);
128 registry.add_singleline_edit_or_view::<LinkAxis>(edit_view_enum);
129 registry.add_singleline_edit_or_view::<MapProvider>(
130 edit_view_enum_with_variant_available::<
131 MapProvider,
132 crate::map_provider::MapProviderVariantAvailable,
133 >,
134 );
135 registry.add_singleline_edit_or_view::<MagnificationFilter>(edit_view_enum);
136 registry.add_singleline_edit_or_view::<TransformRelation>(edit_view_enum);
137 registry.add_singleline_edit_or_view::<VideoCodec>(|ctx, ui, value| {
138 edit_view_enum(
143 ctx,
144 ui,
145 &mut re_viewer_context::MaybeMutRef::Ref(value.as_ref()),
146 )
147 });
148 registry.add_singleline_edit_or_view::<ViewFit>(edit_view_enum);
149
150 registry.add_singleline_edit_or_view::<Position2D>(edit_or_view_vec2d);
152
153 registry.add_singleline_edit_or_view::<Translation3D>(edit_or_view_vec3d);
155 registry.add_singleline_edit_or_view::<Scale3D>(edit_or_view_vec3d);
156
157 registry.add_singleline_edit_or_view::<ViewMaximized>(view_view_id);
159
160 registry.add_singleline_edit_or_view::<RootContainer>(view_uuid);
161
162 registry.add_singleline_edit_or_view::<Range1D>(edit_view_range1d);
164 registry.add_singleline_edit_or_view::<ValueRange>(edit_view_range1d);
165
166 registry.add_singleline_edit_or_view(colormap_edit_or_view_ui);
172
173 registry.add_multiline_edit_or_view(visual_bounds2d::multiline_edit_visual_bounds2d);
174 registry.add_singleline_edit_or_view(visual_bounds2d::singleline_edit_visual_bounds2d);
175
176 registry.add_multiline_edit_or_view(transforms::multiline_view_transform_mat3x3);
177 registry.add_singleline_edit_or_view(transforms::singleline_view_transform_mat3x3);
178
179 registry.add_singleline_edit_or_view(image_format::edit_or_view_image_format);
180 registry.add_singleline_edit_or_view(resolution::edit_or_view_resolution);
181 registry.add_singleline_edit_or_view(view_coordinates::edit_or_view_view_coordinates);
182
183 registry.add_singleline_edit_or_view(radius::edit_radius_ui);
184 registry.add_singleline_edit_or_view(marker_shape::edit_marker_shape_ui);
185
186 registry.add_singleline_edit_or_view(pinhole::singleline_view_pinhole);
187 registry.add_multiline_edit_or_view(pinhole::multiline_view_pinhole);
188
189 line_strip::register_linestrip_component_ui(&mut registry);
190 geo_line_string::register_geo_line_string_component_ui(&mut registry);
191
192 registry.add_singleline_edit_or_view(entity_path::edit_or_view_entity_path);
193
194 registry.add_singleline_edit_or_view(video_timestamp::edit_or_view_timestamp);
195
196 registry.add_singleline_edit_or_view(lat_lon::singleline_view_lat_lon);
197
198 registry.add_singleline_edit_or_view(zoom_level::edit_zoom_level);
199
200 registry.add_singleline_edit_or_view(plane3d::edit_or_view_plane3d);
201 registry.add_multiline_edit_or_view(plane3d::multiline_edit_or_view_plane3d);
202
203 registry.add_variant_ui(REDAP_URI_BUTTON_VARIANT, variant_uis::redap_uri_button);
208 registry.add_variant_ui(REDAP_ENTRY_KIND_VARIANT, variant_uis::redap_entry_kind);
209 registry.add_variant_ui(REDAP_THUMBNAIL_VARIANT, variant_uis::redap_thumbnail);
210
211 registry
212}