Current version of
Gled is
v1.2.5,
released on 10th of June 2005.
The first public release of Gled (v1.2.0)
has been announced on 3rd of June 2003.
Main priorities for further development are a closer integration
with the ROOT project, stability
and portability.
Gled v1.2 is a functional base upon which higher-level
functionality can be built. Minimal changes in the core implementation
are expected.
Gled as an OO
framework/toolkit is stable enough to allow development of user
classes and applications.
It can be used for development of object-system prototypes,
visualization systems and for distributed computing. VR scenes can be
set-up and several users can modify them cooperatively. Authentication
and access control system is fully functional and allows the usage of
Gled across untrusted networks.
Another goal of the v1.2.x releases is to attract outside
developers.
Compilation and run-time environment:
Libsets:
- GledCore
contains the implementation of all central features
- RootGeo
interface to ROOT's detector-geometry description package
- Geom1
some geometrical shapes
- Numerica
some numerical algorithms
- GTS
interface to GNU Triangulated Surface Library - GTS
- Audio1
minimal interface to Open Audio Library - OpenAL
- EHS
minimal interface Embedded HTTP Server - EHS
The following development activities are planned for transition
towards
v1.3. Some of them are already well underway.
Server-client protocol:
- Handling of buffer fill-ups, network timeouts and disconnects.
- Queen transport protocol (currently beta); must handle queen
dependencies; possibly use
rootd as transport layer.
Handling of files:
- Implementation of
IceQueens and FileQueens.
- Manage catalog of opened (ROOT) files, preferably as lenses
in fire-space.
- Extend ROOT to allow different threads to read/write from
different files simultaneously (agreed with ROOT developers); add
support on Gled level.
User authentication and access control: DONE
- User authentication is needed for operation over unsafe networks
and for implementation of access control. Add glasses representing
users, groups and virtual organizations; decide where user/group data
is stored and how it accessible to clients.
- Extend MIR & thread infrastructure to contain UID information;
extend MIR handling elements (Saturn, Queens).
- Glasses for representing access lists. For now assume read-only
access is always granted.
Implement write (method execution) control on ZGlass (per object) and
ZQueen (for whole object-space) level. Access control would naturally
be implemented in ZQueen::BlessMIR(): MIRs which do not comply with
queen/glass access permissions will be denied.
Base glasses:
- Generalize container classes, make them bullet-proof against massive
additions/removals of elements.
GUI:
- Drag & drop support. DONE
- Generalization of locators (references to GUI objects that can
hold lens representation).
- Generalization of context menu; extensibility with libset GUI
classes.
- Add interface for saving/loading object graphs.
- Improve usability.
- Improve interface and functionality of user-to-user communication system.
Rendering: ALMOST DONE
- Optimize rendering classes; use display lists.
- Triangulation infrastructure: extend base classes for holding
vertex data. Use a dedicated thread (decoupled from rendering) for
triangulation.
- Improve GL rendering classes
PupilInfo and
Pupil. Allow attachment of Camera to a
specified object. Allow direct (and intuitive) manipulation of object
state (translations and rotations). Implement customizable
key-bindings that generate MIRs for current object.
Generalize code so that custom viewers can easily be programmed.