new_view Function

private function new_view(root, frame, lookat, frame_type, rotation_type) result(v)

A view of frame (in the tree of root), with base frame_type (default RELATIVE_FRAME); with lookat, a view from frame at lookat, turned by rotation_type (default VIEW_AZEL). Without frames, the view looks at the root frame's origin. The frames must stay alive while the view is used.

Arguments

Type IntentOptional Attributes Name
class(ReferenceFrame), intent(in), optional, target :: root

the tree's root, viewed and looked-at frames

class(ReferenceFrame), intent(in), optional, target :: frame

the tree's root, viewed and looked-at frames

class(ReferenceFrame), intent(in), optional, target :: lookat

the tree's root, viewed and looked-at frames

integer, intent(in), optional :: frame_type

ABSOLUTE_FRAME or RELATIVE_FRAME

integer, intent(in), optional :: rotation_type

VIEW_DIRECT or VIEW_AZEL

Return Value type(View)


Called by

proc~~new_view~~CalledByGraph proc~new_view new_view interface~view View interface~view->proc~new_view

Source Code

    function new_view(root, frame, lookat, frame_type, rotation_type) result(v)
        class(ReferenceFrame), intent(in), target, optional :: root, frame, lookat !! the tree's root, viewed and looked-at frames
        integer, intent(in), optional :: frame_type         !! ABSOLUTE_FRAME or RELATIVE_FRAME
        integer, intent(in), optional :: rotation_type      !! VIEW_DIRECT or VIEW_AZEL
        type(View) :: v
        integer :: ft, rt
        ft = RELATIVE_FRAME
        rt = VIEW_AZEL
        if (present(frame_type)) ft = frame_type
        if (present(rotation_type)) rt = rotation_type
        if (present(root)) v%root => root
        if (present(frame)) v%frame => frame
        if (present(lookat)) v%lookat => lookat
        v%frame_type = ft
        v%rotation_type = rt
    end function new_view