marker_node Function

private function marker_node(xyz, rgba, px, shape, radius, image) result(node)

A marker node at points xyz(3, n), px window units (MarkerArtist's shapes and attenuation).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: xyz(:,:)

(3, n) points

real(kind=wp), intent(in) :: rgba(4)

color [r, g, b, a] (0 to 1)

real(kind=wp), intent(in) :: px

marker size (window units)

integer, intent(in) :: shape

a MARKER_* shape

real(kind=wp), intent(in) :: radius

markers shrink beyond this camera distance (scene units)

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

image for MARKER_IMAGE (null: none)

Return Value type(c_ptr)


Calls

proc~~marker_node~~CallsGraph proc~marker_node marker_node interface~vkf_marker_create vkf_marker_create proc~marker_node->interface~vkf_marker_create proc~check_status check_status proc~marker_node->proc~check_status proc~line_set_points line_set_points proc~marker_node->proc~line_set_points proc~marker_set_style marker_set_style proc~marker_node->proc~marker_set_style interface~vkf_line_points vkf_line_points proc~line_set_points->interface~vkf_line_points interface~vkf_line_points_changed vkf_line_points_changed proc~line_set_points->interface~vkf_line_points_changed interface~vkf_line_style vkf_line_style proc~marker_set_style->interface~vkf_line_style interface~vkf_line_style_changed vkf_line_style_changed proc~marker_set_style->interface~vkf_line_style_changed

Called by

proc~~marker_node~~CalledByGraph proc~marker_node marker_node proc~make_axes make_axes proc~make_axes->proc~marker_node proc~make_polyhedron make_polyhedron proc~make_polyhedron->proc~marker_node proc~axes_build_contents CoordinateAxes%axes_build_contents proc~axes_build_contents->proc~make_axes proc~axes_set_color CoordinateAxes%axes_set_color proc~axes_set_color->proc~make_axes proc~poly_build_contents Polyhedron%poly_build_contents proc~poly_build_contents->proc~make_polyhedron proc~poly_set_draw_mode Polyhedron%poly_set_draw_mode proc~poly_set_draw_mode->proc~make_polyhedron proc~poly_set_line_color Polyhedron%poly_set_line_color proc~poly_set_line_color->proc~make_polyhedron proc~poly_set_line_width Polyhedron%poly_set_line_width proc~poly_set_line_width->proc~make_polyhedron proc~poly_set_opacity Polyhedron%poly_set_opacity proc~poly_set_opacity->proc~make_polyhedron proc~remove_vertex_colors Polyhedron%remove_vertex_colors proc~remove_vertex_colors->proc~make_polyhedron proc~set_axis_length CoordinateAxes%set_axis_length proc~set_axis_length->proc~make_axes proc~set_axis_width CoordinateAxes%set_axis_width proc~set_axis_width->proc~make_axes proc~set_draw_axes CoordinateAxes%set_draw_axes proc~set_draw_axes->proc~make_axes proc~set_edges Polyhedron%set_edges proc~set_edges->proc~make_polyhedron proc~set_face_color Polyhedron%set_face_color proc~set_face_color->proc~make_polyhedron proc~set_faces Polyhedron%set_faces proc~set_faces->proc~make_polyhedron proc~set_grid Polyhedron%set_grid proc~set_grid->proc~make_polyhedron proc~set_lit Polyhedron%set_lit proc~set_lit->proc~make_polyhedron proc~set_point_color Polyhedron%set_point_color proc~set_point_color->proc~make_polyhedron proc~set_point_size Polyhedron%set_point_size proc~set_point_size->proc~make_polyhedron proc~set_smooth Polyhedron%set_smooth proc~set_smooth->proc~make_polyhedron proc~set_tick_image CoordinateAxes%set_tick_image proc~set_tick_image->proc~make_axes proc~set_tick_shape CoordinateAxes%set_tick_shape proc~set_tick_shape->proc~make_axes proc~set_tick_size CoordinateAxes%set_tick_size proc~set_tick_size->proc~make_axes proc~set_tick_spacing CoordinateAxes%set_tick_spacing proc~set_tick_spacing->proc~make_axes proc~set_triangles Polyhedron%set_triangles proc~set_triangles->proc~make_polyhedron proc~set_two_sided Polyhedron%set_two_sided proc~set_two_sided->proc~make_polyhedron proc~set_vertex_colors Polyhedron%set_vertex_colors proc~set_vertex_colors->proc~make_polyhedron proc~set_vertices Polyhedron%set_vertices proc~set_vertices->proc~make_polyhedron

Source Code

    function marker_node(xyz, rgba, px, shape, radius, image) result(node)
        real(wp), intent(in) :: xyz(:,:)                    !! (3, n) points
        real(wp), intent(in) :: rgba(4)                     !! color [r, g, b, a] (0 to 1)
        real(wp), intent(in) :: px                          !! marker size (window units)
        real(wp), intent(in) :: radius                      !! markers shrink beyond this camera distance (scene units)
        integer, intent(in) :: shape                        !! a MARKER_* shape
        type(c_ptr), intent(in) :: image                    !! image for MARKER_IMAGE (null: none)
        type(c_ptr) :: node
        node = c_null_ptr
        if (size(xyz, 2) < 1) return
        node = vkf_marker_create(int(size(xyz, 2), c_int), image, 0_c_int)
        if (.not. c_associated(node)) return
        call check_status(marker_set_style(node, real(rgba, c_float), real(px, c_float), shape, real(radius, c_float)), 'shapes')
        call check_status(line_set_points(node, real(xyz, c_double)), 'shapes')
    end function marker_node