With data in another frame (transformed): redraw set if either
frame's motion changed, the data frame changed, or the transform began
or ended since the points were written.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(TrajectoryArtist), | intent(inout) | :: | self | |||
| logical, | intent(inout) | :: | redraw |
set to true if everything must be drawn again |
subroutine motion_changed(self, redraw) class(TrajectoryArtist), intent(inout) :: self logical, intent(inout) :: redraw !! set to true if everything must be drawn again integer :: key(4) key = -1 if (transformed(self)) then call self%data_frame%motion_key(key(1), key(2)) call self%shown_in%motion_key(key(3), key(4)) end if if (any(key /= self%seen_motion) .or. .not. same_pointer(self%data_frame, self%seen_data_frame)) redraw = .true. self%seen_motion = key self%seen_data_frame => self%data_frame end subroutine motion_changed