The transform from this frame to the root of its tree at simulation
time t (through the first parent at each level): each frame's
local_matrix_at time t. The same as world_matrix after the tree's
update at time t, for any t, without changing anything.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ReferenceFrame), | intent(in) | :: | self | |||
| real(kind=wp), | intent(in) | :: | t |
simulation time |
recursive function world_matrix_at(self, t) result(m) class(ReferenceFrame), intent(in) :: self real(wp), intent(in) :: t !! simulation time real(wp) :: m(4,4) integer, save :: depth = 0 depth = depth + 1 if (depth > 256) error stop 'vkframes: frames following data in frames that depend on them (a cycle)' m = self%local_matrix_at(t) if (self%n_parents > 0) m = matmul(self%parents(1)%p%world_matrix_at(t), m) depth = depth - 1 end function world_matrix_at