GLG 2.5 Release New Features and Enhancements
New Objects
Bezier Cubic
Spline
Added a Bezier cubic spline object. The spline
object
is useful to define and render curves in the drawing.
A Spline with Gradient Shading
New
Control Widgets with Gradient Shading and Cast Shadows
Added new sets of buttons, meters, dials and
other
such control widgets using the new gradient shading and cast shadow
features.
The old meters and dials were redesigned, and a new, better rotational
axis
with easy-to-use configuration options was added.
Samples of new Controls with Gradient Shading
New
Rendering and Object Features
Java2D Support
Added explicit support for Java2D, line
attributes
and anti-aliasing.
Swing
and Light-Weight Component Support
Added explicit Swing support by providing a
light-weight
version of the Glg Bean and GlgApplet, as well as a global
configuration
parameter that controls the type of the component the viewport object
uses:
"light-weight" Swing or "heavy-weight" AWT.
The light weight components save small amounts of
memory
and use the Swing rendering style for the native slider, button and
other
interface widgets. The "heavy-weight" AWT components are still
recommended for complex drawings with fast update requirements, since
AWT native window-based components provide better encapsulation for
drawing updates by limiting
the drawing repair damage to only the window of the component.
The
Swing-based components (due to the nature of Swing) are windowless and
damage
any other intersecting components on top of them when updated. Swing's
automatic
double-buffering hides this artifact, but it still consumes CPU cycles
to
repair damage to all other windows.
Transparency
Added support for transparency (both C/C++ and
Java).
In Java, transparency is implemented using Java2D's native alpha
blending
feature. Transparency can be used for displaying layers on maps and
other complex drawings without obscuring objects underneath the layer.
Linear,
Spherical and Conical Gradient Shading
Added linear, spherical and conical gradients
(both
C/C++ and Java). Linear gradients in Java use Java2D's native gradient
paint
feature. An extensive set of dynamic attributes is provided to control
the angle, position and other gradient parameters.
Gradient samples
Cast shadows
Added cast shadows, which renders shadows on
graphical
objects as defined by the offset and shadow color parameters.
Cast Shadow samples
Arrow heads
Added two types of arrow heads (filled and
unfilled),
which can be displayed at either the ends or the middle of a line
segment
or
polygon. The arrow's shape can be configured via global configuration
parameters.
An Arrow Head at the Middle of the line with a Cast
Shadow
Arbitrary
Angle Fill Dynamics
Added support for Vertical, Horizontal and
Arbitrary
Angle fill dynamics. This makes it easy to implement filling tanks
objects,
while still allowing arbitrary fill angles.
Fill Dynamics Samples
Text Box
Rendering
Added an optional Text box feature to render a
filled
or unfilled box around a text object. A parameter is provided to define
how tight the box "sits" around the text. This feature is convenient in
cases
when text objects are rendered in maps or on top of a complex drawing,
and
need a background to make the text more readable.
Improved
TrueColor
Support
Improved support for TrueColor. On TrueColor
machines,
the color RGBs will now be used directly, without mapping them first to
the
color table.
Improved
Support for Custom Font Tables
Improved support for custom font tables by
extending
the font object attributes to define both an X, Windows and Java font
name.
This simplifies the use of the custom font tables in a cross-platform
and
cross-environmental way.
New
Programming
Features
GlgTransformObject
function
Added a new GlgTransformObject function to the
Extended
API. This new method allows moving, rotating, scaling and otherwise
changing
the geometry of an object in both world and screen coordinates,
providing
better support for editor-style object manipulation. The new Diagram
Demo
shows examples of using this method.
GlgCreatePointArray
function
Added a new GlgCreatePointArray Extended API
function
that creates and returns an array of an object's control points. The
new
Diagram Demo shows examples of using the function for constraining
links
to the control points.
Miscellaneous
Editor
Interface Improvements
Undo
Added Undo support for geometry editing (for both
objects and control points).
Improved
Support for Editing Special Attributes of a Group of Viewports
Enabled EditAll for screen attributes of a
viewport.
Adding a color or font table in EditAll mode will now add a constrained
copy
of the table to all the viewports being edited.
Flipping
Objects with the Mouse
Improved flipping objects by allowing to flip
with
the mouse, by dragging the object's box points on the other side of the
box.
Selective
Resize Points Display
Disabled resize, rotate and move points for
fixed-size
objects with just one control point (markers, fixed and autoscaled
text,
and fixed-size image objects) to improve usability.
Bug Fixes
Handling
NaN
Values in Java
Fixed drawing loading with NaN attribute values
into
Java version.
Improved
Tooltip Positioning
Fixed tooltips in Java in the case of a
stand-alone
narrow toolbar, to prevent the tooltips from being clipped off.