data_changed Function

private function data_changed(self, redraw) result(changed)

Whether the trajectory changed since last drawn; redraw if everything must be drawn again (cleared, or a new trajectory or data sources).

Arguments

Type IntentOptional Attributes Name
class(TrajectoryArtist), intent(inout) :: self
logical, intent(out) :: redraw

true: everything must be drawn again

Return Value logical


Calls

proc~~data_changed~~CallsGraph proc~data_changed data_changed proc~generation Trajectory%generation proc~data_changed->proc~generation proc~motion_changed motion_changed proc~data_changed->proc~motion_changed proc~revision~2 Trajectory%revision proc~data_changed->proc~revision~2 proc~motion_key ReferenceFrame%motion_key proc~motion_changed->proc~motion_key proc~same_pointer same_pointer proc~motion_changed->proc~same_pointer proc~transformed transformed proc~motion_changed->proc~transformed proc~motion_key->proc~motion_key proc~data_revision TrajectoryFollower%data_revision proc~motion_key->proc~data_revision proc~motion_stamp TrajectoryFollower%motion_stamp proc~motion_key->proc~motion_stamp proc~data_revision->proc~generation proc~data_revision->proc~revision~2

Called by

proc~~data_changed~~CalledByGraph proc~data_changed data_changed proc~marker_update MarkerArtist%marker_update proc~marker_update->proc~data_changed proc~segment_update SegmentArtist%segment_update proc~segment_update->proc~data_changed proc~write_changed write_changed proc~write_changed->proc~data_changed proc~chain_update ChainArtist%chain_update proc~chain_update->proc~write_changed proc~curve_update CurveArtist%curve_update proc~curve_update->proc~write_changed

Source Code

    logical function data_changed(self, redraw) result(changed)
        class(TrajectoryArtist), intent(inout) :: self
        logical, intent(out) :: redraw                      !! true: everything must be drawn again
        redraw = .false.
        changed = .false.
        if (.not. associated(self%traj)) return
        if (self%traj%generation() /= self%seen_generation) then
            redraw = .true.
            self%seen_generation = self%traj%generation()
            self%seen_revision = -1
        end if
        call motion_changed(self, redraw)
        if (redraw) self%seen_revision = -1
        changed = self%traj%revision() /= self%seen_revision
        self%seen_revision = self%traj%revision()
    end function data_changed