vector_show_state Subroutine

private subroutine vector_show_state(self)

The arrow's color, brighter when hovered and more when dragged.

Type Bound

VectorHandle

Arguments

Type IntentOptional Attributes Name
class(VectorHandle), intent(inout) :: self

Calls

proc~~vector_show_state~~CallsGraph proc~vector_show_state VectorHandle%vector_show_state proc~check_status check_status proc~vector_show_state->proc~check_status proc~color~2 ReferenceFrame%color proc~vector_show_state->proc~color~2 proc~dragged DragHandle%dragged proc~vector_show_state->proc~dragged proc~hovered DragHandle%hovered proc~vector_show_state->proc~hovered proc~mesh_set_material mesh_set_material proc~vector_show_state->proc~mesh_set_material interface~vkf_mesh_material vkf_mesh_material proc~mesh_set_material->interface~vkf_mesh_material interface~vkf_mesh_material_changed vkf_mesh_material_changed proc~mesh_set_material->interface~vkf_mesh_material_changed

Called by

proc~~vector_show_state~~CalledByGraph proc~vector_show_state VectorHandle%vector_show_state proc~vector_build_contents VectorHandle%vector_build_contents proc~vector_build_contents->proc~vector_show_state proc~vector_set_color VectorHandle%vector_set_color proc~vector_set_color->proc~vector_show_state

Source Code

    subroutine vector_show_state(self)
        class(VectorHandle), intent(inout) :: self
        real(c_float) :: color(4), glow(4)
        if (.not. c_associated(self%shaft_mesh)) return
        color = real(self%color(), c_float)
        glow = 0.0_c_float
        if (self%dragged()) then
            glow(1:3) = 0.45_c_float
        else if (self%hovered()) then
            glow(1:3) = 0.25_c_float
        end if
        call check_status(mesh_set_material(self%shaft_mesh, [1.0_c_float, 1.0_c_float, 1.0_c_float, 1.0_c_float], color, &
                                            [0.0_c_float, 0.0_c_float, 0.0_c_float, 1.0_c_float], glow, 0.0_c_float))
        call check_status(mesh_set_material(self%head_mesh, [1.0_c_float, 1.0_c_float, 1.0_c_float, 1.0_c_float], color, &
                                            [0.0_c_float, 0.0_c_float, 0.0_c_float, 1.0_c_float], glow, 0.0_c_float))
    end subroutine vector_show_state