frame_to_root Function

private function frame_to_root(self, f) result(m)

The transform from f to the view's root frame (the tree root if none).

Arguments

Type IntentOptional Attributes Name
type(View), intent(in) :: self
class(ReferenceFrame), intent(in) :: f

a frame of the view's tree

Return Value real(kind=wp), (4,4)


Calls

proc~~frame_to_root~~CallsGraph proc~frame_to_root frame_to_root proc~rigid_inverse rigid_inverse proc~frame_to_root->proc~rigid_inverse proc~world_matrix ReferenceFrame%world_matrix proc~frame_to_root->proc~world_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~quat_to_matrix quat_to_matrix proc~frame_matrix->proc~quat_to_matrix

Called by

proc~~frame_to_root~~CalledByGraph proc~frame_to_root frame_to_root proc~home View%home proc~home->proc~frame_to_root proc~world_to_view View%world_to_view proc~home->proc~world_to_view proc~world_to_view->proc~frame_to_root proc~fly fly proc~fly->proc~world_to_view proc~get_camera WindowProxy%get_camera proc~get_camera->proc~world_to_view proc~place_camera place_camera proc~place_camera->proc~home proc~place_camera->proc~world_to_view proc~place_camera->proc~fly proc~set_camera WindowProxy%set_camera proc~set_camera->proc~world_to_view proc~track_view track_view proc~track_view->proc~world_to_view proc~frame WindowProxy%frame proc~frame->proc~place_camera proc~frame->proc~track_view proc~dispatch_events dispatch_events proc~frame->proc~dispatch_events proc~view_camera view_camera proc~view_camera->proc~get_camera proc~cursor_ray WindowProxy%cursor_ray proc~cursor_ray->proc~view_camera proc~resize WindowProxy%resize proc~resize->proc~frame proc~run WindowProxy%run proc~run->proc~frame proc~screen_position WindowProxy%screen_position proc~screen_position->proc~view_camera proc~window_pick WindowProxy%window_pick proc~window_pick->proc~view_camera proc~drag_handle drag_handle proc~drag_handle->proc~cursor_ray proc~grab_handle grab_handle proc~grab_handle->proc~cursor_ray proc~hover_handle hover_handle proc~hover_handle->proc~window_pick proc~dispatch_event dispatch_event proc~dispatch_event->proc~drag_handle proc~dispatch_event->proc~grab_handle proc~dispatch_event->proc~hover_handle proc~release_handle release_handle proc~dispatch_event->proc~release_handle proc~release_handle->proc~hover_handle proc~dispatch_events->proc~dispatch_event

Source Code

    function frame_to_root(self, f) result(m)
        type(View), intent(in) :: self
        class(ReferenceFrame), intent(in) :: f              !! a frame of the view's tree
        real(wp) :: m(4,4)
        m = f%world_matrix()
        if (associated(self%root)) m = matmul(rigid_inverse(self%root%world_matrix()), m)
    end function frame_to_root