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.