chain_build Subroutine

private subroutine chain_build(self, viewer, group)

Create the chain of buffers (sized for the points now) and the trace tail under group.

Type Bound

ChainArtist

Arguments

Type IntentOptional Attributes Name
class(ChainArtist), intent(inout) :: self
type(c_ptr), intent(in) :: viewer

compiles what is made later (null: nothing to)

type(c_ptr), intent(in) :: group

the artist's group


Calls

proc~~chain_build~~CallsGraph proc~chain_build ChainArtist%chain_build apply_style apply_style proc~chain_build->apply_style interface~vkf_node_add_child vkf_node_add_child proc~chain_build->interface~vkf_node_add_child new_tail new_tail proc~chain_build->new_tail points points proc~chain_build->points proc~chain_init ChainArtist%chain_init proc~chain_build->proc~chain_init proc~chain_points_per_point chain_points_per_point proc~chain_build->proc~chain_points_per_point proc~check_status check_status proc~chain_build->proc~check_status proc~reserve LineChain%reserve proc~chain_build->proc~reserve proc~set_compile LineChain%set_compile proc~chain_build->proc~set_compile proc~chain_init->proc~set_compile chain_kind chain_kind proc~chain_init->chain_kind proc~init LineChain%init proc~chain_init->proc~init proc~uses_colors uses_colors proc~chain_init->proc~uses_colors proc~chain_points_per_point->chain_kind proc~reserve->interface~vkf_node_add_child proc~reserve->proc~check_status 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_ribbon_create vkf_ribbon_create proc~reserve->interface~vkf_ribbon_create proc~apply_style apply_style proc~reserve->proc~apply_style proc~line_set_segments line_set_segments proc~reserve->proc~line_set_segments proc~move_chunks move_chunks proc~reserve->proc~move_chunks 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_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 num_colors num_colors proc~uses_colors->num_colors 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

Source Code

    subroutine chain_build(self, viewer, group)
        class(ChainArtist), intent(inout) :: self
        type(c_ptr), intent(in) :: viewer                   !! compiles what is made later (null: nothing to)
        type(c_ptr), intent(in) :: group                    !! the artist's group
        self%group = group
        self%compile = .false.
        call self%init_chain()
        call self%chain%reserve(chain_points_per_point(self) * self%points())   ! compiled with the group
        self%compile = c_associated(viewer)
        call self%chain%set_compile(self%compile)
        self%tail = self%new_tail()                         ! (white unless the points' colors are drawn)
        if (c_associated(self%tail)) call check_status(vkf_node_add_child(group, self%tail), 'trajectory artists')
        call self%apply_style()
        self%seen_generation = -1
    end subroutine chain_build