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.
| Type | Intent | Optional | 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 |
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