set_region_color Subroutine

private subroutine set_region_color(self, region, color)

A region's color (region: one of SHADOW_UMBRA, SHADOW_PENUMBRA, SHADOW_ANTUMBRA; [r, g, b], alpha unchanged, or [r, g, b, a]).

Type Bound

ShadowCones

Arguments

Type IntentOptional Attributes Name
class(ShadowCones), intent(inout) :: self
integer, intent(in) :: region

SHADOW_UMBRA, SHADOW_PENUMBRA or SHADOW_ANTUMBRA

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

[r, g, b] (alpha unchanged) or [r, g, b, a], 0 to 1


Calls

proc~~set_region_color~~CallsGraph proc~set_region_color ShadowCones%set_region_color proc~apply_color apply_color proc~set_region_color->proc~apply_color proc~region_index region_index proc~set_region_color->proc~region_index proc~check_status check_status proc~apply_color->proc~check_status proc~mesh_set_material mesh_set_material proc~apply_color->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

Source Code

    subroutine set_region_color(self, region, color)
        class(ShadowCones), intent(inout) :: self
        integer, intent(in) :: region                       !! SHADOW_UMBRA, SHADOW_PENUMBRA or SHADOW_ANTUMBRA
        real(wp), intent(in) :: color(:)                    !! [r, g, b] (alpha unchanged) or [r, g, b, a], 0 to 1
        integer :: k, n
        k = region_index(region)
        if (k == 0) return
        n = min(4, size(color))
        self%region(k)%color(1:n) = color(1:n)
        call apply_color(self%region(k))
    end subroutine set_region_color