track_view Subroutine

private subroutine track_view(self)

The view's frame (the frame it follows) where it is now: the renderer's world-to-view transform (the camera stays where it is in that frame).

Arguments

Type IntentOptional Attributes Name
type(WindowProxy), intent(inout), target :: self

Calls

proc~~track_view~~CallsGraph proc~track_view track_view interface~vkf_viewer_set_view_transform vkf_viewer_set_view_transform proc~track_view->interface~vkf_viewer_set_view_transform proc~current_view WindowProxy%current_view proc~track_view->proc~current_view proc~world_to_view View%world_to_view proc~track_view->proc~world_to_view proc~frame_to_root frame_to_root proc~world_to_view->proc~frame_to_root proc~identity_matrix identity_matrix proc~world_to_view->proc~identity_matrix proc~quat_from_vectors quat_from_vectors proc~world_to_view->proc~quat_from_vectors proc~quat_to_matrix quat_to_matrix proc~world_to_view->proc~quat_to_matrix proc~rigid_inverse rigid_inverse proc~world_to_view->proc~rigid_inverse proc~rotated rotated proc~world_to_view->proc~rotated proc~translation_matrix translation_matrix proc~world_to_view->proc~translation_matrix proc~frame_to_root->proc~rigid_inverse proc~world_matrix ReferenceFrame%world_matrix proc~frame_to_root->proc~world_matrix proc~cross cross proc~quat_from_vectors->proc~cross proc~quat_normalize quat_normalize proc~quat_from_vectors->proc~quat_normalize proc~translation_matrix->proc~identity_matrix proc~world_matrix->proc~world_matrix proc~local_matrix ReferenceFrame%local_matrix proc~world_matrix->proc~local_matrix proc~frame_matrix frame_matrix proc~local_matrix->proc~frame_matrix proc~frame_matrix->proc~quat_to_matrix

Called by

proc~~track_view~~CalledByGraph proc~track_view track_view proc~frame WindowProxy%frame proc~frame->proc~track_view proc~resize WindowProxy%resize proc~resize->proc~frame proc~run WindowProxy%run proc~run->proc~frame

Source Code

    subroutine track_view(self)
        type(WindowProxy), intent(inout), target :: self
        type(View), pointer :: v
        v => self%current_view()
        if (.not. associated(v)) return
        if (vkf_viewer_set_view_transform(self%viewer_, v%world_to_view()) /= 0) &
            write(*, '(a)') 'vkframes: could not set the view'
    end subroutine track_view