Skip to content

Commit c06745f

Browse files
authored
Document that Rerun does not support left-handed coords (#7690)
### What * Closes #5033 * <img width="860" alt="Screenshot 2024-10-11 at 11 27 56" src="https://github.com/user-attachments/assets/b76607f4-fa84-44b5-bb31-d33c9b2b4226"> <img width="748" alt="Screenshot 2024-10-11 at 11 25 48" src="https://github.com/user-attachments/assets/d249395d-6707-4498-928b-135e35b635f2"> ### 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/7690?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/7690?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)! * [x] If have noted any breaking changes to the log API in `CHANGELOG.md` and the migration guide - [PR Build Summary](https://build.rerun.io/pr/7690) - [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`.
1 parent 62139df commit c06745f

File tree

22 files changed

+607
-118
lines changed

22 files changed

+607
-118
lines changed

crates/store/re_types/definitions/rerun/archetypes/view_coordinates.fbs

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace rerun.archetypes;
44

55
/// How we interpret the coordinate system of an entity/space.
66
///
7-
/// For instance: What is "up"? What does the Z axis mean? Is this right-handed or left-handed?
7+
/// For instance: What is "up"? What does the Z axis mean?
88
///
99
/// The three coordinates are always ordered as [x, y, z].
1010
///
@@ -13,6 +13,8 @@ namespace rerun.archetypes;
1313
///
1414
/// Make sure that this archetype is logged at or above the origin entity path of your 3D views.
1515
///
16+
/// ⚠ [Rerun does not yet support left-handed coordinate systems](https://github.com/rerun-io/rerun/issues/5032).
17+
///
1618
/// \example archetypes/view_coordinates_simple title="View coordinates for adjusting the eye camera" image="https://static.rerun.io/viewcoordinates/0833f0dc8616a676b7b2c566f2a6f613363680c5/1200w.png"
1719
table ViewCoordinates (
1820
"attr.rust.derive": "Copy, PartialEq, Eq, bytemuck::Pod, bytemuck::Zeroable",

crates/store/re_types/definitions/rerun/components/view_coordinates.fbs

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ enum ViewDir: ubyte {
1515

1616
/// How we interpret the coordinate system of an entity/space.
1717
///
18-
/// For instance: What is "up"? What does the Z axis mean? Is this right-handed or left-handed?
18+
/// For instance: What is "up"? What does the Z axis mean?
1919
///
2020
/// The three coordinates are always ordered as [x, y, z].
2121
///
2222
/// For example [Right, Down, Forward] means that the X axis points to the right, the Y axis points
2323
/// down, and the Z axis points forward.
2424
///
25+
/// ⚠ [Rerun does not yet support left-handed coordinate systems](https://github.com/rerun-io/rerun/issues/5032).
26+
///
2527
/// The following constants are used to represent the different directions:
2628
/// * Up = 1
2729
/// * Down = 2

crates/store/re_types/definitions/rerun/datatypes/view_coordinates.fbs

+3-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@ enum ViewDir: ubyte {
1515

1616
/// How we interpret the coordinate system of an entity/space.
1717
///
18-
/// For instance: What is "up"? What does the Z axis mean? Is this right-handed or left-handed?
18+
/// For instance: What is "up"? What does the Z axis mean?
1919
///
2020
/// The three coordinates are always ordered as [x, y, z].
2121
///
2222
/// For example [Right, Down, Forward] means that the X axis points to the right, the Y axis points
2323
/// down, and the Z axis points forward.
2424
///
25+
/// ⚠ [Rerun does not yet support left-handed coordinate systems](https://github.com/rerun-io/rerun/issues/5032).
26+
///
2527
/// The following constants are used to represent the different directions:
2628
/// * Up = 1
2729
/// * Down = 2

crates/store/re_types/src/archetypes/view_coordinates.rs

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/store/re_types/src/archetypes/view_coordinates_ext.rs

+90-30
Original file line numberDiff line numberDiff line change
@@ -14,65 +14,125 @@ macro_rules! define_coordinates {
1414
impl ViewCoordinates {
1515
// <BEGIN_GENERATED:declarations>
1616
// This section is generated by running `scripts/generate_view_coordinate_defs.py --rust`
17-
define_coordinates!("X=Up, Y=Left, Z=Forward", ULF => (Up, Left, Forward));
17+
define_coordinates!("X=Up, Y=Left, Z=Forward
18+
19+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", ULF => (Up, Left, Forward));
1820
define_coordinates!("X=Up, Y=Forward, Z=Left", UFL => (Up, Forward, Left));
1921
define_coordinates!("X=Left, Y=Up, Z=Forward", LUF => (Left, Up, Forward));
20-
define_coordinates!("X=Left, Y=Forward, Z=Up", LFU => (Left, Forward, Up));
21-
define_coordinates!("X=Forward, Y=Up, Z=Left", FUL => (Forward, Up, Left));
22+
define_coordinates!("X=Left, Y=Forward, Z=Up
23+
24+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LFU => (Left, Forward, Up));
25+
define_coordinates!("X=Forward, Y=Up, Z=Left
26+
27+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", FUL => (Forward, Up, Left));
2228
define_coordinates!("X=Forward, Y=Left, Z=Up", FLU => (Forward, Left, Up));
2329
define_coordinates!("X=Up, Y=Left, Z=Back", ULB => (Up, Left, Back));
24-
define_coordinates!("X=Up, Y=Back, Z=Left", UBL => (Up, Back, Left));
25-
define_coordinates!("X=Left, Y=Up, Z=Back", LUB => (Left, Up, Back));
30+
define_coordinates!("X=Up, Y=Back, Z=Left
31+
32+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", UBL => (Up, Back, Left));
33+
define_coordinates!("X=Left, Y=Up, Z=Back
34+
35+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LUB => (Left, Up, Back));
2636
define_coordinates!("X=Left, Y=Back, Z=Up", LBU => (Left, Back, Up));
2737
define_coordinates!("X=Back, Y=Up, Z=Left", BUL => (Back, Up, Left));
28-
define_coordinates!("X=Back, Y=Left, Z=Up", BLU => (Back, Left, Up));
38+
define_coordinates!("X=Back, Y=Left, Z=Up
39+
40+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", BLU => (Back, Left, Up));
2941
define_coordinates!("X=Up, Y=Right, Z=Forward", URF => (Up, Right, Forward));
30-
define_coordinates!("X=Up, Y=Forward, Z=Right", UFR => (Up, Forward, Right));
31-
define_coordinates!("X=Right, Y=Up, Z=Forward", RUF => (Right, Up, Forward));
42+
define_coordinates!("X=Up, Y=Forward, Z=Right
43+
44+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", UFR => (Up, Forward, Right));
45+
define_coordinates!("X=Right, Y=Up, Z=Forward
46+
47+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", RUF => (Right, Up, Forward));
3248
define_coordinates!("X=Right, Y=Forward, Z=Up", RFU => (Right, Forward, Up));
3349
define_coordinates!("X=Forward, Y=Up, Z=Right", FUR => (Forward, Up, Right));
34-
define_coordinates!("X=Forward, Y=Right, Z=Up", FRU => (Forward, Right, Up));
35-
define_coordinates!("X=Up, Y=Right, Z=Back", URB => (Up, Right, Back));
50+
define_coordinates!("X=Forward, Y=Right, Z=Up
51+
52+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", FRU => (Forward, Right, Up));
53+
define_coordinates!("X=Up, Y=Right, Z=Back
54+
55+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", URB => (Up, Right, Back));
3656
define_coordinates!("X=Up, Y=Back, Z=Right", UBR => (Up, Back, Right));
3757
define_coordinates!("X=Right, Y=Up, Z=Back", RUB => (Right, Up, Back));
38-
define_coordinates!("X=Right, Y=Back, Z=Up", RBU => (Right, Back, Up));
39-
define_coordinates!("X=Back, Y=Up, Z=Right", BUR => (Back, Up, Right));
58+
define_coordinates!("X=Right, Y=Back, Z=Up
59+
60+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", RBU => (Right, Back, Up));
61+
define_coordinates!("X=Back, Y=Up, Z=Right
62+
63+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", BUR => (Back, Up, Right));
4064
define_coordinates!("X=Back, Y=Right, Z=Up", BRU => (Back, Right, Up));
4165
define_coordinates!("X=Down, Y=Left, Z=Forward", DLF => (Down, Left, Forward));
42-
define_coordinates!("X=Down, Y=Forward, Z=Left", DFL => (Down, Forward, Left));
43-
define_coordinates!("X=Left, Y=Down, Z=Forward", LDF => (Left, Down, Forward));
66+
define_coordinates!("X=Down, Y=Forward, Z=Left
67+
68+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", DFL => (Down, Forward, Left));
69+
define_coordinates!("X=Left, Y=Down, Z=Forward
70+
71+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LDF => (Left, Down, Forward));
4472
define_coordinates!("X=Left, Y=Forward, Z=Down", LFD => (Left, Forward, Down));
4573
define_coordinates!("X=Forward, Y=Down, Z=Left", FDL => (Forward, Down, Left));
46-
define_coordinates!("X=Forward, Y=Left, Z=Down", FLD => (Forward, Left, Down));
47-
define_coordinates!("X=Down, Y=Left, Z=Back", DLB => (Down, Left, Back));
74+
define_coordinates!("X=Forward, Y=Left, Z=Down
75+
76+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", FLD => (Forward, Left, Down));
77+
define_coordinates!("X=Down, Y=Left, Z=Back
78+
79+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", DLB => (Down, Left, Back));
4880
define_coordinates!("X=Down, Y=Back, Z=Left", DBL => (Down, Back, Left));
4981
define_coordinates!("X=Left, Y=Down, Z=Back", LDB => (Left, Down, Back));
50-
define_coordinates!("X=Left, Y=Back, Z=Down", LBD => (Left, Back, Down));
51-
define_coordinates!("X=Back, Y=Down, Z=Left", BDL => (Back, Down, Left));
82+
define_coordinates!("X=Left, Y=Back, Z=Down
83+
84+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LBD => (Left, Back, Down));
85+
define_coordinates!("X=Back, Y=Down, Z=Left
86+
87+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", BDL => (Back, Down, Left));
5288
define_coordinates!("X=Back, Y=Left, Z=Down", BLD => (Back, Left, Down));
53-
define_coordinates!("X=Down, Y=Right, Z=Forward", DRF => (Down, Right, Forward));
89+
define_coordinates!("X=Down, Y=Right, Z=Forward
90+
91+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", DRF => (Down, Right, Forward));
5492
define_coordinates!("X=Down, Y=Forward, Z=Right", DFR => (Down, Forward, Right));
5593
define_coordinates!("X=Right, Y=Down, Z=Forward", RDF => (Right, Down, Forward));
56-
define_coordinates!("X=Right, Y=Forward, Z=Down", RFD => (Right, Forward, Down));
57-
define_coordinates!("X=Forward, Y=Down, Z=Right", FDR => (Forward, Down, Right));
94+
define_coordinates!("X=Right, Y=Forward, Z=Down
95+
96+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", RFD => (Right, Forward, Down));
97+
define_coordinates!("X=Forward, Y=Down, Z=Right
98+
99+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", FDR => (Forward, Down, Right));
58100
define_coordinates!("X=Forward, Y=Right, Z=Down", FRD => (Forward, Right, Down));
59101
define_coordinates!("X=Down, Y=Right, Z=Back", DRB => (Down, Right, Back));
60-
define_coordinates!("X=Down, Y=Back, Z=Right", DBR => (Down, Back, Right));
61-
define_coordinates!("X=Right, Y=Down, Z=Back", RDB => (Right, Down, Back));
102+
define_coordinates!("X=Down, Y=Back, Z=Right
103+
104+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", DBR => (Down, Back, Right));
105+
define_coordinates!("X=Right, Y=Down, Z=Back
106+
107+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", RDB => (Right, Down, Back));
62108
define_coordinates!("X=Right, Y=Back, Z=Down", RBD => (Right, Back, Down));
63109
define_coordinates!("X=Back, Y=Down, Z=Right", BDR => (Back, Down, Right));
64-
define_coordinates!("X=Back, Y=Right, Z=Down", BRD => (Back, Right, Down));
110+
define_coordinates!("X=Back, Y=Right, Z=Down
111+
112+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", BRD => (Back, Right, Down));
65113
define_coordinates!("X=Up, Y=Right, Z=Forward", RIGHT_HAND_X_UP => (Up, Right, Forward));
66114
define_coordinates!("X=Down, Y=Right, Z=Back", RIGHT_HAND_X_DOWN => (Down, Right, Back));
67115
define_coordinates!("X=Right, Y=Up, Z=Back", RIGHT_HAND_Y_UP => (Right, Up, Back));
68116
define_coordinates!("X=Right, Y=Down, Z=Forward", RIGHT_HAND_Y_DOWN => (Right, Down, Forward));
69117
define_coordinates!("X=Right, Y=Forward, Z=Up", RIGHT_HAND_Z_UP => (Right, Forward, Up));
70118
define_coordinates!("X=Right, Y=Back, Z=Down", RIGHT_HAND_Z_DOWN => (Right, Back, Down));
71-
define_coordinates!("X=Up, Y=Right, Z=Back", LEFT_HAND_X_UP => (Up, Right, Back));
72-
define_coordinates!("X=Down, Y=Right, Z=Forward", LEFT_HAND_X_DOWN => (Down, Right, Forward));
73-
define_coordinates!("X=Right, Y=Up, Z=Forward", LEFT_HAND_Y_UP => (Right, Up, Forward));
74-
define_coordinates!("X=Right, Y=Down, Z=Back", LEFT_HAND_Y_DOWN => (Right, Down, Back));
75-
define_coordinates!("X=Right, Y=Back, Z=Up", LEFT_HAND_Z_UP => (Right, Back, Up));
76-
define_coordinates!("X=Right, Y=Forward, Z=Down", LEFT_HAND_Z_DOWN => (Right, Forward, Down));
119+
define_coordinates!("X=Up, Y=Right, Z=Back
120+
121+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_X_UP => (Up, Right, Back));
122+
define_coordinates!("X=Down, Y=Right, Z=Forward
123+
124+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_X_DOWN => (Down, Right, Forward));
125+
define_coordinates!("X=Right, Y=Up, Z=Forward
126+
127+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_Y_UP => (Right, Up, Forward));
128+
define_coordinates!("X=Right, Y=Down, Z=Back
129+
130+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_Y_DOWN => (Right, Down, Back));
131+
define_coordinates!("X=Right, Y=Back, Z=Up
132+
133+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_Z_UP => (Right, Back, Up));
134+
define_coordinates!("X=Right, Y=Forward, Z=Down
135+
136+
⚠️ This is a left-handed coordinate system, which is [not yet supported by Rerun](https://github.com/rerun-io/rerun/issues/5032).", LEFT_HAND_Z_DOWN => (Right, Forward, Down));
77137
// <END_GENERATED:declarations>
78138
}

crates/store/re_types/src/components/view_coordinates.rs

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)