The sky's node, made on first use, for a window (set_sky).
For a window's viewer (null: headless), nodes made later (a new texture
or catalog) are compiled for the windows running.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(SkySphere), | intent(inout) | :: | self | |||
| type(c_ptr), | intent(in) | :: | viewer |
a window's viewer (null: headless) |
function node(self, viewer) result(n) class(SkySphere), intent(inout) :: self type(c_ptr), intent(in) :: viewer !! a window's viewer (null: headless) type(c_ptr) :: n if (.not. c_associated(self%root)) then self%root = vkf_transform_create() self%texture_switch = vkf_switch_create() self%star_switch = vkf_switch_create() self%line_switch = vkf_switch_create() call check_status(vkf_node_add_child(self%root, self%texture_switch), 'SkySphere') ! the texture first, call check_status(vkf_node_add_child(self%root, self%line_switch), 'SkySphere') ! the constellations, call check_status(vkf_node_add_child(self%root, self%star_switch), 'SkySphere') ! the stars over them call make_texture_node(self) call make_line_node(self) call make_star_node(self) self%shown = c_associated(viewer) ! (the first nodes are compiled with the scene) end if n = self%root end function node