| Module | Source File | Description |
|---|---|---|
| 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). |
| 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 |
| 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. |
| 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. |
| 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. |
| vkf_frames | vkf_frames.f90 | Reference frames: the tree of frames that every scene object belongs to, as OpenFrames' ReferenceFrame. |
| 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. |
| 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. |
| 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). |
| 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. |
| 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. |
| 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. |
| vkf_math | vkf_math.f90 | Math for vkframes: the working precision, quaternions and 4x4 transforms. |
| vkf_model | vkf_model.f90 | 3D models: a model file (3ds, obj, glTF, ... through vsgXchange) in a frame, as OpenFrames' Model. |
| vkf_pick | vkf_pick.f90 | Picking geometry: what is under a point of a window (pick). |
| 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: |
| 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. |
| 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. |
| vkf_sphere | vkf_sphere.f90 | Spheres and ellipsoids: a textured celestial body, as OpenFrames' Sphere. |
| vkf_terrain | vkf_terrain.f90 | Maps and terrain: a celestial body drawn from map layers by Rocky
(https://github.com/pelicanmapping/rocky; optional: |
| 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). |
| vkf_trajectory | vkf_trajectory.f90 | Trajectory data: times with positions, attitudes and optional data vectors, as in OpenFrames' Trajectory. |
| vkf_view | vkf_view.f90 | Camera views: where the camera looks from, as OpenFrames' View. |
| 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). |
| vkframes | vkframes.f90 | The vkframes library, a modern Fortran library for visualizing spacecraft trajectories,
rendering with VulkanSceneGraph. |