set_attitude Subroutine

private subroutine set_attitude(self, q)

The sky's attitude in the root frame (quaternion [x, y, z, w]): e.g. to turn an equatorial catalog into an ecliptic root frame.

Type Bound

SkySphere

Arguments

Type IntentOptional Attributes Name
class(SkySphere), intent(inout) :: self
real(kind=wp), intent(in) :: q(4)

quaternion [x, y, z, w] (any length > 0)


Calls

proc~~set_attitude~2~~CallsGraph proc~set_attitude~2 SkySphere%set_attitude proc~apply_attitude apply_attitude proc~set_attitude~2->proc~apply_attitude proc~apply_name_attitude apply_name_attitude proc~set_attitude~2->proc~apply_name_attitude interface~vkf_sky_style vkf_sky_style proc~apply_attitude->interface~vkf_sky_style interface~vkf_sky_style_changed vkf_sky_style_changed proc~apply_attitude->interface~vkf_sky_style_changed proc~check_status check_status proc~apply_attitude->proc~check_status proc~quat_to_matrix quat_to_matrix proc~apply_attitude->proc~quat_to_matrix interface~vkf_transform_set_matrix vkf_transform_set_matrix proc~apply_name_attitude->interface~vkf_transform_set_matrix proc~apply_name_attitude->proc~check_status proc~apply_name_attitude->proc~quat_to_matrix

Source Code

    subroutine set_attitude(self, q)
        class(SkySphere), intent(inout) :: self
        real(wp), intent(in) :: q(4)                        !! quaternion [x, y, z, w] (any length > 0)
        if (norm2(q) <= 0.0_wp) return
        self%attitude_ = q / norm2(q)
        call apply_attitude(self, self%texture_node)
        call apply_attitude(self, self%star_node)
        call apply_attitude(self, self%line_node)
        call apply_name_attitude(self)
    end subroutine set_attitude