Modules

ModuleSource FileDescription
vkf_artists vkf_artists.f90

Trajectory artists: what draws a Trajectory, in a DrawableTrajectory frame, as OpenFrames' TrajectoryArtist, CurveArtist, SegmentArtist, MarkerArtist and DrawableTrajectory, and RibbonArtist (not in OpenFrames: a translucent surface swept between two points at each trajectory point, e.g. an orbit's plane from the origin to the positions).

Read more…
vkf_cache vkf_cache.f90

The cache: what is slow to make again at every launch, kept between runs (src/vsg/vkf_cache.h): fonts converted for labels and HUD text (their glyphs' signed distance fields: seconds each; in its fonts directory) and shaders compiled from GLSL (about 45 ms each; in shaders). Fonts are named for their contents, so copies of one font share an entry, and a font's older entries are removed when it is converted again (after the font or VSG changed); shaders are named for their source and settings.

Read more…
vkf_clock vkf_clock.f90

The simulation clock: simulation time from wall-clock time, with a time scale, pause and a time range, as in OpenFrames' WindowProxy.

Read more…
vkf_diagnostics vkf_diagnostics.f90

Diagnostics (not in OpenFrames): what vkframes is built with and runs on, and how fast a window draws, for an information or debugging panel.

Read more…
vkf_files vkf_files.f90

Finding files: data files (e.g. the star catalog data/Stars_HYGv3.txt) by name on a search path, as OpenFrames' osgDB::findDataFile.

vkf_follower vkf_follower.f90

Following trajectories: the position and attitude of a frame from one or more trajectories at the current time, as OpenFrames' TrajectoryFollower.

Read more…
vkf_frames vkf_frames.f90

Reference frames: the tree of frames that every scene object belongs to, as OpenFrames' ReferenceFrame.

Read more…
vkf_geometry vkf_geometry.f90

Geometry generation for vkframes: meshes and lines computed in Fortran and written into the rendering layer's buffers.

vkf_gui vkf_gui.f90

GUI panels in a window (not in OpenFrames): Dear ImGui panels, buttons, checkboxes and sliders, drawn flat on top of the scene, through vsgImGui.

Read more…
vkf_handles vkf_handles.f90

Handles (not in OpenFrames): things in the scene the mouse drags, to design graphically, e.g. a trajectory's initial position and velocity.

Read more…
vkf_hud vkf_hud.f90

HUD text: text drawn on top of the scene at a fixed place in a window, as OpenFrames' HUD text (one per RenderRectangle there; any number here).

Read more…
vkf_layer vkf_layer.f90

Fortran interfaces to the C++ VSG layer (src/vsg/vkf_layer.cpp, with src/vsg/vkf_rocky.cpp for Rocky maps and src/vsg/vkf_gui.cpp for GUI panels), and a few helpers that fill the layer's buffers in place.

Read more…
vkf_line_chain vkf_line_chain.f90

A growing set of points drawn from a chain of GPU buffers ("chunks"), for the trajectory artists: a line strip, separate segments (pairs of points), markers (one per point) or a ribbon (a translucent surface through pairs of points: a quad between each pair and the next). Points are written in place, as (high, low) float pairs for double precision (see src/vsg/vkf_layer.cpp: EyeRelative), with a strip's distance along it (for dash patterns, see shaders/line.vert; measured from the trajectory's points), and only the chunks written to are uploaded again. A full chain gets new chunks, each as large as the chain so far or as what is needed at once, but at least min_chunk and at most max_chunk points, so nothing is ever copied or reallocated, and changing a point uploads at most max_chunk points again. In a strip, consecutive chunks share their end point so that the line is continuous; in a ribbon, their end pair.

Read more…
vkf_line_segments vkf_line_segments.f90

Custom line segments, as OpenFrames' CustomLineSegments: a frame drawing line segments whose endpoints and colors (one per endpoint, blended along the segment) are set by the program (set_segments), or computed each frame by a callback (set_callback): e.g. lines of sight between spacecraft, or links between ground stations and satellites.

Read more…
vkf_math vkf_math.f90

Math for vkframes: the working precision, quaternions and 4x4 transforms.

Read more…
vkf_model vkf_model.f90

3D models: a model file (3ds, obj, glTF, ... through vsgXchange) in a frame, as OpenFrames' Model.

Read more…
vkf_pick vkf_pick.f90

Picking geometry: what is under a point of a window (pick).

Read more…
vkf_shadow vkf_shadow.f90

Shadow cones: the regions of a celestial body's shadow in the light of another (e.g. the Earth's or the Moon's shadow in sunlight), drawn as transparent cones:

Read more…
vkf_shapes vkf_shapes.f90

Reference shapes, as OpenFrames' frames of the same names: CoordinateAxes (axis lines with tick marks), LatLonGrid (latitude and longitude lines on an ellipsoid), RadialPlane (a transparent disk with circles and radial lines) and cones (PolyhedralCone, and its EllipticCone and RectangularCone: e.g. sensor fields of view); and (not in OpenFrames) Polyhedron, any surface of polygons or triangles, or a grid of points (e.g. a tube of trajectories), fixed in its frame, lit or not, opaque or translucent.

Read more…
vkf_sky vkf_sky.f90

The sky behind a scene (OpenFrames' SkySphere): a texture map and/or stars from a star catalog, at infinity (they turn with the view, never move with it), in the root frame's axes turned by the sky's attitude. A window shows a sky with set_sky; one sky can be shown in several windows.

Read more…
vkf_sphere vkf_sphere.f90

Spheres and ellipsoids: a textured celestial body, as OpenFrames' Sphere.

Read more…
vkf_terrain vkf_terrain.f90

Maps and terrain: a celestial body drawn from map layers by Rocky (https://github.com/pelicanmapping/rocky; optional: rocky_available()), e.g. the Earth from tile services, or the Moon with NASA's imagery and LOLA's elevation. An addition to OpenFrames, which has only textured spheres.

Read more…
vkf_text vkf_text.f90

Text for vkframes: fonts (found by name on a search path, read once) and labels (text that always faces the screen).

Read more…
vkf_trajectory vkf_trajectory.f90

Trajectory data: times with positions, attitudes and optional data vectors, as in OpenFrames' Trajectory.

Read more…
vkf_view vkf_view.f90

Camera views: where the camera looks from, as OpenFrames' View.

Read more…
vkf_window vkf_window.f90

Windows showing a scene of frames, with its simulation time, as OpenFrames' FrameManager and WindowProxy (for now with a single viewport, which holds the views as OpenFrames' RenderRectangle does; OpenFrames' grid of viewports comes later).

Read more…
vkframes vkframes.f90

The vkframes library, a modern Fortran library for visualizing spacecraft trajectories, rendering with VulkanSceneGraph. use vkframes gives the whole public API.

Read more…
module~~graph~~ModuleGraph module~vkf_artists vkf_artists module~vkf_frames vkf_frames module~vkf_artists->module~vkf_frames module~vkf_layer vkf_layer module~vkf_artists->module~vkf_layer module~vkf_line_chain vkf_line_chain module~vkf_artists->module~vkf_line_chain module~vkf_math vkf_math module~vkf_artists->module~vkf_math module~vkf_pick vkf_pick module~vkf_artists->module~vkf_pick module~vkf_trajectory vkf_trajectory module~vkf_artists->module~vkf_trajectory iso_c_binding iso_c_binding module~vkf_artists->iso_c_binding module~vkf_cache vkf_cache module~vkf_cache->module~vkf_layer module~vkf_cache->iso_c_binding module~vkf_clock vkf_clock module~vkf_clock->module~vkf_math iso_fortran_env iso_fortran_env module~vkf_clock->iso_fortran_env module~vkf_diagnostics vkf_diagnostics module~vkf_diagnostics->module~vkf_layer module~vkf_diagnostics->module~vkf_math module~vkf_diagnostics->iso_c_binding module~vkf_diagnostics->iso_fortran_env module~vkf_files vkf_files module~vkf_follower vkf_follower module~vkf_follower->module~vkf_math module~vkf_follower->module~vkf_trajectory module~vkf_frames->module~vkf_follower module~vkf_geometry vkf_geometry module~vkf_frames->module~vkf_geometry module~vkf_frames->module~vkf_layer module~vkf_frames->module~vkf_math module~vkf_frames->module~vkf_pick module~vkf_text vkf_text module~vkf_frames->module~vkf_text module~vkf_frames->module~vkf_trajectory module~vkf_frames->iso_c_binding module~vkf_geometry->module~vkf_layer module~vkf_geometry->module~vkf_math module~vkf_geometry->iso_c_binding module~vkf_gui vkf_gui module~vkf_gui->module~vkf_layer module~vkf_gui->module~vkf_math module~vkf_gui->iso_c_binding module~vkf_handles vkf_handles module~vkf_handles->module~vkf_artists module~vkf_handles->module~vkf_frames module~vkf_handles->module~vkf_geometry module~vkf_handles->module~vkf_layer module~vkf_handles->module~vkf_math module~vkf_handles->module~vkf_pick module~vkf_handles->module~vkf_trajectory module~vkf_handles->iso_c_binding module~vkf_hud vkf_hud module~vkf_hud->module~vkf_frames module~vkf_hud->module~vkf_math module~vkf_layer->iso_c_binding module~vkf_line_chain->module~vkf_layer module~vkf_line_chain->module~vkf_math module~vkf_line_chain->iso_c_binding module~vkf_line_segments vkf_line_segments module~vkf_line_segments->module~vkf_frames module~vkf_line_segments->module~vkf_line_chain module~vkf_line_segments->module~vkf_math module~vkf_line_segments->iso_c_binding module~vkf_math->iso_fortran_env module~vkf_model vkf_model module~vkf_model->module~vkf_frames module~vkf_model->module~vkf_layer module~vkf_model->module~vkf_math module~vkf_model->module~vkf_pick module~vkf_model->iso_c_binding module~vkf_pick->module~vkf_math module~vkf_shadow vkf_shadow module~vkf_shadow->module~vkf_frames module~vkf_shadow->module~vkf_layer module~vkf_shadow->module~vkf_math module~vkf_sphere vkf_sphere module~vkf_shadow->module~vkf_sphere module~vkf_terrain vkf_terrain module~vkf_shadow->module~vkf_terrain module~vkf_shadow->iso_c_binding module~vkf_shapes vkf_shapes module~vkf_shapes->module~vkf_artists module~vkf_shapes->module~vkf_files module~vkf_shapes->module~vkf_frames module~vkf_shapes->module~vkf_layer module~vkf_shapes->module~vkf_math module~vkf_shapes->iso_c_binding module~vkf_shapes->iso_fortran_env module~vkf_sky vkf_sky module~vkf_sky->module~vkf_files module~vkf_sky->module~vkf_layer module~vkf_sky->module~vkf_math module~vkf_sky->module~vkf_text module~vkf_sky->iso_c_binding module~vkf_sphere->module~vkf_files module~vkf_sphere->module~vkf_frames module~vkf_sphere->module~vkf_geometry module~vkf_sphere->module~vkf_layer module~vkf_sphere->module~vkf_math module~vkf_sphere->module~vkf_pick module~vkf_sphere->iso_c_binding module~vkf_terrain->module~vkf_files module~vkf_terrain->module~vkf_frames module~vkf_terrain->module~vkf_layer module~vkf_terrain->module~vkf_math module~vkf_terrain->module~vkf_pick module~vkf_terrain->iso_c_binding module~vkf_text->module~vkf_files module~vkf_text->module~vkf_layer module~vkf_text->module~vkf_math module~vkf_text->iso_c_binding module~vkf_trajectory->module~vkf_math module~vkf_trajectory->iso_c_binding module~vkf_trajectory->iso_fortran_env module~vkf_view vkf_view module~vkf_view->module~vkf_frames module~vkf_view->module~vkf_math module~vkf_window vkf_window module~vkf_window->module~vkf_clock module~vkf_window->module~vkf_diagnostics module~vkf_window->module~vkf_frames module~vkf_window->module~vkf_gui module~vkf_window->module~vkf_handles module~vkf_window->module~vkf_hud module~vkf_window->module~vkf_layer module~vkf_window->module~vkf_math module~vkf_window->module~vkf_pick module~vkf_window->module~vkf_sky module~vkf_window->module~vkf_text module~vkf_window->module~vkf_view module~vkf_window->iso_c_binding module~vkf_window->iso_fortran_env module~vkframes vkframes module~vkframes->module~vkf_artists module~vkframes->module~vkf_cache module~vkframes->module~vkf_clock module~vkframes->module~vkf_diagnostics module~vkframes->module~vkf_files module~vkframes->module~vkf_follower module~vkframes->module~vkf_frames module~vkframes->module~vkf_gui module~vkframes->module~vkf_handles module~vkframes->module~vkf_hud module~vkframes->module~vkf_line_segments module~vkframes->module~vkf_math module~vkframes->module~vkf_model module~vkframes->module~vkf_pick module~vkframes->module~vkf_shadow module~vkframes->module~vkf_shapes module~vkframes->module~vkf_sky module~vkframes->module~vkf_sphere module~vkframes->module~vkf_terrain module~vkframes->module~vkf_trajectory module~vkframes->module~vkf_view module~vkframes->module~vkf_window
Help