draw_range Subroutine

private subroutine draw_range(self, i1, i2)

Draw points i1 .. i2 only (chain indices; none if i2 < i1): e.g. a trace of decreasing times, its last points.

Type Bound

LineChain

Arguments

Type IntentOptional Attributes Name
class(LineChain), intent(in) :: self
integer, intent(in) :: i1

first and last points drawn (chain indices)

integer, intent(in) :: i2

first and last points drawn (chain indices)


Calls

proc~~draw_range~~CallsGraph proc~draw_range LineChain%draw_range interface~vkf_line_set_range vkf_line_set_range proc~draw_range->interface~vkf_line_set_range proc~check_status check_status proc~draw_range->proc~check_status

Called by

proc~~draw_range~~CalledByGraph proc~draw_range LineChain%draw_range proc~draw LineChain%draw proc~draw->proc~draw_range proc~draw_written draw_written proc~draw_written->proc~draw_range proc~draw_written->proc~draw proc~marker_update MarkerArtist%marker_update proc~marker_update->proc~draw_range proc~marker_update->proc~draw proc~segment_update SegmentArtist%segment_update proc~segment_update->proc~draw_range proc~chain_update ChainArtist%chain_update proc~chain_update->proc~draw_written proc~curve_update CurveArtist%curve_update proc~curve_update->proc~draw_written proc~write_segments~2 write_segments proc~write_segments~2->proc~draw proc~segments_late_update CustomLineSegments%segments_late_update proc~segments_late_update->proc~write_segments~2

Source Code

    subroutine draw_range(self, i1, i2)
        class(LineChain), intent(in) :: self
        integer, intent(in) :: i1, i2           !! first and last points drawn (chain indices)
        integer :: j, lo, hi
        do j = 1, self%n_chunks
            associate (c => self%chunks(j))
                lo = max(i1, c%first)
                hi = min(i2, c%first + c%capacity - 1)
                if (hi >= lo) then
                    call check_status(vkf_line_set_range(c%line, int(lo - c%first + 1, c_int), int(hi - lo + 1, c_int)), &
                                      'trajectory artists')
                else
                    call check_status(vkf_line_set_range(c%line, 1_c_int, 0_c_int), 'trajectory artists')
                end if
            end associate
        end do
    end subroutine draw_range