What the frame's motion depends on, for drawings that depend on it to
know when to redraw: stamp, the latest change of the motion of it and
its ancestors (through first parents), and of the frames their followed
data are in (poses set, parents changed, what is followed and how); and
data, the followed trajectories' revisions summed. Either changes
when the frame's motion over time changes.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ReferenceFrame), | intent(in) | :: | self | |||
| integer, | intent(out) | :: | stamp |
the latest change; the followed data's revisions |
||
| integer, | intent(out) | :: | data |
the latest change; the followed data's revisions |
recursive subroutine motion_key(self, stamp, data) class(ReferenceFrame), intent(in) :: self integer, intent(out) :: stamp, data !! the latest change; the followed data's revisions integer :: s, d stamp = self%stamp_ data = 0 if (self%following) then stamp = max(stamp, self%follower_%motion_stamp()) data = self%follower_%data_revision() if (associated(self%follow_frame_)) then call self%follow_frame_%motion_key(s, d) stamp = max(stamp, s) data = data + d end if end if if (self%n_parents > 0) then call self%parents(1)%p%motion_key(s, d) stamp = max(stamp, s) data = data + d end if end subroutine motion_key