gled
gled/features
- Distributed object spaces
- a tree of servers and clients of any depth, with the same executable
at every level, with a GUI or without one: any
Gled application can run on a cluster
- every node mirrors the object spaces of the nodes above it, exports
its own to the nodes below, and keeps local objects for its own
computation and rendering
- method invocation requests are routed, broadcast and executed in the
same order on every node; they can be synchronous, and return values
- objects run their own threads, started and stopped by method calls
from any node
- authentication with public keys and access control by filter objects,
for use across untrusted networks
- the hierarchy itself is a graph of
Gled
objects, and is browsed and controlled like any other
- C++ framework
- object graphs:
ZGlass is the base of all classes and
holds named links to other objects, ZList and its subclasses
are the containers; reference counting with back-references
- the class header is the specification: directives in its comments
generate the accessors, the remote method calls and the GUI
- libsets add classes, with their GUI and renderers, to a running
system
- built on ROOT: streaming of object
graphs to files and over the network, introspection, and cling, the C++
interpreter, for macros and interactive use
-
ROOT's graphics, canvases and histograms
included, also through ROOT's web display
- GNU/Linux, GCC,
ROOT 6, C++20
- GUI
- FLTK widgets for every exported
data member, method and link, following the C++ inheritance
- a browser of object graphs, with editing and drag-and-drop
- context menus to create objects and to build and send method calls,
to local or remote objects
- application GUIs assembled from objects (MetaGUI)
- zoomable fonts and widgets
- Rendering
- each class has its own OpenGL
renderer class, separate from the object; scene traversal is programmable
and allows multi-pass rendering
- materials, lights, blending and the light model are modifier objects
in the scene graph
- GLSL shaders, offscreen rendering into frame-buffer objects, stereo
- textured shapes, terrains and triangle meshes; text with FTGL
- the viewer, the Pupil: picking, camera control, context menus,
and frame dumps for movies
-
ROOT geometries, with overlap checking