Place the axes for what the frame draws, when it is first shown (unless move_*_axis was called): at its bound's surface, half the bound's radius long (as OpenFrames' Sphere and Model do); at the origin, 1 long, for a frame that draws nothing.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ReferenceFrame), | intent(inout) | :: | self |
subroutine reposition_axes(self) class(ReferenceFrame), intent(inout) :: self real(wp) :: c(3), r, e(3) integer :: k call self%bound(c, r) if (r <= 0.0_wp) return do k = 1, 3 e = 0.0_wp e(k) = 1.0_wp self%axis_base(:, k) = c + r * e self%axis_len(k) = 0.5_wp * r end do end subroutine reposition_axes