Update the frame (and its descendants), then its artists.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(DrawableTrajectory), | intent(inout), | target | :: | self | ||
| real(kind=wp), | intent(in) | :: | t |
the current time |
recursive subroutine drawable_update(self, t) class(DrawableTrajectory), intent(inout), target :: self real(wp), intent(in) :: t !! the current time class(ReferenceFrame), pointer :: r1, r2 integer :: k call self%ReferenceFrame%update(t) self%data_frame_ok = .false. if (associated(self%data_frame_)) then ! (in this tree: else drawn as they are) r1 => root_of(self) r2 => root_of(self%data_frame_) self%data_frame_ok = associated(r1, r2) if (.not. self%data_frame_ok .and. .not. self%warned) then write(*, '(a)') 'vkframes: '//self%name()//': its data frame is not in its tree (data drawn as they are)' self%warned = .true. end if end if call attach_frames(self) do k = 1, self%n_artists if (.not. c_associated(self%artists(k)%group) .and. c_associated(self%contents_group)) & call build_artist(self, k, compile=.true.) if (c_associated(self%artists(k)%group)) call self%artists(k)%p%update(t) end do end subroutine drawable_update