write_intermediates Subroutine

private subroutine write_intermediates(self, i1, i2)

Write intermediate markers i1 .. i2 into their chain, with their colors (with point colors), and upload the chunks written to.

Arguments

Type IntentOptional Attributes Name
type(MarkerArtist), intent(inout) :: self
integer, intent(in) :: i1

the intermediate markers

integer, intent(in) :: i2

the intermediate markers


Calls

proc~~write_intermediates~~CallsGraph proc~write_intermediates write_intermediates proc~color_slice LineChain%color_slice proc~write_intermediates->proc~color_slice proc~num_chunks~2 LineChain%num_chunks proc~write_intermediates->proc~num_chunks~2 proc~reserve LineChain%reserve proc~write_intermediates->proc~reserve proc~slice LineChain%slice proc~write_intermediates->proc~slice proc~split_points split_points proc~write_intermediates->proc~split_points proc~written LineChain%written proc~write_intermediates->proc~written interface~vkf_line_colors vkf_line_colors proc~color_slice->interface~vkf_line_colors interface~vkf_compile_node vkf_compile_node proc~reserve->interface~vkf_compile_node interface~vkf_line_create vkf_line_create proc~reserve->interface~vkf_line_create interface~vkf_line_create_colored vkf_line_create_colored proc~reserve->interface~vkf_line_create_colored interface~vkf_marker_create vkf_marker_create proc~reserve->interface~vkf_marker_create interface~vkf_node_add_child vkf_node_add_child proc~reserve->interface~vkf_node_add_child interface~vkf_ribbon_create vkf_ribbon_create proc~reserve->interface~vkf_ribbon_create proc~apply_style apply_style proc~reserve->proc~apply_style proc~check_status check_status proc~reserve->proc~check_status proc~line_set_segments line_set_segments proc~reserve->proc~line_set_segments proc~move_chunks move_chunks proc~reserve->proc~move_chunks proc~line_buffer line_buffer proc~slice->proc~line_buffer interface~vkf_line_points_changed vkf_line_points_changed proc~written->interface~vkf_line_points_changed proc~written->proc~check_status proc~measure measure proc~written->proc~measure proc~update_lod update_lod proc~written->proc~update_lod proc~apply_style->proc~check_status interface~vkf_line_set_dash_mode vkf_line_set_dash_mode proc~apply_style->interface~vkf_line_set_dash_mode interface~vkf_line_set_highlight vkf_line_set_highlight proc~apply_style->interface~vkf_line_set_highlight interface~vkf_line_set_trail vkf_line_set_trail proc~apply_style->interface~vkf_line_set_trail proc~line_set_pattern line_set_pattern proc~apply_style->proc~line_set_pattern proc~line_set_style line_set_style proc~apply_style->proc~line_set_style proc~marker_set_style marker_set_style proc~apply_style->proc~marker_set_style interface~vkf_line_points vkf_line_points proc~line_buffer->interface~vkf_line_points interface~vkf_line_style vkf_line_style proc~line_set_segments->interface~vkf_line_style interface~vkf_line_style_changed vkf_line_style_changed proc~line_set_segments->interface~vkf_line_style_changed proc~measure->proc~line_buffer proc~split_distances split_distances proc~measure->proc~split_distances proc~update_lod->proc~line_buffer proc~segment_distance segment_distance proc~update_lod->proc~segment_distance proc~send_lod send_lod proc~update_lod->proc~send_lod proc~line_set_pattern->interface~vkf_line_style proc~line_set_pattern->interface~vkf_line_style_changed proc~line_set_style->interface~vkf_line_style proc~line_set_style->interface~vkf_line_style_changed proc~marker_set_style->interface~vkf_line_style proc~marker_set_style->interface~vkf_line_style_changed proc~send_lod->proc~check_status interface~vkf_line_set_lod vkf_line_set_lod proc~send_lod->interface~vkf_line_set_lod proc~lod_error~2 LineChain%lod_error proc~send_lod->proc~lod_error~2

Called by

proc~~write_intermediates~~CalledByGraph proc~write_intermediates write_intermediates proc~add_intermediates add_intermediates proc~add_intermediates->proc~write_intermediates proc~marker_update MarkerArtist%marker_update proc~marker_update->proc~add_intermediates

Source Code

    subroutine write_intermediates(self, i1, i2)
        type(MarkerArtist), intent(inout) :: self
        integer, intent(in) :: i1, i2                       !! the intermediate markers
        real(c_float), dimension(:,:,:), pointer :: p
        real(c_float), dimension(:,:), pointer :: c
        integer :: j, lo, hi
        call self%inter%reserve(i2)
        do j = 1, self%inter%num_chunks()
            call self%inter%slice(j, i1, i2, lo, hi, p)
            if (.not. associated(p)) cycle
            call split_points(self%inter_xyz(:, lo:hi), p)
            call self%inter%color_slice(j, i1, i2, lo, hi, c)
            if (associated(c)) c = real(self%inter_rgba(:, lo:hi), c_float)
        end do
        call self%inter%written(i1, i2)
    end subroutine write_intermediates