Compute the intermediate markers not computed yet (all of them when counted from the end), and write them.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(MarkerArtist), | intent(inout) | :: | self | |||
| integer, | intent(in) | :: | n |
the points |
subroutine add_intermediates(self, n) type(MarkerArtist), intent(inout) :: self integer, intent(in) :: n !! the points integer :: first if (self%direction_ == MARKER_END) then ! everything changes when points are added self%n_inter = 0 self%n_inter_written = 0 self%next_index = 0 end if select case (self%intermediate_type_) case (INTERMEDIATE_TIME) call intermediates_by_time(self, n) case (INTERMEDIATE_DISTANCE) call intermediates_by_distance(self, n) case default call intermediates_by_data(self, n) end select if (self%direction_ == MARKER_END) then ! in trajectory order self%inter_xyz(:, 1:self%n_inter) = self%inter_xyz(:, self%n_inter:1:-1) self%inter_t(1:self%n_inter) = self%inter_t(self%n_inter:1:-1) if (self%inter%is_colored()) self%inter_rgba(:, 1:self%n_inter) = self%inter_rgba(:, self%n_inter:1:-1) end if first = self%n_inter_written + 1 if (self%n_inter >= first) call write_intermediates(self, first, self%n_inter) self%n_inter_written = self%n_inter end subroutine add_intermediates