Points v (data frame) at times times into the drawable's coordinates,
each by the transform at its own time (one transform for all if neither
frame moves).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TrajectoryArtist), | intent(in) | :: | self | |||
| real(kind=wp), | intent(in) | :: | times(:) |
each point's time |
||
| real(kind=wp), | intent(inout) | :: | v(:,:) |
(3, size(times)): the points |
subroutine to_shown(self, times, v) class(TrajectoryArtist), intent(in) :: self real(wp), intent(in) :: times(:) !! each point's time real(wp), intent(inout) :: v(:,:) !! (3, size(times)): the points real(wp) :: m(4,4) integer :: k if (size(v, 2) == 0) return if (.not. (moves(self%data_frame) .or. moves(self%shown_in))) then m = data_to_shown(self, times(1)) do k = 1, size(v, 2) v(:, k) = matmul(m(1:3, 1:3), v(:, k)) + m(1:3, 4) end do else do k = 1, size(v, 2) m = data_to_shown(self, times(k)) v(:, k) = matmul(m(1:3, 1:3), v(:, k)) + m(1:3, 4) end do end if end subroutine to_shown