You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Previously collections with FaceOrigin selected as their Orientation Type which were not perfectly vertical (i.e, transform.up == Vector3.up) would align their elements in crazy ways. I fixed this for my team's project and am I proposing pulling similar changes into the MRTK June release.
Vertical sphere:
Sphere rotated 90 degrees:
ಠ_ಠ
Cylinders also have a strange layout when rotated:
I'm proposing consolidating all the per-shape orientation methods into a single method that behaves uniformly regardless of shape type or orientation. This means the "FaceOrigin" Orientation Type will always face collection elements toward the origin regardless of surface type. This is likely an undesirable Orientation Type for vertically aligned Cylinders which previously relied on FaceOrigin to face each element toward their central axis, rather than toward their origin (I think we can assume no one was using the odd rotated cylinder layout). IMO, this was incorrect behavior for a "FaceOrigin" type, even though a "correct" behavior for FaceOrigin on a Cylinder is probably not very desirable (it creates a weird flattened sphere where the higher or lower you are on the cylinder the more angled down or up you are, even though all elements are vertically aligned).
To restore the previously desirable behavior of Cylinder collections, I propose adding a new Orientation Type called "FaceCenterAxis". On Cylinders this restores the old behavior. On spheres this creates a new potentially useful arrangement:
The same is true of FaceOrigin Plane collections, however the old behavior of FaceOrigin for planes is exactly the same as the FaceForward Orientation Type, so no new Orientation Type is required.
This should be considered a breaking change, since all Cylinder and Plane collections that want the old behavior would have to be switched to use the FaceCenterAxis or FaceForward orientations. (They cannot be updated in place, since FaceOrigin needs to remain the same in the enum so spheres don't break).
In my team's project, I have built on top of @paseb 's addition of Radial collections, that make cool fan-like things, as well as two new orientation types FaceParentDown, and FaceParentUp. This easiest way to do this pull request would be to bring those features along as well. They are purely additive and would be very low risk.
Expected Behavior
FaceOrigin always faces the origin's collection, regardless of its shape.
Collections can be rotated and their element layouts rotate with them.
Actual Behavior
Crazytown.
Steps to reproduce
Rotate a sphere collection and Update its layout.
The text was updated successfully, but these errors were encountered:
I updated the example map, I switched the primitives collection to show off the FaceCenterAxis orientation on a sphere collection (every shape keeps a vertical orientation):
Overview
Previously collections with FaceOrigin selected as their Orientation Type which were not perfectly vertical (i.e, transform.up == Vector3.up) would align their elements in crazy ways. I fixed this for my team's project and am I proposing pulling similar changes into the MRTK June release.
Vertical sphere:
Sphere rotated 90 degrees:
ಠ_ಠ
Cylinders also have a strange layout when rotated:
I'm proposing consolidating all the per-shape orientation methods into a single method that behaves uniformly regardless of shape type or orientation. This means the "FaceOrigin" Orientation Type will always face collection elements toward the origin regardless of surface type. This is likely an undesirable Orientation Type for vertically aligned Cylinders which previously relied on FaceOrigin to face each element toward their central axis, rather than toward their origin (I think we can assume no one was using the odd rotated cylinder layout). IMO, this was incorrect behavior for a "FaceOrigin" type, even though a "correct" behavior for FaceOrigin on a Cylinder is probably not very desirable (it creates a weird flattened sphere where the higher or lower you are on the cylinder the more angled down or up you are, even though all elements are vertically aligned).
To restore the previously desirable behavior of Cylinder collections, I propose adding a new Orientation Type called "FaceCenterAxis". On Cylinders this restores the old behavior. On spheres this creates a new potentially useful arrangement:
The same is true of FaceOrigin Plane collections, however the old behavior of FaceOrigin for planes is exactly the same as the FaceForward Orientation Type, so no new Orientation Type is required.
This should be considered a breaking change, since all Cylinder and Plane collections that want the old behavior would have to be switched to use the FaceCenterAxis or FaceForward orientations. (They cannot be updated in place, since FaceOrigin needs to remain the same in the enum so spheres don't break).
In my team's project, I have built on top of @paseb 's addition of Radial collections, that make cool fan-like things, as well as two new orientation types FaceParentDown, and FaceParentUp. This easiest way to do this pull request would be to bring those features along as well. They are purely additive and would be very low risk.
Expected Behavior
FaceOrigin always faces the origin's collection, regardless of its shape.
Collections can be rotated and their element layouts rotate with them.
Actual Behavior
Crazytown.
Steps to reproduce
Rotate a sphere collection and Update its layout.
The text was updated successfully, but these errors were encountered: