Loading, please wait...
This page shows the release notes of older versions up until the point that the new version was released.
For a full list of release notes of an old version, consult the documentation of that version.
For example if you want to see what is fixed in each 2019.1.x patch release, consult the
release notes in the documentation of the 2019.1 release.
2024.0
2024.0.11
ImprovementLuciadLightspeed
LCD-13562
The border size of a
TLcdSymbol
can now be set after creation.
ImprovementDefense Symbology
LCD-13562
Improved the styling of the default anchor icon used to indicate the location of military icon symbols in Lightspeed 3D views.
The icon is now more visible and configurable through the military symbol's style.

Improved milsym anchor icon.
ImprovementInfrastructure Standards
LCD-13585
The discretization of contours in BIM datasets has been improved, potentially reducing the size of the resulting
OGC 3D Tiles dataset without losing quality.
Bug fixLuciadLightspeed
LCD-13509
Bug fixLuciadLightspeed
LCD-13619
The OGC SE function FormatDate
no longer logs a warning message when it is called with a null
value.
As before, it returns null
. When used inside a TextSymbolizer
to format labels,
this now ensures that the label remains empty without any warnings in case of an empty property.
Bug fixLucy (LuciadLightspeed)
LUCY-5069
Bug fixDefense Symbology
LCD-13571
Resolved an issue with
TLcdNVG20ArcBand
and
TLcdNVG15ArcBand
where the
symbol stroke was painted in opposite orientation (counter-clockwise instead of clockwise) in Lightspeed views.
This caused the stroke pattern to be painted inside out for some symbols, such as "Free Fire area".
2024.0.10
Bug fixLuciadLightspeed
LCD-13597
Fixed a problem where GML files containing curves with different references would be converted incorrectly during encoding.
Bug fixLuciadLightspeed
LCD-13594
Fixed a problem where GML files containing arc-by-center-points with different references
would be converted incorrectly during decoding.
Bug fixLucy (LuciadLightspeed)
LUCY-5070
TLcyLspMapAddOn
: fixed an issue where the visibility of the terrain exaggeration slider
could be incorrect after loading a workspace.
Bug fixOGC Server
LCD-13592
The WFS server returned duplicate identifiers for GetFeature
requests
with a property name filter in case the source data did not have an explicit identifier (such as SHP files).
Bug fixInfrastructure Standards
LF-2651
Fixed an issue where the
TLcdRevitModelDecoder
did not properly mark the Revit
files referenced by a '.rvt.index' dataset as support files.
Bug fixInfrastructure Standards
LCD-13596
2024.0.09
Bug fixLuciadLightspeed
LCD-10234
Bug fixLuciadLightspeed
LCD-13575
Fixed an issue with reference handling in
TLcdGeoTIFFModelDecoder
when using GeoTIFF tags.
A user defined reference with Mercator projection ignored the parameter
ProjNatOriginLatGeoKey
.
Bug fixAviation Standards
LCD-13578
Decoding an AIXM 5.1.1 file with a
schemaLocation
attribute that referred to accessible
XML Schemas for AIXM 5.1.1-related namespaces could result in a model with an incorrect
TLcdDataModel
. This could lead to a
NullPointerException
in the
AIXM 5 visualization logic, which relies on the data model to find an appropriate style for an AIXM 5 feature type.
Bug fixAviation Standards
LCD-13568
The performance of evaluating AIXM 5.1.* XPath expressions inside OGC Filter conditions has been improved
significantly, producing results up to 4 times faster depending on the used XPath expressions and the
size of the OGC Filter.
Bug fixDefense Symbology
LCD-13567
Resolved an issue where the icon of the "Biologically Contaminated Area", "Chemically Contaminated Area" and "Nuclear Contaminated
Area" symbols
was not placed inside of
TLcdNVG15ArcBand
and
TLcdNVG20ArcBand
objects.
Upgrade considerationInfrastructure Standards
LCD-13551
Updated the libdwg library to version 24.8+8, to be able to fix issue LCD-13551.
2024.0.08
ImprovementOGC Server
LCD-13516
It is now possible to configure WMS and WMTS services to produce HTTP 500 Internal Error
responses when any exception occurs during painting.
You can enable this behavior by setting the system property com.luciad.fusion.wms.server.errorResponseOnPaintException
to true
.
ImprovementAviation Standards
LCD-13565
Added support for AIXM 5.1.1 data defined in one of the following iNM AIXM 5.1.1
extension XML Schemas:
- http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-Audit
- http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-ADN
- http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/EAD-ADR
- http://www.aixm.aero/schema/5.1/extensions/EUR/iNM/NaturalDescriptor
ImprovementDefense Symbology
LCD-13485
ImprovementInfrastructure Standards
LCD-13551
Added support for DWG
REGION
entities. They will be decoded as
TLcdDWGSurface
objects.
ImprovementInfrastructure Standards
LCD-13545
Some classes of the lcd_revit.jar
have been moved into a new
lcd_binz_connector.jar
.
Bug fixLuciadLightspeed
LCD-13559, LCD-13560
Fixed the
TLcdWKTReferenceFormatter
and
TLcdWKTReferenceParser
for
Cartesian references that don't use meter as distance unit.
Additionally, the parser will now use the conversion parameter that is provided in the WKT string to transform the
unit to meter, even if the unit was not previously known or registered.
Bug fixDefense Symbology
LCD-13537
Resolved an issue where the speed leader icon was painted as an arrow, instead of as a line.
Bug fixDefense Symbology
LCD-13550
Bug fixInfrastructure Standards
LCD-13529
Bug fixInfrastructure Standards
LCD-13549
Fixed an issue where the
TLcdIFCModelDecoder
did not properly handle the material transparency
defined on
IfcSurfaceStyleShading
and
IfcIndexedColourMap
elements.
Upgrade considerationInfrastructure Standards
LCD-13552, LF-2631
The myVRDatakitConverter library has been upgraded to version 2024.03.74631. This library is used by the
TLcdRevitModelDecoder
. This upgrade brings the following new features and enhancements:
- Fixes a decoding crash for some Revit files
- Contains several improvements to the generated Revit metadata
2024.0.07
ImprovementLuciadLightspeed
LF-2560
Improved the robustness when retrieving corrupt tiles from Fusion tile repositories (e.g. preprocessed point clouds).
The new behavior logs an error and reports the tile as unavailable.
ImprovementLuciadLightspeed
LF-2560
Improved the robustness when writing to Fusion tile repositories (e.g. when preprocessing point clouds)
on unreliable storage.
The new behavior performs multiple write attempts.
Bug fixLuciadLightspeed
LCD-13445
TLcdBingMapsModelDecoder
: resolved an issue where unexpected parameters in the Bing Maps template URL could trigger a parse exception.
Bug fixLuciadLightspeed
LCD-13533
Fixed an SLD icon rendering issue that prevented the use of an SLD size larger than 500 meters or feet for pixel-based icons.
Bug fixInfrastructure Standards
LCD-13501
Fixed an issue where the
TLcdIFCModelDecoder
showed wrong material information in specific
use cases.
2024.0.06
Bug fixOGC Server
LCD-13525
Since version 2024.0, the WFS server could return exception reports for valid POST (XML) requests.
2024.0.05
ImprovementInfrastructure Standards
LCD-13506
Bug fixLuciadLightspeed
LCD-13496
Bug fixOGC Server
LCD-13508
The following WCS server issues have been fixed related to the handling of the optional "Sections" parameter in a
GetCapabilities
request:
- The parameter was not supported for WCS 1.1 POST requests.
- The parameter was not validated for WCS 1.0 GET and POST requests.
Bug fixOGC Server
LCD-13510
The WFS server returned a WFS 1.1 response instead of a WFS 2.0 response for a WFS 2.0
GetFeature hits
request.
Bug fixDefense Standards
LCD-13500
TLcdNITFModelDecoder
can now process image blocks with differing width and height,
meaning they no longer need to be square.
2024.0.04
ImprovementLuciadLightspeed
LCD-13270
A new article
How to load multi-dimensional WM(T)S layers
has been added to explain how to access the available dimensions for a WM(T)S layer, supply dimension values in requests and
visualize the resulting data in a 2D and 3D view.
ImprovementAdvanced Raster Connectors
LCD-13456
The
TLcdGDALModelDecoder
can now handle data in which the image is
rotated relative to the axes of the model reference. In this case a fitted (also called "derived") projected
ILcdGridReference
will be returned as a model reference.
ImprovementAdvanced Raster Connectors
LCD-13455
ImprovementInfrastructure Standards
LCD-13486
Fixed an issue where the line weight of shapes from DWG datasets was not displayed correctly.
Bug fixLuciadLightspeed
LCD-13477
Editing of geometries visualized by a
PointSymbolizer
can now be disabled.
This capability can be activated on a
TLcdSLDPointSymbolizer
by configuring an SLD vendor option
with name
allowEditing
and value
false
.
Bug fixLuciadLightspeed
LCD-13476, LCD-13470
Changes made in the scope of LCD-13438
have been reverted. An alternative solution is provided through LCD-13477
.
Bug fixLuciadLightspeed
LCD-13424
Bug fixLuciadLightspeed
LCD-12862
If the new semantics given to a
TLcdSemanticsOp
contain nodata values but the original semantics did not, they will now be taken into account in further processing.
This means pixel values matching the nodata value do not participate in any further operations. These pixels will not be
displayed when visualized on screen.
Bug fixOGC Server
LCD-13475
When using WMS layer dimensions the following dimensions are now published in the capabilities:
- Dimensions with an axis without a unit.
- Dimensions with strings as possible values.
Bug fixReal-time Engine
LCD-13487
TLspContinuousLabelingAlgorithm
didn't handle edited labels correctly anymore. Such labels
were, for example, not correctly moved when colliding with one of the view's edges, or with another label. This was
a regression that was introduced in the first LuciadLightspeed 2022.1 release.
Bug fixDefense Symbology
LCD-11416
Resolved an issue where the icon of the "Unspecified Mine" symbol was incorrect for MIL-STD-2525d, APP-6C and APP-6D
Upgrade considerationLuciadLightspeed
LCD-13414
Fixed a potential deadlock when modifying the ILcdCollection
that is returned by
ILspInteractivePaintableLayer#getObjectsWithPaintState
, while holding a write lock on that
collection. To fix this, ILcdCollection
(and by extension ILcdList
)
now have additional methods that allow specifying an ILcdFireEventMode
when performing
modifications. By using the ILcdFireEventMode.FIRE_LATER
event mode, collection change
events are fired after the write lock has been released.
We recommend scanning your codebase for any custom usages of
ILspInteractivePaintableLayer#getObjectsWithPaintState
and making sure that
any modifications to this collection happen within a write lock, while the change events are only fired after
that write lock has been released. An example code snippet on how to do this can be found in the
ILspInteractivePaintableLayer#getObjectsWithPaintState
method javadoc.
2024.0.03
New featureInfrastructure Standards
LCD-13337
It is now possible to define an XML document next to a BIM dataset, to define an OGC Filter that will be applied
on the data before it is converted to OGC 3D Tiles or exposed as a features dataset.
Please refer to the
Filtering BIM data article for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-5067
Opening and closing application panes now notifies the workspace manager that the workspace has changed.
ImprovementLuciadLightspeed
LCD-12583
ImprovementLuciadLightspeed
LCD-10417
ImprovementLucy (LuciadLightspeed)
LUCY-5066
ALcyApplicationPaneTool
now tries to save and decode the application pane content
into the workspace, provided that there is an appropriate codec.
This is illustrated in
MapCentricModelCustomizerAddOn
.
ImprovementLuciadLightspeed
LCD-13464
Improved support for OSGB datasets using an OSG StateSet with a ModeList.
ImprovementOGC Server
LCD-13447
The decoding behavior of spatial filters included in WFS GetFeature
POST requests has now been
aligned between all WFS versions: similar as for WFS 1.x requests, spatial filters in WFS 2.0 POST requests are now
decoded and transformed to the geographic reference of the requested WFS feature type. For GET requests, this was already
the case.
ImprovementDefense Symbology
LCD-3155
Improved scaling support for military icon symbols. The icons now don't become blurry when scaling the icons using
TLspIconStyle
.
ImprovementInfrastructure Standards
LCD-13408
Bug fixLucy (LuciadLightspeed)
LUCY-5065
The Lucy specific VM options in config/vmoptions now open access to java.desktop/javax.swing
,
which resolves a problem when editing properties in floating panels that use the JIDE docking framework.
Bug fixLuciadLightspeed
LCD-13347
The com.luciad.sqlite.cacheMode
system property allows the user to provide the cache mode used by sqlite driver.
Possible values are private
and shared
, with private
being the default value.
Bug fixLuciadLightspeed
LCD-13474
TLcdEPSGReferenceParser
parsed the TOWGS84 rotation incorrectly for some EPSG codes.
Coordinate references using the following datums are affected:
- IG05/12 Intermediate Datum (EPSG:1144)
- World Geodetic System 1984 (G730) (EPSG:1152)
- World Geodetic System 1984 (Transit) (EPSG:1166)
- CR-SIRGAS (EPSG:1225)
- Sistem Referensi Geospasial Indonesia 2013 (EPSG:1293)
- International Terrestrial Reference Frame 1992 (EPSG:6651)
Bug fixLuciadLightspeed
LCD-13351
TLcdSphereUtil#closestPointOnGeodesic
and TLcdSphereUtil#closestDistanceToGeodesic
didn't always produce correct results.
Bug fixLuciadLightspeed
LCD-11876
Bug fixLuciadLightspeed
LCD-10789
TLcdLambert1972BelgiumGridReference
now aligns more closely to the definition of
EPSG:31300 in the EPSG database. This improves the precision of this reference by a few millimeters.
Bug fixLuciadLightspeed
LCD-10790
Bug fixLuciadLightspeed
LCD-13448
TLcdGeorefUtil
: fixed a rounding error that could occur when parsing a GEOREF coordinate.
Bug fixLuciadLightspeed
LCD-13438
Editing of geometries visualized by a
PointSymbolizer
can only be enabled when the geometry is an
ILcdPoint
.
This avoids unwanted behavior when editing is enabled in combination with an SLD style containing multiple symbolizers.
Bug fixLuciadLightspeed
LCD-13427
TLcdCartesian#orientation2D
no longer throws an exception when passing an empty point list.
This also improves the robustness of the
TLcdGeoJsonModelEncoder
.
Bug fixLuciadLightspeed
LCD-13407
The XML encoders can now encode xsd:anyType
elements with a built-in XML data type
that is specified using xsi:type
.
Bug fixLuciadLightspeed
LF-2200
The evaluation of an OGC IsLike operator on a database model has been made more robust against the use of special characters.
Bug fixLuciadLightspeed
LCD-10813
Bug fixLuciadLightspeed
LCD-13460
Fixed an SLD GXY view issue that triggered errors when an empty SLD Point, Line and/or Polygon symbolizer was encountered.
Aligned with the Lightspeed view behavior, such symbolizers will no longer cause and error but result in an empty visualization.
Bug fixLuciadLightspeed
LCD-13449
Fixed a possible
ArrayIndexOutOfBoundsException
when accessing DTED data through the
ILcdRaster
API.
This could occur when using the
TLcdDTEDDirectoryModelDecoder
with
lazy
DTED tile loading and when the DTED file deviates from the DTED specification.
Bug fixLuciadLightspeed
LCD-6862
TLcdTABRasterModelDecoder
could throw a
RuntimeException
instead of an
IOException
when decoding a
TAB
for raster data not supported by JAI.
Now it throws an
IOException
with a more clear message.
Bug fixLuciadLightspeed
LCD-12749
Bug fixLuciadLightspeed
LCD-13377
Fixed an issue where some LIDAR data was painted with inverse colors.
Bug fixLuciadLightspeed
LCD-13429, LCD-13432
The WMTS model decoder now skips tile matrix sets with an unknown geographic reference instead of throwing an
UnsupportedOperationException
.
Bug fixLuciadLightspeed
LCD-13431
The WMTS model decoder used an incorrect geographic reference when creating a model for a WMTS layer backed by a
GoogleCRS84Quad
tile matrix set that used a reference with a lat/lon axis order.
This prevented the layer from being visualized on the map.
Bug fixLuciadLightspeed
LCD-13379
Bug fixLuciadLightspeed
LCD-13413
Fixed an issue where resource jar files that don't contain any Java classes
(e.g. lcd_epsg_resources.jar
) could not be loaded in an OSGi environment.
Bug fixDatabase Connectors
LCD-13280
TLcdOracleSpatialModelDecoder
no longer uses the
SDO_COLUMN_NAME
column of the
USER_SDO_INDEX_METADATA
view to determine the dimension of the spatial index, because this column is not always present.
Bug fixOGC Server
LCD-13434
Fixed a bug where the output of a WFS GetFeature request failed on data types with a Map property in combination with
property name filtering.
Bug fixOGC Server
LCD-13423
The WFS server could not handle property name filters for property names that were renamed during the encoding to
GML. Such a rename can occur when a property name in the original data starts with a character that is not
allowed as first character in an XML element - for example, a number.
Bug fixAviation Standards
LCD-13435
An AIXM 5.1 vertical structure feature with an empty vertical extent value triggered a
NullPointerException
when it was visualized in a Lightspeed view.
Bug fixDefense Symbology
LCD-13411
Resolved the following issues with the depiction of the MIL-STD-2525b symbol "Dummy Minefield - Dynamic" (2.X.2.3.7).
- The outline of the area is now drawn with a solid stroke instead of a dashed stroke
- The hostile indicator ("ENY") is now rendered in the outline stroke, when the symbol's affiliation is set to 'Hostile'
Bug fixDefense Symbology
LCD-13394
Resolved an issue when displaying "Axis of Advance - Airborne" symbols contained in an NVG arrow
element,
where the "crossover" point would be located at the tail of the arrow instead of at the tip of the arrow.
Bug fixDefense Symbology
LCD-13412
Resolved an issue with the MIL-STD-2525c icon symbol 'Air Control - Tanking' (2.X.2.1.1.7.4).
This symbol's icons was depicted with the letter 'T' inside the vertical lines instead of the letter 'K'.
Bug fixInfrastructure Standards
LF-2520
Bug fixInfrastructure Standards
LCD-13457
Bug fixInfrastructure Standards
LCD-13352
Changed the width of TEXT and MTEXT objects to be narrower.
Before, text would often be too wide. Now, the width matches that of CAD programs more closely.
Bug fixInfrastructure Standards
LCD-13472
Fixed an issue where the
TLcdIFCModelDecoder
did not revert the direction of a trimmed
IfcLine
or
IfcPolyline
when necessary.
Bug fixInfrastructure Standards
LCD-13471
The
TLcdIFCModelDecoder
now ignores elements with an
IfcGridPlacement
.
A warning is logged when such elements are encountered.
Bug fixInfrastructure Standards
LCD-13298
Bug fixMaritime Standards
LCD-13463
Fixed an issue in internal bounds handling: a ClassCastException
could happen when cloning a cell model bounds.
Bug fixTiling Engine
LF-2186, LF-2607
The preprocessing jobs that are created to convert point cloud datasets into OGC 3D Tiles services can now
be properly stopped and restarted. Previously, restarting a paused job that converted data into OGC 3D Tiles could
result in the job disappearing from the jobs list in the Studio web application. In some cases this also results
in two jobs pre-processing the same data.
Upgrade considerationWeather & Environment Standards
LCD-13437
The version of the thredds library was increased to 4.6.6.lcd-18. This fixes an issue with using the pom file of this library.
Upgrade considerationInfrastructure Standards
LCD-13400
The myVRDatakitConverter library has been upgraded to version 2024.03.73679. This library is used by the
TLcdRevitModelDecoder
. This upgrade brings the following new features and enhancements:
- Adds support for Revit 2025
- Fixes a decoding crash for some Revit files
- Contains several improvements to the generated Revit metadata
2024.0
New featureLuciadLightspeed
TLcdMBTilesModelDecoder
now also supports MBTiles services, next to files. To decode an MBTiles service you need to provide the TileJSON endpoint
as source.
An MBTiles service can for example be set up with LuciadFusion as of version 2024.0.
New featureLuciadLightspeed
The OGC Symbology Encoding (SE) implementation now supports replacing colors in images. This can be achieved by using the
SE vendor options
colorReplace
and
colorReplaceTolerance
in a
TLcdSLDRasterSymbolizer
. The new article
How to replace a color
illustrates this capability with an example.
New featureLuciadLightspeed
TLcdPixelReplaceOp
is a new image operator which replaces a given color or value in an
image with another. It can be used, for instance, to remove blank borders around an image by replacing them with
a transparent color.
New featureAdvanced Raster Connectors
LuciadFusion and LuciadLightspeed users can now visualize ECW images with any number of bands and any bit depth.
New featureOGC Server
The WCS server in the OGC Web Server Suite now supports WCS version 2.0.1.
New featureReal-time Engine
TLspRadarVideoLayerBuilder
now has the ability to work with radar feeds
whose angular or radial resolution are variable over time. This requires the user to manually
specify the resolution of the visualization, which is then effectively decoupled from that of
the data. The new method displayResolution()
on the layer builder is
used to enable this behavior. If called, the radar video layer will be fully robust against
all variations in the resolution of the incoming data.
New featureInfrastructure Standards

Visualization of a Revit file in LuciadRIA, processed and served using LuciadFusion's OGC 3D Tiles service
Added support for the Autodesk Revit data format. Autodesk Revit is a BIM software tool for architects, engineers, and
construction professionals to model shapes, structures, and systems in 3D.
For more details, see the
Autodesk Revit entry in the Data Formats documentation section
ImprovementLuciadLightspeed
The following new system properties let users configure reference decoder priority
for the following model decoders:
The priority decides whether the model reference decoding is first attempted from the reference information
embedded in the data file and then fall back to external reference source files such as WKT (.prj), REF
(.ref)
and EPSG (*.epsg) in case of an error or vice versa when the other reference decoder priority is selected.
For more information on how to configure the reference decoder priority for supported
ILcdModelDecoder
implementations, refer to the following article:
Setting model reference decoder priority
ImprovementLuciadLightspeed
LCD-13341
The metadata in the gpkg_data_columns table of a GeoPackage file is now used by
TLcdGeoPackageModelDecoder
to
provide the correct display names in
TLcdDataModelDisplayNameProvider#getDisplayName(TLcdDataProperty)
.
ImprovementLuciadLightspeed
The included Apache Ant distribution has been upgraded to version 1.10.14. This improves compatibility with Java 21.
ImprovementLuciadLightspeed
LCD-13289
It is now possible to customize the tile grid reference used by the tiled WMS painters for GXY and Lightspeed views. The tile
grid reference can be specified through a newly added constructor in
TLcdGXYTiledWMSProxyPainter
and
TLspTiledWMSProxyPainter
.
Customizing tile grid references can be useful to align with a server-defined tile grid reference used for caching of requests.
ImprovementLuciadLightspeed
LuciadLightspeed and LuciadFusion now support Java 21. Refer to the documentation on
hardware and software requirements in the
prerequisites section
for more information.
ImprovementLuciadLightspeed
LCD-8681, LCD-13260
Introduced
TLcdDataProperty#getSourceName
, which contains the property name as it was
defined in the source data. This may differ from the actual name of the property within the
TLcdDataType
, because that name can contain only alphanumeric characters and underscores,
and may therefore have been sanitized.
When building a data type, the source name of a property can be configured with a setter on the
TLcdDataPropertyBuilder
. Additionally,
TLcdDataType#getProperty
now also checks this source name when searching a property that matches a given name.
The default
TLcdDataModelDisplayNameProvider
has also been adapted to use this source
name by default, when retrieving a display name for a property.
Finally, The
TLcdGeoJsonModelEncoder
now uses these source names by default as well,
when encoding data objects to GeoJSON features.
ImprovementLuciadLightspeed
LCD-9753
TLcdGeoPackageFeatureDatabaseModelEncoder
: encoding data objects with multiple geometry properties
now results in a clear error message, instead of a message indicating a unique constraint violation.
ImprovementOGC Server
LCD-13326
The WMS Server now supports a vendor-specific FILTER
parameter that operates like the WFS GetFeature FILTER parameter for both GetMap and GetFeatureInfo requests.
ImprovementOGC Server
LCD-9574
The tray icon of the OGC server sample now has an additional entry to open the landing page.
ImprovementAviation Standards
LCD-13371
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 26.0 to version 27.0.
ImprovementDefense Symbology
LCD-13199
A new style class, TLcdMilitarySymbolStyle
, has been added to the Military Symbology API.
This class can be used to define the symbol style of both APP-6 and MIL-STD-2525 symbols.
The usage is equivalent to the usage of the existing, standard specific style classes (TLcdDefaultAPP6AStyle
and TLcdDefaultMS2525bStyle
).
You can configure a symbol dependent style, by either having your domain objects implement ILcdStyledMilitarySymbol
or by defining a default style on your
painter providers or layers.
The following methods have been added to configure a TLcdMilitarySymbolStyle
on painter providers and layers:
TLcdAPP6AGXYPainterProvider.setDefaultMilitarySymbolStyle
TLcdAPP6AGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
TLspAPP6ALayerBuilder.defaultStyle
TLspAPP6ASymbolStyle.Builder.militarySymbolStyle
TLcdMS2525bGXYLabelProvider.setDefaultMilitarySymbolStyle
TLcdMS2525bGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
TLspMS2525bLayerBuilder.defaultStyle
TLspMS2525bSymbolStyle.Builder.militarySymbolStyle
TLspMilitarySymbologyLayerBuilder.defaultStyle
ImprovementInfrastructure Standards
Bug fixLuciadLightspeed
LCD-13293
TLcdSLDMark
: improved anti-aliased rendering of several types.
Bug fixLuciadLightspeed
LCD-13245
TLcdIOUtil#resolve
returned an incorrect result for source names starting with "jpip://".
The method now returns null
.
Bug fixLuciadLightspeed
LCD-13252
Bug fixLuciadLightspeed
LCD-13231
TLcdEarthRepositoryModelDecoder
: improved the robustness when interrupting a thread
that was reading a tile repository. This improves compatibility with Java 21.
Bug fixLuciadLightspeed
LCD-13386
Resolved an issue with the Maven sample setup scrip, where the sample project's settings.xml
file was not used when deploying the license to the Maven repository.
Bug fixLuciadLightspeed
LCD-12748
Fixed an issue in the
TLcdGeoTIFFModelDecoder
for the case of data with photometric
interpretation RGB with additional sample values. The standard cases RGB(A) worked fine.
For the case with additional sample values the
ALcdImage
band semantics did not include
information on the red, green, and blue channels. It would be interpreted as a greyscale image by the image painter.
Now the correct band semantics are reported which makes the image painter pick it up and render the file correctly.
Bug fixDatabase Connectors
LCD-4462
Upgrade considerationLuciadLightspeed
LuciadLightspeed and LuciadFusion now increasingly make use of Java's own file and URI handling API
to improve reliability, consistency, and portability when handling data sources.
This includes, but is not limited to
TLcdIOUtil
,
TLcdInputStreamFactory
,
and several model decoders.
Because of this, the following invalid data source paths may no longer be recognized:
- The colon ":" is no longer accepted in Windows file names.
- Spaces are no longer accepted in file URI's. They need to be escaped as described in the URI specification.
Make sure to correct these source names before passing them to the API.
Upgrade considerationLuciadLightspeed
LuciadLightspeed and LuciadFusion no longer support 32-bit JDKs. Previously there was still limited support for Linux.
Upgrade considerationLuciadLightspeed
The minimum supported glibc (GNU C Library) for Linux has been raised to 2.28. This means that Ubuntu 18 is no longer supported.
Upgrade considerationLuciadLightspeed
LCD-12921
The default behavior of a number of model decoders has been changed.
We now enable support for vertical datums by default for a number of model decoders.
The vertical datum support will cause the appropriate geoid height to be applied
to data files of the affected formats, if the data advertises a vertical datum. In previous versions, we ignored the vertical
datum
advertised by data by default.
Using the geoid will result in the use of more accurate elevation values, at the cost of performance when processing the data.
The following data formats are affected by this change:
- DEM:
TLcdDEMModelDecoder
- DMED/DTED:
TLcdDMEDModelDecoder
, TLcdDTEDModelDecoder
, TLcdDTEDDirectoryModelDecoder
- ETOPO:
TLcdETOPOModelDecoder
- GeoTIFF:
TLcdGeoTIFFModelDecoder
- LAS/LAZ:
TLcdLASModelDecoder
- SwissDHM:
TLcdSwissDHMMatrixModelDecoder
Because the default behavior has changed for these formats, your data may be painted at a different height,
which can cause misalignment with your other layers. For example, you may
apply the geoid to points in a LAS file, which causes your LAS points to be painted at a different elevation.
If you combine this LAS data with an inaccurate terrain layer, there may be overlap between your LAS points and the terrain
layer.
You should check that your data is still properly aligned with your other layers after upgrading.
The recommended way to fix such alignment issues is to make sure you use an accurate terrain layer and use the same geoid
on all your layers with elevation data.
You should also verify that all your elevation data advertises the correct vertical datum. Read our article on
Detecting and fixing vertical datum issues
for more details.
If you have different behavior then before, and you are sure that the old behavior is preferred, you can revert to the old
behavior in the following ways:
- Disable geoid support for a specific model decoder, by calling the method
#setSupportGeoidDatums(boolean)
- Disable geoid support for all aforementioned model decoders, by setting the system property
com.luciad.geodesy.geoidSupport.LEGACY
to true
.
Upgrade considerationLuciadLightspeed
LCD-13176
Upgrade considerationLuciadLightspeed
The LuciadLightspeed and LuciadFusion APIs now use the Jakarta EE 10 API and Jakarta Servlet 6.0 API, where in previous releases
the Java EE 7 API and Java Servlet 3.1 API were used.
There are a few breaking changes in the new Jakarta Servlet 6.0 API, the main one being a rename of the javax.servlet
package to jakarta.servlet
.
Any LuciadLightspeed or LuciadFusion API that use classes from this package thus contain a corresponding breaking change.
The affected classes are mainly the classes implementing the OGC server standards (WM(T)S, WFS, etc).
Any compilation errors you encounter related to this change can typically be resolved by performing a find and replace operation.
Refer to the documentation on hardware and software requirements in the prerequisites section
for more information.
Upgrade considerationLuciadLightspeed
LuciadLightspeed and LuciadFusion now require Java 17. Refer to the documentation on
hardware and software requirements in the
prerequisites section
for more information.
Upgrade considerationLuciadLightspeed
LCD-9539
The following dependencies have been updated:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.jackson.core |
jackson-annotations |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.core |
jackson-core |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.core |
jackson-databind |
2.14.2 |
2.15.3 |
com.google.protobuf |
protobuf-java |
3.19.4 |
3.25.3 |
com.thetransactioncompany |
cors-filter |
1.3.2 |
3.0 |
com.thetransactioncompany |
java-property-utils |
1.6 |
1.17 |
jakarta.servlet |
jakarta.servlet-api |
4.0.4 |
6.0.0 |
joda-time |
joda-time |
2.8.1 |
2.10.10 |
org.apache.commons |
commons-compress |
1.22 |
1.26 |
org.apache |
commons-io |
2.6 |
2.15.1 |
org.apache.commons |
commons-lang3 |
3.12.0 |
3.14.0 |
org.apache.xmlgraphics |
batik-xml |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-util |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-transcoder |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-swing |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-svggen |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-svg-dom |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-script |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-shared-resources |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-parser |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-i18n |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-gvt |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-gui-util |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-ext |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-dom |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-css |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-constants |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-codec |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-bridge |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-awt-util |
1.16 |
1.17 |
org.apache.xmlgraphics |
batik-anim |
1.16 |
1.17 |
org.apache.xmlgraphics |
xmlgraphics-commons |
2.7 |
2.9 |
org.slf4j |
slf4j-api |
1.7.36 |
2.0.9 |
org.postgresql |
postgresql |
42.5.4 |
42.7.3 |
org.checkerframework |
checker-qual |
3.5.0 |
3.42.0 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
org.locationtech |
jts-core |
1.19.0 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
com.vividsolutions |
jts-core |
1.14.0 |
Upgrade considerationLuciadLightspeed
LCD-9539
The JTS
library has been updated to version 1.19.0. Please note that this library is not backward compatible.
All classes have moved from com.vividsolutions.*
to org.locationtech.*
.
Upgrade considerationLuciadLightspeed
LCD-12881
The LWJGL Java binding for the OpenGL and OpenCL APIs has been updated to version 3.3.3.
This improves compatibility with Java 19 and higher.
Upgrade considerationLuciadLightspeed
LCD-10042
TLcdLRDBModelEncoder#SUPPORTED_COVERAGE_TYPES
is removed from the API.
Upgrade considerationAdvanced Raster Connectors
The class TLcdECWConfiguration
is now removed from the API to keep the API clean and
simple. If you were using this class, it is now required to use TLcdECWModelDecoder#getMaxCacheSize
and
TLcdECWModelDecoder#setMaxCacheSize
instead of similar methods exposed by
TLcdECWConfiguration
.
The class TLcdECWImageDecoder
is now removed from the API due to its limited capability
in supporting decoding of multi band and multi bit depth ECW data files. If you were using this class, it is now
required to use the enhanced TLcdECWModelDecoder
, which fully supports decoding
multi band and multi bit depth ECW data files. This updated decoder provides a more robust and versatile solution
for handling ECW data.
The previous
libecw-6.1.*.jar
libraries are now replaced by
ecw-6.1.0-native*.jar
containing the native libraries provided as part of ERDAS ECW JP2 SDK 6.1.0. This change also adds the
ecw-6.1.0.jar
library which contains the JNI bindings to access the
functionalities exposed by the packaged native libraries.
Upgrade considerationAdvanced Raster Connectors
The method TLcdGDALModelDecoder#setUnlockAllFormats(boolean)
and the system property com.luciad.format.gdal.unlockAllFormats
have been replaced
with the method TLcdGDALModelDecoder#setAllowUnverifiedFormats(boolean)
and the system property com.luciad.format.gdal.allowUnverifiedFormats
.
The old method would only unlock a specific set of whitelisted formats, whereas the new method will unlock any and all formats
for which a GDAL driver is found.
Upgrade considerationAdvanced Raster Connectors
The third-party library GDAL was updated to version 3.8.3. With this update,
the
TLcdGDALModelDecoder
can no longer decode Arc/Info Export E00 GRID files.
The GDAL library no longer offers supports for this
format.
The jpeg, png16 and proj libraries are no longer loaded separately, they are now packaged with the gdal library.
Upgrade considerationDatabase Connectors
LCD-6130, LCD-8872
The
TLcdDataModel
of the
TLcdDatabaseModelDescriptor
now maps columns of type
CLOB
and
TIMESTAMP
to the correct types,
TLcdDatabaseDataTypes#ClobType
and
TLcdDatabaseDataTypes#TimestampType
.
Data stored in a column of type
TIMESTAMP
is now converted into an object of type
java.sql.Timestamp
instead of a
oracle.sql.TIMESTAMP
when loading data from an Oracle database.
Upgrade considerationDatabase Connectors
LCD-10712
SQL Server versions 2008 and 2012 are no longer supported by the
TLcdMSSQLModelDecoder
and
TLcdMSSQLModelEncoder
.
It's advisable to upgrade to a newer version of SQL Server if you are still using version 2008 or 2012.
Upgrade considerationDatabase Connectors
LCD-13196
Upgrade considerationDatabase Connectors
LCD-13197
Upgrade considerationOGC Server
Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID |
Artifact ID |
Old Version |
New Version |
org.springframework.boot |
spring-boot |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-autoconfigure |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-jetty |
2.7.8 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-json |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-logging |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-web |
2.7.14 |
3.2.1 |
org.springframework |
spring-aop |
5.3.29 |
6.1.2 |
org.springframework |
spring-beans |
5.3.29 |
6.1.2 |
org.springframework |
spring-context |
5.3.29 |
6.1.2 |
org.springframework |
spring-core |
5.3.29 |
6.1.2 |
org.springframework |
spring-expression |
5.3.29 |
6.1.2 |
org.springframework |
spring-jdbc |
5.3.29 |
6.1.2 |
org.springframework |
spring-tx |
5.3.29 |
6.1.2 |
org.springframework |
spring-web |
5.3.29 |
6.1.2 |
org.springframework |
spring-webmvc |
5.3.29 |
6.1.2 |
com.zaxxer |
HikariCP |
4.0.3 |
5.0.1 |
org.ow2.asm |
asm-commons |
9.4 |
9.6 |
org.ow2.asm |
asm-tree |
9.4 |
9.6 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.14.2 |
2.15.3 |
org.apache.tomcat.embed |
tomcat-embed-el |
9.0.78 |
10.1.17 |
org.eclipse.jetty |
jetty-client |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-http |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-io |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-plus |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-security |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-server |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-util |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-xml |
9.4.50.v20221201 |
12.0.7 |
org.slf4j |
jul-to-slf4j |
1.7.36 |
2.0.9 |
org.slf4j |
slf4j-api |
1.7.36 |
2.0.9 |
org.apache.logging.log4j |
log4j-api |
2.17.2 |
2.21.1 |
org.apache.logging.log4j |
log4j-to-slf4j |
2.17.2 |
2.21.1 |
ch.qos.logback |
logback-classic |
1.2.12 |
1.4.14 |
ch.qos.logback |
logback-core |
1.2.12 |
1.4.14 |
org.yaml |
snakeyaml |
2.0 |
2.2 |
jakarta.annotation |
jakarta.annotation-api |
1.3.5 |
2.1.1 |
jakarta.websocket |
jakarta.websocket-api |
1.1.2 |
2.1.1 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty.ee10 |
jetty-ee10-annotations |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-plus |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-servlet |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-servlets |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-webapp |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-client |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-common |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-server |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jetty-server |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-servlet |
12.0.7 |
org.eclipse.jetty |
jetty-alpn-client |
12.0.7 |
org.eclipse.jetty |
jetty-jndi |
12.0.7 |
org.eclipse.jetty |
jetty-session |
12.0.7 |
jakarta.websocket |
jakarta.websocket-client-api |
2.1.1 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty |
jetty-annotations |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-continuation |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlet |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlets |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util-ajax |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-webapp |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-api |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-client |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-common |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-server |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-servlet |
9.4.50.v20221201 |
Upgrade considerationDefense Symbology
LCD-13140
The geometry type of a number of APP-6A/B Minefield symbols has been changed.
These symbols were modeled as polygons, which required the symbol to have at least 3 anchor points to define the symbol's
shape.
To better align these symbols with the NVG geometry bindings specification, the geometry has now been changed to a point,
which requires only a single anchor point to define the symbol's shape.
The following symbols are affected by this change:
- 2.X.2.2.1.6.1 "Planned Minefield"
- 2.X.2.2.1.6.2 "Completed Minefield"
- 2.X.2.2.1.6.5 "Antitank (AT) Minefield"
- 2.X.2.2.1.6.6 "Scatterable Mines"
- 2.X.2.2.1.6.7 "Antipersonnel (AP) Minefield Reinforced With Scatterable With Self-Destruct Date-Time-Group"
- 2.X.2.2.1.6.8 "Scatterable Minefield (Antitank Mines) With Self-Destruct Date-Time-Group"
- 2.X.2.2.1.7 "Executed Volcano Minefield"
Upgrade considerationDefense Symbology
LCD-13138
The geometry type of the APP-6A/B symbol 2.X.2.3.1.1.2 "Fire Support Graphics - Fire Support Point - Target - Circular Target"
has been changed. This symbol's geometry type was a circle, which required the symbol to have 2 anchor points to define the
symbol's shape.
To better align this symbol with the NVG geometry bindings specification, the geometry has now been changed to a point, which
requires only a single anchor point to define the symbol's shape.
Upgrade considerationDefense Symbology
LCD-13175, LCD-13300
Upgrade considerationInfrastructure Standards
The
IFCPath
property of the elements in the features model returned by the
TLcdIFCModelDecoder
has been deprecated. We recommended using the new
AncestorPath
property instead which has
same value. The
IFCPath
property is still included to maintain backwards compatibility with clients that
depend on it, but it will be removed in a future release.
Upgrade considerationInfrastructure Standards
The myVRDatakitConverter library, version 2024.03.73100, is added to the list of third party libraries. It is used by the
TLcdRevitModelDecoder
.
Upgrade considerationInfrastructure Standards
The discoverDataSources
method of the TLcdBinzModelDecoder
now returns
a list containing two TLcdBIMDataSource
objects: one for the geometry model, and one for the
features model. Previously, it returned a list containing only a TLcdDataSource
for the geometry
model.
The following snippet can be used to get the geometry model for both the new and the previous version of this
discoverDataSources
method.
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
List<? extends ILcdDataSource> dataSources = decoder.discoverDataSources("path/to/dataset.binz");
ILcdModel geometryModel = decoder.decodeSource(dataSources.get(0));
Upgrade considerationInfrastructure Standards
The JNA library, version 5.14.0, is added to the list of third party libraries. It is used by the
TLcdRevitModelDecoder
.
Upgrade considerationInfrastructure Standards
The following deprecated DGN classes have been removed from the LuciadLightspeed API:
- TLcdDGNMicroStationServlet
- TLcdDGNMicroStationModelDecoder
- TLcdDGNMicroStationDisplayInfo
- TLcdDGNMicroStationLevelSymbology
Any usage of these classes should be replaced by the TLcdDGNModelDecoder
.
2023.1
2023.1.16
Bug fixLuciadLightspeed
LCD-13356
TLcdSpatiaLiteModelDecoder#decode(Properties)
no longer triggers an error with message no such function: spatialite_version.
2023.1.15
ImprovementLuciadLightspeed
LCD-13315
The SLD Lightspeed implementation now supports the rendering of extruded shapes.
This capability can be enabled on a polygon symbolizer by configuring the following SLD vendor options:
extrudedShapeMinimum
, accepting a literal or property name that specifies the minimum value in meters.
extrudedShapeMaximum
, accepting a literal or property name that specifies the maximum value in meters.
extrudedShapeReference
, accepting the values of ILspWorldElevationStyle.ElevationMode
ImprovementDefense Symbology
LCD-13354
Improved label placement for some buffer symbols. Labels on symbols like "Air Corridor" will now always be placed on the same
stroke,
regardless of in which direction the anchor points are placed.
Bug fixLuciadLightspeed
LCD-12343
Bug fixLuciadLightspeed
LCD-13368
The OGC Filter function startAngle
calculation has been corrected to use the angle of the second point towards the first point of a (poly)line, instead of the
other way around.
Bug fixOGC Server
LCD-13361
Fixed an issue where empty tiles were returned by the WMTS server if the WGS84
tile matrix
set was used.
Bug fixOGC Server
LCD-13362
Corrected the CRS of the GoogleMapsCompatible well-known tile matrix set in the capabilities document
returned by the WMTS server: it now includes the minor version (urn:ogc:def:crs:EPSG:6.18.3:3857
).
Bug fixDefense Symbology
LCD-13353
Resolved an issue that caused some symbols to not have an editing skeleton in Lightspeed views,
making it impossible to translate these symbols as a whole.
Bug fixInfrastructure Standards
LCD-13332, LCD-13339
Fixed an issue where the
TLcdIFCModelDecoder
did not properly handle
IfcBooleanResult
subtractions, which led to dangling triangles.
2023.1.14
ImprovementLuciadLightspeed
The dependency com.google.protobuf:protobuf-java
has been upgraded from version 3.19.4 to 3.25.3.
ImprovementInfrastructure Standards
LCD-13344
If the
TLcdBinzModelDecoder
encounters objects with an unknown type, the decoding will no
longer fail. The unknown objects will be logged and skipped, the conversion will continue without them.
Bug fixLuciadLightspeed
LCD-13343
Bug fixLuciadLightspeed
LCD-13308
The DMED and DTED model decoders now correctly return WGS84 + EGM96 as the model reference when geoid support
is enabled (i.e. #setSupportGeoidDatums
is set to true).
Bug fixLuciadLightspeed
LCD-13334
Fixed an SLD labeling issue in GXY views and in a WM(T)S server environment that could cause overlapping and cut-off
labels when using curved label styling (= an SLD TextSymbolizer with vendor option followLine=true
).
Bug fixLuciadLightspeed
LCD-13340
Bug fixLuciadLightspeed
LCD-13269
Fixed potential deadlock in
ALspAWTView
, caused by an
#invokeAndWait
with a lambda, called from a static block.
Bug fixLucy (LuciadLightspeed)
LUCY-5053
TLcyDrawingAddOn
could sometimes trigger a
NullPointerException
when clearing coordinates in the object properties. This has been fixed.
Bug fixLuciadLightspeed
TLcdLonLatPointFormat#parseObject
now throws a ParseException
when parsing only whitespace.
Bug fixLucy (LuciadLightspeed)
LUCY-5045
Opening a workspace that contained a connection to an OGC service requiring authentication led to a NullPointerException
.
Bug fixDatabase Connectors
LCD-13336
The model bounds and srid are now only computed from the database if they are not specified in the ora file.
2023.1.13
Bug fixLuciadLightspeed
LCD-13327
TLcdWFSProxyModel
could trigger a
NullPointerException
when retrieving data from
a WFS server that did not advertise arithmetic function capabilities.
Bug fixOGC Server
LCD-13323
The WCS server now supports WCS 1.1.x GetCoverage
requests that
neither specify a bounding box nor a resolution.
2023.1.11
ImprovementLuciadLightspeed
LCD-13288
The maximum resolution of the default tileset used by:
has increased from 1 pixel per 2 cm to 1 pixel per 1.25 mm. This allows you to see more detail when zooming in, provided that
the server offers such detailed data.
ImprovementOGC Server
LCD-13310
Aligned with the OGC WMS standard, the request URL prefixes listed in the WMS capabilities now always end with a question
mark.
Bug fixLuciadLightspeed
LCD-13306
When calling TLspOffscreenView::display
with true as argument, the method didn't always
wait for labels to be fully painted.
Bug fixLuciadLightspeed
LCD-13299
Bug fixLucy (LuciadLightspeed)
LUCY-5052
When performing drag-and-drop with a file, Lucy could report a ClassCastException
. This has been fixed.
Bug fixOGC Server
LCD-13314
The WCS server did not handle the Update Sequence parameter optionally present in a WCS GetCapabilities
request: there was no validation against the value defined in the WCS server's capabilities.
Bug fixOGC Server
LCD-13313
The ServiceExceptionReport
response generated by the WCS server in case of issues
did not fully adhere to the WCS 1.0.0 standard: the version was not set to 1.0.0 and the schema location
for the default namespace was not correct.
2023.1.09
New featureAviation Standards
LCD-13285
The new method
TLcdDAFIFTATSRouteDecoder#setSplitByBatch
allows you to split
a DAFIFT ATS route with multiple batches into multiple ATS routes.
The new method
TLcdDAFIFModelDecoder#createModelDecodersForDataType
allows you to
return a specific model decoder for a specific data type. So if you're using
TLcdDAFIFModelDecoder
and you want split batches into separate ATS routes,
you can override
#createModelDecodersForDataType
and return
a custom
TLcdDAFIFTATSRouteDecoder
which is configured to split batches into separate routes.
ImprovementLuciadLightspeed
LCD-13240
The sample dependency org.springframework.boot:spring-boot-starter-jetty
has been upgraded from version
2.7.14 to version 2.7.18. This upgrade makes our samples depend on Jetty version 9.4.53.
Bug fixLuciadLightspeed
LCD-13260, LCD-12796
Reverted a previous fix for LCD-12796, where the GeoJSON encoder was adapted to encode the name of a data type as
well, when encoding data objects within a list. This was implemented to fix GeoJSON encoding of certain DWG models,
but in hindsight the issue was with the data model itself, rather than with the GeoJSON encoder.
Bug fixLucy (LuciadLightspeed)
LUCY-5051
TLcyPreviewAddOn
: the seek buttons now stop seeking when they lose focus. This happens, for example, when a modal dialog pops up. Prior to
the fix, the seeking would continue indefinitely in this situation.
Bug fixInfrastructure Standards
LCD-13290, LCD-13291
Fixed an issue where the
TLcdIFCModelDecoder
did not properly handle
IfcBooleanResult
subtractions where the objects being subtracted did overlap with
each other.
2023.1.08
ImprovementInfrastructure Standards
LCD-13271
The picocli-4.1.4.jar
library is only used in sample code and has been moved from
lib
to samples/lib/thirdparty
.
The following samples use this library:
samples.decoder.binz.BinzConverter
samples.decoder.ifc.IFCConverter
samples.meshup.Meshup
samples.panorama.converter.PanoramaConverter
Bug fixLuciadLightspeed
LCD-13274
Bug fixLuciadLightspeed
LCD-13273
The WMTS model decoder used an incorrect geographic reference when creating a model for a WMTS layer backed by a
GoogleCRS84Quad
tile matrix set. This lead to exceptions during visualization.
Bug fixInfrastructure Standards
LCD-13272
Fixed an issue where the
TLcdIFCModelDecoder
did not properly handle
IfcBooleanResult
subtractions.
Bug fixInfrastructure Standards
LCD-13276
Fixed an issue where the
TLcdIFCModelDecoder
did not always properly handle
IfcBooleanClippingResult
elements with an
IfcPolygonalBoundedHalfSpace
as second operator.
2023.1.07
ImprovementAdvanced Raster Connectors
LCD-13254
The
TLcdPegasusModelDecoder
now has out of the box support for Pegasus datasets that are
created with the latest Leica processing software, without the need for renaming the
.csv
and
.txt
files.
Bug fixLuciadLightspeed
LCD-13338
Fixed an issue where EDITING_CHANGE
would be emitted multiple times for the same edit
operation, for example when deleting a point of a polyline.
Bug fixLuciadLightspeed
LCD-13243
Resolved an issue in GXY editing: when translating multiple shapes at once and the dragged shape was an
ILcdGeoBuffer
,
it could occur that only the
ILcdGeoBuffer
got dragged, instead of all the selected shapes.
Bug fixAdvanced GIS Engine
LCD-13263
2023.1.06
ImprovementLuciadLightspeed
LCD-13247
ImprovementLuciadLightspeed
LCD-13132
ImprovementInfrastructure Standards
LCD-13248
ImprovementInfrastructure Standards
LCD-13219
Bug fixLuciadLightspeed
LCD-13238
Bug fixLuciadLightspeed
LCD-13257
The WMTS client now recognizes layer dimensions that specify a time dimension without a UnitSymbol
and / or UOM
property.
Bug fixOGC Server
LCD-13253
The WFS server's GetFeature response contained unexpected namespaces when WFS 1.1.0 or WFS 2.0 was used.
For these versions, all namespaces related to WFS 1.1.0, WFS 2.0, GML 3.1.1 and GML 3.2 were advertised,
instead of only the relevant namespaces for the used WFS and GML versions.
Bug fixDefense Symbology
LCD-13251
Resolved an issue with the following APP-6B icon symbols, where they had a rectangular Friendly Affiliation frame instead
of a circular one.
- Armoured Carrier With Scatterable Mines (1.X.3.2.2.3.4.5)
- Drilling Vehicle (1.X.3.2.2.3.6)
Bug fixInfrastructure Standards
LCD-13221
The
TLcdBinzModelDecoder
now uses the
transmit
field in the
Binz data to determine the transparency of a color.
Bug fixInfrastructure Standards
LCD-13230
The
TLcdIFCModelDecoder
assigned the wrong colour to an object when a diffuse colour
was specified as a
IfcColourRgb
.
2023.1.05
Bug fixLuciadLightspeed
LCD-10121
TLcdWKTReferenceFormatter
now uses more standard names for the parameters to define the
center of the following projections:
- TLcdAlbersEqualAreaConic
- TLcdAzimuthalEquidistant
- TLcdLambertAzimuthalEqualArea
Bug fixLuciadLightspeed
LCD-10121
2023.1.04
ImprovementLuciadLightspeed
LCD-13186
Bug fixLuciadLightspeed
LCD-13227
When an SLD style was created or decoded containing rules without Min or MaxScaleDenominator properties,
the properties were unexpectedly introduced with a default value when the SLD style was encoded with
TLcdSLDFeatureTypeStyleEncoder
.
Bug fixLuciadLightspeed
LCD-13222
TLcdSVGIcon
did not properly support the world-sized units
pt
and
pc
, which are respectively equal to 1/72 inch and 1/6 inch.
Bug fixLuciadLightspeed
LCD-13224
Fixed an issue where the current measurement of the
TLspRulerController
was not reset when
the controller is cancelled.
Bug fixLuciadLightspeed
LCD-13225
Two issues have been fixed when encoding an SLD style containing a color map to an OGC SE 1.1 style file using
TLcdSLDFeatureTypeStyleEncoder
:
- The alpha component of a color was not preserved during encoding when the SLD style was decoded from an OGC SE 1.1 style file.
- The color map was not encoded to the correct color map function: Categorize and Interpolate were incorrectly exchanged.
Bug fixLuciadLightspeed
LCD-13226
When an SLD style was created or decoded with an explicit GammaValue property equal to the default value 1.0,
the property was always skipped when the SLD style was encoded with
TLcdSLDFeatureTypeStyleEncoder
.
Bug fixAdvanced Raster Connectors
LCD-13213
TLcdGeospatialPDFModelDecoder
now calculates the bounds of the model elements more
accurately by using double precision (64 bit instead of 32 bit) to calculate the width and height of the bounds.
Bug fixOGC Server
LCD-13215
The WFS server did not close all streams resulting from ILcdModel#query
calls.
Bug fixAviation Standards
LCD-13223
The fix introduced by LCD-12852 introduced a regression for airspace compositions containing airspaces
of which the volume was defined by dependent airspaces.
Bug fixTiling Engine
LF-2385
Fixed an issue for processing coverages using TIFF as tile format.
On Java 11 and newer it could result in using more memory than desired.
2023.1.03
Bug fixLuciadLightspeed
LCD-5848
Fixed an issue that prevented lighting and fog effects from applying to raster layers when no terrain is present in
the view.
Bug fixLuciadLightspeed
LCD-13201
Fixed an NPE that would occur when a
TLcdGeoJsonModelDecoder
has a custom implementation
of
#parseCustomGeometry
, and encounters a
GeometryCollection
feature
that contains 2 or more consecutive custom shapes.
Additionally, the order of such
GeometryCollection
geometries is now always kept the same as
in the input JSON, even when it contains custom geometries.
Bug fixLuciadLightspeed
LCD-13150
When using a display scale != 100%, touch events could sometimes have incorrect coordinates.
This was noticeable when rotating the view, where the rotation center was not between the touch points.
Bug fixInfrastructure Standards
LCD-12544, LCD-12971, LCD-13174
Fixed several cases where the
TLcdIFCModelDecoder
did not properly handle
IfcBooleanResult
subtractions.
Bug fixInfrastructure Standards
LCD-13187
2023.1.02
ImprovementLuciadLightspeed
LCD-13172
TLspWMSLayerBuilder#mapScaleProvider
and TLspWMSLayerBuilder#sldStyle
have been added to the API.
These methods allow the developer to control the scale that is used for the painter and to configure client-side scale ranges
that determine when the data is visualized.
ImprovementAviation Standards
LCD-13185
Upgraded the included EAD ADR AIXM 5.1(.1) XML Schema extensions to support version 15.2.
Bug fixLucy (LuciadLightspeed)
LUCY-5049
Fixed an issue where a
ConcurrentModificationException
was thrown when removing all elements
from a model for which multiple LOS coverages were created via
TLcyLOSManager
.
Bug fixOGC Server
LCD-13073
2023.1.01
ImprovementLuciadLightspeed
LCD-13127
You can now use SLD styles with color maps to render dual-band raster data, such as wind or water velocity data
decoded from OGC NetCDF files. Such data consists of a U and a V band that respectively represent a magnitude value
parallel to the X and Y axis. The SLD rendering pipeline calculates the magnitude for a vector that combines
the U and V bands, on which the color map is applied.
ImprovementLuciadLightspeed
LCD-13124
Bug fixLuciadLightspeed
LCD-13097
Fixed an issue where semi-transparent overlay components on an AWT view could exhibit a "flickering" effect on
monitors with display scaling enabled.
Bug fixLuciadLightspeed
LCD-13182
SLD icon rendering in GXY could trigger cut-off icons near the map borders when shifted anchor points were defined for the
icons.
This was especially visible when the data was visualized using a tiled WMS or WMTS service.
Bug fixOGC Server
LCD-13144
Fixed WCS coverage generation to better take into account the appropriate level of detail from a source data set
with multiple level of details. Before the coverage generation would use less detailed information when encountering
values representing a NODATA
value. This could result in using inappropriate values
when generating coverages having a more detailed level of detail.
Bug fixAviation Standards
LCD-13183
The rendering of AIXM 5.1 holding patterns in GXY could trigger cut-off icons near the map borders.
This was especially visible when the data was visualized using a tiled WMS or WMTS service.
Bug fixDefense Symbology
LCD-13156
Resolved an issue where NVG polygon and polyline elements with the leg-type attribute set to "rhumb-line" were painted with
great circle lines.
Bug fixDefense Symbology
LCD-13136
Added the missing "Armored Carrier with Volcano" (1.X.3.2.2.3.4.3) symbol to the APP-6B symbol hierarchy.
2023.1
New featureLuciadLightspeed
New featureInfrastructure Standards
The 3D Tiles Processing Engine has been structurally improved. As a result, tiling your data is
now faster and uses less memory. Furthermore, the resulting OGC 3D Tiles data is smaller on disk
and uses fewer tiles. This benefits not only the production of the data, but also the time spent
downloading the data to the client. The difference is most noticeable in large datasets, as well
as in datasets that contain repeating textures.
ImprovementLuciadLightspeed
LCD-11110
An ellipsoidal version of TLcdLambertAzimuthalEqualArea
has been added:
TLcdEllipsoidalLambertAzimuthalEqualArea
. This projection use ellipsoidal calculations
instead of only spherical calculations.
This also improves the precision of the WKT and EPSG references that use this an ellipsoidal version
of this projection. TLcdWKTReferenceParser
now makes a distinction
between the spherical and the ellipsoidal versions of this projection. The precision of these
EPSG codes has now been improved:
- 3035
- 3571 to 3576
- 5633, 5635, 5636, 5638
- 6931, 6932
- 9039
- 9947
ImprovementLuciadLightspeed
LCD-13067
The TLcdGeoJsonModelDecoder
can now decode features with a null
geometry. The resulting domain objects are ILcdDataObject
s containing the json properties,
and also implement ILcdShapeList
, but contain no shapes (they are empty shape lists).
Likewise, the TLcdGeoJsonModelEncoder
now supports encoding domain objects that don't
have a geometry, provided that they implement ILcdDataObject
. The resulting json contains
the data object's properties and a null
geometry.
ImprovementLuciadLightspeed
LCD-13035
ImprovementLuciadLightspeed
The
TLcdOBJModelDecoder
now supports setting a default reference, which will be used in
case the model reference decoder doesn't provide one.
ImprovementLuciadLightspeed
LCD-13047
ImprovementLuciadLightspeed
LCD-12999
TLcdGXYClippingPainterWrapper
now supports two modes: an inclusive (default) and exclusive
mode, which respectively indicate whether only content inside or outside the clipping shapes gets painted.
ImprovementOGC Server
The WCS server's GetCoverage handling logic now reuses threads across multiple requests
improving the response time depending on the used data and hardware.
ImprovementOGC Server
LCD-13074
The WFS server's capability to output features as GeoJSON has been made more robust: features that cannot be encoded
to GeoJSON (for example, because of an unsupported geometry type) are now skipped with a warning instead of causing
a WFS GetFeature response failure.
ImprovementOGC Server
LCD-13022, LCD-13016, LCD-8758
The WFS server is now more flexible against accepting a geometry property name in an OGC Filter condition. Next to
a fully-qualified geometry property name (with a prefix bound to a namespace, such as gml:geometry),
it now also accepts an unqualified property name (such as geometry). Additionally, warnings such as
"Error while converting filter" are no longer logged for valid geometry property names.
ImprovementOGC Server
LCD-12995
The priority of the
ILcdGXYViewEncoder
is now used to determine the order of the supported image formats advertised in the capabilities of the WMS Server.
ImprovementInfrastructure Standards
Bug fixLuciadLightspeed
LCD-13123
TLcdEllipsoidUtil#intersects2DLS
could incorrectly return true
if a point of the first segment is collinear with the points of the second segment, but outside the boundaries of the second
segment.
This also influences higher level functionality, such as polygon/polygon intersection checks.
Bug fixLuciadLightspeed
LCD-13116
TLcdGXYShapePainter
: when visualizing shapes that both implement an
ILcdShape
subtype and
ILcdPointList
, the painter now gives priority to the former.
Refer to the painter's javadoc for more information on the supported objects.
Bug fixLuciadLightspeed
Complex strokes in a Lightspeed view were not always painted correctly for vertical line segments with points with a large
altitude.
Bug fixLucy (LuciadLightspeed)
Bug fixLuciadLightspeed
LCD-13079
Bug fixLuciadLightspeed
The locking strategy used during the decoding operations on the elements in the
ILcdModel
produced by the
TLcdJPEG2000ModelDecoder
has been optimized to allow for faster access from multiple threads.
Bug fixLuciadLightspeed
LCD-13054
Bug fixLuciadLightspeed
LCD-13139
TLcdExpressionFactory
: when using the
eq
expression without an epsilon
or an epsilon equal to 0, the expression would evaluate to false for equal numbers.
Bug fixLucy (LuciadLightspeed)
LUCY-5048
TLcyWMSClientAddOn
: selecting features on a WMS layer could trigger
exceptions if the WMS server did not return any results.
Bug fixDatabase Connectors
LCD-12941
From version 2.5 on, PostGIS no longer supports antipodal (180 degrees long) edges.
This triggered errors when applying bounding box spatial filters to models decoded by the
TLcdPostGISModelDecoder
.
Bug fixOGC Server
LCD-13160
The WMS server now takes the PIXELSIZE request parameter into account when evaluating SLD scale ranges. When this
request parameter is not present, the OGC default of 0.28mm per pixel is used for the scale calculation, unless the
pixel size is overridden on the server using the luciad.dpi
VM parameter.
Upgrade considerationLuciadLightspeed
Security updates have been applied to the following dependencies:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.woodstox |
woodstox-core |
5.0.3 |
6.5.1 |
org.codehaus.woodstox |
stax2-api |
3.1.4 |
4.2.1 |
Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID |
Artifact ID |
Old Version |
New Version |
org.springframework.boot |
spring-boot |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-starter |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-autoconfigure |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-starter-json |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-starter-jetty |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-starter-logging |
2.7.8 |
2.7.14 |
org.springframework.boot |
spring-boot-starter-web |
2.7.8 |
2.7.14 |
org.springframework |
spring-aop |
5.3.25 |
5.3.29 |
org.springframework |
spring-tx |
5.3.25 |
5.3.29 |
org.springframework |
spring-jdbc |
5.3.25 |
5.3.29 |
org.springframework |
spring-beans |
5.3.25 |
5.3.29 |
org.springframework |
spring-context |
5.3.25 |
5.3.29 |
org.springframework |
spring-core |
5.3.25 |
5.3.29 |
org.springframework |
spring-expression |
5.3.25 |
5.3.29 |
org.springframework |
spring-web |
5.3.25 |
5.3.29 |
org.springframework |
spring-webmvc |
5.3.25 |
5.3.29 |
org.eclipse.jetty.websocket |
javax-websocket-client-impl |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
javax-websocket-server-impl |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-annotations |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-client |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-continuation |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-http |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-io |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-plus |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-security |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-server |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-servlet |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-servlets |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-util |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-util-ajax |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-webapp |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty |
jetty-xml |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
websocket-api |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
websocket-client |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
websocket-common |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
websocket-server |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.eclipse.jetty.websocket |
websocket-servlet |
9.4.50.v20221201 |
9.4.51.v20230217 |
org.apache.tomcat.embed |
tomcat-embed-el |
9.0.71 |
9.0.78 |
org.yaml |
snakeyaml |
1.33 |
2.0 |
ch.qos.logback |
logback-core |
1.2.11 |
1.2.12 |
ch.qos.logback |
logback-classic |
1.2.11 |
1.2.12 |
Upgrade considerationLuciadLightspeed
TLcdMBTilesModelDecoder
has been moved from the SQLite
component to a dedicated MBTiles component. It is now contained in the package
com.luciad.format.mbtiles
Upgrading users will get a compiler error because of this, which can be
resolved by adapting the affected
import
statements.
Furthermore, build configurations may need to be updated to include the new
lcd_mbtiles.jar
file.
Upgrade considerationLuciadLightspeed
TLcdMBTilesModelDecoder
now requires the Google Protocol Buffer
library (
protobuf-java-3.19.4.jar
) to support files which
contain vector tiles.
Upgrade considerationLuciadLightspeed
The return type of the method
TLspScaleBasedStyler.getStylersByScaleRange
has been changed
from
ALspStyler
to
ILspStyler
.
Upgrade considerationInfrastructure Standards
LCD-12414
Meshup now uses Draco mesh compression by default. To disable, call
TLcd3DTilesProcessorBuilder#meshCompression()
with argument
NONE
or pass
--meshCompression NONE
as a parameter to the command line Meshup sample.
Upgrade considerationInfrastructure Standards
The names of the DWG native jar files, which the lcd_dwg.jar
jar depends on, have been
changed.
The libraries used to follow the pattern lcd_dwg-native.{platform}.jar
, but they have now
been renamed to follow the pattern libdwg-${version}-native.${platform}.jar
.
The available DWG native jar files, at the time of writing, are:
libdwg-24.8.lcd-1-native.linux.jar
libdwg-24.8.lcd-1-native.linux64.jar
libdwg-24.8.lcd-1-native.macos_64.jar
libdwg-24.8.lcd-1-native.win32.jar
libdwg-24.8.lcd-1-native.win64.jar
The names of these libraries have also been changed in the Maven POM files.
The Maven groupId:artifactId:version
of these libraries used to follow the
pattern com.luciad:lcd_dwg-native.{platform}:{version}
.
This has now been changed to com.luciad:libdwg-native.{platform}:{version}
, we also added
the module com.luciad:libdwg:24.8.lcd-1
, which depends on all DWG native modules.
The available DWG Maven modules, at the time of writing, are:
com.luciad:libdwg:24.8.lcd-1
com.luciad:libdwg-native.linux:24.8.lcd-1
com.luciad:libdwg-native.linux64:24.8.lcd-1
com.luciad:libdwg-native.mac_os64:24.8.lcd-1
com.luciad:libdwg-native.win32:24.8.lcd-1
com.luciad:libdwg-native.win64:24.8.lcd-1
Upgrade considerationInfrastructure Standards
The names of the DGN native jar files, which the lcd_dgn.jar
jar depends on, have been
changed.
The libraries used to follow the pattern lcd_dgn-native.{platform}.jar
, but they have now
been renamed to follow the pattern libdgn-${version}-native.${platform}.jar
.
The available DGN native jar files, at the time of writing, are:
libdgn-24.8.lcd-1-native.linux.jar
libdgn-24.8.lcd-1-native.linux64.jar
libdgn-24.8.lcd-1-native.macos_64.jar
libdgn-24.8.lcd-1-native.win32.jar
libdgn-24.8.lcd-1-native.win64.jar
The names of these libraries have also been changed in the Maven POM files.
The Maven groupId:artifactId:version
of these libraries used to follow the
pattern com.luciad:lcd_dgn-native.{platform}:{version}
.
This has now been changed to com.luciad:libdgn-native.{platform}:{version}
, we also added
the module com.luciad:libdgn:24.8.lcd-1
, which depends on all DGN native modules.
The available DGN Maven modules, at the time of writing, are:
com.luciad:libdgn:24.8.lcd-1
com.luciad:libdgn-native.linux:24.8.lcd-1
com.luciad:libdgn-native.linux64:24.8.lcd-1
com.luciad:libdgn-native.mac_os64:24.8.lcd-1
com.luciad:libdgn-native.win32:24.8.lcd-1
com.luciad:libdgn-native.win64:24.8.lcd-1
Upgrade considerationInfrastructure Standards
Added a dependency on the third party library libjpeg-turbo. This library is used in the Meshup pipeline to improve
performance when reading and writing JPEG textures.
2023.0
2023.0.12
ImprovementLucy (LuciadLightspeed)
LUCY-5047
TLcyLspWMSClientAddOn
: the WMS layer properties panel now includes a toggle button for WMS feature info requests.
ImprovementLuciadLightspeed
LCD-13042
TLcdOGC3DTilesModelDecoder
: Fixed issue when loading 3D Tiles payload files with an
invalid roughness or metallic value. These values should be inside the range of 0 to 1. Values that lie
outside of this range will be set to 1, which is the glTF 2.0 default.
ImprovementLucy (LuciadLightspeed)
LUCY-5046
TLcyWMSClientAddOn
: the
TLcyWMSClientAddOn.queryable
configuration flag
now determines the default GetFeatureInfo behavior when connecting to a WMS source.
This can still be overridden in the connection dialog.
ImprovementLuciadLightspeed
LCD-13122
SLD icon rendering in GXY and Lightspeed now supports well-known mark icons to represent the following additional shapes:
shape://slash
or slash
: a forward diagonal line
shape://backslash
or backslash
: a backward diagonal line
shape://plus
or plus
: a plus mark
shape://times
or times
: a times mark
ImprovementInfrastructure Standards
LCD-13042
TLcd3DTilesProcessorBuilder
: Fixed issue when processing GLB files with an invalid roughness or
metallic value. These values should be inside the range of 0 to 1. Values that lie outside of this range will be
set to 1, which is the glTF 2.0 default.
Bug fixLuciadLightspeed
LCD-13114
TLcdWFSProxyModel
did not work well with a WFS server that required authentication: if the
correct credentials were specified through a
TLcdOWSHttpTransport
, fetching of resources such
as XML Schemas could still lead to authentication failures.
Bug fixLuciadLightspeed
LCD-13120
Bug fixLuciadLightspeed
LCD-13126
The use of the well-known mark icons horline
and vertline
resulted in a visual
gap between the symbols when they were used for a fill pattern.
Bug fixLuciadLightspeed
LCD-13113
An SLD point symbolizer did not support a
has-a-shape
domain object in a GXY view if the geometry property
name was missing in the SLD. Similar as for other SLD symbolizers, the shape will now be automatically discovered based on
a
TLcdHasGeometryAnnotation
available on the domain object's data model.
Bug fixOGC Server
The red hatched pattern returned by the WCS Server in case the requested data is too detailed is now only returned for datasets
with RGBA images.
In other cases an empty image that complies with the band semantics of the dataset is returned.
Bug fixAviation Standards
LCD-13088
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. Small inaccuracies in a composition
could prevent its use in a new airspace composition, causing the warning message
"Could not process airspace geometry SurfaceType[anonymous] due to an invalid topology".
Bug fixDefense Standards
LCD-12308
TLcdNITFModelDecoder#canDecodeSource
is now more strict when checking CADRG frame files.
This decreases the chance of the NITF model decoder falsely indicating that it can decode a file with a CADRG
frame file extension.
Bug fixInfrastructure Standards
LCD-13054
Bug fixRadar Connectors
LCD-13125
The scaling factor included in ASTERIX Category 8 data was not taken into account when decoding the range, length and
coordinate parameters. This factor is now used if it is available in the data and if no external
ALcdASTERIXScalingFactorProvider
is configured on the ASTERIX decoder.
In all other cases, a default value (7) is used, similar as before.
2023.0.11
ImprovementLuciadLightspeed
LCD-13099
ImprovementLuciadLightspeed
LCD-12947
Generated B3DM files and their contained glTF data now adhere to the padding requirements in their specifications.
This improves the compatibility of data sets created by the 3D Tiles Processing Engine with third party tools and
with a wider range of display drivers.
ImprovementLuciadLightspeed
LCD-12969
A new standard symbol TLcdSymbol.PLUS_DIAMOND
was added.
ImprovementInfrastructure Standards
LCD-12687
ImprovementInfrastructure Standards
LCD-12915
Fixed a bug where the conversion of an erroneous Binz dataset seemed to succeed. The conversion will now fail,
instead of generating an empty 3DTiles dataset.
Bug fixLuciadLightspeed
LCD-13103
Fixed an issue where creating 3D Tiles for meshes without primitives would create invalid glTF. Such meshes are
skipped now.
Bug fixLuciadLightspeed
LCD-13093
Bug fixLuciadLightspeed
LCD-13107
Fixed a memory leak that occurred when using a grid on a Lightspeed view with labels enabled.
Bug fixLuciadLightspeed
LCD-13104
The method TLcdWFSProxyModel#getGeometryPropertyName
could trigger
a NullPointerException
when it was called from multiple threads concurrently.
Bug fixLuciadLightspeed
LCD-13049
ALcdWMSProxy#toDataSource
now takes ATLcdSLDNamedLayer#isQueryable
into account.
This fixes the problem that the "enable feature info" checkbox in the Connect-To panel in Lucy was broken for SLD
styled layers.
Bug fixLuciadLightspeed
LCD-13107, LCD-13218
Fixed a memory leak that could occur for layers with labeled objects that are added, updated and removed
frequently.
Bug fixOGC Server
LCD-13085
The WCS server's GetCoverage performance improvement introduced by LCD-12948 could result in too many open
threads, causing OutOfMemoryError issues on certain platforms.
Bug fixOGC Server
LCD-13108
When sending a WMTS request without request parameter, the returned exception report did not refer to the correct
exception code: this should be MissingParameterValue
instead of InvalidParameterValue
.
Bug fixAviation Standards
LCD-13087
Fixed the handling of an airspace segment that follows a geographical border for only one point.
Bug fixDefense Symbology
LCD-13089
Bug fixDefense Symbology
LCD-13100
Resolved an issue that caused certain Task Graphics symbols, such as "Seize" and "Turn", to be rendered with a straight line
instead of an arc.
This only occurred when visualizing an NVG file using a GXY view.
Bug fixDefense Symbology
LCD-13080
Resolved an issue that would cause exceptions to occur during the calculation of label positions.
These exceptions only occurred when decoding NVG containing "Forward edge of Battle Area (FEBA)" symbols in a GXY view.
Bug fixDefense Symbology
LCD-13021
The fix for issue LCD-12502, where the NVG fill-pattern "DiagonalUpwardLine" was misspelled as "DiagonalUpLine", has been
backported to 2018.2.
2023.0.10
ImprovementDefense Symbology
LCD-13065
Fixed an issue in Lightspeed views, where military tactical graphics we're no longer painted with a dashed stroke
when their status was set to "Anticipatted/Planned",
and haloed style was applied to them (with TLcdDefaultAPP6AStyle.setHaloEnabled
or TLcdDefaultMS2525bStyle.setHaloEnabled
).
Bug fixLuciadLightspeed
LCD-13078
Fixed a bug in the
TLcdE57ModelDecoder
: when creating panoramic images from input pinhole
images, multiple locations could end up in one Luciad Panorama if they differ only in their Z coordinate.
Bug fixInfrastructure Standards
LCD-13082
IFCFeatures
decoded by the
TLcdIFCModelDecoder
no longer contains
children that don't exist in the model.
2023.0.09
Bug fixLuciadLightspeed
LCD-13063
Fixed a
NullPointerException
in
TLspSLDStyler
that could happen when adding an SLD-styled raster layer to the view.
Bug fixLuciadLightspeed
LCD-13061
Bug fixLucy (LuciadLightspeed)
LUCY-5037
Bug fixLuciadLightspeed
LCD-13050
Fixed some controller rendering issues in the
ILcdGXYView
implementations
when using HiDPI rendering.
Bug fixLuciadLightspeed
LCD-13066
The built-in custom OGC functions
START_POINT_FUNCTION_NAME
,
END_POINT_FUNCTION_NAME
,
START_ANGLE_FUNCTION_NAME
,
END_ANGLE_FUNCTION_NAME
,
INTERIOR_POINT_FUNCTION_NAME
and
VERTICES_FUNCTION_NAME
in
TLcdOGCVendorSpecificFunctions
could not handle GML geometry properties.
Bug fixDefense Symbology
LCD-13031
Fixed an issue with the Block, Contain and Penetrate tactical graphic task symbols that could cause the vertical line of the
symbol to not be painted perpendicular to the horizontal line of the symbol.
2023.0.08
Bug fixLuciadLightspeed
LCD-12930
The correct forward slash separator is now always used to find child resources instead of the system dependent java.io.File#separatorChar
.
Bug fixLuciadLightspeed
LCD-13036
Fixed an issue where OSGB datasets with paths containing non-latin scripts characters would not be served correctly
by LuciadFusion
Bug fixLuciadLightspeed
LCD-13032
The TILcdDatabaseEncoder2
now uses PreparedStatement#getParameterMetaData
to determine the SQL type of a parameter when setting null values.
This corrects the situation where a null value for a nullable boolean column resulted in an error when saving.
Bug fixLuciadLightspeed
LCD-13046
Fixed a NPE that could occur when using the
TLspEditController
to edit an object, and
simultaneously modifying that object programmatically.
Bug fixLuciadLightspeed
LCD-12888
The
TLcdMBTilesModelDecoder
now interprets the minzoom value stored in the metadata table.
As a result tiles are now shown which previously where not.
Bug fixLuciadLightspeed
LCD-12664
Bug fixLuciadLightspeed
LCD-12861
Bug fixLuciadLightspeed
LCD-13029
To avoid threading issues, the collections returned by
ILspInteractivePaintableLayer#getObjectsWithPaintState
are now protected by read or write
locks, managed by
TLcdLockUtil
. Before this locking mechanism was introduced, a rare
ConcurrentModificationException
could occur for example when changing a layer filter, while
simultaneously (de)selecting objects on that layer.
We recommended checking your codebase for any custom usages of
#getObjectsWithPaintState
and
apply the proper locking. An example snippet of how to take a read or write lock is included in the method javadoc.
This recommendation is mostly relevant for dynamic layers, in which for example the layer filter may frequently
change, and in which the elements can be selected or edited.
2023.0.07
ImprovementLuciadLightspeed
LCD-13004
Improved the labeling position for polygons crossing the date line in several Lightspeed and GXY scenarios.
ImprovementLuciadLightspeed
LCD-13014
SLD icon rendering in GXY and Lightspeed now supports well-known mark icons to represent a horizontal line
and a vertical line. The supported well-known names are horline
or
shape://horline
for a horizontal line and vertline
and
shape://vertline
for a vertical line.
ImprovementLuciadLightspeed
LCD-13030
The WMTS client will now use the tile matrix set which is in the EPSG:4326 reference and has a quad tree tile
structure, if there's any.
ImprovementOGC Server
LCD-12948
The WCS server's GetCoverage handling logic now takes better advantage of multiple CPU cores,
improving the response time with up to 50% depending on the used data and hardware.
ImprovementAviation Standards
LCD-12950
A new package com.luciad.ais.model.finalapproachpath
has been added to AIS containing domain
objects to model a final approach path.
ImprovementAviation Standards
LCD-12950
A new DAFIFT decoder
TLcdDAFIFTPrecisionApproachPathDecoder
has been added to support
the decoding of Precision Approach Path objects. The data type of the decoded objects is
TLcdDAFIFTDataTypes#PrecisionApproachPath
, which extends from the new
FinalApproachPath
type in AIS.
ImprovementRadar Connectors
LCD-13002
Bug fixLuciadLightspeed
LCD-13008
Bug fixLuciadLightspeed
LCD-12980
Fixed an issue where, in some scenarios, raster data using an IndexColorModel was displayed with incorrect colors when zoomed
out.
Bug fixLuciadLightspeed
LCD-12983
Bug fixLuciadLightspeed
LCD-13000
The
TLcdDatabaseModelDecoder
now correctly handles the optional maxCacheSize parameter,
disabling the caching when the value is less or equal to 0.
Bug fixLuciadLightspeed
LCD-13006
SLD icon rendering in GXY did not support
foot
for the
uom
property of
a point symbolizer, in contrast with Lightspeed. To ease using this
uom
, a new method
foot
has been added to the builder of
TLcdSLDPointSymbolizer
.
Bug fixLuciadLightspeed
LCD-13020
The utility method ILcdPropertyRetrieverProvider#createDefaultPropertyRetrieverProvider
could result in model read access without an appropriate lock.
Bug fixAviation Standards
LCD-12850
Made the calculation of the connection between an airspace segment and a geographical border more robust
to avoid a self-intersecting geometry. A self-intersecting geometry prevents the use of the airspace in an
airspace aggregation.
Bug fixAviation Standards
LCD-12852
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. A composition of several equal
airspaces could introduce small inaccuracies. This could prevent its use in a new airspace composition,
causing the warning message "Cause: found non-noded intersection between LINESTRING ... and LINESTRING ...".
Bug fixInfrastructure Standards
LCD-13012
TLcdIFCModelDecoder
no longer throws a
ClassCastException
when an
IfcSpatialStructureElement
has invalid bounds.
Bug fixInfrastructure Standards
LCD-13013
Bug fixInfrastructure Standards
LCD-12934
TLcdIFCModelDecoder
now decodes ISO8859 characters that have been encoded with the
\S\
and
\P\
control directives.
Bug fixInfrastructure Standards
LCD-12935
TLcdIFCModelDecoder
no longer throws an
IndexOutOfBoundsException
when openings are defined on an
IfcElement
, but none of them could get converted for
some reason.
2023.0.05
ImprovementLuciadLightspeed
LF-2214
TLcdDataModelBuilder
and
TLfnCustomPropertyDefinitions
now allow type names and property names that include periods and dashes.
Bug fixLuciadLightspeed
LCD-12996
com.luciad.io.TLcdStatusInputStreamFactory
now excludes wrapping created input streams
for GeoTIFF files as reading this format requires random file access.
Bug fixLucy (LuciadLightspeed)
The WMS client favors PNG as first item in the list of supported images types, which is selected and used by default.
2023.0.04
ImprovementLuciadLightspeed
LCD-12337
TLcdWKTReferenceParser
now supports compound references with an ellipsoidal vertical datum: VERT_DATUM tag with value 2002 (ellipsoid).
ImprovementLuciadLightspeed
LCD-11990
TLcdWKTReferenceParser
now recognizes "North American 1983 CSRS", "North American Datum 1983 CSRS" and variants as aliases for the
"NAD83 Canadian Spatial Reference System" geodetic datum name.
ImprovementDefense Symbology
LCD-12973
It is now possible to configure the size of the icon of the "Biological Contaminated Area", "Chemical Contaminated Area",
"Radiological Contaminated Area" and "Nuclear Contaminated Area symbols".
The icon size of these symbols can be configured using the methods TLcdDefaultMS2525bSymbologyStyle
.setSizeSymbol(int)
and TLcdDefaultAPP6ASymbologyStyle
.setSizeSymbol(int)
ImprovementInfrastructure Standards
LCD-12938
The algorithm to detect pixel colors to texture simplified meshes has gotten a make-over, which lead to a significant performance
improvement.
Bug fixLuciadLightspeed
LCD-9650
Fixed a rare crash in
TLspLabelPainter
that could happen when removing a layer that contains labels with pins, or disposing the view.
Bug fixLuciadLightspeed
LCD-12726
TLcdWKTReferenceParser
now more consistently assigns the correct datum transformation parameters to "Amersfoort / RD New" references.
Bug fixLuciadLightspeed
LCD-12471
Some of the EPSG references parsed by
TLcdEPSGReferenceParser
had incorrect projection parameters. This affected references where the EPSG database
defines parameters in a different unit than meters or degrees:
- EPSG:3359
- EPSG:22391 and EPSG:22392
- EPSG:22780
- EPSG:26191 to EPSG:26195
- EPSG:26814 and EPSG:26815
- EPSG:26819 to EPSG:26822
- EPSG:26825 and EPSG:26826
- EPSG:26830 to EPSG:26833
- EPSG:26836 and EPSG:26837
- EPSG:26841 to EPSG:26844
- EPSG:30491 and EPSG:30492
- EPSG:30791 and EPSG:30792
Bug fixLuciadLightspeed
LCD-12979
Fixed an issue in
TLcd2DBoundsIndexedModel
model bounds calculation.
In certain edge cases, the Z/depth of the model bounds could be too small,
causing
model.getBounds().contains3D(modelObject.getBounds())
to fail.
Bug fixLuciadLightspeed
LCD-6724
The OGC WCS client no longer creates lmap-geotiff*
files in the temporary folder.
Bug fixOGC Server
LCD-12967
The WFS server could reject a valid property name filter if the requested
feature type was backed by a model with multiple data types.
Bug fixDefense Symbology
LCD-11917, LCD-12636
Resolved an issue that caused exceptions to be thrown when editing NVG symbols when using an asynchronous GXY view.
Bug fixInfrastructure Standards
LCD-12987
Fixed a bug where a large amount of zero-uv-area faces in the input data lead to an unusually large-sized texture.
2023.0.03
ImprovementLuciadLightspeed
LCD-12640
The
TLspEditController
can now handle external changes to the edited object that result in
a change in the amount of edit handles generated for those objects. For example when adding or removing points of
a polyline.
Bug fixLuciadLightspeed
LCD-12952
Fixed an issue where the height of some types of 3D Tiles data sets was not correctly computed in 3D views when
using a view dependent height provider.
Bug fixLuciadLightspeed
LCD-12793, LCD-9529, LCD-7035
SLD icon rendering in GXY / Lightspeed now supports the uom
property of a symbolizer.
This property can be used to draw icons with a world size. When omitted, a pixel size is applied by default.
Upgrade considerationAdvanced Raster Connectors
LCD-12970
TLcdECWModelDecoder
: the
libecw-6.1.*.jar
libraries were upgraded to a
newer build of the ECW SDK to fix a certificate issue on Mac. This prevented the decoder from loading
libecw61.dylib
, and could trigger a malware warning on the client.
2023.0.02
ImprovementOGC Server
LCD-12933
The WFS server did not properly log issues when the data in response to a GetFeature request
could not be encoded to the requested format (GML or GeoJSON).
ImprovementAviation Standards
LCD-12842
The DAFIFT decoder
TLcdDAFIFTMinimumSectorAltitudeDecoder
now supports the decoding
of the MSA Type property, which gives information about the type of the terminal procedure of the record.
The property can be accessed via
TLcdDAFIFTSectorDataProperties#MSA_TYPE
.
Bug fixLuciadLightspeed
LCD-12905
Decoding IMS icons can no longer result in icons having a size of -1.
Bug fixLuciadLightspeed
LCD-12963
TLcdDurationFormat
: rounding could lead to invalid durations such as "1m 60s". This has been fixed.
Bug fixOGC Server
LCD-12955
The WFS server could not serve data defined in a topocentric geographical reference.
Bug fixOGC Server
LCD-12944
The WCS server's caching capabilities did not work for WCS 1.1.0 GetCoverage requests that defined a desired
output resolution instead of an image size.
2023.0.01
ImprovementLuciadLightspeed
LCD-12863
TLcdEPSGReferenceParser
now additionally supports the following datums, and coordinate references that make use of it:
- Korean Datum 1985
- Macao 1920
ImprovementLuciadLightspeed
LCD-12863
TLcdGeodeticDatum
now supports the Molodensky-Badekas 10-parameter transformation. On top of the previous 7 parameters,
it is now possible to set 3 additional parameters that define a pivot point. See
TLcdGeodeticDatum#setPivotX
TLcdGeodeticDatum#setPivotY
TLcdGeodeticDatum#setPivotZ
ImprovementLuciadLightspeed
LCD-12917
The
TLcdGeoTIFFModelDecoder
now can read single band float data for which a mask image is used
to indicate the 'no data' values. The elevation data for which the mask indicates there is no value is mapped onto
the value
TLcdDTEDTileDecoder.UNKNOWN_ELEVATION
. This mapped no data value is exposed in the
ALcdImage
semantics and as the
default value for
ILcdRaster
.
ImprovementLucy (LuciadLightspeed)
LUCY-5033
On some operating systems, the layer properties panel could become larger than the screen size.
The panel dimensions are now clamped to a reasonable size.
Bug fixLuciadLightspeed
LCD-9092
The
TLcdGeoTIFFModelEncoder
could produce incorrectly located GeoTIFF files.
This could happen for references using a
custom datum with a prime meridian different from 0.
Now an exception is thrown to indicate the encoding does not support it.
Bug fixLuciadLightspeed
LCD-12920
The
TLcdGeoTIFFModelEncoder
could produce incorrectly located GeoTIFF files.
This could happen for grid references having a rotation value different from zero and for which there
is no EPSG code available.
2023.0
New featureMaritime Standards
LuciadLightspeed and LuciadFusion now fully support AML V3 object class and attributes modeling, as well as visualization
according to the Portrayal Specification 3.0.0,
including the proper scale ranges based on the cell levels.
AML V2 data is also still supported.
This change is automatic for AML V2 and V3 data.

AML v3 example
ImprovementLucy (LuciadLightspeed)
LUCY-5028
ImprovementLuciadLightspeed
LCD-12439
The make_osgi_bundles
script now comes with an upgraded BND library and Felix framework, improving compatibility
with Java 11 and higher.
ImprovementLuciadLightspeed
LCD-12864
Support has been added for an OGC strReplace function in
TLcdOGCVendorSpecificFunctions
that can replace a pattern in a String property.
This function can be used when querying a model (see
ILcdModel#query
), when creating an OGC Filter or when
creating an SLD style.
ImprovementLucy (LuciadLightspeed)
TLcyS57DecoderAddOn
now registers two instances of
TLcdS52DisplaySettings
as a service,
one for ENC/IENC and one for AML layers. When loading ENC or AML data on a GXY map or Lightspeed map,
the appropriate settings are used and a customizer panel for the respective settings will appear.
The AML panel is configured in the same manner as the ENC/IENC panel in the add-on's configuration file.
ImprovementLuciadLightspeed
LCD-11611
Split packages have been eliminated from all lcd_*.jar
files.
This improves compatibility with JDK 9 and higher.
ImprovementLuciadLightspeed
The lcd_3dtiles.jar
file has been renamed to lcd_tiled3d.jar
,
so Java can generate an automatic module for it.
The name change also applies to the corresponding maven pom file.
ImprovementLuciadLightspeed
LCD-11985
The vertical view controllers (
TLcdVVAltitudeRangeSliderJPanel
,
TLcdVVStartEndIndexJSlider
,
and
TLcdVVStartEndIndexJSlider
) no longer reset when the vertical view's
ILcdVVModel
fires a change event.
Usually those controllers only need to be reset when the view displays an entirely different profile.
You can achieve this by maintaining a 1-to-1 mapping between the domain object and the vertical view model, as shown
in the sample class
FlightSelectionListener
.
In addition,
TLcdVVTerrainModel
has a new constructor making it easier to create a fully initialized
terrain profile to achieve that 1-to-1 mapping. The other constructors have been deprecated.
If you don't have a 1-to-1 mapping, you can unset and set the vertical view's model
(i.e.
vview.setVVModel(null); vview.setVVModel(model);
) whenever you want to reset the controllers.
ImprovementLucy (LuciadLightspeed)
LUCY-5020
TLcyPreferencesTool
used to accept any key, but it only persisted keys starting with the configured
short prefix. The tool now enforces correct use of the configured prefix.
ImprovementLuciadLightspeed
The EPSG database has been updated to the latest version: 10.088.
ImprovementDefense Symbology
LCD-12827
The lcd_ms2525b.jar
has been renamed to
lcd_military_symbology.jar
, to better reflect its contents.
The name change also applies to the corresponding maven pom file.
In addition, some resources have been split off into a separate
lcd_military_symbology_resources.jar
file.
ImprovementMaritime Standards
ImprovementMaritime Standards
You can now retrieve a cell's level (also known as navigational purpose) TLcdS57ModelDescriptor#getLevel
.
Bug fixLuciadLightspeed
LCD-12923
Bug fixLuciadLightspeed
LCD-12910
TLcdSVGIcon
painted a world-sized icon too large when the icon was smaller than the SVG document size.
Bug fixLuciadLightspeed
LCD-12909
The SLD XML decoder and encoder implementation did not support decoding and encoding the uom
property of a symbolizer. Reading or setting the property through ALcdSLDSymbolizer#getUom
and
ALcdSLDSymbolizer#setUom
is now aligned with the XML representation.
Bug fixLuciadLightspeed
LCD-12800
The use of an SLD style defining an SVG icon in combination with a dynamic rotation property could result in incorrectly sized
icons in GXY / Lightspeed.
Bug fixLuciadLightspeed
LCD-12896
The Well-Known Binary CIRCULARSTRING type is now correctly read from the database for both 2D and 3D shapes.
Bug fixDatabase Connectors
LCD-12912
TLcdOracleSpatialModelDecoder
now uses the dimension of the spatial index to construct the where statement for a BBOX.
This solves the problem that an Oracle exception was thrown when querying 3d data when a 2d spatial index is defined.
Upgrade considerationLuciadLightspeed
The minimum OpenGL version required by
ILspView
is now 4.2. GPUs or drivers which do not
support this version will no longer be able to use the hardware-accelerated Lightspeed view. For more information
please contact
support.luciad.gsp@hexagon.com.
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
LCD-11985
Upgrade considerationLuciadLightspeed
The vmoptions
files used by start.jar
and the launcher scripts have
been simplified and moved to config/vmoptions
to avoid split packages.
If you want to override the startup parameters of a sample or product, look for a vmoptions file in that directory
starting with the relevant package, such as com.luciad.lucy.vmoptions
for com.luciad.lucy.TLcyMain
.
Upgrade considerationLuciadLightspeed
LCD-12446, LCD-12445
The
com.luciad.ogc.filter.model
package is no longer split between multiple jars.
To achieve this, the following API has been moved:
Class or interface |
Old package |
New package |
ILcdGenericExpression
ILcdOGCCondition
ILcdOGCExpression
ILcdOGCSortBy
|
com.luciad.ogc.filter.model |
com.luciad.ogc.filter |
ILcdOGCFeatureIDRetriever |
com.luciad.ogc.filter |
com.luciad.ogc.filter.evaluator |
TLcdOGCFilterCapabilitiesConstants |
com.luciad.ogc.filter |
N/A |
If you encounter any compile errors due to these changes, simply update the relevant import statement.
There should be no need for the
TLcdOGCFilterCapabilitiesConstants
class.
If you require some of its constants, you can define these yourself.
Upgrade considerationLuciadLightspeed
LCD-12445
The
com.luciad.geometry
package is no longer split between multiple jars.
To achieve this, the following API has been moved:
Class or interface |
Old package |
New package |
ILcd2DAdvancedBinaryTopology
ILcd2DBinaryTopology
ALcd2DBasicBinaryTopology
ALcd2DBasicBinaryTopologyMultiShape
ELcdGeometryDimension
ELcdGeometryRegion
ILcd2DLineIntersectionTopology
ILcdIntersectionMatrix
ILcdIntersectionMatrixPattern
|
com.luciad.geometry |
com.luciad.geometry.topology |
TLcdCartesianAdvancedBinaryTopology
TLcdCartesianBasicBinaryTopology
|
com.luciad.geometry.cartesian |
com.luciad.geometry.topology.cartesian |
ILcd2DEllipsoidalBinaryTopology
TLcdEllipsoidalAdvancedBinaryTopology
TLcdEllipsoidalBasicBinaryTopology
|
com.luciad.geometry.ellipsoidal |
com.luciad.geometry.topology.ellipsoidal |
TLcdSphericalAdvancedBinaryTopology
TLcdSphericalBasicBinaryTopology
|
com.luciad.geometry.spherical |
com.luciad.geometry.topology.spherical |
ILcdConstructiveGeometry |
com.luciad.geometry |
com.luciad.geometry.constructive |
TLcdCartesianConstructiveGeometry |
com.luciad.geometry.cartesian |
com.luciad.geometry.constructive.cartesian |
TLcdSphericalConstructiveGeometry |
com.luciad.geometry.spherical |
com.luciad.geometry.constructive.spherical |
TLcdEllipsoidalConstructiveGeometry |
com.luciad.geometry.ellipsoidal |
com.luciad.geometry.constructive.ellipsoidal |
TLcdEllipsoidalShapePointEnumerationFactory |
com.luciad.geometry.ellipsoidal |
N/A |
ILcd2DBasicBinaryTopology |
com.luciad.geometry |
N/A |
If you encounter any compile errors due to these changes, just update the relevant import statement.
If you were still using
ILcd2DBasicBinaryTopology
, you can replace it with
the identical
ILcd2DBinaryTopology
interface.
If you still have a need for
TLcdEllipsoidalShapePointEnumerationFactory
, please reach out
to
support.luciad.gsp@hexagon.com.
Upgrade considerationLuciadLightspeed
The package com.luciad.format.gml
, containing legacy support for GML 2, has been removed.
Its functionality has been deprecated for more than a decade, with
com.luciad.format.gml2.xml.TLcdGML2ModelDecoder
and
com.luciad.format.gml2.xml.TLcdGML2ModelEncoder
in the
com.luciad.format.gml2.xml
package as direct replacements.
Upgrade considerationLuciadLightspeed
The utility class TLcdJDOM2OGCFilter
which was deprecated since 2017 has been removed.
If you are using this class, you can replace it with the following code:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
new XMLOutputter().output(element, outputStream);
TLcdOGCFilterDecoder filterDecoder = new TLcdOGCFilterDecoder();
filterDecoder.setInputStreamFactory(string -> new ByteArrayInputStream(outputStream.toByteArray()));
return (TLcdOGCFilter) filterDecoder.decode("");
Upgrade considerationLuciadLightspeed
Security updates have been applied to the following dependencies:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.jackson.core |
jackson-databind |
2.14.0 |
2.14.2 |
com.fasterxml.jackson.core |
jackson-core |
2.14.0 |
2.14.2 |
com.fasterxml.jackson.core |
jackson-annotations |
2.14.0 |
2.14.2 |
org.apache.xmlgraphics |
batik-xml |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-util |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-transcode |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-swing |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-svggen |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-svg-dom |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-script |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-parser |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-i18n |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-gvt |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-gui-util |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-ext |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-dom |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-css |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-constants |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-codec |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-bridge |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-awt-util |
1.11 |
1.16 |
org.apache.xmlgraphics |
batik-anim |
1.11 |
1.16 |
org.apache.xmlgraphics |
xmlgraphics-commons |
2.3 |
2.7 |
org.slf4j |
slf4j-api |
1.7.25 |
1.7.36 |
org.postgresql |
postgresql |
42.3.6 |
42.5.4 |
com.github.mreutegg |
laszip4j |
0.7 |
0.9 |
org.jdom |
jdom2 |
2.0.5 |
2.0.6.1 |
org.apache.commons |
commons-text |
1.6 |
1.10 |
org.apache.commons |
commons-lang3 |
3.8.1 |
3.12 |
org.apache.commons |
commons-compress |
1.5 |
1.22 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
xalan |
xalan |
2.7.2 |
xalan |
serializer |
2.7.2 |
org.jdom |
jdom |
1.1.3 |
javax.servlet |
javax.servlet-api |
3.1.0 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
jakarta.servlet |
jakarta.servlet-api |
4.0.4 |
org.apache.xmlgraphics |
batik-shared-resources |
1.16 |
Upgrade considerationLuciadLightspeed
LCD-12684
The following methods have been removed in favor of
#getInputStreamFactory
and
#setInputStreamFactory
:
- TLcdGeoTIFFModelDecoder#getImageInputStreamFactory
- TLcdGeoTIFFModelDecoder#setImageInputStreamFactory
- TLcdTABRasterModelDecoder#getImageInputStreamFactory
- TLcdTABRasterModelDecoder#setImageInputStreamFactory
- TLcdTFWRasterModelDecoder#getImageInputStreamFactory
- TLcdTFWRasterModelDecoder#setImageInputStreamFactory
- TLcdRasterModelDecoder#getTileInputStreamFactory
- TLcdRasterModelDecoder#setTileInputStreamFactory
- TLcdDIMAPModelDecoder#getImageInputStreamFactory
- TLcdDIMAPModelDecoder#setImageInputStreamFactory
Any usages of these removed input stream factories have been modified to use the above-mentioned sibling methods
instead. Please change any calls to these methods to
#getInputStreamFactory
or
#setInputStreamFactory
.
Upgrade considerationAdvanced Raster Connectors
LCD-12779
TLcdECWModelDecoder
has been upgraded to use ERDAS ECW JP2 SDK 6.1. The names of the JAR
files containing the native libraries reflect this change:
libecw-6.0.*.jar
is now
libecw-6.1.*.jar
. No other changes are necessary.
Upgrade considerationOGC Server
Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID |
Artifact ID |
Old Version |
New Version |
org.springframework.boot |
spring-boot |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-autoconfigure |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-json |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-logging |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-web |
2.1.2.RELEASE |
2.7.8 |
org.springframework |
spring-aop |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-beans |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-context |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-core |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-expression |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-jdbc |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-tx |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-web |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-webmvc |
5.1.4.RELEASE |
5.3.25 |
com.zaxxer |
HikariCP |
3.2.0 |
4.0.3 |
org.ow2.asm |
asm |
5.0.4 |
9.4 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.9.8 |
2.14.2 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.9.8 |
2.14.2 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.9.8 |
2.14.2 |
org.eclipse.jetty.websocket |
javax-websocket-client-impl |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
javax-websocket-server-impl |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-annotations |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-client |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-http |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-io |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-plus |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-security |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-server |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlet |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlets |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util-ajax |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-webapp |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-xml |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.slf4j |
jul-to-slf4j |
1.7.25 |
1.7.36 |
org.slf4j |
slf4j-api |
1.7.25 |
1.7.36 |
org.apache.logging.log4j |
log4j-api |
2.11.1 |
2.17.2 |
org.apache.logging.log4j |
log4j-to-slf4j |
2.11.1 |
2.17.2 |
ch.qos.logback |
logback-classic |
1.2.3 |
1.2.11 |
ch.qos.logback |
logback-core |
1.2.3 |
1.2.11 |
org.yaml |
snakeyaml |
1.23 |
1.33 |
org.eclipse.jetty.websocket |
websocket-api |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-client |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-common |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-server |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-servlet |
9.4.3.v20170317 |
9.4.50.v20221201 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
org.springframework.boot |
spring-boot-starter-jetty |
2.7.8 |
jakarta.annotation |
jakarta.annotation-api |
1.3.5 |
jakarta.websocket |
jakarta.websocket-api |
1.1.2 |
org.apache.tomcat.embed |
tomcat-embed-el |
9.0.71 |
org.ow2.asm |
asm-commons |
9.4 |
org.ow2.asm |
asm-tree |
9.4 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty |
jetty-unixsocket |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-schemas |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-rewrite |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-quickstart |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-proxy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-proxy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-nosql |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-memcached-sessions |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jndi |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jmx |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jaspi |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jaas |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-infinispan |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-gcloud-session-manager |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-deploy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-alpn-server |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-core |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-servlet |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-websocket |
9.4.3.v20170317 |
com.fasterxml.jackson.core |
jackson-core |
2.9.8 |
com.fasterxml.jackson.core |
jackson-databind |
2.9.8 |
javax.annotation |
javax.annotation-api |
1.3.2 |
javax.websocket |
javax.websocket-api |
1.0 |
Upgrade considerationTerrain Analysis Engine
Upgrade considerationInfrastructure Standards
Added a dependency on the third party library xatlas for efficient packing of texture islands in a texture map,
which is used in the Meshup pipeline.
Upgrade considerationMaritime Standards
LuciadLightspeed and LuciadFusion now apply the proper scale ranges for the levels in the AML cell files that are in a CATALOG.031.
Before, AML data had no scale range. Usually, these scale ranges are beneficial to your application, both to reduce loading
time and to reduce visual clutter.
For details, see TLcdS52DisplaySettings#getScaleDenominators
.
If you relied on always displaying all AML information in a catalog without scale range, you will now have to configure that.
You can do this by setting [100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000, 100000000]
as scale denominators on TLcdS52DisplaySettings
.
2022.1
2022.1.09
ImprovementAviation Standards
LCD-12899
Fixed the decoding of AIXM 5.1 data defined using the FAA SubscriberFile extension. This extension is used
by the NASR data distribution available at https://www.faa.gov/air_traffic/flight_info/aeronav/aero_data/NASR_Subscription/.
ImprovementAviation Standards
LCD-12901
Improved the visualization of AIXM 5.1 InformationService features: the features are now painted on terrain
with an appropriate AIS icon that indicates the presence of a communication service.
ImprovementDefense Symbology
LCD-12885
The rendering of APP-6A Sea Mine symbols has been improved. The outline of their icon is now painted black, where it used
to be painted in the affiliation color.

APP-6A Sea Mines before the change.

APP-6A Sea Mines after the change.
Bug fixLucy (LuciadLightspeed)
LUCY-5031
TLcyWMSClientAddOn
: in some cases, the "Feature info enabled" checkbox in the advanced
settings of the WMS connection dialog would be ignored. This has been fixed.
Bug fixLuciadLightspeed
LCD-12849
TLcdE57ModelDecoder
no longer throws an exception when the optional
images2D
and
data3D
nodes are missing in the
e57root
XML element of the data.
Bug fixLuciadLightspeed
LCD-12810
The SLD well-known mark icon "star" looked like an asterisk instead of a star. This has now been fixed,
ensuring visual alignment with the SLD styling capabilities of other products in the Luciad Portfolio.
Bug fixDefense Symbology
LCD-12891
Resolved some issues with the TLcdAPP6AObjectCustomizer
and TLcdMS2525bObjectCustomizer
where the possible values in the combo boxes were not updated properly after
setting a new object on them using the .setObject(Object)
method.
Additionally resolved an issue where the customized object's symbol code was not always updated properly when selecting an
new value in the customizer's combo boxes.
Bug fixDefense Symbology
The default hierarchy icon line color for Sea Mine symbols is now always Color.BLACK
instead
of the symbology style's color (TLcdDefaultAPP6AStyle.getColor
or
TLcdDefaultMS2525bStyle.getColor
).
This improves consistency with the other symbols where the symbology style's color is only used to color offset lines, direction
of movement arrows and other icon decorations.
2022.1.08
ImprovementLucy (LuciadLightspeed)
LUCY-5025
Buttons, toggle buttons, and popup menu buttons are now aligned consistently when displayed in a vertical toolbar.
Bug fixDefense Symbology
LCD-12819
Resolved an issue where NVG arrow, corridor and multipoint elements, when configured with a military symbol, were painted
with an incorrect width.
These elements were painted half as wide as the width specified.
Bug fixDefense Symbology
LCD-12866
Resolved an issue where the first two values of the 'Additional Information' modifier were used instead of the 'Altitude/Depth'
modifier in the following APP-6A symbol.
Additionally, the first value of the 'Additional Information' is now used in the width label instead of the third value for
the same symbol in both APP-6A and APP-6B.
Standard(s) |
Hierarchy Code |
Name |
APP-6A & APP-6B |
2.X.2.1.2.2.3 |
Standard-Use Army Aircraft Flight Route (SAAFR) |
Bug fixDefense Symbology
LCD-12865
Resolved an issue where the value of the 'Additional Information' modifier was used instead of the 'Width' modifier in the
labels of following symbols:
Standard(s) |
Set Code |
Symbol Code |
Name |
APP-6D & MIL-STD-2525d |
25 |
170100 |
Air Corridor |
APP-6D |
25 |
170101 |
Air Corridor With Multiple Segments |
APP-6D & MIL-STD-2525d |
25 |
170200 |
Low-Level Transit Route |
APP-6D & MIL-STD-2525d |
25 |
170300 |
Minimum-Risk Route |
APP-6D & MIL-STD-2525d |
25 |
170400 |
Safe Lane |
APP-6D & MIL-STD-2525d |
25 |
170500 |
Standard Use Army Aircraft Flight Route (SAAFR) |
APP-6D & MIL-STD-2525d |
25 |
170600 |
Transit Corridors |
APP-6D & MIL-STD-2525d |
25 |
170700 |
Unmanned Aircraft (UA) Route |
Bug fixDefense Symbology
LCD-12855
The missing static/dynamic modifier was added to symbols of the METOC branch of the MIL-STD-2525c symbol hierarchy.
The value of this modifier can be accessed by calling the method ILcdMS2525bCoded.getTextModifierValue
with the modifier key ILcdMS2525bCoded.sStaticDynamic
.
Bug fixDefense Symbology
LCD-12855
Fixed an issue were the possible values of the status modifier of MIL-STD-2525c symbols were not properly configured.
All the MIL-STD-2525c symbols were configured with the same set of possible values.
The list of possible values of the status modifier are now configured so the symbols from the different branches of the symbol
hierarchy
(War Fighting, Tactical, Signals Intelligence, Stability Operations and Emergency Management) have the correct set of possible
values, as defined in the MIL-STD-2525c standard.
2022.1.07
ImprovementAdvanced Raster Connectors
LCD-12801
The maximum size of a Luciad Panorama image tile is now configurable in the
TLcdLuciadPanoramaModelEncoder
constructor. Higher values of this parameter will cause the
full-quality output panoramic images to have fewer tiles with bigger file sizes.
Bug fixLuciadLightspeed
LCD-12848
Added detection and abort mechanism for a potential infinite recursion loop in
TLcdGeoJsonModelEncoder
.
This loop could occur when a cyclic reference exists between model element properties that also implement
ILcdDataObject
.
Bug fixAviation Standards
LCD-12845
Fixed a geometry edge case in the handling of AIXM 5.1 airspace compositions. Small inaccuracies in a composition
could prevent its use in a new airspace composition, causing the warning message
"Invalid number of points in LinearRing (found 3 - must be 0 or >= 4)".
2022.1.06
Bug fixLuciadLightspeed
LCD-12821
When passing a parallel rhumbline, TLcdEllipsoidRhumblineUtil.intersectionGeodesicRhumblineSFCT
would sometimes return an intersection
point that lies outside of that rhumbline.
Bug fixLuciadLightspeed
LCD-12798
TLcdGMLTransformer
: fixed a problem where GML files produced with LuciadLightspeed 2021.1
or earlier could no longer be decoded, because of a change in global element names.
Bug fixLuciadLightspeed
LCD-12835
TLcdImageIcon
: fixed a regression that caused the
paintIcon
method
taking custom dimensions to ignore these parameters.
Bug fixWeather & Environment Standards
LCD-12822
Resolved an issue where a
ConcurrentModificationException
could be thrown when disposing of a
TLcdNetCDFFilteredModel
.
Bug fixAviation Standards
LCD-12841
Enabling time filtering for AIXM 5.1 data containing holding patterns could trigger a NullPointerException
.
Bug fixDefense Symbology
LCD-12823
Fixed the width label of corridor type symbols like Air Corridor, Minimum Risk Route (MRR), Standard-Use Army Aircraft Flight
Route (SAAFR), Unmanned Aircraft (UA) Route and Low Level Transit Route (LLTR).
The label displayed a width value that was half the width of the symbol; the width label now displays the full width of the
symbol.
Bug fixDefense Symbology
LCD-12619
Bug fixDefense Symbology
LCD-12811
Fixed a typo in the display name of the ILcdAPP6ACoded.sDateTimeGroup
/ILcdMS2525bCoded.sDateTimeGroup
modifiers.
The display name used to be "Data/Time Group". This has been changed to "Date/Time Group".
Upgrade considerationOGC Server
LF-2368
The following OGC server sample dependencies have been upgraded:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.jackson.core |
jackson-core |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.core |
jackson-databind |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.9.8 |
2.14.0 |
2022.1.05
ImprovementLuciadLightspeed
LCD-12794
You can now customize the location of SLD external graphics at runtime. To support this use case, a new interface
ILcdSLDOnlineResourceResolver
can be implemented and configured on a
TLcdSLDContext
.
The interface allows to resolve
TLcdSLDOnlineResource
instances, which are used to represent
the location of external graphics in an SLD file.
ImprovementLucy (LuciadLightspeed)
LUCY-5022, LUCY-5023
TLcyLspMapAddOn
's terrain exaggeration slider is now also shown for 2.5D maps, i.e. 3D views with a non-geocentric reference.
The lighting controls are not shown anymore for 2.5D maps, because they are not supported.
ImprovementAviation Standards
LCD-12653
AIXM 5.1 holding patterns are now visualized in GXY and Lightspeed views, using an oval icon
that aligns with the turn direction and inbound course:

A holding pattern located at a navaid, with a right turn direction and an inbound course of 264 degrees.
ImprovementDefense Symbology
LCD-12797
ImprovementDefense Symbology
LCD-12753
Improved the rendering of the Sea Mine symbols when their fill is disabled for various standards.
When their symbol fill is disabled, the hierarchy representation is no longer filled, revealing additional details such as
the 'N' icon inside the "Ground (Bottom) Non-Mine Mine-Like Contact" MIL-STD-2525c symbol.
This makes the Sea Mine symbols more recognisable. This change affects the Sea Mine symbols in the following standards: APP-6D,
MIL-STD-2525c, MIL-STD-2525d.

Unfilled MIL-STD-2525c Sea Mines before the change.

Unfilled MIL-STD-2525c Sea Mines after the change.
ImprovementDefense Symbology
LCD-11202
The rendering of APP-6B Sea Mine symbols has been improved. The outline of their icon is now painted in the line color configured
in their
TLcdDefaultAPP6AStyle
, where it used to be painted in the affiliation color.

APP-6B Sea Mines before the change.

APP-6B Sea Mines after the change.
ImprovementInfrastructure Standards
LCD-12528
Improved error message when trying to decode a DGN dataset to which the user has no access rights.
Bug fixLuciadLightspeed
LCD-11874
Bug fixLuciadLightspeed
LCD-12805
In some cases, the XML framework could split up text content containing entities like the ampersand. This has been resolved.
Bug fixLuciadLightspeed
LCD-12799
Bug fixOGC Server
LCD-12806
The WFS server can now handle an unbound property name in a WFS Transaction Update request by interpreting
it in the feature type's namespace.
Bug fixAviation Standards
LCD-12807
Bug fixDefense Symbology
LCD-12784
Corrected the jet stream symbol for the APP-6A, APP-6B, APP-6C symbologies.

The corrected symbol for the APP-6A, APP-6B and APP-6C jet stream symbols.
Bug fixDefense Symbology
LCD-12781
Changed the default label position from "EAST" to "CENTER" for all symbols where the location is not predefined
(all freeform/polygon shaped tactical graphics), for all supported symbologies (MIL_STD_2525b, MIL_STD_2525c,
MIL_STD_2525d, APP-6A, APP-6B, APP-6C, APP-6D) to closer follow the specifications.
Note that you can override this default by using
ILinSymbologyStyle.setLabelPosition(int aPosition)
Bug fixDefense Symbology
LCD-12780
Corrected the icons for the APP-6A and APP-6B Thunderstorm symbols W*A*ST----***** and W*A*STR---*****.

The corrected icons for the APP-6A and APP-6B Thunderstorm symbols.
Bug fixDefense Symbology
LCD-12616
Fixed the definition for MIL-STD-2525d and APP-6D Linear Targets symbols, which, according to the specification,
require "exactly" two anchor points in stead of "at least" two.
2022.1.04
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
LUCY-5021
TLcySearchAddOn
now also takes an
ILcdDataObject's
nested properties into account.
ImprovementLuciadLightspeed
LCD-12228
The Maven POM files for our third party dependencies, which we provide with the release, are now identical to the ones that
are publicly available.
ImprovementAviation Standards
LCD-12795
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 25.0 to version 26.0.
Bug fixLuciadLightspeed
LCD-12796
TLcdGeoJsonModelEncoder
now correctly encodes data objects with list properties which in turn
also contain data objects. Before this fix, the type names of those list elements would not be included in the
resulting JSON.
Bug fixLuciadLightspeed
LF-2347
TLcdE57ModelDecoder
now supports E57 data containing more points than
Integer.MAX_VALUE
, regardless of the number of points to be read set with the
TLcdE57ModelDecoder#setMaxNumberOfPoints
method.
Bug fixLuciadLightspeed
LF-2347
TLcdLASModelDecoder
now supports LIDAR data containing more points than
Integer.MAX_VALUE
, regardless of the number of points to be read set with the
TLcdLASModelDecoder#setMaxNumberOfPoints
method.
Bug fixLuciadLightspeed
LCD-12770
Bug fixLuciadLightspeed
LCD-12786
The value returned by TLcdSLDFeatureTypeStylePainter#getCreationClickCount
was not correct
in case of a model with multiple geometry types and a layer with SLD styling rules that filter on the geometry type.
This could lead to incorrect object creation behavior, which relies on this method to know how many points are needed.
Bug fixLuciadLightspeed
LCD-12785
The built-in custom OGC function TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME
,
used to identify the type of a geometry value, could not handle GML polygons.
Bug fixTiling Engine
LF-2347
2022.1.03
ImprovementInfrastructure Standards
LCD-12690
Changed the conversion of PolyMesh objects in Binz datasets to OGC 3D Tiles: sharp edges (> 30°) will now be
preserved instead of smoothed out.
ImprovementInfrastructure Standards
LCD-12605
TLcd3DTilesProcessorBuilder
: Now produces textures at multiples of four for data sources
coming from reality capture data. This improves the ability for clients to compress the textures on the GPU.
ImprovementInfrastructure Standards
LCD-12385
ImprovementInfrastructure Standards
LCD-12776
Visualisation of DWG datasets now correctly handles line width and dash lengths when the unit of measurement is set
in the model reference.
Bug fixLuciadLightspeed
LCD-12772
When transforming from a grid reference that uses
TLcdGeodetic
to a geodetic reference, bounds that extend over the date line
were transformed into bounds that don't include the date line.
Bug fixLuciadLightspeed
LCD-12773
The built-in custom OGC function TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME
,
used to identify the type of a geometry value, could not handle GML geometry properties.
Bug fixDefense Symbology
LCD-12754
Fixed a configuration issue with the MIL-STD-2525c "Law Enforcement - Prison" (6.X.3.4.11) symbol where it was not
possible to set the symbol's echelon modifier value to "Installation" or "Feint Dummy Installation".
This which caused the Prison symbol to be rendered without the installation echelon indicator.
Bug fixInfrastructure Standards
LCD-12750
2022.1.02
Bug fixLucy (LuciadLightspeed)
LCD-12431, LCD-12360
TLcyModelReferenceChooserPanel
didn't open correctly when lcd_geoid_resources.jar is missing from the class path.
Now it opens correctly, but it will just not add the references to the panel that depend on the resources in lcd_geoid_resources.jar.
Bug fixLuciadLightspeed
LCD-12431
When lcd_geoid_resources.jar is not added to the class path,
TLcdEPSGReferenceParser
would throw a
RuntimeException
instead of a
ParseException
when decoding a reference that makes use of the resources in that jar.
Bug fixLuciadLightspeed
LCD-12745
Fixed an issue that resulted in the error SQL logic error (near "-": syntax error)
when opening certain GeoPackage files.
2022.1.01
ImprovementLuciadLightspeed
LCD-8587
Utility methods were added to calculate the distance of geodetic and rhumb lines, taking into account the point elevation.
See:
TLcdEllipsoidUtil#geodesicDistance3D
TLcdEllipsoidRhumblineUtil#rhumblineDistance3D
TLcdSphereUtil#greatCircleDistance3D
TLcdSphereRhumblineUtil#rhumblineDistance3D
ImprovementLuciadLightspeed
LCD-12672
ImprovementDatabase Connectors
LCD-12730
The MS SQL decoder will now decode the following M-dimensional geometries to
ILcdShape
objects that provide access to the M coordinate:
POINT
: TLcdLonLatMPoint
,
TLcdXYMPoint
,TLcdLonLatHeightMPoint
or
TLcdXYZMPoint
LINESTRING
: TLcdLonLatMPolyline
,
TLcdXYMPolyline
, TLcdLonLatHeightMPolyline
or
TLcdXYZMPolyline
POLYGON
: TLcdLonLatMPolygon
,
TLcdXYMPolygon
, TLcdLonLatHeightMPolygon
or
TLcdXYZMPolygon
MULTIPOINT
: ILcdShapeList
containing TLcdLonLatMPolypoint
,TLcdXYMPolypoint
,
TLcdLonLatHeightMPolypoint
or TLcdXYZMPolypoint
objects
MULTILINESTRING
: ILcdShapeList
containing TLcdLonLatMPolyline
, TLcdXYMPolyline
,
TLcdLonLatHeightMPolyline
or TLcdXYZMPolyline
objects
MULTIPOLYGON
: ILcdShapeList
containing TLcdLonLatMPolygon
,TLcdXYMPolygon
,
TLcdLonLatHeightMPolygon
or TLcdXYZMPolyline
objects
ImprovementOGC Server
LCD-12719
The sample OGC server now allows to request the XML schemas from the WMS server capabilities.
Bug fixLuciadLightspeed
LCD-12741
When using a display scale != 100%, labels could sometimes behave in an unstable manner. This is especially
noticeable for labeling algorithms that continuously
update label locations, like
TLspContinuousLabelingAlgorithm
.
Bug fixLuciadLightspeed
LCD-12721
TLcdE57ModelDecoder
no longer throws an
IOException
for files
that contain more than
Integer.MAX_VALUE
points, provided that
setMaxNumberOfPoints()
is first called to set a lower point count.
Bug fixOGC Server
LCD-12724
The fix implemented in LCD-12679
was not complete.
The WMS capabilities now advertise the SLD operations in the correct XML namespace.
Bug fixInfrastructure Standards
LCD-12688
TLcdIFCModelDecoder
now supports unit conversions with
IfcReal
or
IfcInteger
factors
instead of throwing a
NullPointerException
.
Bug fixMaritime Standards
LCD-12740
Fixed an issue causing errors when opening cell files created by old versions of LuciadLightspeed / LuciadFusion.
Bug fixMaritime Standards
LCD-12532
Fixed an issue in TLcdS57ModelEncoder that caused exported cells to crash 7Cs SeeMyEnc when opening them.
2022.1
New featureLuciadLightspeed
LuciadLightspeed now ships with a component named lcd_aws
. This component contains an
ILcdInputStreamFactory
that is capable of reading files from Amazon S3 cloud storage. Most
model decoders that implement ILcdInputStreamFactoryCapable
automatically pick up this
factory by means of the services registry, and are now able to decode sources directly from S3. Please refer to
Supported data types to find out which
formats are supported exactly.
The implementation of this factory, named S3InputStreamFactory
, is also available in sample
code. It can be used as an example for developers aiming to add support for a different (cloud) storage
technology, or simply in case a modified version of the factory is desired. For example to set the
S3Client
that is used, or changing the default AWS Credentials Provider.
New featureLuciadLightspeed
LuciadLightspeed now has support for the Canadian Geodetic Vertical Datum of 2013, as well as the associated EPSG references
EPSG:6649 to EPSG:6665, EPSG:9711, EPSG:9714 and EPSG:9715.
ImprovementLucy (LuciadLightspeed)
LUCY-5003
TLcyAPP6AAddOn
/
TLcyMS2525bAddOn
can now decode any
APP-6 version and MIL-STD 2525 version, respectively, regardless of the configured symbology.
Decoding and encoding also supports models with mixed versions of the same symbology (e.g. APP-6A and APP-6D).
The configured add-on symbology is now only used for the creation of new symbols.
ImprovementLucy (LuciadLightspeed)
LUCY-5002
TLcySearchAddOn
/
SearchAddOn
now supports search services for area coordinates.
ImprovementLuciadLightspeed
LCD-12572
The performance of TLcdEllipsoidRhumblineUtil#intersectionGeodesicRhumblineSFCT
has improved
one to two orders of magnitude for the case where the rhumbline is a meridian or a parallel.
ImprovementLuciadLightspeed
Added the
findAndDecodeMetadata
method to
ILcdMetadataDecoder
. This
method returns the decoded metadata, together with the location of the metadata files.
ImprovementLuciadLightspeed
ImprovementOGC Server
LCD-12354
You can now plug in an
ILcdWFSClientModelEncoderFactory
by adding an
@LcdService
annotation
to the implementation. This interface is used by WFS services to encode features. Only the factory with the highest
priority is used. By default, a factory with support for GML 2 / 3.1 / 3.2 and GeoJSON is used.
Bug fixLuciadLightspeed
LCD-12479
Fixed an issue where an SLD styler would not always initialize correctly when combined with a custom
ILspMapScaleProvider
, causing objects to receive wrong styling until a repaint was forced.
Bug fixLuciadLightspeed
LCD-12340
A custom
ILspMapScaleProvider
can be used on a layer in a 3D view now. Before, optimizations
would cause the map scale provider to not be properly taken into account.
Bug fixLuciadLightspeed
LCD-12430, LCD-12522
Bug fixLuciadLightspeed
LCD-12699
TLcdEllipsoidUtil#geodesicArea
could return incorrect results for triangles with coinciding points.
Bug fixInfrastructure Standards
LCD-12641
Upgrade considerationLuciadLightspeed
For its new S3 functionalities, LuciadFusion makes the use of some new libraries:
- AWS SDK Annotations (version 2.17.168)
- AWS SDK Apache-client (version 2.17.168)
- AWS SDK Arns (version 2.17.168)
- AWS SDK Auth (version 2.17.168)
- AWS SDK Aws-core (version 2.17.168)
- AWS SDK Aws-query-protocol (version 2.17.168)
- AWS SDK Aws-xml-protocol (version 2.17.168)
- AWS SDK Http-client-spi (version 2.17.168)
- AWS SDK Json-utils (version 2.17.168)
- AWS SDK Metrics-spi (version 2.17.168)
- AWS SDK Profiles (version 2.17.168)
- AWS SDK Protocol-core (version 2.17.168)
- AWS SDK Regions (version 2.17.168)
- AWS SDK S3 (version 2.17.168)
- AWS SDK Sdk-core (version 2.17.168)
- AWS SDK Third-party-jackson-core (version 2.17.168)
- AWS SDK Utils (version 2.17.168)
- Reactivestreams (version 1.0.3)
- Eventstream (version 1.0.1)
A few libraries were also updated:
- Commons-codec (version 1.11)
- Httpcomponents Httpclient (version 4.5.13)
- Httpcomponents Httpcore (version 4.4.13)
- org.reactivestreams reactive-streams New 1.0.3 MIT)
- Slf4j (version 1.7.36)
Upgrade considerationLuciadLightspeed
The following methods have been deprecated:
- TLcdGeoTIFFModelDecoder#getImageInputStreamFactory
- TLcdGeoTIFFModelDecoder#setImageInputStreamFactory
- TLcdTABRasterModelDecoder#getImageInputStreamFactory
- TLcdTABRasterModelDecoder#setImageInputStreamFactory
- TLcdTFWRasterModelDecoder#getImageInputStreamFactory
- TLcdTFWRasterModelDecoder#setImageInputStreamFactory
- TLcdRasterModelDecoder#getTileInputStreamFactory
- TLcdRasterModelDecoder#setTileInputStreamFactory
- TLcdDIMAPModelDecoder#getImageInputStreamFactory
- TLcdDIMAPModelDecoder#setImageInputStreamFactory
The getters now simply return the result of their sibling
#getInputStreamFactory
, while the
setters no longer have any effect. Please change any calls to these methods to
#getInputStreamFactory
or
#setInputStreamFactory
instead. In the next
major release, these methods will be removed entirely.
Upgrade considerationLuciadLightspeed
The default quality of
TLspLabelingAlgorithm
,
TLspOnPathLabelingAlgorithm
,
TLspInPathLabelingAlgorithm
and
TLspCurvedPathLabelingAlgorithm
has been raised
to 1 iso 0.5. This means that by default, no labels will be dropped because of the quality setting. When you have a layer
that
has a lot of labeled objects, in some cases this might result in more work being done in the background, and in slower label
updates.
If this is the case, you can go back to the old behavior by calling the setQuality method of those algorithms with a value
of 0.5.
Upgrade considerationLuciadLightspeed
LCD-8329
Upgrade considerationAdvanced Raster Connectors
LCD-12358
TLcdECWModelDecoder
has been upgraded to use ERDAS ECW JP2 SDK 6.0. The names of the JAR
files containing the native libraries reflect this change:
libecw-5.4.*.jar
is now
libecw-6.0.*.jar
. No other changes are necessary.
Upgrade considerationOGC Server
LCD-12725
The dependency to the SLF4J Java Util Logging implementation (slf4j-jdk14.jar) has been removed. This dependency was only
used by the OGC Services sample in LuciadLightspeed.
LuciadFusion Platform required the use of the Logback implementation of SLF4J (logback-classic.jar). The OGC Services sample
will now also use the Logback implementation of SLF4J.
The Logback implementation of SLF4J is now included in the third party sample dependencies of LuciadLightspeed.
Upgrade considerationInfrastructure Standards
LCD-12659
To ease accessing the properties of DWG objects, the DWG model decoders
TLcdDWGModelDecoder
and
TLcdDWGModelListDecoder
now by default decode extended entity types.
As a result, the objects in DWG models now by default include extended entity types if present in the data.
This can be reverted by calling the method
clearExtendedEntityTypeSelection()
on the decoder.
2022.0
2022.0.16
ImprovementLuciadLightspeed
LCD-12643
TLcdEPSGReferenceParser
now supports references based on the IG05/12 Intermediate datum:
- EPSG:6988
- EPSG:6989
- EPSG:6990
- EPSG:6991
ImprovementLuciadLightspeed
The builder of
TLcdSLDGraphic
has a new method
anchorPoint
to set the
anchor point of the graphic.
ImprovementAviation Standards
LCD-12656
Two new methods have been added to
com.luciad.ais.model.procedure.ILcdProcedureLeg
:
getOriginalAltitudeUpper
getOriginalAltitudeLower
These methods return the upper and lower altitude with the same value and unit of measure as stored in the source file.
ImprovementAviation Standards
LCD-12661
The AIXM 5.1 decoder now also supports resolving feature links that use the prefix "urn:uuid." instead
of the common "urn:uuid:" prefix.
ImprovementInfrastructure Standards
LCD-12682
Bug fixLuciadLightspeed
LCD-12694
TLspLabelPainter
: fixed a memory leak that could happen when removing objects from a model
and firing a style
event in the styler (
ALspStyler#fireStyleChangeEvent
) at the same time.
Bug fixLuciadLightspeed
LCD-12681
The 2020.1 release caused unexpected shifting of layer content when the deprecated ILcdGXYView#setPaintInBackground
functionality was active. This has been resolved.
Bug fixLuciadLightspeed
LCD-12691
Fixed an issue that in some scenarios could cause exceptions to be thrown when painting images with very large resolutions.
Bug fixOGC Server
LCD-12679
The WMS server now generates WMS capabilities responses using the official XML schemas for WMS
and the Styled Layer Descriptor (SLD) extension.
Bug fixAviation Standards
LCD-12639
The ARINC layer builder
TLspARINCLayerBuilder
defines a list of ARINC-specific SLD files
in location
TLspARINCLayerBuilder#SYMBOLOGY_ENCODING_FILES_LOCATION
. The default style
for runways
Runway.sld
did not define the fill style correctly and has been fixed.
Bug fixAviation Standards
LCD-12662
The AIXM 5.1 decoder did not support holding pattern locations defined by a link to another AIXM 5.1 feature.
Bug fixDefense Standards
LCD-12685
TLcdNITFModelDecoder#decode
now throws an IOException
instead of an
OutOfMemoryError
when parsing a corrupt NITF tagged record extension.
Bug fixDefense Symbology
LCD-12683
TLcdGARSFormat
now also parses GARS coordinate strings with a cell column consisting of fewer than 3 digits.
2022.0.15
ImprovementLucy (LuciadLightspeed)
LUCY-4998
TLcyWorkspaceAddOn
now always saves workspaces asynchronously, even when exiting Lucy.
To allow doing so, ILcyLucyEnv#setLucyEnvState
now allows revoking a veto.
ImprovementLuciadLightspeed
LCD-12670
New custom OGC functions have been introduced which operate on dates: see
TLcdOGCVendorSpecificFunctions.DATE_FORMAT_FUNCTION_NAME
and
TLcdOGCVendorSpecificFunctions.DATE_PARSE_FUNCTION_NAME
.
ImprovementLuciadLightspeed
LCD-12669
The OGC SE function FormatDate
now also supports properties of type
String
, java.util.Date
and java.util.GregorianCalendar
.
ImprovementOGC Server
LCD-12655
A WMS GeoJSON GetFeatureInfo response could not be generated if the geometry of the included feature(s) was too complex for
GeoJSON.
To improve this, the response now uses the bounding box of those geometries, encoded as a GeoJSON-compatible polygon.
ImprovementInfrastructure Standards
LCD-12382
ImprovementInfrastructure Standards
LCD-12633
Fixed a bug where conversion of small objects from a CAD input dataset to OGC 3D Tiles
could lead to an incorrect mesh.
Bug fixLucy (LuciadLightspeed)
TLcyIFCAddOn
: the file open dialog now explicitly lists IFC as supported format.
Bug fixAdvanced Raster Connectors
LCD-12454
Fixed a bug that caused inaccurate results when calculating Luciad Panorama images from a Pegasus dataset
decoded with
TLcdPegasusModelDecoder
.
Bug fixDatabase Connectors
LCD-12652
Fixed an issue that prevented the TLcdMSSQLModelDecoder from determining the geometry type if a schema was used in the table
name.
This also fixes the issue of not being able to load any data when a schema was used in the table name.
Bug fixOGC Server
LCD-12665
The WFS server did not support the DESC SortBy parameter in WFS 2.0 GetFeature HTTP GET requests.
2022.0.14
ImprovementLucy (LuciadLightspeed)
LUCY-4999
TLcyTreeTableViewAddOn/TreeTableViewAddOn
now renders file URLs as clickable links, just as it does with HTTP URLs.
Bug fixLucy (LuciadLightspeed)
LUCY-5000
TLcyMapEditUnitAddOn
: when changing the default precision of a unit to zero in the configuration file,
the precision actions would break. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4997
TLcyASTERIXDecoderAddOn
: fixed an issue in the domain object used for simulated ASTERIX tracks,
which sometimes caused an
IllegalArgumentException
when exploring the data in the table view.
Bug fixOGC Server
LCD-12647
A change in the default XML element name suffix used by WFS GetFeature responses since version 2022.0 could lead to
feature type identification issues when using WFS transactions. This has been fixed.
Bug fixInfrastructure Standards
LF-2285
Bug fixTiling Engine
LF-2303
Fixed an incorrectly formatted table in the article "Pre-processing raster data using the tiling engine".
2022.0.13
ImprovementLuciadLightspeed
LCD-11239
The accuracy of the TLcdCoverageModelDecoder#canDecodeSource
methods has been improved
to only accept LuciadFusion coverage XML sources.
Bug fixLuciadLightspeed
LCD-12618
The Lightspeed map scale configuration improvements introduced in 2022.0 caused that Lightspeed
layers styled with SLD were not always correctly refreshed at different scales.
Bug fixLuciadLightspeed
LCD-12598
When setting the quality setting of
TLspOnPathLabelingAlgorithm
(and other labeling algorithms) to 100%, it could still
happen that the algorithm didn't try to place all labels.
Bug fixLuciadLightspeed
LCD-12598
Bug fixLuciadLightspeed
LCD-12609
The WMS client proxy did not filter out WMS layers from the request when they declare a dimension (range)
and the client dimension value was out of range for the WMS layer.
In such case the WMS server responds with an invalid sample dimension value
.
This was specifically problematic when requesting multiple layers having the same dimension but with different
non-overlapping ranges.
Bug fixLuciadLightspeed
LCD-12558
Fixed an issue that would cause OBJs containing faces without texture coordinates to not show textures at all.
Bug fixLuciadLightspeed
LCD-12624
In a Lightspeed view, labels that are anchored to an other label using a different
TLspPaintRepresentation
were sometimes not updated correctly when the domain object changes.
Bug fixAdvanced Raster Connectors
LCD-12591
TLcdGeospatialPDFModelDecoder#decode
will now correctly parse UTF-16 Little Endian
encoded metadata.
Bug fixOGC Server
LCD-12542
When using a property name filter in a WFS GetFeature request, it is no longer needed to include the
unique identifier property, if defined for the requested data; this is a property
annotated with a
TLcdPrimaryKeyAnnotation
. This fix makes sure that the response contains a
valid unique identifier for each feature, regardless of any WFS property name filter.
Bug fixOGC Server
LCD-12608
When making a WMS request using a single dimension value for a layer which declares to have a range with resolution
0
, the server would incorrectly return an error response with
invalid sample dimension value
.
Bug fixAviation Standards
LCD-12611
The ARINC handler
TLcdARINCMinimumSectorAltitudeHandler
did not correctly support ARINC
424 version 15, which uses a different Minimum Sector Altitude data structure than more recent versions.
Bug fixDefense Symbology
LCD-12598
Military graphics with a lot of labels didn't always have all their labels placed.
Bug fixDefense Symbology
LCD-12615
Upgrade considerationLuciadLightspeed
LF-2299
The jackson-core, jackson-databind and jackson-annotations libraries have been updated to version 2.14.0.
The previous version of jackson-databind contained a security vulnerability: CVE-2021-20190.
2022.0.12
ImprovementDefense Symbology
LCD-12586
It is now possible to enable/disable strict segmentation of tactical graphics.
Disabling strict segmentation will limit the amount of times information is repeated on a symbol.
Strictly speaking, the military standards defines that some symbols need to repeat all information for each segment of 2 consecutive
anchor points.
This is not very useful in realistic situations.
For example, if you create a "Main Supply Route" that matches an actual route in the real world. It could be constructed out
of many thousands of anchor points, forming very small segments.
Having to repeat the information thousands of times is not desired as labels will overlap with each other and can cause performance
issues when zooming out far enough where you are able to see the whole symbol.
This strict segmentation can be enabled/disabled with the following methods:
Bug fixLuciadLightspeed
LCD-12604
Fixed an issue where the Bill Of Materials (BOM) POM file used in Maven contained incorrect groupIds for Luciad dependencies.
Bug fixLuciadLightspeed
LCD-12601
When using the
TLspPopupMenuSelectionCandidateHandler
and clicking on a menu item, the corresponding object will no
longer be deselected and reselected multiple times. If it was already selected it will just keep its selection
state.
Bug fixLuciadLightspeed
LCD-12606
The OGC Web Client HTTP(S) connection class
TLcdOWSHttpTransport
no longer throws an exception when
the server returns a valid but empty response.
Bug fixLuciadLightspeed
LCD-12597
The OGC Web Client HTTP(S) connection class
TLcdOWSHttpTransport
did not support services that redirect
from HTTPS to HTTP or vice versa in combination with HTTP(S) Basic Authentication.
Bug fixDatabase Connectors
LCD-12596
Fixed an issue with the
TLcdPostGISModelEncoder
that caused the following warning to appear in the database log when exporting:
WARNING: OGC WKB expected, EWKB provided - use GeometryFromEWKB() for this
.
Bug fixDefense Symbology
LCD-12603
Bug fixDefense Symbology
LCD-12593
Resolved a performance issue in Lightspeed views that occurred when painting tactical graphics with many labels.
Previously a new
ILspLabelingAlgorithm
was created each time a label was placed.
We now reuse the
ILspLabelingAlgorithm
where feasible.
Bug fixDefense Symbology
LCD-12502
Fixed an issue where the NVG fill-pattern "DiagonalUpwardLine" was misspelled as "DiagonalUpLine".
Bug fixDefense Symbology
LCD-12501
Resolved an issue where NVG files containing empty text elements would cause a NullPointerException
in GXY views.
2022.0.11
ImprovementInfrastructure Standards
LCD-12564
Improved conversion of large circular and elliptical objects from a CAD input dataset to OGC 3D Tiles,
leading to smoother curves at the highest level of detail.
Bug fixLuciadLightspeed
LCD-12566
TLspOnPathLabelingAlgorithm
didn't always clean up its terrain listeners correctly, due to a memory leak. When using a lot
of different algorithm instances, this could have a noticeable effect on performance, even after removing the layer using
these algorithms.
Bug fixLuciadLightspeed
LCD-12575
Fixed an issue where the relaxngDatatype
library was downloaded twice and therefore found
twice in the classpath in Maven-based projects built using the product POM files.
Bug fixLuciadLightspeed
LCD-12588
samples.common.dimensionalfilter.model.FilterProvider
and
TLcyDimensionalFilterAddOn
now correctly interpolate non-double Number types.
Previously, interpolation could lead to a
ClassCastException
.
Bug fixLuciadLightspeed
LCD-12580
Bug fixLuciadLightspeed
LCD-12573
The
TLcdDTEDDirectoryModelDecoder
would attempt to use incorrect filenames in specific cases.
This happened for DTED directory data sets where the bounding box extent would cross the 180 meridian.
As example for a data extent with a location of
(172.0, -44.0)
and a width of
21.0
and height
116.0
.
Bug fixAviation Standards
LF-2290, LCD-12201, LCD-10311
Bug fixMaritime Standards
LCD-12560
Fixed an erroneous warning about missing cell update files in case of cell re-issues.
This was just a warning, the actual updates were applied correctly.
Note that all available update files are attempted to be applied, regardless of missing intermediate updates.
2022.0.10
ImprovementAviation Standards
LCD-12524
A new ARINC handler
TLcdARINCMinimumSectorAltitudeHandler
has been added to support
the decoding of Minimum Sector Altitude objects. These objects define the lowest altitudes that may be used
safely in the presence of terrain and obstacles. Decoded objects are of the type
ILcdMinimumSectorAltitude
, which can contain one or more
ILcdSector
objects that define the minimum altitude for an area represented by an arc band. The data types of these objects
are respectively
TLcdARINCDataTypes#MinimumSectorAltitude
and
TLcdARINCDataTypes#Sector
.
ImprovementDefense Symbology
LCD-12549
It is now possible to configure the icon type of the "Antitank Obstacles, Tetrahedrons, Dragon’s Teeth and Other Similar Obstacles"
symbols in APP-6A and APP-6B.
These symbols can have different icons depending on their type: "Fixed And Prefabricated", "Movable" or "Movable And Prefabricated".
Unfortunately the APP-6A and APP-6B specifications do not indicate how this obstacle type should be encoded in the symbol.
The approach taken here is similar to other products: the obstacle type is encoded in the "Type Of Equipment" text modifier
of the symbol.
The value should either be one of the following values (casing is not important):
Obstacle Type |
Possible values |
Fixed And Prefabricated |
"Fixed And Prefabricated", "F", "01" |
Movable |
"Movable", "M", "02" |
Movable And Prefabricated |
"Movable And Prefabricate"1, "P", "03"
|
1There is no "d" at the end "Movable And Prefabricate" because the max length of the "Type Of Equipment" text modifier is 24.
|
ImprovementInfrastructure Standards
LCD-12555
We now support IFC files larger than 1.5GB.
Bug fixLuciadLightspeed
LCD-12563
Fixed an issue where the Bill Of Materials (BOM) POM file contained incorrect groupId and/or artifactId for some dependencies.
Bug fixLuciadLightspeed
LCD-12561
When a rotated grid reference is formatted as WKT and parsed again, it's possible that the rotation changes slightly due to
rounding errors.
The transformation classes now take this into account, and consider the rotation as equal in that case.
Bug fixLucy (LuciadLightspeed)
LUCY-4994
TLcyWorkspaceAddOn
: improved robustness when decoding a workspace containing problematic
data sources that include curly braces.
Bug fixReal-time Engine
LCD-12541
Bug fixAviation Standards
LF-2289
The TLcdDAFIFModelDecoder#canDecodeSource
method allowed transaction files (files in T_TRANS
directory) even though these files are not supported yet. To prevent issues when decoding these files,
TLcdDAFIFModelDecoder#canDecodeSource
now returns false for transaction files.
2022.0.09
ImprovementDatabase Connectors
LCD-12538
The PostGIS decoder will now decode the following M-dimensional geometries to
ILcdShape
objects that provide access to the M coordinate:
Bug fixLuciadLightspeed
LCD-12550
Fixed potential
ConcurrentModificationException
when trying to take a read lock on a
TLcdModelList
, while a different thread is adding or removing models to this list, even when
that thread correctly took a write lock.
Bug fixLuciadLightspeed
LCD-12527
In a Lightspeed view, labels that are anchored to an other label were sometimes not displayed.
2022.0.08
Bug fixLuciadLightspeed
LCD-12540
Fixed an issue in the Maven POM files which caused that the native libraries of the LWJGL library could not be resolved.
Bug fixLuciadLightspeed
LCD-12533
Fixed an issue where the Bill Of Materials (BOM) POM file was ignored during the dependency resolution of the sample maven
project.
Bug fixLuciadLightspeed
LCD-12534
Fixed an issue in decoding of GLTF
data related using translation-rotation-scale
parameters instead of a transformation matrix. Affected data would have objects with a bad scale, which
has now been corrected. This affects the 3D Tiles
format, as that is based on
GLTF
internally.
Bug fixInfrastructure Standards
LCD-12530
Bug fixInfrastructure Standards
LCD-12518
TLcd3DTilesProcessorBuilder
: Fixed a
NullPointerException
in some edge
cases when converting a GLB file to 3D Tiles with a mix of repeating textures and base colors.
2022.0.07
ImprovementLuciadLightspeed
LCD-12521
A new TLcdEllipsoidUtil#computeBufferContour2D
method was added with an additional parameter to control the amount of points that is used
for caps and joins. This can for example be used to simplify buffer contours and improve rendering performance when you show
a large amount of buffers on the view.
ImprovementInfrastructure Standards
LCD-12506, LCD-12525, LCD-12535
Fixed several bugs where converting specific cylinder objects from a CAD input dataset to OGC 3D Tiles
could lead to an incorrect mesh.
Bug fixLucy (LuciadLightspeed)
LUCY-4992
TLcyToteAddOn
/
TableViewAddOn
: improved robustness when showing
data with invalid URIs.
Bug fixLuciadLightspeed
LCD-12482
TLcdLASModelDecoder
no longer throws an
IOException
for files that
contain more than
Integer.MAX_VALUE
points, provided that
setMaxNumberOfPoints()
is first called to set a lower point count.
2022.0.06
ImprovementLucy (LuciadLightspeed)
LUCY-4983
ALcyWorkspaceCodec
: the new method
decodeWorkspaceDelegateCodecIDs
allows inspecting the used workspace delegate codecs of a workspace.
In addition, the new protected method
encodeObject
allows inspecting the used
workspace object codecs during the encoding of a workspace.
This can help ascertain workspace compatibility.
ImprovementLuciadLightspeed
LCD-12488, LCD-12487
A Bill Of Materials (BOM) POM file is now provided with the Maven POM files in a release (build/maven/pom
).
ImprovementOGC Server
LCD-12511
The WFS server could return a service exception report for a valid WFS 2.0 GetFeature request that included
an OGC Filter combining an IsLike
condition with other property-based conditions.
ImprovementAviation Standards
LCD-12500
The AIXM 5.1 features RunwayCentrelinePoint and RunwayBlastPad were not painted on terrain, causing the features to
disappear on a 3D view in case terrain data was loaded.
Bug fixLuciadLightspeed
LCD-12504
Bug fixLuciadLightspeed
LCD-12451
Fixed an issue in the Maven deployment script (
build/maven/deploy.xml
), where it would consider some thirdparty libraries that aren't available on the
central Maven repository as public.
Bug fixLuciadLightspeed
LCD-11627
An image outline style defined in an SLD raster symbolizer was not visualized in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-12498
The SLD Lightspeed implementation now supports offset lines having a stroke-width smaller than 1.
Bug fixReal-time Engine
LCD-12510
When a Lightspeed view is configured on a
TLcdSimulator
, the simulator now uses that view's
ILspView#invokeLater
for updating the simulator model. Previously, it would always schedule
model changes on the AWT Thread, which was not compatible with
TLspFXView
.
2022.0.04
ImprovementLucy (LuciadLightspeed)
LUCY-4984
Tweaked several workspace codecs so that they don't save empty chunks in the workspace. This reduces the
dependency of saved workspaces on add-ons that aren't used.
ImprovementAviation Standards
LCD-12489
Upgraded the included Digital NOTAM Event XML Schema to support AIXM 5.1.1.
ImprovementDefense Symbology
LCD-12452
The decluttering of text modifier labels of military icon symbols is now enabled by default in Lightspeed views, bringing
it in line with the default functionality of GXY views.
It is now possible to configure the declutter group of military icon symbol labels by submitting a group along with a
TLspAPP6ASymbolStyle
/
TLspMS2525bSymbolStyle
in your label styler implementation.
ImprovementInfrastructure Standards
LCD-12486
Bug fixAdvanced Raster Connectors
LCD-12481
TLcdGeospatialPDFModelDecoder#decode
will now correctly parse UTF-16 encoded metadata.
Bug fixDefense Symbology
LCD-12464
Encirclement and Strong Point symbols are now painted with a dashed stroke when set to the Planned/Anticipated state.
Bug fixInfrastructure Standards
LCD-12469
Fixed an issue where face classification in a boolean operation could fail.
2022.0.03
ImprovementOGC Server
LF-2254
It is now possible to sort results by bounding box when performing a CSW GetRecords request.
Sorting by bounding box will perform the sort based on the area of the bounding box. That is, bounding boxes with smaller
areas will be sorted before bounding boxes with larger areas, when using the ascending sort order.
ImprovementRadar Connectors
LCD-12240
2022.0.02
ImprovementLuciadLightspeed
LCD-12457
Improved the detection of Leica Pegasus panoramic images when reading a E57 datasets. This fixes the issue where
panoramic images were rotated 90° after conversion into the Luciad Panorama Format.
ImprovementLuciadLightspeed
LCD-12459
Fixed issue in
TLspKML22LayerBuilder
where 3D models would be incorrectly rotated on their heading
property.
ImprovementLuciadLightspeed
LCD-12286
The
TLcdCoverageModelDecoder
method
discoverDataSources
now returns a list with a single data source when the source is a coverage XML file on the local file system.
Bug fixLuciadLightspeed
LCD-12237
Bug fixInfrastructure Standards
LCD-12468
Fixed an issue where IFCTrimmedCurves with senseAgreement false could lead to self-intersecting contours.
Bug fixInfrastructure Standards
LCD-12412
Fixed an issue where I-profile contours were not nicely closed.
Bug fixInfrastructure Standards
LCD-12455
Several issues were fixed:
-
A single invalid object (NaN bounds) will no longer make binz-conversion fail.
-
Sweeps no longer have inverted normals when the sweep contour is closed.
-
Sweeps no longer have a dark line at the closing point of the sweep contour.
-
Planes no longer fail during tesselation when the cause was a faulty normal.
2022.0.01
ImprovementLuciadLightspeed
The EPSG database was updated to the latest version: 10.072.
ImprovementLuciadLightspeed
LCD-12266
ImprovementLuciadLightspeed
LCD-12261
The SLD GXY implementation now supports the optional
PerpendicularOffset
property
on the
LineSymbolizer
and
PolygonSymbolizer
symbolizers.
To help implement this improvement,
TLcdSLDSymbolizerPainterFactory
now overloads
createStrokePainterProvider
with a variant that takes a
TLcdSLDContext
.
The new method deprecates the previous variant.
ImprovementLuciadLightspeed
LCD-12429
The
TLcdModelMetadata.Builder.resourceMetadata
method will now try to extract dimensional information from the given
ILcdResourceMetadata
.
It will specifically extract the temporal and vertical axis information, if it is available.
ImprovementLuciadLightspeed
LCD-12342
Improved the default rendering (using
TLcdServiceLoader
) for GML tree nodes in an
ILcdGXYView.
ImprovementInfrastructure Standards
LCD-12375
Bug fixLuciadLightspeed
EPSG:7404 could be decoded by
TLcdEPSGReferenceParser
, even though it was not correctly supported.
Trying to decode EPSG:7404 now throws a
ParseException
as expected.
Bug fixLuciadLightspeed
LCD-12228, LCD-7715
Fixed an issue with the POM files provided with the release, where the versions of dependencies in third party POM files were
incorrect.
The versions used where the ones that were actually used in the release instead of the versions the thirdparty libraries depended
on.
Bug fixLuciadLightspeed
Updated the versions of Proguard and the exec-maven-plugin used in the Maven documentation articles.
These versions enable support for JDK 17.
Bug fixLuciadLightspeed
LCD-12369
Updated the version of the exec-maven-plugin to 3.1.0 in the sample Maven project. This version enabled support for JDK 17
on Windows.
Bug fixLuciadLightspeed
LCD-12347
BlackLimeLookAndFeel
: fixed an issue when using Java 17, resulting in incorrect text colors in a JXTreeTable
.
Bug fixLuciadLightspeed
LCD-12453
Bug fixLuciadLightspeed
LCD-12434
Bug fixLuciadLightspeed
LCD-12234
TLspIconStyle
: when the application was switched to another screen with different DPI, an
endless repaint loop could occur when icons were made invisible.
Bug fixLuciadLightspeed
LCD-12433
The GeoTIFF decoder includes fixes for creating references with a vertical datum when defined within the GeoTIFF
tags. In some cases the vertical datum was not applied to the reference.
Note that a vertical datum is only applied when the GeoTIFF decoder is configured with
com.luciad.format.raster.TLcdGeoTIFFModelDecoder.setSupportGeoidDatums
.
Bug fixLuciadLightspeed
LCD-12447
The GeoTIFF decoder now also applies the
GDAL_NODATA
tag when using
the legacy
ILcdRaster
API.
The no data tag was already used when working with the imaging API.
Bug fixOGC Server
LCD-12408
When performing a WFS GetFeature request with property name filtering, the GeoJSON output still contained all
property names, where the filtered properties had a null value. This has been fixed: the filtered properties
are no longer present in the json response.
Bug fixInfrastructure Standards
LCD-12371
Fixed a bug where the optional presentation information of the material was not processed while decoding the IFC
Geometry Model.
Bug fixInfrastructure Standards
LCD-12407
TLcd3DTilesProcessorBuilder
: Now uses absolute file paths for caching textures. This fixes
an issue that in some rare cases, textures would be cached twice with a different key.
Bug fixInfrastructure Standards
LCD-12356
TLcd3DTilesProcessorBuilder
: Fixed an issue that would bad UV coordinates to be generated in
trimmed tiles. The effects of this bug were blurriness in some higher level tiles, and a inflated output data size.
With this fix, output datasets for reality captures should be smaller and the simplified levels should be slightly
sharper.
Upgrade considerationLuciadLightspeed
The TLcdGeoJsonModelEncoder
will now detect a primary key that has been declared on a supertype of a TLcdDataType.
The primary key property is used as id
value of the GeoJson feature,
and is omitted from the properties
list.
{
"type" : "Feature",
"id" : "0001",
"geometry" : { ... },
"properties" : {
"nonPrimaryKeyProperty" : "someValue",
...
}
}
Upgrade considerationInfrastructure Standards
Due to changes in how the GeoJson encoder handles primary keys of objects, the GeoJson output of the BinzConverter
will now have the FeatureID encoded as the id
member of the features, instead of having it
as a property.
{
"type" : "Feature",
"id" : 0,
"geometry" : { ... },
"properties" : { ... }
}
When reading GeoJson files from Binz datasets, you can use this snippet to get the primary key property for both
new and old GeoJson files:
ILcdModel model = new TLcdGeoJsonModelDecoder().decode("path\\to\\features.geojson");
TLcdDataType dt = ((ILcdDataObject) model.elements().nextElement()).getDataType(); // assuming the model has at least one element
TLcdPrimaryKeyAnnotation annotation = dt.getAnnotation(TLcdPrimaryKeyAnnotation.class);
TLcdDataProperty property = annotation != null ? annotation.getProperty() : dt.getProperty("FeatureID");
2022.0
New featureInfrastructure Standards
Added support for the IFC data format. The IFC format is an open international standard for Building Information
Model (BIM) data covering entities such as buildings or facilities.
For more details, see the
IFC entry in the Data Formats documentation section

LuciadRIA showing a sample IFC file
New featureTiling Engine
The
TLfnPointCloudPreprocessor
now supports Draco compression. You can use
this new functionality through the API:
builder.pointCloudCompression(ELcdOGC3DTilesMeshCompressionType.DRACO)
.
It is also available in LuciadFusion Studio when you create an OGC3DTiles service from point cloud data,
and in the PointCloudPreprocessorTool.
The samples.fusion.pointcloud.PointCloudPreprocessorTool
also supports Draco compression.
It can be activated through a "--compression=draco" program argument.
ImprovementLucy (LuciadLightspeed)
TLcyLspMapAddOn
: the scale selection is now animated, which improves accuracy and the user's context.
ImprovementLucy (LuciadLightspeed)
LUCY-4581
The error message when trying to connect to an offline URL-based data source now includes the reason instead
of saying "Don't know how to decode it".
ImprovementLuciadLightspeed
LCD-2839, LCD-8405
ILcdDataObject
objects that have been decoded from XML no longer return the default attribute value
in the
getValue
method if the attribute value is missing.
Instead, the default value can be retrieved from the corresponding
TLcdDataProperty
.
This improves consistency when encoding these objects again.
ImprovementLucy (LuciadLightspeed)
Lucy can now decode and visualize IFC data on a Lightspeed view. This functionality is provided by
TLcyIFCAddOn
and
TLcyLspIFCFormatAddOn
. Because IFC
is restructured and rendered into meshed data on-the-fly, it is recommended to only use this functionality
for small IFC datasets. For large datasets, it is recommend to convert the data to OGC 3D Tiles
using
LuciadLightspeed or
LuciadFusion.
ImprovementLuciadLightspeed
LCD-12265
ILcdModelReferenceDecoder
has a new method
findAndDecodeModelReference
. Apart from decoding the model reference like its sibling method
decodeModelReference
, this new method also provides the source file from which the
reference was decoded, when it exists and is known. An implementation of this method has been added to all
ILcdModelReferenceDecoder
classes which are provided in the API, or as an
LcdService
.
ImprovementLuciadLightspeed
LCD-6306
A new WMS Client sample has been added that illustrates the use of ECDIS data through a WMS in a Lightspeed view:
samples.wms.client.ecdis.lightspeed.MainPanel
.
ImprovementLuciadLightspeed
The new method
ILcdInputStreamFactory.canCreateInputStream
checks
whether a factory supports creating an input stream for a given source name.
This makes it possible to ignore factories that have no chance of succeeding when alternatives are available,
for instance in the new
TLcdCompositeInputStreamFactory
.
A default implementation is available in the interface that always returns true.
ImprovementLuciadLightspeed
Some exotic model implementations such as
TLcd2DRegularTiledBoundsIndexedModel
and their related API
have been deprecated, because they are only used to support deprecated formats.
ImprovementLuciadLightspeed
LCD-10029
You can now easily calculate the area of a complex polygon using the following new methods:
TLcdEllipsoidUtil.geodesicArea(ILcdShape, ILcdEllipsoid)
TLcdSphereUtil.geodesicArea(ILcdShape, double)
TLcdCartesian.area(ILcdShape)
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
The following core API classes now implement
ILcdCurve
:
The following core API classes now implement
ILcdRing
:
ImprovementLuciadLightspeed
The WMS client now supports server-side map rotations if you are using non-tiled visualization in GXY views
with a projection supported by the WMS server. You can enable this capability with the boolean System property
com.luciad.wms.client.serverMapRotation
. If you set it to true
,
map rotations are propagated to the WMS server through the custom GetMap
request
parameter angle
. When used in combination with LuciadFusion or other WMS servers supporting
this parameter, it ensures that labels on rotated maps are always upright, and that oriented icons still have their
intended orientation.
ImprovementLuciadLightspeed
The WMS client can now parse contact information from the GetCapabilities response.
This information gets added to the
ALcdWMSServiceMetaData
ImprovementLuciadLightspeed
LCD-12187
TLcdGML2ModelEncoder
and
TLcdGML31ModelEncoder
's generated feature collection element is now in the
_FeatureCollection
substitution group. This improves embedding feature collections into other data models, such as WMTS feature info responses.
ImprovementLuciadLightspeed
LCD-11854
For scale based stylers and SLD stylers, it is now possible to control the styler's scale level independently of the
view scale by implementing a custom
ILspMapScaleProvider
. The map scale provider can be added
to a layer with
TLspLayer#setMapScaleProvider
, or it can be added to other layers by
overriding
ILspLayer#getMapScaleProvider
. See
the map scale provider how-to article for more
info.
ImprovementLuciadLightspeed
The SLD implementation now supports adding a box around a label. Using an SLD text symbolizer, you can configure
the fill and stroke of the box, as well as the desired padding between the box and the label.
The new article
How to draw a box around labels
illustrates the addition of a label box with an example.
ImprovementLuciadLightspeed
Added extra methods to
TLcdGXYPolylineLabelPainter
making it possible to specify the color
and line width of the frame surrounding the labels.
ImprovementLucy (LuciadLightspeed)
LUCY-4888
ImprovementLuciadLightspeed
LCD-11314
The
TLcdCSVModelDecoder
now creates models that implement
ILcdMultiDimensionalModel
, when at least one of the columns is specified to contain values
of type
TLcdCSVDataSource.ColumnType.DATE_TIME
. The resulting model contains one time
dimension for each column of that type.
ImprovementLuciadLightspeed
LCD-12039
Introduced a new method named TLspViewNavigationUtil#animatedZoom
, which performs an animated
zoom to a target map scale on a Lightspeed view.
ImprovementLuciadLightspeed
LCD-12088
ILspView
implementations now fire property change events for the background and paintingOrder
properties.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder
: the decoder can now parse the model reference from embedded GMLJP2
in the file. The decoder supports versions 1.0, 2.0 and 2.1 of the GMLJP2 specification, and will only parse the
model reference,
other elements will be ignored but are accessible via the
TLcdJPEG2000ModelDescriptor
.
ImprovementLuciadLightspeed
LCD-10677
ImprovementLuciadLightspeed
LCD-8189
The JPEG2000 model decoder now decodes geo-references using the RPC00B coefficients without requiring a world file.
When no geo-reference data is available as GeoTIFF tags the decoder looks for the existence of the optional
_rpc.txt
which contains the RPC00B coefficients.
ImprovementLuciadLightspeed
LCD-8903
JPEG2000's native library now requires GLIBC 2.3.4, down from 2.14. This improves compatibility with
Red Hat Enterprise Linux 6.
ImprovementLuciadLightspeed
The TLcdJPEG2000ModelDecoder and TLcdJPIPModelDecoder have been updated to handle monochrome, RGB and multi band images.
The number of bands that can be decoded is unlimited with the limitation that each band consists of up to 16 bits.
These improvements are only available via the imaging API. Please refer to the class javadoc for more information.
ImprovementLuciadLightspeed
The TLcdJPEG2000ModelDecoder and TLcdJPIPModelDecoder have been adapted for integration with the new imaging API. They
now produce models with domain objects that extend ALcdImage.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementLuciadLightspeed
LCD-4415
The JPIP model decoder now verifies that the provided source name points to a valid JPIP server
in its canDecode method. Previously it would only verify that the source name is a valid URI.
You can get the old behavior by calling setQueryServerOnCanDecode(false).
ImprovementLuciadLightspeed
LCD-4332
The JPEG2000 and JPIP model decoders now document that image components may be scaled. The
model descriptors also expose the necessary information to allow computing the original values
in the image.
ImprovementLuciadLightspeed
LCD-4252
The JPEG2000 performance for tiled data has improved.
ImprovementLuciadLightspeed
LCD-4241
The TLcdJPEG2000ModelDecoder can now also decode the raster bounds from a j2w files.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder now has a default model reference decoder.
ImprovementLuciadLightspeed
Closing the connection of a JPIP model explicitly while the model is still being used is handled
more gracefully.
ImprovementLuciadLightspeed
The TLcdJPEG2000ModelDescriptor now exposes some additional metadata such as embedded XML. This
metadata is also available on the TLcdJPIPModelDescriptor.
ImprovementLuciadLightspeed
Added the com.luciad.format.raster.TLcdJPIPModelDecoder which supports decoding images retrieved
through the JPEG2000 Interactive Protocol (JPIP).
ImprovementLuciadLightspeed
LMAP-4075
The JPEG2000 native decoder pool size has been increased to 10, which is better suited for the
most common scenarios (several files of less than 10 GBytes, instead of 1-2 huge files).
ImprovementLuciadLightspeed
The TLcdJPEG2000ModelDecoder did not correctly decode images having multiple color channels
with a color depth other than 8 bit. This limitation has been removed.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder now ignores a fourth channel if it is not an alpha
channel.
ImprovementLuciadLightspeed
The JPEG2000 format is now also supported on 64-bits SPARC Solaris.
ImprovementLuciadLightspeed
The JPEG2000 format is now also supported on 64-bits Windows.
ImprovementLuciadLightspeed
The JPEG2000 format is now also supported on 64-bits Linux.
ImprovementLuciadLightspeed
The native JPEG2000 library has been updated to the latest version.
Please make sure you are using the proper versions of the native libraries,
corresponding to the LuciadMap jars.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelEncoder now checks if the user-requested number of DWT
levels does not exceed an acceptable limit (dependent on the tile size).
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder now also accepts "file:" URLs.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder now has a property maximumResidualTiePointError
to control when to reject rasters whose tie points do not precisely define
an affine transformation (throwing an IOException instead).
ImprovementLuciadLightspeed
The new TLcdJPEG2000ModelEncoder provides functionality to encode raster
models as georeferenced JPEG2000 images.
ImprovementOGC Server
LCD-11939
The OGC server sample now integrates with Spring Boot. It takes advantage of Java Servlet 3.0 annotations,
which makes it much easier to set up. Additionally, a new article
How to use Spring Boot with the OGC Web Server Suite
explains how to integrate your own server created with the OGC Web Server Suite in a Spring Boot application.
ImprovementOGC Server
The WMS and WMTS server now support GetFeatureInfo requests with
text/html
or
text/xml
as output format. When setting the output format to
text/xml
,
the generated XML is based on the WMTS GetFeatureInfo XSD, which can be found
here.
ImprovementOGC Server
LF-2159
It is now possible to implement request-based SLD rendering customizations for a LuciadFusion product with an SLD style.
To accomplish this, a new method has been added to the WMS API: ALcdSLDWMSGXYLayerFactory#createGXYLayer(ILcdModel aModel, ALcdWMSLayer aWMSLayer, TLcdSLDFeatureTypeStyle[] aStyle, TLcdWMSRequestContext
aRequestContext)
Based on the request stored in the TLcdWMSRequestContext
changes can be applied to the TLcdSLDFeatureTypeStyle[]
to allow for SLD rendering customizations.
It is now also possible to configure feature type styles on the server side.
This is done by plugging in a custom implementation of a ILcdWMSSLDFeatureTypeStyleProvider
in the ALcdOGCWMSCommandDispatcherFactory
by overriding the method ALcdOGCWMSCommandDispatcherFactory#createSLDFeatureTypeStyleProvider(ServletConfig aServletConfig)
.
ImprovementOGC Server
The WMS server now supports map rotations: by means of a new custom GetMap
request
parameter angle
, WMS clients can indicate the map rotation in degrees, measured clockwise
around the center of the map.
ImprovementOGC Server
It is now possible to configure access constraints and contact information of the service metadata of the WMS server
capabilities. This information can be configured using the
ALcdWMSServiceMetaData
.
ImprovementAviation Standards
ImprovementDefense Symbology
LCD-12336
The forced color style is now also applied to tactical graphic symbols instead of only to icon symbols.
The forced color can be inspected/edited with the following methods:
ILcdMS2525bStyle.setForcedColor
ILcdMS2525bStyle.getForcedColor
ILcdAPP6AStyle.setForcedColor
ILcdAPP6AStyle.getForcedColor
ImprovementDefense Symbology
LCD-12140, LCD-10328
It is now possible to override the default line style of the outer frame of an icon.
To support this, the following methods are added to the interfaces ILcdMS2525bStyle
and
ILcdAPP6AStyle
:
ILcdMS2525bStyle.setForcedFrameLineStyle
ILcdMS2525bStyle.getForcedFrameLineStyle
ILcdAPP6AStyle.setForcedFrameLineStyle
ILcdAPP6AStyle.getForcedFrameLineStyle
These new methods are implemented by the existing API classes TLcdDefaultMS2525bStyle
and TLcdDefaultAPP6AStyle
.
ImprovementInfrastructure Standards
The Binz decoder sample now has DRACO compression enabled by default when converting a Binz dataset to OGC 3D Tiles.
ImprovementInfrastructure Standards
ImprovementRadar Connectors
Bug fixLuciadLightspeed
LCD-12265
Bug fixLuciadLightspeed
LCD-12265
Bug fixLuciadLightspeed
LCD-12265
Bug fixLuciadLightspeed
LCD-12265
Bug fixLuciadLightspeed
LCD-12265
When a model reference is decoded from an external model reference file, the following model decoders now include
this reference file in the supporting sources of the
TLcdModelMetadata
. For example, the
model reference file can be a PRJ file that lives next to the data source, having the same file name or
"directory.prj".
Bug fixLuciadLightspeed
LCD-12258
Bug fixLuciadLightspeed
LCD-12254
Bug fixLuciadLightspeed
LCD-12250
The following model decoders now use the input stream factory configured by
ILcdInputStreamFactoryCapable#setInputStreamFactory
for decoding the model reference when
necessary:
Bug fixLuciadLightspeed
LCD-12191
TLcdGML31ModelEncoder
's generated feature collection type now extends
AbstractFeatureCollectionType
.
The behavior for
TLcdGML32ModelEncoder
(which deprecated built-in feature collection types) remains unchanged.
Bug fixLuciadLightspeed
The
TLcdCSVModelDecoder
now also parses the time component of a date by default, using a
SimpleDateFormat
with pattern
"yyyy-MM-dd HH:mm:ssXXX"
for columns of
type
TLcdCSVDataSource.ColumnType.DATE_TIME
. This
DateFormat
can be
modified with
TLcdCSVModelDecoder#setDateFormat
.
Bug fixLuciadLightspeed
Fixed an issue with the sample maven project where the proguard obfuscation would fail on Windows, when executing mvn package
, because the command was too long.
Bug fixLuciadLightspeed
Fixed Windows compatibility issues with the sample Maven project script build/maven/setup-sample-project.xml
.
Bug fixLuciadLightspeed
LCD-11185
Bug fixLuciadLightspeed
LCD-11036
TLcdJPEG2000ModelDecoder
: in some cases, attempting to decode a non-georeferenced
JPEG2000 file would result in a
NullPointerException
rather than the expected
IOException
.
Bug fixLuciadLightspeed
LCD-8840
TLcdJPIPModelDecoder
will now start a new session if the JPIP server returns a HTTP 503
response (invalid channel ID).
Bug fixLuciadLightspeed
LCD-8841
Fixed an issue with
TLcdJPIPModelDecoder
's cache management. This resulted in gray tiles
being rendered.
Bug fixLuciadLightspeed
LCD-8824
Bug fixLuciadLightspeed
LCD-8496
Increased maximum allowed quality of TLcdJPEG2000ModelEncoder from 1.0 to 8.0, to allow
encoding of higher-quality JPEG2000 files.
Bug fixLuciadLightspeed
Fixed an issue in TLcdJPEG2000ModelDecoder where, in some cases, alpha channels were not properly detected.
Bug fixLuciadLightspeed
LCD-7914
Fixed an issue in TLcdJPIPModelDecoder where RGB data with 16 bits per component could not be decoded.
Bug fixLuciadLightspeed
LCD-7893
Resolved an issue where reading simultaneously from many different JPEG2000 files could result in a deadlock.
Bug fixLuciadLightspeed
The JPEG2000 decoder canDecode method could return false for some absolute paths on windows.
Bug fixLuciadLightspeed
LCD-6500
The JPEG2000 and JPIP data decoders produced an ALcdMultilevelImage/ILcdMultilevelRaster with 1 level too few. The
least detailed level was missing. This negatively affected the performance for large files when zoomed out.
Bug fixLuciadLightspeed
LCD-6495
The JPEG2000 decoder could not decode paths longer than 260 characters on windows.
Bug fixLuciadLightspeed
LCD-6354
TLcdJPEG2000ModelDecoder sometimes created ALcdImage's with incorrect semantics: there could be an alpha band that
is not actually available.
Bug fixLuciadLightspeed
LCD-6010
A JPIP model could return incorrect values when using its ILcdRaster.retrieveValue method from multiple threads.
Bug fixLuciadLightspeed
LCD-5773
Fixed possible deadlock when using ILcdRaster.retrieveValue on a JPIP raster that is also being painted in a
Lightspeed view.
Bug fixLuciadLightspeed
LCD-4400
The JPEG2000 decoder could not handle file names with non-ASCII characters on Windows.
Bug fixLuciadLightspeed
LCD-4257
Fixed a bug in the decoding of 16-bit JPIP data.
Bug fixLuciadLightspeed
LCD-3550
Fixed a concurrency issue in the JPIP native library which could result in an application crash on some systems.
Bug fixLuciadLightspeed
LCD-3537
Fixed a memory leak in JPIP models. This regression was introduced by the earlier fix LCD-3492
in the LuciadMap core library.
Bug fixLuciadLightspeed
LCD-3502
The connection of a JPIP model can now be closed explicitly. You can find details on how to do this in the
TLcdJPIPModelDecoder javadoc.
Bug fixLuciadLightspeed
LCD-3481
The JPEG2000 and JPIP decoders could not decode monochromatic 16-bit data.
Bug fixLuciadLightspeed
LCD-2627
The JPEG2000 decoder allocated buffers that were larger then necessary.
Bug fixLuciadLightspeed
LMAP-5974
Some raster files could not be rectified properly during decoding. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5479, LCD-94
The positioning of JPEG2000 rasters based on JPW files with arbitrary rotations
has been corrected. Additionally, sheared rasters now supported.
Bug fixLuciadLightspeed
The name of the system property controlling the JPEG2000 native decoder pool size has been changed
from JPEG2000_POOL_SIZE
to jpeg2000.pool.size
, in line with the usual
naming conventions. The old system property name is still used as a fallback, for backwards
compatibility.
Bug fixLuciadLightspeed
Attempting to load a non-existing file no longer crashes the application.
Bug fixLuciadLightspeed
LMAP-3932
Loading a corrupted JPEG2000 file no longer crashes the entire application.
Bug fixLuciadLightspeed
LMAP-3850
TLcdJPEG2000ModelDecoder was allocating large amounts of native memory. On 32 bit platforms this
was sometimes exceeding the virtual memory space of the process, leading to a crash. LuciadMap
now uses a pool of "connections" to the native JPEG2000 library, limiting the amount of memory
used. The size of this pool can modified by setting the JPEG2000_POOL_SIZE system property
(the default value is 2).
Bug fixLuciadLightspeed
The Linux 64-bit version of the libLcdJPEG2000.so depended on an older
version of the standard C++ library (libstc++.so.5). The library is now
linked against libstdc++.so.6.
Bug fixLuciadLightspeed
TLcdJPEG2000ModelDecoder now correctly supports JPEG2000 images with color
maps.
Bug fixAdvanced Raster Connectors
LCD-12265
Bug fixAdvanced Raster Connectors
LCD-12265
TLcdGeoSPOTModelDecoder
now adds the supporting sources and data series to the
TLcdModelMetadata
of its decoded models.
-
When decoding a REP file, the model metadata contains the BIL, HDR and RSC files as supporting sources.
-
When decoding a DSC file, the model metadata contains every referenced REP subset as data series, each
containing their respective BIL, HDR and RSC as supporting sources.
Bug fixDefense Standards
LCD-12265
Bug fixMaritime Standards
LCD-9921
The S-57 and S-63 decoders can now decode catalog files from URL's or with custom input stream factories.
Multi-Catalogues (MULTICATALOG.031) are not supported, because they require specific file system operations like
listing directory contents.
Upgrade considerationLuciadLightspeed
Third party libraries used in the samples have been moved to the samples/lib/thirdparty
directory.
Upgrade considerationLuciadLightspeed
The two modules lcd_jpeg2000_decoder
and lcd_jpeg2000_encoder
have
been merged into one module lcd_jpeg2000
,
which contains the JPEG2000 model decoder and encoder.
Upgrade considerationLuciadLightspeed
The com.luciad.format.raster
package is no longer split between multiple jars. This means that the following classes have been moved to their own sub
package:
If you encounter any compile errors due to these changes, simply update the relevant import statement.
Upgrade considerationLuciadLightspeed
The samples now depend on the HikariCP third-party library. It is used to illustrate how the database model decoders can use
a database connection pooling framework.
Upgrade considerationLuciadLightspeed
The SQLiteJ library has been updated to version 3.36.0.lcd-2 to improve compatibility with Hibernate 5.
Upgrade considerationLuciadLightspeed
Support for 32-bit Windows will be phased out. Starting with LWJGL, new or upgraded native libraries will no longer include
32-bit versions.
Upgrade considerationLuciadLightspeed
LCD-12054
The LWJGL Java binding for the OpenGL and OpenCL APIs has been updated to version 3.3.1.
For Linux, the glibc (GNU C Library) minimum version has been raised to 2.27.
Upgrade considerationLuciadLightspeed
The third-party library dependencies Apache HttpClient, HttpClient Cache and HttpMime have been updated from version 4.5.6
to 4.5.13.
Their dependencies have also been updated accordingly: Apache HttpCore from version 4.4.10 to 4.4.13, Apache Commons Codec
from version 1.10 to 1.11.
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
By default,
TLspLonLatGridLayerBuilder
's layers now generate lines that use the same
ILcdGeodeticDatum
as the world reference of the view, even when the world reference of
the view changes. It always used the WGS 84 datum before this change. It is still possible to use a fixed
geodetic datum by using the
TLspLonLatGridLayerBuilder#createModel
method that takes an
ILcdGeodeticDatum
as argument.
Upgrade considerationDatabase Connectors
Upgraded the PostgreSQL JDBC driver to version 42.3.6.
Upgrade considerationOGC Server
To allow for greater extensibility, the signature of the method
ILcdWMSGetLegendGraphicRequestEncoder#encode(ALcdWMSLayer,ALcdSLDLayer,TLcdSLDStyledLayerDescriptor,String,String,float,int,int,OutputStream,TLcdWMSRequestContext)
has been changed into
#encode(TLcdWMSGetLegendGraphicRequestContext,TLcdWMSRequestContext,OutputStream)
.
TLcdWMSGetLegendGraphicRequestContext
gives access to the original method arguments and a number of additional arguments.
The change impacts WMS implementations that use an implementation of
ILcdWMSGetLegendGraphicRequestEncoder
.
Upgrade considerationOGC Server
LCD-12142
The version of Ehcache was updated from 3.2.0 to 3.10.0 to improve compatibility with Java 17.
Upgrade considerationOGC Server
Upgrade considerationAviation Standards
TLcdAISPolygon#set3DEditablePolygon
now requires an
ILcdRing
as parameter.
TLcdAISPolyline#set3DEditablePolyline
now requires an
ILcdCurve
as parameter.
The following AIS API methods of
ALcdAISGeometryFactory
now need to return an instance of
ILcdCurve
:
ALcdAISGeometryFactory#createPolyline()
ALcdAISGeometryFactory#createPolyline(ILcd3DEditablePointList aPointList)
The following AIS API methods of
ALcdAISGeometryFactory
now need to return an instance of
ILcdRing
:
ALcdAISGeometryFactory#createPolygon()
ALcdAISGeometryFactory#createPolygon(ILcd3DEditablePointList aPointList)
Upgrade considerationDefense Symbology
LCD-11404, LCD-12138
The following Military Symbology classes have been removed from the API. These API classes have been deprecated for
more than a decade and have not been maintained since.
Upgrade considerationDefense Symbology
LCD-4341, LCD-8814
The paint representations used for the direction of movement arrows have been removed from the API.
TLspMS2525bLayerBuilder.ARROW_PAINT_REPRESENTATION
TLspAPP6ALayerBuilder.ARROW_PAINT_REPRESENTATION
The direction of movement arrows are now painted in the TLspPaintRepresentation.BODY
paint representation.
If you had a custom TLspPaintingOrder handling the ARROW_PAINT_REPRESENTATION
, you can replace it with a default
TLspPaintingOrder
.
2021.1
2021.1.15
ImprovementLuciadLightspeed
LCD-12129
The Maven sample project setup script 'build/maven/setup-sample-project.xml' now uses NodeJS instead of the Nashorn JavaScript engine.
This means you now have to install NodeJS before running the setup script.
In addition, the ProGuard version used by the script was upgraded from ProGuard 6 to ProGuard 7.
These changes make it possible to run the setup script with JDK 17.
ImprovementOGC Server
LCD-12335
The WFS server now also accepts DescribeFeatureType XML requests with an unbound TypeName element to improve
interoperability with non-compliant third-party OGC WFS clients.
ImprovementAviation Standards
LCD-12283
The AIXM 5.1(.1) rendering logic for GXY and Lightspeed views now uses a default visualization style for custom feature types
defined in AIXM extensions.
Bug fixLuciadLightspeed
LCD-12322
TLcdGXYLocationListLabelingAlgorithm
: When a selected label is larger or smaller than when it is not selected, the algorithm would place the selected
label at an incorrect location after selecting it.
Bug fixLuciadLightspeed
LCD-12325
The
TLcdResizeableIcon
's paint method could hang when used with certain display scale factors.
This has been fixed.
Bug fixReal-time Engine
LCD-12331
TLcdGXYContinuousLabelingAlgorithm
didn't always take selection into account. For labels with a selected size that differs from
their non-selected size, this could lead to incorrect decluttering results.
Bug fixDefense Symbology
LCD-12321
Fixed an issue which caused the selection color to not be applied when selecting certain meteorological symbols that have
multiple colors.
The affected meteorological symbols are:
- Stationary Front
- Upper Stationary Front
- Stationary Frontogenesis
- Stationary Frontolysis
- Inter-Tropical Discontinuity
The selection color of a symbol can be inspected/edited with the following methods:
ILcdMS2525bStyle.setSelectionColor
ILcdMS2525bStyle.getSelectionColor
ILcdAPP6AStyle.setSelectionColor
ILcdAPP6AStyle.getSelectionColor
Bug fixDefense Symbology
LCD-12333
Resolved an issue that caused the
TLcdMS2525bObjectCustomizer
to throw a
StringIndexOutOfBoundsException
when setting a MIL-STD-2525d symbol on it to be customized.
2021.1.14
ImprovementInfrastructure Standards
LCD-12305
Fixed the problem where pruning outliers in Binz datasets could cause too many objects to be skipped:
outlier detection will now be disabled by default, but can be turned on by setting the system property
com.luciad.bim.tiling.pruneOutliers
to true
.
Bug fixLuciadLightspeed
LCD-12323
TLcdRasterModelHeightProviderFactory#canCreateHeightProvider
now takes the appropriate model
lock when inspecting the given model's elements.
This also avoids potential warnings from being logged about incorrect model locking.
Bug fixLuciadLightspeed
LCD-12307
Bug fixLuciadLightspeed
LCD-12306
TLcdEllipsoidRhumblineUtil#intersectionGeodesicRhumblineSFCT
didn't work correctly for rhumb lines that cross the date line.
Bug fixLuciadLightspeed
LCD-12312
Bug fixLuciadLightspeed
LCD-12316
The error message returned by the
TLcdGeoTIFFModelEncoder
could be confusing about why the
model was not accepted. The error message now contains more detailed information on the reason of rejecting a model.
Bug fixAdvanced Raster Connectors
LCD-12302
TLcdGeospatialPDFModelDecoder#discoverDataSources
will now return multiple data sources
when decoding a Geospatial PDF with multiple map frames.
Bug fixMaritime Standards
LCD-11980
Fixed an issue where certain cells were not displayed on a GXY view.
This problem only manifested when using ECDIS in WMS with certain projections.
2021.1.13
ImprovementInfrastructure Standards
LF-2237
Meshup will now check if a .mtl
file exists next to a .obj
file with
the same name. This is added fallback behavior in case there is no direct mtllib
reference
inside the
.obj
file to the .mtl
file.
Bug fixLuciadLightspeed
LCD-12289
Bug fixLuciadLightspeed
LCD-12287
Bug fixLuciadLightspeed
LCD-12303
Fixed an issue where the mime type could not be determined properly if an OGC service returned a response
with the 301 Moved Permanently response code.
Bug fixTerrain Analysis Engine
LCD-12292
GXY hypsometry layers now correctly process missing or unknown data for earth tile sets. Previously, areas without elevation
data could be incorrectly colored.
Bug fixWeather & Environment Standards
LCD-12284
Fixed an issue where the color of the arrow of a SIGWX cloud label was not changed when setting the cloud label border color.
This issue happened when visualizing SIGWX clouds in a GXY view.
2021.1.12
ImprovementLuciadLightspeed
LCD-12275
ImprovementLucy (LuciadLightspeed)
TLcyAIXM51AddOn
: the add-on configuration file now has a flag called
AIXM51Format.modelDecoder.linearElementsUseGeodesicInterpolationForGeodeticSrs
to control the interpolation of linear GML elements with a geodetic SRS. Although these GML elements conceptually
represent geometries with a linear interpolation, they are often used in AIXM 5.1 to represent geometries with
lon/lat coordinates and a geodesic interpolation. The default setting is to use geodesic interpolation.
ImprovementLuciadLightspeed
LCD-12276
TLcdWKTReferenceParser
now supports WKT strings that contain a "Local" projection parameter,
which corresponds to an orthographic projection.
ImprovementAviation Standards
LCD-12281
Added support for AIXM 5.1.1 data defined according to the ASRN XML Schema extension, identified by the
namespace "http://www.aixm.aero/schema/5.1.1/asrn".
ImprovementAviation Standards
LCD-12259
The AIXM 5.1 decoder
TLcdAIXM51ModelDecoder
now allows to configure whether the interpolation
of linear GML elements needs to be geodesic in case of a geodetic reference, through the newly introduced methods
setLinearElementsUseGeodesicInterpolationForGeodeticSrs
and
isLinearElementsUseGeodesicInterpolationForGeodeticSrs
. This impacts the AIXM-compatible
GML elements
LineStringSegment
and
LinearRing
.
Although these GML elements conceptually represent geometries with a linear interpolation, they are often
used to represent geometries with lon/lat coordinates and a geodesic interpolation.
The default setting is to use geodesic interpolation.
2021.1.11
Bug fixAdvanced Raster Connectors
LCD-12271
TLcdECWModelDecoder
: fixed incorrect positioning of images that use feet as their unit of
measure.
Bug fixDefense Symbology
LCD-12213
Resolved an issue in GXY views which rendered the outline style of NVG military symbols for the following NVG 2.0 geometry
elements:
- arcband
- circle
- ellipse
- rectangle
2021.1.10
ImprovementTerrain Analysis Engine
LCD-11680
The hypsometry layer in the lightspeed hypsometry sample now more smoothly updates when using the hypsometry controls for
a specific elevation layer.
Bug fixAdvanced Raster Connectors
LCD-12257
TLcdECWModelDecoder
: fixed issue where accessing an ECW image would fail silently if the ECW
file became unavailable after decoding the model but before first accessing the data.
Bug fixDefense Symbology
LCD-12255
Fixed issue where modifier labels were not painted for NVG elements containing military symbols.
2021.1.09
ImprovementLuciadLightspeed
LCD-12244
The
TLcdTransformingModelFactory
now takes into account if the view allows asynchronous
operations to determine if data transformations are executed on a dedicated thread.
ImprovementInfrastructure Standards
LCD-12246
Added support for a textured polyMesh, it is now treated as a regular polyMesh, the actual texture is not used.
2021.1.08
ImprovementLuciadLightspeed
LCD-12232
ImprovementRadar Connectors
LCD-12242
You can now configure the position field to be used for tracks within ASTERIX Category 48: by default,
the Calculated Position in Cartesian Coordinates (X / Y) field is used. This can be changed to the
Measured Position in Slant Polar Coordinates (Rho / Theta) field by setting the System property
com.luciad.format.asterix.cat48.usePolarCoordinates
to true.
Bug fixLuciadLightspeed
LCD-12230
Bug fixLuciadLightspeed
LCD-12233
A non-visible
TLspAWTView
could trigger a high usage of the Event Dispatch Thread (EDT). This has been fixed.
Bug fixLuciadLightspeed
LCD-12243
2021.1.07
ImprovementLuciadLightspeed
LCD-12215
ImprovementLuciadLightspeed
LCD-12225
You can now configure the latitude extent of a
TLcdPolarStereographic
projection.
The latitude extent is how far the projection extends outwards from the poles, expressed in degrees latitude.
For example, you can use this to show data located in the southern hemisphere,
on a map with a north polar stereographic projection.
ImprovementAviation Standards
LCD-12196
A new package com.luciad.ais.model.sector
has been added to AIS containing domain objects to
model sector-based minimum safety altitudes.
ImprovementAviation Standards
LCD-12196
A new DAFIFT decoder
TLcdDAFIFTMinimumSectorAltitudeDecoder
has been added to support
the decoding of Minimum Sector Altitude objects. The data type of the decoded objects is
TLcdDAFIFTDataTypes#MinimumSectorAltitude
, which extends from the new
MinimumSectorAltitude
type in AIS.
ImprovementInfrastructure Standards
LCD-12222
TLcdDGNModelDecoder
: Text with true-type fonts are now displayed in italics or bold where needed.
ImprovementInfrastructure Standards
LCD-12221
TLcdDGNModelDecoder
: Adjusted the width, height and justification of text elements with true-type fonts to match the Bentley Microstation display.
Bug fixLuciadLightspeed
LCD-12226
Bug fixLucy (LuciadLightspeed)
LUCY-4975
TLcyWMSClientAddOn
did not pick up the selected style if the style title differed from the
style identifier. This has been fixed.
Bug fixLuciadLightspeed
LCD-12202
TLspShapeLayerBuilder
: the outline of a polygon with points on the poles would be clipped
on the equator in the Lambert Conformal projection.
Bug fixAviation Standards
LCD-12220
AIXM 5.1 navaids of type DME were incorrectly visualized using a VOR_DME icon instead of a DME icon.
Bug fixDefense Standards
LCD-12212
2021.1.06
ImprovementLucy (LuciadLightspeed)
LUCY-4973
ImprovementLucy (LuciadLightspeed)
LUCY-4970
TLcyMapEditUnitAddOn
now allows configuring datetime formats with specific time zones.
Refer to the configuration file for more information.
ImprovementInfrastructure Standards
LCD-12208
Improved the conversion of Binz datasets that contain outliers: the erroneous objects are skipped.
Bug fixDefense Standards
LCD-12204
2021.1.05
ImprovementAdvanced Raster Connectors
LCD-12186
The panorama converter now uses area sampling to determine the color of an image pixel,
leading to fewer artifacts in the resulting Luciad Panorama image.
ImprovementAviation Standards
LCD-12197
The DAFIFT Runway decoder could not cope with runway records containing empty values for the take off or landing
distance available fields.
Bug fixLuciadLightspeed
LCD-12185
TLcdOGC3DTilesModelDecoder
: fixed a
NullPointerException
that could
occur when decoding a 3D Tiles dataset containing GLTF
without primitives.
Bug fixLuciadLightspeed
LCD-12199
Bug fixAviation Standards
LCD-12192
AIXM 5.1 airspace volume subtractions were not visible in GXY and Lightspeed 2D views if their vertical
extent did not include the vertical extent of the base airspace volume.
Bug fixInfrastructure Standards
LCD-12168
TLcd3DTilesProcessorBuilder
: fixed a potential deadlock that could occur when processing GLB
files.
This fix also generally improves the performance of processing GLB files.
Bug fixS-63
LCD-12190
The S-57 and S-63 model decoders now properly differentiate multi catalog (MULTICATALOG.031) datasets of the right type.
Before, the S-57 decoders would pick up multi catalogs containing S-63 data and vice-versa.
2021.1.04
ImprovementLuciadLightspeed
LCD-11989
It's now easier to obfuscate LuciadLightspeed and LuciadFusion applications that don't depend on JavaFX.
ImprovementLuciadLightspeed
LCD-12172
Added support for the SLD vendor option "composite=copy" in a Lightspeed view. This vendor option can be used
on a point symbolizer to make sure that any transparent pixels found in a referred icon are copied to the line
style provided by a line or polygon symbolizer in the same styling rule. A common use case is to introduce a gap
between the visible icon part and the surrounding line style: if there are transparent pixels around the visible
icon part, they will remove the surrounding line style accordingly.
ImprovementAviation Standards
LCD-12170
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 24.0 to version 25.0.
ImprovementInfrastructure Standards
LCD-12182
TLcd3DTilesProcessorBuilder
: repeating textures will now be scaled to the nearest power of two resolution. This improves compatibility with
some clients that don't support repeating textures for non power-of-two resolutions.
Bug fixLuciadLightspeed
LCD-10415
Bug fixLuciadLightspeed
LCD-12169
A few EPSG reference are defined using axes that point west and south, instead of the usual east and north:
- EPSG:2065
- EPSG:5513
- EPSG:8352
The coordinates of these references are now correctly interpreted and transformed.
Bug fixLuciadLightspeed
LCD-12179
The SLD label painting pipeline incorrectly interpreted XML Label element content encoded on multiple lines
as a multiline label. This should only be the case if the newline characters are part of a CDATA XML element,
as illustrated in the How to define multiline labels SLD article.
Bug fixLuciadLightspeed
LCD-12173
The OGC Filter functions startAngle and endAngle incorrectly added a rotation of 90 degrees to the evaluated values.
This could led to an incorrect icon rotation when used in combination with an SLD icon symbolizer.
Bug fixAviation Standards
LCD-12067
Fixed a bug that caused unexpected and superfluous turn circles in the trajectory of a CF-based IAP procedure.
2021.1.03
New featureLuciadLightspeed
LCD-12148
A best effort has been made to add support for version 100 of OSGB for the
TLcdOSGBModelDecoder
, including support for
-
Binary brackets
-
DrawElementsUInt
-
Vec2Array
-
Vec3Array
ImprovementLuciadLightspeed
LCD-12146
ImprovementLuciadLightspeed
LCD-10529
SLD graphics rendering in GXY / Lightspeed now supports the optional AnchorPoint
property for
icons.
ImprovementDefense Symbology
LCD-12136
Icon symbols with uncertain affiliation ("Assumed Friend" or "Suspect") and the "Present" status now get painted with a dotted
outline instead of a dashed outline when the symbol fill is disabled.
Additionally, icon symbols with the uncertain affiliation ("Assumed Friend" or "Suspect") and the "Planned" status will be
painted with an alternating black and white dashed outline instead of a black and white dotted outline.
These changes make it possible to differentiate between "Present" and "Planned" icon symbols with uncertain affiliations.
Bug fixLuciadLightspeed
LCD-11533
Bug fixLucy (LuciadLightspeed)
LUCY-4964
TLcyToteAddOn
/
TableViewAddOn
: fixed an issue when working with
frequently updated models, where the table selection was sometimes not synchronized to the corresponding layer.
Bug fixLuciadLightspeed
LCD-12102
TLspRasterLayer
now properly handles images which have a geodetic coordinate reference and
bounds that are more than 360 degrees wide. The part of the image that extends outside the 360 degree horizontal
range is not painted.
Bug fixLuciadLightspeed
LCD-12137
Bug fixTerrain Analysis Engine
LCD-12047
Fixed a bug that caused an ArrayIndexOutOfBoundsException when calling TLcdLOSCoverageFactory.createLOSCoverageRaster
.
This could happen in certain scenarios when the provided LOS coverage has a max radius that is not a multiple of the radius
step.
Bug fixDefense Symbology
LCD-12071
Fixed an issue where the halo of a movement direction arrow was partially painted white for ground units in a Lightspeed view.
Bug fixInfrastructure Standards
LCD-12011
Fixed a bug in the
TLcdBinzModelDecoder
where metadata could be skipped in BINZ version 5.
BINZ data created by Hexagon Smart Interop Publisher up to version 15.2 are supported.
Bug fixS-63
LCD-12150
Fixed an issue when separately decoding multiple S-63 cells or catalogues in parallel on different threads.
This would result in various errors and decoding failures.
2021.1.02
ImprovementLuciadLightspeed
LCD-12133
Support has been added for a new OGC Filter geometry function TLcdOGCVendorSpecificFunctions#VERTICES
,
which returns the points of a geometry. An example use case is the usage of the function in an SLD Geometry element
to style the individual points of a polyline with an icon.
ImprovementLuciadLightspeed
LCD-12130
Support has been added for a new OGC Filter geometry function TLcdOGCVendorSpecificFunctions#INTERIOR_POINT
,
which returns a point that is interior the the geometry in case of a polygon, or sitting on its boundary otherwise.
An example use case is the usage of the function in an SLD Geometry element, to style a point that is interior
to the geometry with an icon or text symbolizer.
ImprovementAviation Standards
LCD-12123
The DAFIFT decoders now support the decoding of the Cycle Date property, which gives information about the time
a DAFIFT feature was added or last revised.
ImprovementAviation Standards
LCD-12126
Added the EAD ADR and Audit XML Schemas to the cached set of AIXM 5.1 schema extension resources.
The following namespaces can now be used without a reference to their schema location:
"http://www.aixm.aero/schema/5.1/extensions/EUR/EAD/ADR" and
"http://www.aixm.aero/schema/5.1/extensions/EUR/EAD/Audit"
Bug fixLuciadLightspeed
LCD-12090
Label placement on a Lightspeed view was very slow when domain objects have a lot of labels. This could for
example happen when on-path or in-path labels are used, or when adding icons to raster data using
TLspParameterizedRasterIconStyle
.
Bug fixLuciadLightspeed
LCD-12108
Bug fixLuciadLightspeed
LCD-12121
Screenshots taken from an
ILspView
using its
getImage()
method could
show incorrect colors if the view itself had a transparent background. This happened because the image returned did
not correctly report itself as having premultiplied alpha. This problem also affected
TLcdGXYLspAsynchronousLayerWrapper
.
Bug fixLuciadLightspeed
LCD-12134
The SLD Lightspeed implementation did not support the use of multiple polygon symbolizers with fill styles
to style a single object.
Bug fixLuciadLightspeed
LCD-12132
The SLD geometry functions startPoint, endPoint, startAngle and endAngle were not taken into account in a Lightspeed
view if the SLD did not specify a Geometry element.
Bug fixLuciadLightspeed
LCD-12102
TLcdGXYImagePainter
now properly handles images which have a geodetic coordinate reference
and bounds that are more than 360 degrees wide. The part of the image that extends outside the 360 degree horizontal
range, is not painted.
2021.1.01
Bug fixLuciadLightspeed
LCD-12100
TLcdGXYCurvedPathLabelPainter
: labels that use a halo weren't always correctly painted on
a screen with display scaling larger than 100%. This problem only occurred with a Java version 9 or later.
Bug fixLuciadLightspeed
LCD-12089
Some
ALspEditHandle
s would not interact correctly with touch events in applications with
a display scaling value other than 100%.
Bug fixLuciadLightspeed
LCD-12076
Bug fixLuciadLightspeed
LCD-12101
Fixed issue in
TLcdGeoTIFFModelDecoder
for TIFF files where the coordinate reference is
a geodetic reference and the data extent is more than 360 degrees wide.
The data extent was clamped to 360 degrees.
Note this issue is related to LCD-12102 for the visualization of such data.
Bug fixOGC Server
LCD-12080
The WMS server could falsely advertise support for GetMap SLD requests.
This is only supported when
ALcdSLDWMSGXYLayerFactory
instances are registered.
Now the WMS server no longer advertises this when no such layer factories are registered.
Bug fixDefense Symbology
LCD-12104
Bug fixDefense Symbology
LCD-12084
Fixed an issue with TLcdEditableMS2525bObject
and TLcdEditableAPP6AObject
where it was possible to paint the movement direction arrow of an icon symbol that should not have a movement direction arrow.
Additionally the movement direction and speed modifiers configuration has been changed for a number of symbols hierarchies
to make them more consistent with the other hierarchies.
The ILcdMS2525bCoded.sMovementDirection
/ILcdAPP6ACoded.sMovementDirection
modifier was added to the following symbol hierarchies:
-
MIL-STD-2525D
- 01 - Air
- 02 - Air Missile
- 05 - Space
- 06 - Space Missile
- 30 - Sea Surface
- 35 - Sea Subsurface
-
APP-6C
- 01 - Air
- 02 - Air Missile
- 05 - Space
- 06 - Space Missile
- 30 - Sea Surface
- 35 - Sea Subsurface
The ILcdMS2525bCoded.sSpeedLabel
/ILcdAPP6ACoded.sSpeedLabel
modifier was added to the following symbol hierarchies:
-
MIL-STD-2525D
-
APP-6C
- 01 - Air
- 02 - Air Missile
- 05 - Space
- 06 - Space Missile
- 30 - Sea Surface
- 35 - Sea Subsurface
The ILcdMS2525bCoded.sMovementDirection
/ILcdAPP6ACoded.sMovementDirection
modifier was removed from the following symbol hierarchies:
-
MIL-STD-2525D
-
APP-6C
-
APP-6D
The ILcdMS2525bCoded.sSpeedLabel
/ILcdAPP6ACoded.sSpeedLabel
modifier was removed from the following symbol hierarchies:
-
MIL-STD-2525D
-
APP-6C
-
APP-6D
2021.1
New featureLuciadLightspeed
The
TLcdOGC3DTilesModelEncoder
now supports Draco mesh compression for mesh models, such as
Binz and
OSGB mesh data, or even existing OGC 3D Tiles datasets. You can use
this new functionality through the API:
setMeshCompression(ELcdOGC3DTilesMeshCompressionType)
.
It is also available
in LuciadFusion Studio when you create an OGC3DTiles service from the mesh data, and in the MeshUp en BinzConverter
CLI samples.
New featureLuciadLightspeed
The TLcdRoundedPolyline
and TLcdRoundedPolygon
shapes have been added.
These shapes allow you to create a rounded curve based on a set of control points. You can use these shapes to create rounded
versions
of ILcdPolyline
and ILcdPolygon
shapes.
They can be visualized, created, and edited in ILcdGXYView
and ILspView
implementations.
The utility class TLcdShapeUtil
was added to the API. This class contains utility method to created rounded lines.
TLcdShapeUtil.round(ILcdModelReference, ILcdPolyline, double)
: Use this method to created a TLcdRoundedPolyline
.
TLcdShapeUtil.round(ILcdModelReference, ILcdPolygon, double)
: Use this method to created a TLcdRoundedPolygon
.
Example usage of these shapes can be found in the complex strokes Lightspeed sample. This sample has been adjusted so rounded
lines are used in the Cartography layer.
The lines are rounded using a custom ALspStyleTargetProvider
which provides rounded lines for every ILcdPolyline
or ILcdPolygon
in the model.
This ALspStyleTargetProvider
is located in samples.lightspeed.style.strokedline.LayerFactory.RoundedLineStyleTargetProvider
.
New featureAdvanced Raster Connectors
A sample
ILcdModelDecoder
class has been introduced for helping you decode custom datasets
containing panoramic images: the
CycloramaXMLModelDecoder
class contains logic to decode the
Cyclorama data format.
New featureDefense Symbology
The new
TLspGARSGridLayerBuilder
allows visualizing Global Area Reference System (GARS)
grid data. This is demonstrated in the new military grid sample in
the
samples.lightspeed.grid.military
package.

A GARS grid where each cell is split into 15-minute quadrants
New featureInfrastructure Standards
When you convert Binz data to OGC 3D Tiles in LuciadLightspeed (decoder.binz.bat sample) or LuciadFusion
(using an OGC3DTILES service), the conversion process (using TLcdBinzModelDecoder
followed by TLcdOGC3DTilesModelEncoder
) now also calculates physically based rendering
(PBR) material properties from the material information which is always present in the Binz data.
The PBR properties are automatically added to the resulting OGC 3D Tiles data set during the conversion.
No action is required on your part. If you have previously converted Binz data, however, you must process it again
to have the PBR material properties calculated.
Client applications, such as LuciadRIA, can use these properties to generate more realistic images of an
OGC 3D Tiles data set. It can result in highlights and reflections on the rendered objects.

LuciadRIA application showing the same dataset with default style and PBR style
Using the PBR material properties in LuciadRIA is not activated by default: you have to use the
pbrSettings
of the meshStyle
on the TileSet3DLayer
.
Refer to the Styling mesh data article in the LuciadRIA documentation for more information
on how to use this feature.
New featureInfrastructure Standards
BinzConverter now supports Draco mesh compression ELcdOGC3DTilesCompressionType.DRACO
.
It results in significantly smaller OCG 3D Tiles datasets that allow for faster streaming.
Use the new command line option "-m DRACO" to activate the Draco mesh compression algorithm.
New featureInfrastructure Standards
MeshUp now supports Draco mesh compression ELcdOGC3DTilesCompressionType.DRACO
.
It results in significantly smaller OCG 3D Tiles datasets that allow for faster streaming.
Use the new command line option "-m DRACO" to activate the Draco mesh compression algorithm.
ImprovementLuciadLightspeed
LuciadLightspeed now runs on Java 17. Refer to the "Hardware and software requirements" page in the prerequisites section
for more information and potential limitations.
ImprovementLuciadLightspeed
When a
TLspRasterLayer
is configured with the
incrementalPainting
flag
set to false and contains multiple rasters, the layer is not updated until all tiles of all rasters are ready.
Previously, the layer was updated whenever all tiles of any raster were ready.
ImprovementLuciadLightspeed
TLspKML22LayerBuilder/TLcdKML22GXYLayerFactory
: improved the default layer label.
ImprovementLucy (LuciadLightspeed)
Introduced the following Lightspeed format add-ons:
These formats can now be visualized with native Lightspeed layers in Lucy, instead of the GXY-in-Lightspeed
integration API.
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn
now allows plugging in custom point formats by overriding the
addPointFormats
method.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-11639
TLcdExpressionFactory
: A
eq
and
neq
expression
with an epsilon parameter have been added. These are useful to compare float values, for which it is recommended
to do an epsilon compare. The
map
expression now also uses an epsilon compare to prevent
issues in the visualization in some cases.
ImprovementLuciadLightspeed
LCD-11104
The API for integrating GXY layers in a Lightspeed view or vice versa has been deprecated. We advise to either stick
to GXY components, or build a full Lightspeed application instead.
ImprovementLuciadLightspeed
LCD-11431
Introduced a new static method
TLcdGeoJsonModelDecoder#parseGeometry
, which parses a single
GeoJSON geometry object to an
ILcdShape
.
ImprovementAdvanced Raster Connectors
LCD-12021
ImprovementDefense Symbology
ImprovementDefense Symbology
ImprovementInfrastructure Standards
The default value for TLcd3DTilesProcessorBuilder.textureSize
has been increased to 512, and
the default value for TLcd3DTilesProcessorBuilder.verticesPerTile
has been increased to 5000.
These values were chosen as they produce smaller datasets, with less tiny tiles. On average, this increases 3D Tiles
processing performance as well as download speed when using the dataset over the internet.
ImprovementInfrastructure Standards
TLcd3DTilesProcessorBuilder
now also accepts input data in GLB format (the binary variant of
GLTF). Furthermore, if the input data contains PBR materials, these are now also encoded in the OGC 3D Tiles output.
ImprovementInfrastructure Standards
TLcd3DTilesProcessorBuilder
: data which contained a lot of textures but relatively little
geometry (or vice versa) could lead to underutilization of the memory allocated to the 3D Tiles Processor. Internal
changes have been made that allow the 3D Tiles Processor to better adapt its memory usage to the input data. This
leads to reduced disk access and thus improved performance.
ImprovementMaritime Standards
A new S-52 radar category styling property has been added to set whether objects should be displayed that are meant
to appear over or under a radar picture: see setRadarCategory(ELcdS52RadarCategory)
and
getRadarCategory()
in TLcdS52DisplaySettings
.
If you need to visualize ECDIS data interleaved with a radar, you need to use three layers:
- an ECDIS layer for which the S-52 radar category setting is set to
ELcdS52RadarCategory#UNDER
,
- the radar layer,
- an ECDIS layer for which the S-52 radar category setting is set to
ELcdS52RadarCategory#OVER
.
Both ECDIS layers use the same model.
Bug fixLuciadLightspeed
LCD-12066
Fixed ALspViewXYZWorldTransformation#getMapScale
returning incorrect results for
TLcdMapScale.ScaleLocation.MAP_CENTER
when either the world reference is 3D geocentric, or
the view's DPI scale is not equal to 1.
Bug fixLuciadLightspeed
LCD-11770
Bug fixDefense Standards
LCD-12030
Setting TLcdNITFModelDecoder#setIgnoreGraphics
to true now correctly ensures that CGM
graphics are not included in the resulting model.
Bug fixDefense Standards
LCD-12029
Fixed issue where certain NITF elements would not be georeferenced correctly when
TLcdNITFModelDecoder#setSeparateGraphics
is set to true and the element's parent is not an image element, or it has no parent at all.
Upgrade considerationLucy (LuciadLightspeed)
The JIDE third party library, which is used by the Lucy docking front-end, has been upgraded to version 3.7.11.
This upgrade fixes a Java 11 related issue on macOS.
Upgrade considerationLuciadLightspeed
The SQLite
library has been updated to version 3.36.0.
Upgrade considerationLuciadLightspeed
When a
TLspRasterLayer
is configured with the
incrementalPainting
flag
set to false and contains multiple rasters, the layer is not updated until all tiles of all rasters are ready.
Previously, the layer was updated whenever all tiles of any raster were ready.
Upgrade considerationLucy (LuciadLightspeed)
TLcyNITFDecoderAddOn
now separates vector and raster data in different
sub-models of a model tree node. Because of this, old Lucy GXY workspaces that contain mixed NITF models
will only display the raster data. When you open such a workspace, a warning will be
logged to inform you about this change. Note that raster-only NITF layers are decoded and visualized correctly
without any issues. If you have an affected workspace, please recreate the affected NITF layers to make sure all
data are visualized correctly.
Upgrade considerationLucy (LuciadLightspeed)
Along with the GXY-in-Lightspeed layer integration API, the
TLcyLspFallbackFormatAddOn
was
deprecated and removed from the default add-ons. Because of this, the following formats are no longer supported out
of the box in Lucy:
- DGN
- DWG
- CGM
- SVG
- LRDB
- LVDB
- SHPMTM
- TEA Extreme Points
- TEA Hypsometry GeoTIFF
Although it is deprecated,
TLcyLspFallbackFormatAddOn
is still API and can be re-added to
your add-ons manually if required.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn
now has consistent pattern based configurations for all point formats.
As a side-effect, legacy configuration options no longer work, which will cause your active settables to disappear.
To fix this, adjust your point format configuration files as shown in
TLcyMapEditUnitAddOn_PointFormats.cfg
.
Upgrade considerationLuciadLightspeed
The military grid implementations have moved to the defense symbology component.
This results in the following package changes:
Old Class |
New Class |
com.luciad.text.TLcdMGRSFormat |
com.luciad.text.mgrs.TLcdMGRSFormat |
com.luciad.text.TLcdGARSPointFormat |
com.luciad.text.gars.TLcdGARSFormat |
com.luciad.view.map.TLcdMGRS* |
com.luciad.view.map.mgrs.TLcdMGRS* |
com.luciad.view.lightspeed.painter.grid.TLspMGRS* |
com.luciad.view.lightspeed.painter.grid.mgrs.TLspMGRS* |
Upgrade considerationLuciadLightspeed
Upgrade considerationDatabase Connectors
The Oracle JDBC driver has been upgraded to version 19.12.0.0.
2021.0
2021.0.11
ImprovementLucy (LuciadLightspeed)
LUCY-3940
TLcyLspProjectionActiveSettable
: relaxed the
isActive
check.
This way, the associated projection will still show up as selected in the projection combo box, even if you
adjust its parameters.
ImprovementLuciadLightspeed
The OGC Filter functions startAngle / endAngle and startPoint / endPoint now fallback to the domain object's
embedded geometry if the provided geometry property name does not exist and if the domain object itself is of type
ILcdShape
.
ImprovementLuciadLightspeed
LCD-12017
TLcdSHPModelEncoder
now creates buffered output streams by default, which greatly improves
encoding speed.
Bug fixLucy (LuciadLightspeed)
LUCY-4954
TLcyMapAddOn
: snapping to a raster level using CTRL + mouse zoom wheel could cause an exception.
Bug fixLuciadLightspeed
LCD-12081
The OGC Filter functions startAngle / endAngle and startPoint / endPoint can now also be applied
to
ILcdPointList
geometries that do not implement
ILcdCurve
.
Bug fixLuciadLightspeed
LCD-12078
Fixed issue in
TLcdGeoTIFFModelDecoder
for TIFF files with an index color model where
setting an index as transparent value, using
setForcedTransparentColorIndex
, was not
applied correctly.
Bug fixLuciadLightspeed
LCD-12062
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn
: fixed the snap-to-raster functionality of the navigation controller when using macOS.
Bug fixLuciadLightspeed
LCD-12073
TLcdClusteringTransformer
could throw an ArrayIndexOutOfBoundsException, leading to
incorrect clustering results. This has now been fixed.
Bug fixOGC Server
LF-2178
TLcdCSWRecordTransformationFactory
would incorrectly apply ISO metadata CRS information
to ISO metadata WGS 84 bounding boxes. This resulted in CSW and ATOM records with inconsistent bounding boxes.
Bug fixOGC Server
LF-2179
ALcdCSWCommandDispatcherFactory
would return an exception when asking to include
{http://www.opengis.net/ows}BoundingBox
in the response of a
GetRecords
request.
Bug fixOGC Server
LF-2173
2021.0.10
ImprovementLuciadLightspeed
LCD-12046
ImprovementAviation Standards
LCD-12033
The 3D visualization of ATS routes decoded by the AIS-based data formats DAFIF(T), ARINC 424 and AIXM 3 and 4
now takes the altitude of the route segments into account.
Bug fixLuciadLightspeed
Fixed issue with the
TLcdGXYGeoBufferPainter
where it was no longer possible to add or remove points by CTRL+clicking the buffer axis.
Bug fixLuciadLightspeed
LCD-12031
Fixed an issue with the
TLspEditController
where domain objects that were selected before the
controller was activated stayed in the edited state, even after deselection.
Bug fixLuciadLightspeed
LCD-12035
Bug fixLuciadLightspeed
LCD-12034
TLcdMultilevelGridLayer
: you no longer need to override
ILcdMultilevelGrid#createGridCoordinate
to support grids with more than 5 levels.
Bug fixAdvanced Raster Connectors
LCD-12032
TLcdECWModelDecoder
: fixed a potential JVM crash when attempting to decode a corrupted ECW
file.
Bug fixAviation Standards
LCD-12050
The property ILcdDAFIFNavaidFeature#ICAO_CODE
was not correctly decoded from
DAFIFT navaid data: it received the same value as the ILcdDAFIFNavaidFeature#ICAO_REGION
property.
Bug fixDefense Symbology
TLcdNVGGXYPainterProvider
: Fixed editing issue with arrow symbols where the arrow direction would be reversed during editing.
Bug fixDefense Symbology
LCD-12122
TLcdNVGGXYLayerFactory
: Fixed an editing issue in NVG GXY views where area symbols were painted without edit handles and lost some required styling
(Affiliation color, corner roundness, etc).
Bug fixS-63
LCD-12043
Fixed an issue when using an S-63 hardware ID directly using the system property com.luciad.format.s63.encryptedHardwareID
or using the
call setEncryptedHardwareID
.
Decoding of the corresponding S-63 cell permits would fail if that ID had a letter in its hexadecimal form, for example 0xA2345.
This did not affect hardware IDs based on Luciad-provided User Permits embedded in the Luciad license.
2021.0.09
ImprovementLuciadLightspeed
LCD-12005
The
TLcdGeoTIFFModelDecoder
now supports GeoTIFF files with a photometric interpretation
Palette Color
that have two bands of type
BYTE
rather than having
a single band. The second band is interpreted as an alpha value.
Bug fixOGC Server
LCD-12028
Fixed the handling of WMS GetFeatureInfo requests for features with a geometry consisting of an extruded shape
or a composite curve.
Bug fixAviation Standards
LCD-12019
Fixed an issue that could lead to an AIXM 5.1 airspace aggregation error in a Lightspeed 3D view for airspaces that
contain multiple levels of aggregations.
Bug fixAviation Standards
LCD-12018
Fixed an issue that could lead to an AIXM 5.1 airspace aggregation error for airspaces that cross the 0th meridian.
2021.0.08
Bug fixLuciadLightspeed
LCD-12009
TLcdGXYGeoBufferPainter
:
- Fixed a bug where the buffer width would be edited instead of the shape when trying to translate the first or last axis point
of the buffer.
- The TLcdGXYGeoBufferPainter#getMinimumEditDelta value will now be taken into account before applying edit operations which
translate or reshape the buffer outline/axis. This helps prevent accidentally editing the buffer when selecting it.
Bug fixAviation Standards
LCD-12014
Fixed an AIXM 5.1 airspace decoding issue that could cause "Cannot connect arc" warnings for airspaces containing
arc and geographical border segments.
Bug fixAviation Standards
LCD-12012
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing consecutive arcs.
This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.
Bug fixDefense Symbology
LCD-12007
Bug fixDefense Symbology
LCD-12008
TLspCGRSGridLayerBuilder
: fixed CGRS labels which were appearing and disappearing at wrong locations when panning in and out of
the CGRS grid area.
2021.0.07
Bug fixLuciadLightspeed
LCD-12000
Fixed the
UnsupportedOperationException
that occurred when querying a
TLspLayer
that contains view-spaced icons with a
TLspIconStyle
that uses orientation.
Bug fixLuciadLightspeed
LCD-11994
Bug fixReal-time Engine
LCD-11994
2021.0.06
ImprovementLuciadLightspeed
To ease connecting to OpenStreetMap tile services, a new sample decoder
samples.earth.decoder.osm.OpenStreetMapModelDecoder
as well as layer factories for GXY (samples.earth.decoder.osm.OpenStreetMapLayerFactory
)
and Lightspeed maps (samples.lightspeed.decoder.osm.OpenStreetMapLayerFactory
) have been added.
The articles
Visualize OpenStreetMap raster tiles data on a GXY map
and
Visualize OpenStreetMap raster tiles data on a Lightspeed map
provide more information about their usage.
ImprovementLuciadLightspeed
LCD-11911
The maven sample project has been expanded. The sample project is now able to work with release which have a deployment license.
The sample project will now come with a ProGuard configuration and a packaging configuration that creates production ready
artifacts.
Bug fixLuciadLightspeed
LCD-11996
Reduced memory usage of rounded shapes created by
TLcdShapeUtil
and of military symbols with rounded lines in the Military Symbology module.
2021.0.05
New featureDefense Symbology
The new
TLspCGRSGridLayerBuilder
allows visualizing Common Grid Reference System (CGRS) grid data.
This is demonstrated in the new military grid sample in the
samples.lightspeed.grid.military
package.

A CGRS grid where each cell is split into 10-minute keypads
Bug fixLuciadLightspeed
LCD-11993
TLspXYGridLayerBuilder
didn't work correctly when creating a layer with only horizontal or
only vertical lines. On certain zoom levels, lines would not be displayed or would be cut off at the wrong location.
Bug fixLuciadLightspeed
LCD-11978
To increase compatibility, the
TLcdE57ModelDecoder
will no longer enforce the presence of
the
isAtomicClockReferenced
element. Although this element is mandatory, some data may not
have it.
Bug fixLuciadLightspeed
LCD-11988
Bug fixDefense Symbology
LCD-11987
Setting a forced color incorrectly introduced a fill in case of unfilled icon symbols.
Bug fixDefense Symbology
LCD-11933
Fixed an issue where symbols with a Headquarters (HQ) echelon, that are painted without Headquarters Staff Indicator, were
anchored incorrectly.
These symbols will now always be anchored in the center of the icon.
Upgrade considerationLuciadLightspeed
The CGRS and GARS GXY grid sample code has moved to the Defense Symbology component.
It is showcased as a dedicated sample in the samples.gxy.grid.military
package.
2021.0.04
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-11958
Improved the performance of printing a Lightspeed view with many icons.
ImprovementOGC Server
LCD-11947
The SLD text rendering option conflictResolution
to enable/disable label
decluttering (see release note of LCD-11850) is now also supported in the WMS server.
This allows a WMS client to include an SLD in a request that enables(default) or
disables label decluttering.
Bug fixLuciadLightspeed
LCD-11973
Bug fixLuciadLightspeed
LCD-11957
Bug fixLuciadLightspeed
LCD-11974
TLspIconStyle
: the minimum pixel size was not applied correctly during printing.
Bug fixLuciadLightspeed
LCD-11969
Bug fixLucy (LuciadLightspeed)
LCD-11941
Fixed a workspace loading issue that could throw an IllegalArgumentException
in a Lucy
application that is packaged and executed using Spring Boot.
Bug fixLuciadLightspeed
LCD-11979
TLspComplexStrokedLineStyle
: fixed errors that could lead to redundant compilation of shader
programs when using multiple style instances that are actually equal.
Bug fixInfrastructure Standards
LCD-11900, LCD-11962
Resolved a caching issue which caused the .binz input files to remain open after decoding them with the TLcdBinzModelDecoder
.
This resulted in a number of issues when manipulating the files.
For example:
- The .binz file could no longer be removed form disk.
- When replacing an existing .binz file with a new version, this could result in
IOExceptions
being thrown when decoding the new version of the .binz file.
2021.0.03
ImprovementAviation Standards
LCD-11953
The leaf models in the model tree decoded by
TLcdDAFIFModelDecoder
now implement
ILcdFeatureIndexedModel
, to ease indexing them for one or more properties.
An example use case for airport models is the use of an index for the ICAO code property
ILcdDAFIFAerodromeFeature.ICAO_CODE
, to quickly find airports for a given ICAO code
using
ILcdFeatureIndexedModel#retrieveByUniqueIndex
.
Bug fixLuciadLightspeed
LCD-11949
TLcdEPSGReferenceParser
would throw an exception when the lcd_geoid_resources.jar file was
missing from the class path. It now only throws when it effectively needs this resource file to parse a reference.
2021.0.02
ImprovementLuciadLightspeed
LCD-11937
The SLD placement of curved labels (= an SLD TextSymbolizer with vendor option
followLine=true
) has been improved in GXY views
and in a WM(T)S server environment:
- the placement is now dynamic within a WM(T)S server environment, making sure that each generated map or tile shows the label
of the visible curved paths (such as streets or rivers); this avoids that labels disappear when zooming in.
- the vendor option
repeat=valueInPixels
is now supported to repeat labels along a curved path,
taking into account the specified pixel value to be used between subsequent labels; repeating labels can be useful to improve
the
label readability for long curved paths.
ImprovementLuciadLightspeed
LCD-11938
You can now configure a minimum gap in pixels between subsequent labels on the GXY labeling algorithm
TLcdGXYCurvedPathLabelingAlgorithm
, using the newly introduced methods
setMinimumGap
and
getMinimumGap
.
ImprovementInfrastructure Standards
LCD-11225
The 3D Tiles Processor now reads normal data from source OBJ files to export to the output 3D Tiles.
ImprovementRadar Connectors
LCD-11858
You can now configure the calculated altitude field to be used for tracks within the ASTERIX Categories 30 and 62:
- Category 30: By default, the Calculated Track Altitude field is used. This can be changed to the
Calculated Track Flight Level field by setting the System property
com.luciad.format.asterix.cat30.useCalculatedTrackFlightLevel
to true.
- Category 62: By default, the Calculated Track Geometric Altitude field is used. This can be changed to the
Calculated Track Barometric Altitude field by setting the System property
com.luciad.format.asterix.cat62.useCalculatedTrackBarometricAltitude
to true.
Bug fixLuciadLightspeed
LCD-11932
Bug fixLuciadLightspeed
LCD-10089
TLcdSHPModelDecoder2#applyOnInteract2DBounds
now correctly considers MultiPoint geometries
to be points as well. This makes sure that MultiPoint objects containing only one point will still be visualized,
even though a minimum size condition might not be met.
2021.0.01
ImprovementLuciadLightspeed
LCD-11914
TLcdTransformedHeightProvider
now avoids evaluating the same geoid twice if the
transformation is between geodetic references with only a geoid difference.
ImprovementLucy (LuciadLightspeed)
LUCY-4944
TLcyShapeVisibilityAddOn
: the values of the step size properties in the configuration file
were modified to improve performance. The visibility results might be slightly different from before.
ImprovementInfrastructure Standards
LCD-11199
Added more command line options to the Meshup sample. You now have more optional arguments you can pass to the command line
to control
the resulting output OGC 3D Tiles.
ImprovementInfrastructure Standards
LCD-11731
The
TLcdBinzModelDecoder
now supports BINZ version 5.
This includes the BINZ data created by Hexagon Smart Interop Publisher version 15.
Bug fixLuciadLightspeed
LCD-11920
The WMTS client now recognizes layer dimensions that specify an ISO 8601 time dimension through the UnitSymbol field
instead of the UOM field.
Bug fixLuciadLightspeed
LCD-11919
Fixed a regression introduced in 2021.0 that caused a NullPointerException when a connection was made with
a WMTS server of which the capabilities specified a layer dimension without a UOM field.
Bug fixLuciadLightspeed
LCD-11899
Fixed an issue with the maven sample project setup script, which could cause compilation failures when there was a
space in the path to the sample project.
Bug fixLuciadLightspeed
LCD-11875
Bug fixLuciadLightspeed
LCD-11875
Bug fixLuciadLightspeed
LCD-11912
Fixed bug where TLcdCSVModeldeccoder
could crash when parsing lon-lat point strings,
depending on the default locale.
Bug fixLucy (LuciadLightspeed)
LCD-11905
TableViewAddOn
: the filter to only show elements that are visible on the map did not
work on a Lightspeed map in case the model reference did not correspond to a WGS 84 geodetic reference.
Bug fixLuciadLightspeed
LCD-11902
Solved a problem decoding GML files to a
TLcdDataModel
with generic enumerated types,
such as
String
or
Object
.
Bug fixDefense Symbology
LCD-11928
Fixed an issue where the font-family styling option was not applied to NVG Text objects.
Bug fixDefense Symbology
LCD-11904
Resolved a caching issue in GXY, which caused performance problems when painting NVG models containing many Tactical Graphics.
Bug fixMaritime Standards
You can now re-throw cell warnings in your error handler (ILcdS57InvalidCellExceptionHandler#handleCellWarnings
),
which will make sure the cell is not loaded.
If you disable TLcdS57UnifiedModelDecoder#ignoreInvalidCells
, decoding the entire catalog will fail if you re-throw warnings or errors.
By default, the warnings are logged and not re-thrown, so the cell is still loaded.
Bug fixMaritime Standards
LCD-11894
The S-57 and S-63 decoders now issue a warning when we detect that certain updates are missing.
This can happen for example when you have cell GB5X01SW.000 and update file GB5X01SW.002, but not the intermediate update
file GB5X01SW.001.
You can inspect the warning either through TLcdS57ModelDescriptor#getWarnings
or by registering an error handler on your decoder and implementing ILcdS57InvalidCellExceptionHandler#handleCellWarnings
.
If you want to fail the decoding of the particular cell, you can propagate the warning by re-throwing it
in ILcdS57InvalidCellExceptionHandler#handleCellWarnings
.
2021.0
New featureLucy (LuciadLightspeed)
New featureLuciadLightspeed
Support has been added for WMTS GetFeatureInfo requests.
The class
TLcdWMTSClient
has a new method
getFeatureInfo
to perform the GetFeatureInfo
request.
This method expects a
TLcdWMTSGetFeatureInfoContext
parameter, which is a new class
that specifies WMTS GetFeatureInfo settings. Additionally, a WMTS model's domain object now implements
the new interface
ILcdWMTSClientProvider
to easily access a
TLcdWMTSClient
.
New featureLuciadLightspeed
LuciadLightspeed now has support for the vertical datum Normaal Amsterdams Peil (NAP),
as well as the associated EPSG reference EPSG:7415. As a LuciadLightspeed user, this just works for you.
You can open, visualize, and use data in this reference or referring to this vertical datum.
New featureLuciadLightspeed
It is now possible to print the contents of a
TLspFXView
at high resolution. The newly
introduced
print()
method can be used to generate a print-quality image. The sample class
samples.lightspeed.javafx.common.printing.PrintPreview
demonstrates how to use this method
together with the JavaFX printing API. It also implements a preview of the print result and supports multi-page
printing. The print preview can be accessed via a new toolbar button which is available in all JavaFX samples.
New featureLuciadLightspeed
JavaFX UI components that can be used for map navigation and altering the altitude exaggeration of a 3D view have
been added to the API.
New featureAdvanced Raster Connectors
The MrSID MG4 format is now supported, on 32-bit and 64-bit Windows, on 64-bit Linux and on 32-bit and 64-bit macOS.
Support for 32-bit Linux has been dropped, since the latest of the MrSID SDK no longer supports 32-bit Linux.
The
TLcdMrSIDModelDecoder
now supports multispectral images with up to 255 bands and more than 8-bits per band.
LiDAR point clouds and password protected files are currently not supported.
ImprovementLuciadLightspeed
The
TLcdRD1918DutchGridReference
model reference class has been deprecated,
because it uses outdated hardcoded parameters.
Where possible, using EPSG or WKT parsing is encouraged, for example:
new TLcdEPSGReferenceParser().parseModelReference("EPSG:28992")
.
ImprovementLuciadLightspeed
LCD-11312
TLcdExpressionFactory
: a
log
expression has been added which returns
the natural logarithm of its parameter.
ImprovementLuciadLightspeed
LCD-5200
LuciadLightspeed now has more extensive support for EPSG and WKT encoded references that use a geoid.
ImprovementLuciadLightspeed
LCD-5095, LCD-2134, LCD-6783
LuciadLightspeed now has improved support for working with map scales.
The new
TLcdMapScale
class now allows working with a physical, unitless map scale ratios
such as "1:100.000". You can directly set and retrieve them on any
ILcdGXYView
.
For Lightspeed views, you can retrieve the scale from
ALspViewXYZWorldTransformation
and set it using
TLspViewNavigationUtil
.
TLcdMapScale#createScaleRange
is also supported in several places to specify unitless map scale
ranges.
For more information, refer to the
Working with map scales article.
ImprovementLuciadLightspeed
The layer control UI component used in the JavaFX samples now has the following additional features:
- Layers can be moved in the tree with drag and drop or buttons.
- A progress indicator now indicates when a layer is busy.
- Buttons have been added to toggle selectable, editable and labeled.
The
FXLayerControl
can be reused in your own application.
ImprovementLuciadLightspeed
LCD-11631
Various missing read or write locks were added for internal accesses to models.
Additionally, a new check was introduced that asserts that the correct locks are taken when accessing an
ALcdModel
. This check is only enabled when assertions are enabled (vm parameter:
-ea
) and logs violations as Warnings when it finds any.
ImprovementLucy (LuciadLightspeed)
LCD-9280
The WMS client within Lucy now requests by default up to 1000 features on a GetFeatureInfo request instead of 1.
The value can be configured to a custom value within the addon configuration file
lucy/wmsclient/getfeatureinfo/TLcyWMSClientGetFeatureInfoAddOn.cfg
ImprovementLuciadLightspeed
LCD-9280
The WMS client sample now requests the WMS server to return more than 1 result.
This is configured in the class samples.wms.client.common.WMSGetFeatureInfoMouseListener
using TLcdWMSGetFeatureInfoParameters.Builder.maxFeatureCount
.
ImprovementLuciadLightspeed
LCD-9196
ImprovementLuciadLightspeed
LCD-6652
Corrected the spelling of the method TLcdWMSGetMapRequest.setTransparant
to
TLcdWMSGetMapRequest.setTransparent
.
The incorrectly spelled method name remains to exist for now for backward compatibility.
ImprovementAviation Standards
Improved the visualization of some ICAO icons.
ImprovementDefense Symbology
LCD-11871
Bug fixLuciadLightspeed
LCD-11740, LCD-11742, LCD-11109, LCD-11163, LCD-11175, LCD-11158, LCD-5238, LCD-11156, LCD-11162, LCD-11761, LCD-11752, LCD-11188
DPI and display scaling specific behavior is now handled more consistently across all supported platforms.
In addition, the DPI value can now be overridden using the system property -Dluciad.dpi
.
Bug fixAdvanced Raster Connectors
Bug fixAdvanced Raster Connectors
LCD-11683
Bug fixOGC Server
LCD-11827
A GML application schema returned by the WFS server for a DescribeFeatureType request no longer includes
a GML FeatureCollection element and type, because WFS uses its own FeatureCollection.
Upgrade considerationLuciadLightspeed
LCD-11871
Upgrade considerationLuciadLightspeed
LCD-11790, LCD-11852
A new version of the JAI ImageIO library is used.
-
This fixes the interpretation of GeoTIFF images with exactly 4 bands.
The 4th band was always interpreted as alpha channel.
Upgrade considerationLuciadLightspeed
LCD-11749
Microsoft ended its support for Windows 7 and Windows Server 2008.
In line with that decision, we now support LuciadLightspeed development
and deployment on Windows platforms starting from
versions Windows 8.1 and Windows Server 2012.
Upgrade considerationLuciadLightspeed
The Maven POM files provided with a LuciadLightspeed release have been renamed to follow the Maven artifactId
naming conventions.
If you depend on any Lightspeed component in your project's POM file, they will need to be renamed as follows.
Group ID |
Old Artifact ID |
New Artifact ID |
com.luciad |
LuciadLightspeed |
luciadlightspeed |
com.luciad |
Advanced_GIS_Engine |
luciadlightspeed_advanced_gis_engine |
com.luciad |
Advanced_Raster_Connectors |
luciadlightspeed_advanced_raster_connectors |
com.luciad |
Aviation_Standards |
luciadlightspeed_aviation_standards |
com.luciad |
Database_Connectors |
luciadlightspeed_database_connectors |
com.luciad |
Defense_Standards |
luciadlightspeed_defense_standards |
com.luciad |
Defense_Symbology |
luciadlightspeed_defense_symbology |
com.luciad |
Google_Earth_Enterprise |
luciadlightspeed_google_earth_enterprise |
com.luciad |
Graph_and_Routing_Engine |
luciadlightspeed_graph_and_routing_engine |
com.luciad |
Infrastructure_Standards |
luciadlightspeed_infrastructure_standards |
com.luciad |
Maritime_Standards |
luciadlightspeed_maritime_standards |
com.luciad |
Radar_Connectors |
luciadlightspeed_radar_connectors |
com.luciad |
Real_time_Engine |
luciadlightspeed_real_time_engine |
com.luciad |
S_63 |
luciadlightspeed_s63 |
com.luciad |
Terrain_Analysis_Engine |
luciadlightspeed_terrain_analysis_engine |
com.luciad |
Tiling_Engine |
luciadlightspeed_tiling_engine |
com.luciad |
Weather_Environment_Standards |
luciadlightspeed_weather_environment_standards |
In addition, POM files are now available for each product tier (Essential, Advanced and Pro).
These POM files depend on all non-optional modules available for their respective product tiers.
The new product tier POM files are:
Group ID |
Artifact ID |
com.luciad |
luciadlightspeed_essential |
com.luciad |
luciadlightspeed_advanced |
com.luciad |
luciadlightspeed_pro |
Upgrade considerationLuciadLightspeed
Due to changes in the dependencies of LuciadFusion we have upgraded our com.fasterxml dependencies in
LuciadLightspeed to ensure we depend on the same version across all products.
Here is an overview of the dependency changes:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.jackson.core |
jackson-core |
2.9.7 |
2.9.8 |
com.fasterxml.jackson.core |
jackson-databind |
2.9.7 |
2.9.8 |
com.fasterxml.jackson.core |
jackson-annotations |
2.9.5 |
2.9.8 |
Upgrade considerationLuciadLightspeed
LCD-9196
The
TLcdOGCWMSProxyModelDecoder
behavior for calling the method
decode
with just an URL without a
data=layerName
argument has been aligned with the behavior of the
WFS and WCS decoders. In this case the decoder now returns a model with a
ALcdWMSProxy
configured with the first WMS layer found in the capabilities.
Users that do not want this behavior can get a model with an empty
ALcdWMSProxy
by calling
TLcdOGCWMSProxyModelDecoder#setUseEmptyProxyForUrlOnly(true)
.
Upgrade considerationAdvanced Raster Connectors
The
TLcdMrSIDModelDecoder
is no longer supported on 32-bit Linux systems as this is no longer
supported by the MrSID decoding SDK.
Upgrade considerationAdvanced Raster Connectors
The MrSID decoding SDK has been updated to version 9.5.4.
Upgrade considerationDatabase Connectors
Upgraded the PostgreSQL JDBC driver to version 42.2.19. This updated driver adds support for PostgreSQL 13.
The Checker Qual library (version 3.5.0) has been added since this is a runtime dependency of this newer version of
the PostgreSQL JDBC driver.
Upgrade considerationOGC Server
3D data (point cloud or mesh) can no longer be published in a WMS or WMTS service in LuciadFusion.
The 3D data was not visible when published in either WMS or WMTS. Please use an OGC 3D Tiles service to publish 3D data.
Upgrade considerationWeather & Environment Standards
LCD-11540
The
TLcdNetCDFModelDecoder#discoverDataSources
method now returns multi-band sources for data sources that are related.
Previously, all sources were returned as single-band sources.
This change required changing the return type to a list of
ILcdDataSource
instances, since
the returned sources can now contain both
TLcdNetCDFDataSource
and
TLcdNetCDFMultiBandDataSource
instances.
To return all sources as single-band sources as the
TLcdNetCDFModelDecoder#discoverDataSources
method did previously,
set the multi-band creation of the
TLcdNetCDFModelDecoder
to
MultiBandImageCreation.NEVER
.
2020.1
2020.1.25
ImprovementLuciadLightspeed
LCD-11866
Support has been added for an OGC strTrim function in
TLcdOGCVendorSpecificFunctions
that can trim a String property.
This function can be used when querying a model (see
ILcdModel#query
), when creating an OGC Filter or when
creating an SLD style.
ImprovementLuciadLightspeed
LCD-9858
Support has been added for an OGC Recode function in
TLcdOGCVendorSpecificFunctions
that can transform a property value to another value.
The intended use case is to define an SLD styling property as a function of the contents of a data property.
For example, an SLD polygon fill style can be defined that uses a Recode function to map property values to fill colors.
Bug fixLuciadLightspeed
LCD-11880
When decoding a DTED directory using the
TLcdDTEDDirectoryModelDecoder
and disposing the model
would result in not being able to delete the DTED folder right after. Some resources used within the decoder were
not promptly closed after usage.
Bug fixLuciadLightspeed
LCD-11874
Bug fixLuciadLightspeed
LCD-11770
Bug fixLuciadLightspeed
LCD-11873
ALcdCompassNavigationControl
: fixed a small inconsistency between the visual
highlighting of the compass elements and their actual priorities when receiving mouse events.
Bug fixLuciadLightspeed
LCD-11862
TLspPlotLayerBuilder
: fixed a deadlock that could occur in a plot layer when model changes
were fired.
Bug fixLuciadLightspeed
LCD-11677
TLfnClientFactory.createLTSClient
now sanitizes the provided LTS URL by removing
request parameters reserved by the LTS protocol. This avoids requests with duplicate LTS request parameters,
which can lead to request handling errors in a LuciadFusion server.
Bug fixOGC Server
LCD-11860
The caching in the WMS server now takes additional request parameters into account for generated images.
There is also the possibility to configure which additional request parameters must be taken into account when
trying to reuse views from the view pool.
This is only intended for the case where you have extended the WMS server with one or more
non-standard
parameters that affect the layer creation.
Bug fixDefense Symbology
LCD-11867
2020.1.24
ImprovementLuciadLightspeed
LCD-11850
SLD text rendering in GXY / Lightspeed now supports disabling label placement conflict resolution (label decluttering).
This can be achieved by configuring an SLD vendor option with name
conflictResolution
and value
false
on a
TLcdSLDTextSymbolizer
.
ImprovementRadar Connectors
LCD-11809
TLcdASTERIXLiveDecoder#decodeBlockSFCT
could throw an ArrayIndexOutOfBoundsException
in case of an ASTERIX
record of which the encoded record length exceeds the actual record length. Such a record is now skipped and logged.
Bug fixLuciadLightspeed
LCD-11803
Bug fixLuciadLightspeed
LCD-11848
Fixed an issue where calling the
refresh
on a
TLcdDatabaseModel
resulted
in a connection leak when using a connection pooling JDBC driver, such as the Proxool driver.
Bug fixOGC Server
LCD-11795
The WFS server could not handle DescribeFeatureType requests for multiple feature types that share the same namespace.
Bug fixOGC Server
LCD-11799
The XML Schema response to a WFS DescribeFeatureType request affecting multiple feature types now
uses a more sensible target namespace (one of the feature types' namespaces) instead
of always using http://www.opengis.net/gml
.
Bug fixOGC Server
LCD-11808
The WFS capabilities now list the feature types' namespaces on the root element,
which enhances interoperability with 3rd party WFS clients. Additionally, the feature types's
namespace prefixes are now always used instead of an automatically determined prefix.
Bug fixInfrastructure Standards
LCD-11840
Fixed a bug where decoding certain Binz datasets would cause the application to crash with a ClassCastException
.
2020.1.23
ImprovementLuciadLightspeed
LCD-11825
ImprovementLuciadLightspeed
LCD-11843
The detection of using a fall-back reference has improved in the WMS client painting.
In case the map reference is Transverse Mercator and the WMS service supports one of the AUTO
(Universal) Transverse Mercator codes (AUTO(2):42001
or AUTO(2):42002
)
they are used as preferred fall-back reference for the GetMap
requests.
ImprovementInfrastructure Standards
LCD-11834
The 3D Tiles Processor now is more compatible with the OGC 3D Tiles 1.0 standard. It encodes
OGC 3D Tiles with asset version 1.0 as a string instead of as a number. Using number as a
version caused some issues with 3rd party software. This has now been fixed. On top of that,
the 3D Tiles Processor will now encode 3D tiles using "uri" instead of "url".
Bug fixLuciadLightspeed
LCD-11822
Rounded point lists that are outside the projection bounds could cause a
NullPointerException
when rendered in an
ILcdGXYView
. This has been fixed.
Bug fixLuciadLightspeed
LCD-11807
TLcdWKTReferenceParser
and
TLcdEPSGReferenceParser
didn't
always correctly take a non-zero prime meridian and a different angular unit into account. This could result in:
- an incorrect prime meridian shift
- a prime meridian shift that was applied twice
- incorrect projection parameters
Bug fixLuciadLightspeed
LCD-11832
Bug fixOGC Server
LF-2080
The WFS capabilities did not advertise GeoJSON as supported output format for feature types
backed by an Oracle, Informix, IBM Db2 or Microsoft SQL Server database.
Bug fixOGC Server
LF-2103
Bug fixOGC Server
LCD-11833
The WCS GetCapabilities response did not include the title in the service identification section in case of WCS 1.1.
Bug fixInfrastructure Standards
LCD-11796
Bug fixInfrastructure Standards
LCD-11697
Fixed an issue that would cause incorrect textures at simplified levels to be incorrect when dealing with
repeating textures, or multiple materials for the same object.
Bug fixInfrastructure Standards
LCD-11298
TLcd3DTilesProcessorBuilder
no longer logs long data structures when logging with
logging level
DEBUG
. Previously this would cause the console output to flood, causing
performance issues with logging enabled. This was especially an issue when using logback classic with its default
settings.
2020.1.22
ImprovementLuciadLightspeed
LCD-11792
SLD raster rendering in GXY / Lightspeed now supports removing the alpha channel from an image.
This can be achieved by configuring an SLD vendor option with name
removeAlphaChannel
and value
true
on a
TLcdSLDRasterSymbolizer
.
ImprovementLuciadLightspeed
LCD-11798
The EPSG database was updated to the latest version: 10.018.
Bug fixLuciadLightspeed
LCD-11791
Improved the auto-detection of SLD raster normalization intervals by means of a more accurate histogram operation.
Bug fixLuciadLightspeed
LCD-11785
The SLD Lightspeed implementation now also takes the optional PerpendicularOffset property into account
for icon-based line strokes.
Bug fixLuciadLightspeed
LCD-11786
The SLD Lightspeed implementation now accurately applies the optional PerpendicularOffset property
for solid line strokes.
Bug fixLuciadLightspeed
LCD-11720
Bug fixLuciadLightspeed
LCD-11743
The AUTO
and AUTO2
reference formatters did not check for the
false easting and false northing values to be 0.0
for some of the codes.
Also the auto equirectangular code resulted in the projection using spherical formulas but this must be the ellipsoidal
formulas.
Bug fixAdvanced Raster Connectors
LCD-11806
Fixed an issue in
TLcdGDALModelDecoder
that made it fail to recognize certain
.IMG files as containing elevation data.
Bug fixWeather & Environment Standards
LCD-11805
Fixed an issue where world-covering datasets decoded with the
TLcdNetCDFModelDecoder
could be shifted along the
longitude axis.
Bug fixDefense Standards
LCD-11710
TLcdNITFModelDecoder
: nested NITF segments (with ALVL>0) are now correctly positioned relative to their parents' position.
Bug fixDefense Standards
LCD-11155
Some fill patterns were incorrectly visualized in an
ILcdGXYView
when using display scaling.
Bug fixMaritime Standards
LCD-11813
Features with complex strokes were not rendered correctly on macOS. This has been fixed.
2020.1.21
ImprovementLucy (LuciadLightspeed)
LUCY-4933
TLcyWorkspaceAddon
now allows saving the fallback workspace. Refer to the addon's config file to enable this behavior.
ImprovementLuciadLightspeed
LCD-11769
TLcdEPSGReferenceParser
now uses more precise parameters to transform from S-JTSK to WGS 84.
This affects to following codes:
- EPSG:2065
- EPSG:4156
- EPSG:4818
- EPSG:5221
- EPSG:5513
- EPSG:5514
Bug fixLuciadLightspeed
LCD-11777
Fixed a regression caused by SLD enhancement LCD-11733, resulting in the behavior that an
SLD PerpendicularOffset was no longer taken into account for basic line styles in a Lightspeed view.
Bug fixLucy (LuciadLightspeed)
LUCY-4937
TLcyARINCAddOn
: fixed an issue that prevented saving a decoded workspace with ARINC data.
Bug fixLucy (LuciadLightspeed)
LUCY-4932
TLcyToolBar
: fixed a popup menu visibility issue when working with
ILcdAction
s that automatically hide themselves.
Bug fixLuciadLightspeed
LCD-11787
The order of line and polygon symbolizers within an SLD rule was not always respected during rendering in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-11768
When using a world reference with a
TLcdLambertConformal
projection, geometries
were sometimes painted incompletely.
Bug fixLuciadLightspeed
LCD-11789
Bug fixInfrastructure Standards
LCD-11778
Fixed an IndexOutOfBoundsException
that would occur when processing an OBJ that contained
multiple object names.
2020.1.20
ImprovementLuciadLightspeed
LCD-11733
The SLD Lightspeed implementation now supports adding a gap in pixels at the start and/or end of a line geometry.
This capability can be enabled on a
TLcdSLDLineSymbolizer
by configuring the SLD vendor
options with name
startGap
and
endGap
. Both take a value in pixels
that defines the size of the gap.
Bug fixLuciadLightspeed
LCD-11757
Fixed an issue that prevented decoding GeoPackage files containing a data table with a name that started with a
number or contained special characters.
This would previously result in an unrecognized token error.
Bug fixLuciadLightspeed
LCD-11754
TLsp3DIconStyle.ScalingMode.VIEW_SCALING
now respects the print feature scale and display scaling.
Bug fixLuciadLightspeed
LCD-11738
The last
ALspController
in the controller chain now consumes the JavaFX events after handling
them. This solves the issue where tab panes stole the focus of the contained
TLspFXView
.
Bug fixLuciadLightspeed
LCD-11739
TLcdGXYIconPainter#paint
now sets a default Graphics stroke before painting its icon.
This avoids unexpected rendering effects caused by stroke changes from other painters.
Bug fixLuciadLightspeed
LCD-11765
TLcdWFSProxyModel
's builder did not accept a feature type name
String
containing a prefix.
Bug fixLucy (LuciadLightspeed)
LUCY-4931
Bug fixLuciadLightspeed
LCD-11748
Using an SLD raster symbolizer containing both a gray channel selection and a color map did not work for
floating point elevation data.
Bug fixLuciadLightspeed
LCD-11767
Bug fixAdvanced Raster Connectors
LCD-11762
TLcdGDALModelDecoder
left files open even after
ILcdModel#dispose
was called. As a result, decoded files could not be renamed or removed until the JVM process exited.
2020.1.19
ImprovementLuciadLightspeed
LCD-11741
Bug fixLuciadLightspeed
LCD-11745
Fixed a regression that caused the optional SLD geometry functions startPoint and endPoint to be no longer working in
GXY views since version 2019.1.01 and beyond.
Bug fixLuciadLightspeed
LCD-11746
Fixed an issue that prevented the use of multiple SLD geometry functions inside one SLD rule in a Lightspeed view.
2020.1.18
ImprovementLuciadLightspeed
LCD-11736
Bug fixLuciadLightspeed
LCD-11737
Bug fixLuciadLightspeed
LCD-11734
TLcdEPSGReferenceFormatter
: WKT strings using the NAD83 (National Spatial Reference System 2011)
datum and without TOWGS84 parameter were incorrectly formatted as an EPSG code using an other NAD83 version.
Bug fixLuciadLightspeed
LCD-11494
The first record in a ShapeFile written by TLcdShpTiler
now starts with record number 1, as
prescribed in the shapeFile technical specification. Previously, record numbers would start at 0.
Bug fixAviation Standards
The AIXM 5.1 features AircraftStand, StandMarking and GuidanceLineMarking were not painted on terrain,
causing the features to disappear on a 3D view in case terrain data was loaded.
Bug fixAviation Standards
LCD-11732
The decimal part of an AIXM 5.1 vertical distance value that used a comma instead of a dot as decimal separator was ignored.
2020.1.17
Bug fixLuciadLightspeed
LCD-11729
The tiled WMS proxy painter (
TLspTiledWMSProxyPainter
) made during initialization a single
GetMap
request to the WMS server on the Event Dispatch Thread (EDT) used for the Lightspeed view.
This could make the UI of the application unresponsive.
This was only noticeable when using a
slow WMS server.
2020.1.15
ImprovementLuciadLightspeed
LCD-10211
It is now possible to create connections with an SQLite database when also decoding GeoPackage or other sqlite based
formats.
The sqlite driver used by LuciadLightspeed to decode these sqlite formats no longer conflicts with the regular
sqlite driver.
ImprovementLucy (LuciadLightspeed)
LUCY-4927
ImprovementLuciadLightspeed
LCD-11719, LCD-11842
The detection of using a fall-back reference has improved in the WMS client painting.
In case the map reference is Mercator it now falls back on Pseudo-Mercator when Mercator is not supported but Pseudo-Mercator
is.
Vice-verse when the map reference is Pseudo-Mercator falls back on Mercator if needed.
ImprovementLuciadLightspeed
LCD-11706
Bug fixLuciadLightspeed
LCD-11725
Bug fixLucy (LuciadLightspeed)
LUCY-4929
TLcyCSVAddOn
import dialog: an auto-detected Z coordinate column could not be disabled. This has been fixed.
Bug fixLuciadLightspeed
LCD-11703
Bug fixAdvanced Raster Connectors
Fixed bug where decoding a .sid image with the
TLcdMrSIDModelDecoder
would eventually produce
an image with the wrong colors in a GXY view due to incorrect processing of the alpha channel.
Bug fixAdvanced Raster Connectors
Fixed a threading issue that could lead to a JVM crash when disposing an ECW model.
Bug fixDefense Standards
LCD-11711
TLcdNITFModelDecoder
: nested NITF segments (with ALVL>0) now correctly inherit their parents' reference if they don't define one
themselves.
Bug fixMaritime Standards
LCD-11666
Fixed an issue when displaying AML data: in some cases, disjoint edges where connected, causing an incorrect display of lines.
Upgrade considerationDefense Standards
LCD-11716
TLcdNITFModelDecoder.decodeImageBounds
now has the display and attachment level of the image segment
bounds to decode as additional arguments.
2020.1.13
Bug fixLuciadLightspeed
Fixed an issue that prevented users from creating more than one instance of
TLspExternalView
.
Bug fixLuciadLightspeed
The fallback vector layer factory for GXY views created layers that did not take into account the layer
visibility when an out-of-scale red hatching pattern was drawn. This vector layer factory
is registered on
TLcdServiceLoader
with low priority; aligned with
TLcdServiceLoader
's priority mechanism, it is returned and used when there is no registered layer factory
with a higher priority (for instance, a format-specific layer factory) available.
Bug fixLuciadLightspeed
TLcdCurveConnectorUtil.connectCompositeRing
threw an exception when an empty composite ring was supplied.
Bug fixAviation Standards
LCD-11715
The AIXM 5.1 feature ApronMarking was not painted on terrain, causing the feature to disappear on a 3D
view in case terrain data was loaded.
2020.1.12
ImprovementLuciadLightspeed
LCD-11695, LUCY-4921
The
TLcdSHPModelEncoder
now uses
UTF-8
by default for writing DBF
files, which supports non-latin text characters as well. It also writes the used charset to a CPG file now.
ImprovementLuciadLightspeed
LCD-11541
Added new method TLspFXView#getImage
. This method returns a snapshot of the view after making
sure that it is completely (re-)painted if it was invalidated before.
ImprovementAviation Standards
LCD-11676
The AIXM 5.1 layer factory for GXY views,
TLcdAIXM51GXYLayerFactory
, now also supports
creating layers for model containers that include multiple AIXM 5.1 models. The resulting layer is a layer tree node
that includes a layer for each AIXM 5.1 model in the container.
ImprovementInfrastructure Standards
LCD-11580
The 3D Tiles Processing Engine will now automatically fallback to a black color when input textures could not be
decoded. Previously this would cause the entire process to abort. Instead an error is logged on the console and
the faulty image is replaced with a fallback texture containing a black color.
ImprovementInfrastructure Standards
LCD-11692
The 3D Tiles Processing engine will now automatically pick up material with transparent color and output this
in the resulting 3D Tiles dataset. You no longer have to explicitly force it to encode to the png file format.
ImprovementInfrastructure Standards
LCD-11673
TLcdTilesProcessorBuilder#outputPath
will now automatically append a file separator
if it was not and the end of the output directory string. Previously this would end up with corrupted output
datasets.
Bug fixLuciadLightspeed
LCD-11688
Bug fixLuciadLightspeed
LCD-11698
TLspIconStyle
: fixed a NullPointerException that could occur in very rare occasions.
Bug fixLuciadLightspeed
LCD-11684
Fixed an issue in
TLcdGeoPackageModelEncoder
that prevented the encoding of vector
data with a primary key property that is not of type long.
Bug fixOGC Server
LCD-11702
The WMS in the OGC server sample
samples.ogc.server.StartOGCServices
always advertised
world bounds for models that were not of type
ILcd2DBoundsIndexedModel
- which is for
example the case for SQLite-based formats such as GeoPackage. The bounds calculation logic has now been improved
to be able to advertise accurate bounds in these cases.
Bug fixWeather & Environment Standards
LCD-11709
Fixed an exception when trying to visualize some NetCDF data sets. This exception occurred during the creation of
a color map when the min and max data values that are estimated for that dataset are equal.
Bug fixAviation Standards
LCD-11693
The style property of an AIXM 5.1 MarkingElement was not taken into account during visualization; this defines
whether a line-based marking should be rendered with a solid, dashed or dotted line style.
Bug fixAviation Standards
LCD-11672
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing one or more segments located at the poles.
This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.
Bug fixDefense Standards
LCD-11687
Fixed an issue where NITF 2.10 files with NBPPBV or NPPBH equal to zero could not be decoded, even if NBPR and NBPC are
equal to 1.
Bug fixDefense Symbology
LCD-11698
Fixed issue with the hashcode calculation of Direction of Movement arrow icons in that could cause
NullPointerException
when painting icons in Lightspeed views.
Bug fixInfrastructure Standards
LCD-11595
Fixed an issue in 3D Tiles Processing Engine that would prevent OBJ files from being encoded in temporary cache
files coming from multiple sources. This fixes the "Mesh can only have one source path" exceptions thrown
when processing large input dataset with many input OBJ files at close proximity.
Bug fixMaritime Standards
LCD-11690
Changed the display name of the
TLcdS52DisplaySettings
safetyContour
property to
Safety contour.
It used to be incorrectly labeled
Shallow contour.
Bug fixMaritime Standards
LCD-11707
Fixed an issue with selecting S57 area icons in the GXY view. If the icons were anchored, or a-symmetrical, they were difficult
to select.
2020.1.11
ImprovementDefense Symbology
LCD-11665
NVG now accepts xml namespaces with added or missing trailing slashes in the URI of the xmlns attribute.
For example, the Dublin-Core metadata namespace should be defined as
xmlns:dc="http://purl.org/dc/elements/1.1/"
, but we now also accept
xmlns:dc="http://purl.org/dc/elements/1.1"
.
Bug fixLuciadLightspeed
LCD-11681
The use of an SLD text symbolizer for raster data was not supported in GXY views.
Bug fixLuciadLightspeed
LCD-11669
The creation of a property-based OGC filter condition through TLcdOGCFilterFactory.property
failed
in case of subsequents calls for both GML 2 and GML 3.1 properties. This could cause errors when trying to load
and visualize both GML 2 and GML 3.1 data on a map.
Bug fixAviation Standards
LCD-11671
Fixed a geometry edge case in the handling of AIXM 5.1 airspace volumes containing one or more segments based on a geographical
border.
This could lead to a self-intersecting airspace geometry, which prevented the use of the airspace in an airspace aggregation.
Bug fixDefense Symbology
LCD-11664
Fixed issue where a point list was cast to a
com.luciad.symbology.app6a.model.ILcdRestrictedLengthPointList
instead of a
com.luciad.symbology.milstd2525b.model.ILcdRestrictedLengthPointList
in
TLcdEditableMS2525bObject
.
Bug fixDefense Symbology
LCD-11670
Fixed the spelling of the security.classification metadata tag (was security.classifcation).
2020.1.10
ImprovementLuciadLightspeed
LCD-11650
It is now possible to customize the maximum length of a HTTP GET request sent by the OGC clients, by means
of the System property com.luciad.ogc.ows.model.TLcdOWSHttpTransport.maxGetQueryLength
.
This is mainly relevant for the WMS and WFS clients, which can generate large requests. When the maximum length
is reached (default is 2048 characters), a HTTP POST query is used instead if supported by the server.
Adjusting the maximum length can be useful to improve interoperability with servers that do not support HTTP POST.
Bug fixLuciadLightspeed
LCD-11661
Fixed an issue where the undo functionality wouldn't work correctly after modifying a polyline or polygon that was
created using a continuous drag motion.
Bug fixLuciadLightspeed
LUCY-4915
The BlackLime Look and Feel used by Lucy Map Centric and a few samples did not link Copy/Paste behavior
to Ctrl+c/v on some platforms.
Bug fixLuciadLightspeed
LF-2069
Setting the resource metadata on a
TLcdModelMetadata.Builder
object no longer clears the data
categories if the resource metadata doesn't contain any.
Bug fixLucy (LuciadLightspeed)
LUCY-4916
Lucy: fixed a performance bottleneck when repeatedly invoking ALcyProperties#subset
.
This could also lead to reduced performance when opening several files at the same time.
Bug fixOGC Server
LCD-11651
The WMS layer name included in the metadata of each feature in a GeoJSON GetFeatureInfo response was not correct
in case the WMS layer combined multiple data sources.
2020.1.09
Bug fixLuciadLightspeed
LCD-11645
TLspIconStyle
: fixed a NullPointerException that could occur in very rare occasions.
Bug fixAviation Standards
LCD-11648
The ARINC decoder
TLcdARINCModelDecoder
did not decode the Restrictive Airspace
property
TLcdARINCRestrictiveAirspaceDataProperties.CYCLE_DATE
.
Bug fixDefense Symbology
LCD-11646
Fixed an issue in GXY views that could cause a performance regression when configuring a default style
for every military object.
2020.1.08
Bug fixLuciadLightspeed
LCD-11604
Fixed UnsupportedOperationException
in ILcdGL#glGetActiveUniform()
.
Bug fixLuciadLightspeed
LCD-11629
The optional gap value specified on an SLD graphic stroke was not properly taken into account in GXY views:
it was not used if there was no initial gap configured as well and a stroke's graphic was painted less frequent
than possible.
Bug fixLuciadLightspeed
LCD-11630
TLspLayer#query
: when performing queries on a layer from multiple threads a
NullPointerException could occur.
Bug fixAdvanced Raster Connectors
LCD-11635
Bug fixDefense Symbology
LCD-11621
Fixed an issue in GXY views that caused the configured halo style to be ignored for polygon symbols.
2020.1.07
Bug fixLuciadLightspeed
LCD-11470
Bug fixS-63
LCD-11617
Fixed an issue where S-63 catalogs were not recognized, and decoded as S-57 catalogs instead, resulting in low-level errors.
This happened when an S-63 catalog had entries for cells (.000 files) that were missing on disk.
2020.1.06
ImprovementLucy (LuciadLightspeed)
LUCY-4911
ALcyLspStyleFormat
formats now also pick up generic layer properties in ".sty" files,
such as whether or not they are selectable or visible.
ImprovementInfrastructure Standards
LCD-11615
Added the ability to recognize numeric values in feature metadata in Binz datasets.
In the Binz data format, all feature metadata are stored as String values, even if they represent numerical
values. If the metadata reader discovers that for a given metadata key, the values for all features represent
a number, the metadata for that key will now be decoded as numbers.
By doing this, we make sure that these numerical values are encoded as binary values in OGC 3D Tiles,
and can be used in styling expressions in LuciadRIA.
2020.1.05
New featureLuciadLightspeed
LCD-11601
ImprovementLuciadLightspeed
LCD-9953
The method TLcdWMSDataSource.Builder.layer
has been renamed to TLcdWMSDataSource.Builder.addLayer
to be in line with the other addLayer
methods.
The former method has been deprecated.
The documentation for the methods TLcdWMSDataSource.Builder.addLayer
now mention
that added layers are placed on top of earlier added layers.
ImprovementLuciadLightspeed
LCD-11331
The display name for fusion coverage models does no longer contain the server name/address.
This aligns the display name with other model descriptors which also do not include the server name/address.
ImprovementOGC Server
LCD-11607
A GeoJSON GetFeatureInfo response now includes the layer name for each encoded feature, to ease traceability
between selected features and the WMS layer(s) in which they are contained. This layer name is encoded
as a foreign member in the GeoJSON output, aligned with the GeoJSON RFC (https://tools.ietf.org/html/rfc7946#section-6).
ImprovementAviation Standards
LCD-11610
The AIXM 3/4 decoder
TLcdAIXMModelDecoder
can now also decode stand-alone
AIXM-Update files, without requiring to load an AIXM-Snapshot file upfront.
Bug fixLuciadLightspeed
LCD-11448
Fixed bug where a
TLspFXView
would sometimes disappear after resizing it.
Bug fixLucy (LuciadLightspeed)
LUCY-4913
TLcyAIXMAddOn
: Loading an AIXM-Update file (part of AIXM versions 3.3, 4.0 and 4.5) on a
Lightspeed map caused a ClassCastException.
Bug fixAviation Standards
LCD-11606
Fixed a NullPointerException
that could occur when decoding an AIXM-Update file with route segment updates
containing a missing start and/or end point.
Bug fixDefense Symbology
Fixed an issue in GXY views that caused the configured symbology style to be ignored when selecting a symbol
in an asynchronously rendered layer.
2020.1.03
ImprovementLuciadLightspeed
LCD-11598
TLcdGeoTIFFModelDecoder
uses, in non-strict mode, better default values for user defined ellipsoids
for which the corresponding GeoTIFF tags are missing. The default values are based on the WGS-84 ellipsoid.
ImprovementDefense Symbology
LCD-11592
The labeling performance of several tactical graphics in a GXY view has been improved significantly.
ImprovementDefense Symbology
LCD-11582
Ensured all Maritime Control Point (Symbol set 25, code 210000) symbols have a Unique Designation label in APP-6D.
ImprovementDefense Symbology
LCD-11582
Ensured all Maritime Control Point (Symbol set 25, code 210000) symbols have a Unique Designation label in MIL-STD
2525D.
ImprovementDefense Symbology
LCD-11531
Bug fixLuciadLightspeed
LCD-11602
Bug fixLuciadLightspeed
LCD-11599
Fixed bug in
TLcdSHPModelEncoder
that caused corrupt ShapeFiles when encoding 3D complex
polygons.
Bug fixLuciadLightspeed
LCD-11593
Fixed a rare race condition when using asynchronous layer wrappers that could trigger a NullPointerException
.
Bug fixAdvanced Raster Connectors
LCD-11577
Bug fixAdvanced Raster Connectors
LCD-11586
Bug fixInfrastructure Standards
LCD-11597
Fixed issue that would occur when encoding OBJ files with multiple repeating textures and metadata. Before
this would produce errors in the output batch table, causing certain simplified tiles to be missing when
visualized.
2020.1.02
ImprovementLuciadLightspeed
LCD-11555
The OGC Filter functions startAngle / endAngle and startPoint / endPoint can now be used without arguments
inside an SLD style. While they previously required an argument that pointed to the domain object's geometry,
these functions can now automatically find the geometry if the argument is left out.
ImprovementLuciadLightspeed
LCD-11553
Bug fixLuciadLightspeed
LCD-11563
Fixed an issue where not all connections to a GeoPackage file were closed after disposing a GeoPackage model.
Bug fixLuciadLightspeed
LCD-11579
TLcdXYGridLayer
: the grid origin setting didn't work correctly for grids with
non-meter spacings.
Bug fixLuciadLightspeed
LCD-11579
Bug fixLuciadLightspeed
LCD-11566
Bug fixLuciadLightspeed
LCD-9826
TLspPlotLayerBuilder
:
fixed an issue where a plot layer would fail to paint some of its
data after it received a model change event. Note, however, that the change event will still cause the layer to
invalidate and recompute all of its cached state. For data that changes frequently, we therefore strongly recommend
using
TLspShapeLayerBuilder
and
TLspParameterizedIconStyle
.
Bug fixLuciadLightspeed
LCD-11549
Fixed an issue that prevented
TLcdDataSource
objects from being decoded by the
TLcdGeoPackageModelDecoder
.
Bug fixLuciadLightspeed
LCD-11514
TLspIconStyle
: when using multiple
TLspIconStyle
s, only one icon was
taken into account for selection. Thus, an object could only be selected by one of the icons it was styled with.
Bug fixAviation Standards
LCD-11547
Fixed the handling of AIXM 5.1 airspace aggregations for airspaces with the following characteristics:
- Airspaces that crossed the 180th meridian,
- Airspaces that started with an arc segment.
In both cases, the resulting AIXM 5.1 airspace aggregation could have an incorrect airspace boundary.
Bug fixDefense Symbology
LCD-11557
Fixed issue in Lightspeed views where the arrow stroke of the "Direction of Attack For Feint" symbol was drawn past the arrow
tip.
Bug fixDefense Symbology
LCD-11562
Fixed issue where part of the Direction of Movement arrow was not painted in Lightspeed 2D views.
Bug fixDefense Symbology
LCD-11510
The military icon offsets are now also applied in 3D views.
The offset can be configured using the methods ILcdMS2525bStyle.setOffset
and
ILcdAPP6AStyle.setOffset
.
Bug fixDefense Symbology
LCD-11544
Fixed issue where MIL-STD-2525 C icon symbols with the 'Joker' affiliation were always painted with a black and
white outline instead of a black outline.
2020.1.01
ImprovementAdvanced Raster Connectors
LCD-11523
Errors while fetching pixel data from an ECW file were silently ignored, which could result in black tiles appearing
on the map. This will now result in an IOException
instead.
ImprovementInfrastructure Standards
LCD-11532
When decoding Binz data, and no georeference information can be found, the
TLcdBinzModelDecoder
will use a cartesian reference as fallback.
If no reference information can be found next to the input data, the decode
method will
now load the data in its original, non-georeferenced coordinate system, instead of failing.
Note: Data that is decoded in its original coordinate system, can not be visualized on a
geographical map. The dataset must be geo-located with an external tool, after conversion has been done.
ImprovementS-63
LCD-11543
Fixed an issue where cell permit subscription expiry date warnings (SSE 15 and SSE 20) didn't show up when there were cell
permits in the old ENC.PMT format.
This ENC.PMT file doesn't contain the necessary subscription information, while the PERMIT.TXT does.
Now, the permits from the PERMIT.TXT file take precedence over those from the ENC.PMT file.
Bug fixLuciadLightspeed
LCD-11534
Fixed an issue related to the previous SLD fix LCD-11421, which caused that the SLD graphic size setting was
not always taken into account for world-sized SVG icons.
Bug fixLuciadLightspeed
TLcdLonLatGeoBuffer#setJoinStyle
changed the end cap style. This has been fixed.
Bug fixAviation Standards
LCD-11548
TLcdARINCModelDecoder
: fixed a potential NullPointerException that could occur when decoding
Start / End data properties within Restrictive Airspace continuation records.
2020.1
New featureLuciadLightspeed
New featureLuciadLightspeed
Raster layers now support bicubic interpolation, which greatly improves the image quality at high zoom levels.
Bicubic filtering is enabled by setting the interpolation type of TLspRasterStyle
to
ELcdInterpolationType.CUBIC
.
New featureLuciadLightspeed
New featureLuciadLightspeed
You can now decode and visualize MBTiles files with image tiles in Lightspeed and GXY views,
and LuciadFusion WMS/WMTS services.
For more details, see:
New featureAdvanced Raster Connectors
Data formats that contain panoramic images can now be decoded and served with LuciadFusion for visualisation
in LuciadRIA.
Out-of-the-box, the Luciad products support reading panorama data from from E57 files and Pegasus spherical image tracks.
For unsupported formats, the API provides means to create custom data models. See packages
com.luciad.panorama.model
and com.luciad.panorama.transformation
.
The API provides a way to export any valid panorama model to a standardized CubeMap model. See
TLcdLuciadPanoramaModelEncoder
for more information.
The CubeMap model can be served with LuciadFusion as a Panoramics service.

Example of a cubemap created from panoramic image data
For more details, see the
Panoramic images
reference guide in the documentation.
New featureDefense Symbology
All APP-6D symbols are now supported.

The APP-6D symbology now supports all symbols, such as the space debris icons shown here.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
You can now also load image data from E57 files.
To do this you will need the LuciadFusion "Advanced Raster" option.
You cannot use TLcdE57ModelDecoder
directly for this.
Please refer to the LuciadFusion "Panoramic image data" documentation for details.
ImprovementLucy (LuciadLightspeed)
LUCY-4902
TLcyShapeVisibilityAddOn
and TLcyLOSAddOn
now allow fine grained customization of the
observer, observee and center point shapes used in the calculations.
More specifically,
-
Added API hooks to the
TLcyShapeVisibilityAddOn
to:
-
Adjust the
ILcdPoint
shape representing the location of the observer (see
TLcyShapeVisibilityAddOn#createPointObserverShapeProvider
)
-
Adjust the shape representing the observee (see
TLcyShapeVisibilityAddOn#createObserveeShapeProvider
)
-
Adjust the
ILcdAltitudeProvider
used to retrieve the elevation of the terrain
(see TLcyShapeVisibilityAddOn#createTerrainAltitudeProvider
)
-
Similar API hooks have been added to the
TLcyLOSAddOn
to:
-
Adjust the center point for the line-of-sight calculation (see
TLcyLOSAddOn#createCenterPointShapeProvider
)
-
Adjust the
ILcdAltitudeProvider
used to retrieve the elevation of the terrain
(see TLcyLOSAddOn#createTerrainAltitudeProvider)
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
The new class TLcdGARSPointFormat
allows easy conversion of GARS strings to lon lat points and vice versa.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
The new
TLcyMBTilesFormatAddOn
add-on provides support for decoding and visualizing
MBTiles files containing image tiles. Refer to the reference documentation of
TLcdMBTilesModelDecoder
for more information about the supported files.
ImprovementLuciadLightspeed
Added ILcdEditableTimeBounds#setToUnion
to easily include another time interval in
a time bounds object.
ImprovementLuciadLightspeed
LCD-8112
ImprovementLucy (LuciadLightspeed)
LUCY-4863
TLcyMapAddOn
: Lucy's default label placer for GXY views now picks up label algorithms that
have been configured on the layer itself (see
ILcdGXYEditableLabelsLayer#getGXYLabelingAlgorithm
).
ImprovementLucy (LuciadLightspeed)
LUCY-4882
A new sample shows how to create a new trajectory with straight turns by drawing it interactively on the map.
The sample can simulate the movements on the path with a 3D icon using the Lucy previewer.
Please refer to samples/lucy/trajectory
for more information.

The new trajectory sample
ImprovementLucy (LuciadLightspeed)
LUCY-3686
TLcyVerticalViewAddOn
: the toolbar buttons now provide tooltips and additional configuration options.
Refer to the configuration file (usually
config/lucy/vertical/verticalview_addon.cfg
) for more information).
ImprovementLucy (LuciadLightspeed)
LUCY-3151
Improved the
ILcdModelEncoder#canExport
of several formats to make the "save layer" actions of the
TLcyLspMapAddOn
and
TLcyMapAddOn
more accurate.
ImprovementLuciadLightspeed
To simplify the sample code, some exotic GXY touch samples have been removed (multi-edit, multi-view, multi-user, gestures).
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
LUCY-4674
ImprovementLuciadLightspeed
LCD-10513
Improved compatibility with JDK 9 and higher by removing illegal reflective access calls from the API and sample code.
ImprovementLuciadLightspeed
LCD-11207
ILcdGXYController
now has a
getLayered
method to add temporary layers to the view.
When the controller is active, the layers are painted and the view's label placer takes those layers into account.
The
TLcdAdvancedMapRulerController
now makes use of this if it's not configured
to add a measurement layer to the view.
ImprovementAviation Standards
LCD-10738
The model descriptor of decoded AIXM 3/4 models now has a more meaningful display name based on the source of the data,
instead of the fixed string "AIXM Data".
ImprovementAviation Standards
LCD-10738
The model descriptor of decoded ARINC models now has a more meaningful display name based on the source of the data,
instead of the fixed string "ARINC Data".
ImprovementDefense Symbology
LCD-2941, LCD-9819, LCD-10478, LCD-10658, LCD-10916, LCD-10922, LCD-11186, LCD-11445, LCD-11480
The visualization of several tactical graphics in a GXY view has been improved significantly.
The GXY visualization is now more accurate and consistent with the Lightspeed visualization.
Rendering performance has been improved as well, especially when zoomed in closely or when using halo rendering.
ImprovementDefense Symbology
ImprovementInfrastructure Standards
TLcd3DTilesProcessorBuilder
: Added support for metadata when processing OBJ mesh files. This metadata can be used for selection.
By default every single OBJ processed by the 3D fusion engine will have a unique id. On top of that,
if the OBJ file contains grouping information, every single group will also get a unique id.
The unique id is stored as an integer in the batch table of the produced 3D Tiles dataset.
Next to this, the source file and group name are also stored in the batch table.
ImprovementInfrastructure Standards
ImprovementInfrastructure Standards
LCD-11385
TLcd3DTilesProcessorBuilder
can now preserve mesh borders during mesh simplification.
This feature, when activated, improves the visual appearance of low quality LODs with a minor computation cost.
Refer to the
preserveBorders
method for more information.
ImprovementInfrastructure Standards
LCD-11368
TLcd3DTilesProcessorBuilder
can now configure the number of vertices and the texture size for individual tiles.
We also decreased the default number of vertices and texture size for enhanced performance.
Refer to the verticesPerTile
and textureSize
methods for more information.
On top of that, we also added an option to automatically drop geometrically complex objects in their entirety on
simplified levels. You can find this option in the method TLcd3DTilesProcessorBuilder.dropSmallComplexParts()
.
ImprovementInfrastructure Standards
Bug fixDefense Symbology
LCD-11518
Fixed issue with "Boundaries - Line" symbol where the labels would not be attached on the polyline when zooming in.
Bug fixDefense Symbology
LCD-11355
Disabled the Leadership Indicator
modifier for APP-6D Control Measure symbols. This SIDC
modifier would operate on the same SIDC position as the Echelon
modifier, so having them
both enabled would cause unexpected behaviour.
Upgrade considerationLucy (LuciadLightspeed)
Upgrade considerationLuciadLightspeed
LCD-11352
The Jaxen and Batik libraries have been upgraded to version 1.2.0 and 1.11, respectively. This improves compatibility with
JDK 11.
Upgrade considerationLucy (LuciadLightspeed)
The optional ArcSDE component has been removed from Lucy as it has been discontinued by Esri as of ArcGSI 10.3.
In this context, classes in the com.luciad.lucy.addons.arcsde
package have been removed from
Lucy.
Upgrade considerationLuciadLightspeed
The optional ArcSDE component (com.luciad.format.arcsde
) has been removed from the product after being deprecated since the 2016.0 release.
This component provided support for visualize data from an ESRI ArcSDE.
However ArcSDE has been discontinued by Esri as of ArcGIS 10.3 in 2015, and you cannot buy it anymore.
As we're not aware of any customers using ArcSDE anymore, we removed it from all our products including LuciadFusion and Lucy.
Consult the release notes of those products for more details.
Upgrade considerationLuciadLightspeed
The SQLite
library has been updated to version 3.31.1.
Upgrade considerationLuciadLightspeed
The library libgpkg
has been updated to version 1.0.1 to support newer versions of the GeoPackage specification.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPIMTrackAddOn
: this add-on is now deprecated and no longer included in the default
addons.xml file from Lucy.
You can re-include this add-on by adding the following to your addons.xml file:
<addon>
<priority>data_producer</priority>
<name>PIM Track</name>
<class>com.luciad.lucy.addons.pim.TLcyPIMTrackAddOn</class>
<configFile>lucy/pim/pim_addon.cfg</configFile>
</addon>
The map-centric version of Lucy uses a different configuration file.
In that case, you need to re-add the following entry in your addons.xml file.
<addon>
<priority>data_producer</priority>
<name>PIM Track</name>
<class>com.luciad.lucy.addons.pim.TLcyPIMTrackAddOn</class>
<configFile>samples/frontend/mapcentric/map_centric_pim_addon.cfg</configFile>
</addon>
Upgrade considerationLucy (LuciadLightspeed)
Upgrade considerationAdvanced Raster Connectors
LCD-11435, LCD-11437
The third-party library 'GDAL' was updated to version 3.1.2 and has its PDF driver enabled. With this
update, the
TLcdGDALModelDecoder
can now decode Geospatial PDF files. This is not supported
on Linux 32-bit platforms, or Linux distributions that still use the old ABI (such as RHEL 7).
Upgrade considerationDefense Symbology
LCD-11404
The following Military Symbology classes have been removed:
- ALcdMS2525bIconProvider
- TLcdMS2525bIconProvider
- TLcdMS2525bSelectionIconProvider
- TLcdEditableMS2525bUnitCustomizer
- TLcdEditableMS2525bUnitBeanInfo
- ALcdMS2525bModifier
- TLcdMS2525bAffiliationModifier
- TLcdMS2525bCountryModifier
- TLcdMS2525bEchelonModifier
- TLcdMS2525bMobilityEquipmentModifier
- TLcdMS2525bOrderOfBattleModifier
- TLcdMS2525bStatusModifier
- TLcdTextModifiersPanel
- TLcdMS2525bGXYLayerFactory
- TLcdMS2525bUnitIconPainterEditor
- TLcdMS2525bUnitNewControllerModel
These API classes have been deprecated for more than a decade and have not been maintained since.
Upgrade considerationTiling Engine
The optional ArcSDE component has been removed from the Tiling Engine module as it has been discontinued by Esri as
of ArcGSI 10.3. Consequently, ArcSDE data sources can no longer be preprocessed using Tiling Engine.
2020.0
2020.0.16
ImprovementLuciadLightspeed
LCD-11493
GXY XY grids can now also define the origin of the grid: the point at which the grid has coordinate (0.0, 0.0).
See TLcdXYGridStyle.Builder#origin
ImprovementLuciadLightspeed
LCD-11493
Lightspeed XY grids can now also define the origin of the grid: the point at which the grid has coordinate (0.0,
0.0). See TLspXYGridStyle.Builder#origin
ImprovementLuciadLightspeed
LCD-11507
The KML label styler no longer processes
TLcdKML22Placemark
objects without
a name. This will improve performance for files with many placemarks.
ImprovementLuciadLightspeed
LCD-11492
The construction of an evaluator for a
TLcdOGCFilter
contained some expensive log, error and
debug
messages that were always created, even when they were not logged.
This has a negative impact on the performance.
Those expensive calls are now only done when the resulting message is actually used.
ImprovementAviation Standards
LCD-9619
TLcdAIXM51ModelDecoder now supports decoding AIXM 5.1.1 data.
ImprovementAviation Standards
LCD-11481
The heights of the sectors of an AIXM 5.1 SafeAltitudeArea feature now use the CircleSector's height as fallback if the
obstacle height information is missing.
ImprovementInfrastructure Standards
LCD-11351
Transparent textures now keep their transparency info in the output OGC 3D Tiles dataset. Previously the transparent pixels
would be rendered against a white background. Now the rendering can be configured specifically in a client.
Note: Make sure that if you want to preserve transparent textures, you set
TLcd3DTilesProcessorBuilder.forcePNGEncoding()
to true.
ImprovementInfrastructure Standards
LCD-11499
Added a safeguard to prevent a StackOverflowError
from occuring when a very large number
of points maps to the exact same location. We now cap the depth of our spatial acceleration structure, and log
a warning when to many levels have been created. This usually indicates a problem with the data.
Bug fixLuciadLightspeed
LCD-11516
Fixed the issue where using touch in a 3D JavaFX view to create a polyline by dragging your finger on the screen
would cause a nullpointer issue.
Bug fixLuciadLightspeed
LCD-11496
Exceptions thrown by controllers used in
TLspFXView
are now catched and logged by the view.
Because of a bug in the JDK (JDK-8199673), the internal state of JavaFX could break when errors where thrown in
event handlers. This sometimes occured when using touch controllers.
Bug fixLuciadLightspeed
LCD-11524
Bug fixLuciadLightspeed
LCD-11502
OGC filters: the performance regression when creating an evaluator for a filter (introduced by the enhancement
LCD-11278)
is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4904
Lucy: the "Filter" string in the model reference chooser panel can now be translated.
Bug fixLuciadLightspeed
LCD-11500
Bug fixAviation Standards
LCD-11491
The angles of the sectors of an AIXM 5.1 SafeAltitudeArea feature were not correctly interpreted in case of an angle direction
towards the center, a counterclockwise arc direction and/or angles defined against the magnetic north; this could
lead to incorrectly placed angle labels.
Bug fixDefense Symbology
LCD-11475
Fixed the label positions of several Meteorological line symbols in APP-6C, APP-6D and MIL-STD 2525D when painted in
a GXY view.
Bug fixRadar Connectors
LCD-11490
TLcdASTERIXLiveDecoder#decodeBlockSFCT
could throw an ArrayIndexOutOfBoundsException
in case of an
ASTERIX data block that defines a zero length. A zero length is now interpreted as the end of the data stream.
2020.0.15
ImprovementLuciadLightspeed
LCD-11488
Fixed an issue in the OGC 3DTiles encoding where references to the same texture would be duplicated, resulting
in above necessary memory usage.
Bug fixLucy (LuciadLightspeed)
LCD-11487
The Lucy: Touch Map Centric Frontend
sample now correctly initializes the touch functionality
of LLS.
Bug fixLucy (LuciadLightspeed)
LUCY-4876
Changes made to the splashscreen of Lucy by altering the JVM_ARGS
in the .sh or .bat file are
now picked up.
Bug fixLucy (LuciadLightspeed)
LUCY-4900
Fixed an issue which caused the map to zoom in when double clicking on an object that can be selected using the
TLcyLspMapComponentFactory.SELECTION_PAN_CONTROLLER
controller.
Bug fixLuciadLightspeed
LUCY-4900
Fixed issue where the
TLspSelectController
would not handle a mouse release event correctly
after it consumed the event.
Bug fixLuciadLightspeed
LCD-11484
TLcdComplexPolygonContourFinder
et al. now perform proper geodetic interpolation between
points if necessary. This fixes issues with contour finding on data that crosses the date line or lies close to
the poles.
Bug fixLuciadLightspeed
LCD-11489
Bug fixLuciadLightspeed
LCD-11479
TLspLabelPainter
: labels that are updated often would sometimes disappear temporarily.
Bug fixLuciadLightspeed
LCD-11482
Calling TLspLonLatGridLayerBuilder#model
caused the spacingRange settings to be ignored.
Bug fixWeather & Environment Standards
LCD-11485
Bug fixWeather & Environment Standards
LCD-11485
2020.0.14
Bug fixAviation Standards
LCD-11468
Fixed the handling of AIXM 5.1 SafeAltitudeArea features with a sector centre point referring to another AIXM 5.1
feature (e.g., an AirportHeliport).
2020.0.13
ImprovementLuciadLightspeed
LCD-11454
Added GML decoding/encoding support for ILcdDataModel
instances with
java.time.Instant
property values.
ImprovementLuciadLightspeed
LCD-11457
ImprovementLuciadLightspeed
LCD-11438
It is now possible to define a lon lat grid using a different geodetic datum than WGS84 in a Lightspeed view.
See TLspLonLatGridLayerBuilder#createModel
.
ImprovementS-63
LCD-11453
The ECDIS S-63 decoder can now always open the IHO S-63 demo dataset, which is also delivered with our release sample data.
Before, you could not open this dataset if your Luciad license contained a specific (non-demo) User Permit.
Bug fixLuciadLightspeed
LCD-11452
When adding a grid layer with a non default ALspLayerStyle
to a Lightspeed view,
it was not painted.
Bug fixLuciadLightspeed
LCD-11436
Fixed an issue in the OGC 3DTiles encoding where textures would be encoded multiple times, resulting in an
unnecessary large size of the result files.
Bug fixAviation Standards
LCD-11463
The width of an AIXM 5.1 airspace corridor was incorrectly interpreted as the width from axis to border
instead of the width from border to border.
Bug fixAviation Standards
LCD-11449
Fixed two issues related to the handling of AIXM 5.1 airspace volume segments based on a geographical border:
- The connection from the previous and next airspace volume segment with the geographical border was not visible.
- The determined connection point on the geographical border could lead to a geometry edge case, which prevented the use of
the airspace in an airspace aggregation.
Bug fixDefense Symbology
LCD-11450
The MIL-STD 2525d "Probable Line of Deployment" symbol (symbol set 25, code 141200) did not have the correct stroke
when visualized in a Lightspeed view.
Bug fixDefense Symbology
LCD-11418
Added missing text modifier labels for the following APP6-B symbols:
- 1.X.4.5.1 - S*S*ED----***** - Ditched Aircraft
- 1.X.4.5.2 - S*S*EP----***** - Person in Water
- 1.X.4.5.3 - S*S*EV----***** - Distressed Vessel
- 1.X.4.6.1 - S*S*ZM----***** - Sea Minelike
- 1.X.4.6.2 - S*S*ZN----***** - Navigational
- 1.X.4.6.3 - S*S*ZI----***** - Iceberg
Bug fixInfrastructure Standards
LCD-11447
Fixed a bug where invalid data inside a Binz file could make the decoder fail.
The decoder should handle all valid elements, and skip the invalid ones.
Upgrade considerationLuciadLightspeed
LCD-11443
When evaluating an OGC filter through the TLcdOGCFilterEvaluator
, the
ILcdPropertyRetrieverProvider
will
now cache and re-use the created ILcdPropertyRetriever
instances which results in improved
performance.
Since the introduction of LCD-11278 the ILcdPropertyRetrieverProvider
is queried more
often.
By introducing caching, there is no performance penalty anymore.
This is achieved by decorating the property retriever provider which is passed in the constructor of the
TLcdOGCFilterContext
.
The result is that the corresponding getter returns an instance which isn't the same as the one which is passed
into
the constructor.
Upgrade considerationLuciadLightspeed
LCD-11443
When visualizing a Lightspeed or GXY layer using SLD the ILcdPropertyRetrieverProvider
will
now cache and re-use the created ILcdPropertyRetriever
instances which results in improved
performance.
This is achieved by decorating the property retriever provider which is passed in the constructor of the
TLcdSLDContext
.
The result is that the corresponding getter returns an instance which isn't the same as the one which is passed
into
the constructor.
2020.0.12
Bug fixLuciadLightspeed
LCD-11425
In a Lightspeed view, imagery with an IndexColorModel
could sometimes be visualized
with incorrect colors.
Bug fixAdvanced Raster Connectors
LCD-11320
Fixed an issue that would cause the JVM to crash when loading the ECW native libraries on macOS Catalina with
recent builds of OpenJDK.
2020.0.11
Bug fixLuciadLightspeed
LCD-11421
The SLD graphic size setting was not taken into account for world-sized SVG graphics.
Bug fixLuciadLightspeed
LCD-11422
The
TLcdWMSDataSource
now checks that a layer name (id) is passed which is either a
null
value or an empty value.
An exception is thrown to prevent creation of an invalid WMS data source.
2020.0.10
ImprovementOGC Server
LCD-11392
The WCS server now uses a non-persistent cache for tiled GetCoverage requests. This cache makes
sure that subsequent tile requests are handled much faster, improving the performance and scalability of
the WCS server when using tiled requests. See ALcdOGCWCSCommandDispatcherFactory
for more
information and configuration options.
This implies that for data that changes dynamically, extra care needs to be taken to make sure caches are
invalidated. To this end, the API ILcdCoverageOffering#getUpdateSequence
and
TLcdDefaultCoverageOffering#setUpdateSequence
is introduced to indicate that a WCS
coverage has changed. By default, the implementations of these methods (mostly) assume static data/coverages.
For WCS servers that serve data that changes over time (for example data updates), these methods should be used correctly.
Note that the LuciadFusion Platform already takes care of this. An alternative is to disable the caches.
Bug fixOGC Server
LCD-11397
When requesting application/json
the result of GetFeatureInfo
was limited
to features from the first layer.
Now all features are returned within the GeoJSON response.
The geometries of the features are all converted to WGS-84.
Bug fixDefense Symbology
Fixed the SIDC code for the APP-6D and MIL-STD 2525d civilian "Spy" symbols (symbol set 11, code 110800).
2020.0.09
ImprovementLuciadLightspeed
LCD-11395
When calling TLcdE57ModelDecoder.decodeModelMetadata
the bounds and resource metadata will
only be calculated when accessed. This means that the whole model doesn't need to be decoded anymore to get other
parts of the metadata like the model reference.
ImprovementLuciadLightspeed
LCD-11395
The bounds and resource metadata of
TLcdModelMetadata
will now only be computed during first
usage of respectively
getBounds
and
getResourceMetadata
.
ImprovementLuciadLightspeed
LCD-11413
ImprovementLuciadLightspeed
TLcdDurationFormat
now uses the same default Locale as the JDK
(
Locale.getDefault(Locale.Category.FORMAT)
).
ImprovementOGC Server
LCD-11388
A new method
getModelReferenceFormatter()
has been added to
TLcdWFSClientModelEncoderFactory
to ease access to the model reference formatter property in extensions. Additionally, the factory method
ALcdOGCWFSCommandDispatcherFactory#createClientModelEncoderFactory
now configures a default model reference formatter
on created instances using the model reference formatter returned by
ALcdOGCWFSCommandDispatcherFactory#getModelReferenceFormatter()
.
Bug fixLuciadLightspeed
LCD-11187
Improved touch event support in Swing/AWT based GXY and Lightspeed views when using display scaling/HiDPI displays on Java
11.
Bug fixLuciadLightspeed
LCD-11382
When using the
TLspCreateController
,
MouseEvent
s with id
MOUSE_RELEASED
can not start creation anymore. This could cause issues with some editing
handles.
Note that
MouseEvent
s with
MOUSE_MOVED
or
MOUSE_PRESSED
can still start creation.
Bug fixLuciadLightspeed
LCD-11402
Bug fixLuciadLightspeed
LCD-11393
Fixed an issue where tiles from a geopackage were painted at the wrong place and scale if the row and column count
of the tile matrix didn't double every zoom level.
Bug fixLucy (LuciadLightspeed)
LUCY-4897
Lucy: when using the dockable front-end, double clicking the title bar of a Lightspeed map application pane and
activating the ruler controller
would result in an exception.
Bug fixLuciadLightspeed
LCD-11386
OGC filters: the changes made for LCD-11278 introduced a performance regression for the evaluation of a filter
with nested
OR
or AND
conditions. This performance regression is now avoided, unless you're using an or
condition nested inside an and condition (or vice-versa).
Bug fixLuciadLightspeed
LCD-11412
ALspSwingLabelStyler
would paint Swing labels with incorrect letter-spacing when using a
display scaling value other than 100%.
Bug fixLuciadLightspeed
LCD-11405
TLspLabelLocations
could throw a NPE when calling the
updateLabelLocations
with a null label location for a non-existing label.
Bug fixLuciadLightspeed
LCD-11401
TLcdWKTReferenceFormatter
didn't correctly format the axes for compound references
with both a horizontal and vertical datum.
Bug fixLuciadLightspeed
LCD-11401
TLcdWKTReferenceParser
didn't correctly parse the axis information for compound references
with both a horizontal and vertical datum.
Bug fixOGC Server
LCD-11389
Bug fixDefense Symbology
LCD-11387
Enabled all required amplifiers for the "Air Missile" symbol set for the APP-6D and MIL-STD 2525d symbologies.
2020.0.08
ImprovementLuciadLightspeed
LCD-11376
Made the
TLspEditController
more robust in cases where the edit controller was removed
from the view when still editing objects.
ImprovementLucy (LuciadLightspeed)
LUCY-4896
TLcyShapeVisibilityAddOn
: the calculation now supports observers using
com.luciad.tea.TLcdCoverageAltitudeMode.ABOVE_GEOID
when the geodetic datum of the model reference of those observers contains geoid information.
Bug fixLuciadLightspeed
TLcdGML3xEnvelope
is now undefined if it does not have an upper or lower corner.
Bug fixLuciadLightspeed
LCD-11373
TLcdDTEDModelDecoder#decodeModelMetadata
can now handle DTED files with non-standard source names.
Bug fixLuciadLightspeed
LCD-11372
Bug fixLucy (LuciadLightspeed)
LUCY-4895
TLcyShapeVisibilityAddOn
: the
TLcyShapeVisibilityAddOn.VisibilityCalculationProperties.p2pPropagationFunction
property from the configuration file was not respected.
Bug fixLuciadLightspeed
LCD-11358
It is now possible to fit on topocentric-referenced models.
Bug fixAviation Standards
LCD-11374
TLcdARINCModelDecoder
: fixed a potential NullPointerException that could occur when decoding
Restrictive Airspace data with continuation records.
Bug fixDefense Symbology
LCD-11356
Fixed issue with arc symbols where the start and end angles were interpreted as angles after rotation instead of
angles before rotation, as the standard specifies.
Bug fixInfrastructure Standards
LCD-11377
2020.0.07
ImprovementLuciadLightspeed
LCD-11361
The default WFS model decoder
TLcdWFSModelDecoderDecorator
now allows to configure whether the interpolation
of linear GML elements need to be geodesic in case of a geodetic reference, through the newly introduced
methods
setLinearElementsUseGeodesicInterpolationForGeodeticSrs
and
isLinearElementsUseGeodesicInterpolationForGeodeticSrs
. This impacts the GML elements
LineString
,
LineStringSegment
and
LinearRing
.
Although these GML elements conceptually represent geometries with a linear interpolation, they are often used to
represent geometries with lon/lat coordinates and a geodesic interpolation. The default value of this property
is true, for optimal interoperability with 3rd party WFS solutions.
ImprovementLuciadLightspeed
LCD-11354
Bug fixLuciadLightspeed
LCD-11353
XML framework: in some cases, decoding an xsi:type
attribute value without a namespace prefix could trigger an exception.
Bug fixLuciadLightspeed
LCD-11348
The TLcdOGCDistanceBuffer
and TLcdOGCBinarySpatialOperator
need to
transform
their shape to match the reference of the shape that is being evaluated.
This was not done in the past, causing wrong results of the spatial test.
Seeing as not all shapes can be converted from one reference to another, the documentation of both classes has
been updated
to clearly document that this transformation is needed when mixing references, and that it is recommended to avoid
this case.
We support a limited number of shape transformations out of the box (currently only points and bounds).
When the transformation fails, evaluating the filter will now throw a clear exception instead of providing the
wrong results.
Bug fixLuciadLightspeed
LCD-11350
An empty SLD raster symbolizer didn't use a default color map to render elevation data in a Lightspeed view,
causing the data to remain invisible.
Bug fixLuciadLightspeed
LCD-10718
The SLD opacity setting was not taken into account for (inline/external) SVG icons.
Bug fixOGC Server
LCD-11303
The WFS server could not correctly cope with custom models in which the content of the used
TLcdDataType
could change at runtime (for instance, triggered by an additional request property, a user role, ...).
Bug fixOGC Server
LCD-11342
In case of a WFS request including an OGC Filter 1.x with GmlObjectId or FeatureId elements,
the WFS server did not automatically translate this into an OGC Filter with a condition. Aligned with the
API documentation of
TLcdOGCFilter
, this is now addressed by translating the received OGC Filter
into a
TLcdOGCFilter
with a
TLcdOGCResourceIdsOperator
condition.
The default filtering logic in the WFS server was not affected by this bug; it is only of relevance when a
custom
TLcdWFSFilteredModelFactory
is used to customize the filtering logic.
Bug fixAviation Standards
LCD-11357
Decoding AIXM 4 procedure leg data that specified optional navigation system information failed with a
NullPointerException.
2020.0.06
ImprovementLuciadLightspeed
LCD-11341
TLcdGeoJsonModelDecoder
now configures a display name provider on the
TLcdDataModel
of its decoded models. This ensures that
TLcdDataProperty#getDisplayName
always provides the
property name
as it is written in the source file, even when the name contains special characters.
Lucy picks up these display names automatically.
ImprovementLuciadLightspeed
LCD-11338
The XML framework now trims leading and trailing whitespace from anyURI
values.
ImprovementLuciadLightspeed
Added convenience API to ease working with SLD geometries based on an OGC function:
ImprovementLuciadLightspeed
LCD-11330
Added support for the BMP format for SLD bitmap graphic icons.
ImprovementLuciadLightspeed
LCD-11293
Improved the auto-detection of SLD raster normalization intervals by means of a more accurate histogram operation.
ImprovementLuciadLightspeed
LCD-11339
TLcdOGCModelReferenceParser
now also has support for
http://www.opengis.net/def/crs/OGC/1.3/CRS84
and
http://www.opengis.net/def/crs/OGC/0/CRS84h
.
ImprovementLuciadLightspeed
LCD-11335
The URI provided to the WMS client API is now checked for reserved parameter names at the time of creation.
Such parameters are removed from the URI when requesting the WMS capabilities.
Due to improvement LCD-7918 addition of for example LAYERS=layername
could leak
through the GetMap request and the LAYERS
could appear twice within the request.
Having this parameter twice in the request may lead to undefined results or WMS services responding with an error message.
ImprovementDefense Symbology
LCD-11336
The painting of the Seize symbol has been improved when it is used in the 4 points painting mode.
The arrow stroke is now anchored to the center point of the circle instead of the point that defines the radius of
the circle.
ImprovementDefense Symbology
LCD-11334
The editing behaviour of the 4-point painting mode of the "Seize" symbol was changed.
Translating the first point will now translate the whole symbol.
Bug fixLuciadLightspeed
LCD-11347
Bug fixLucy (LuciadLightspeed)
LUCY-4894
MGCP data on a Lightspeed map in Lucy now respects the global selection style colors defined in Lucy.
It used to always use orange as selection color, independent of what the global selection color was.
Bug fixLuciadLightspeed
LCD-11343
Evaluating a spatial filter on raster data would result in a ClassCastException
.
Now it correctly throws an IllegalArgumentException
as documented.
Bug fixLucy (LuciadLightspeed)
LUCY-4892
Bug fixLuciadLightspeed
LCD-11337
Fixed an SLD icon rendering issue that occurred in case of a line symbolizer that defined a stroke based on a
world-sized SVG icon and a non-zero rotation and/or non-zero transparency.
Bug fixLuciadLightspeed
LCD-11318
The WFS client did not properly encode output formats containing spaces (e.g., "application/gml+xml; version=3.2")
in GetFeature requests.
Bug fixDefense Symbology
LCD-11333
Fixed issue where decorations were repeated on the arrow stroke of the "Seize" symbol.
2020.0.05
ImprovementInfrastructure Standards
LCD-11295
TLcd3DTilesProcessorBuilder
: Improved robustness of the 3D tiling engine in the case where indices for vertices, uv coordinates or
normals are missing for parts of a dataset.
ImprovementInfrastructure Standards
LCD-11306
TLcd3DTilesProcessorBuilder
: Improved support for OBJ files that contained duplicate triangles. Previously this would cause some z-fighting, but
this has been improved so only the last defined triangle in the OBJ ends up in the dataset. This improves
visual quality for an edge-case that typically occured in handcrafted 3D models.
ImprovementInfrastructure Standards
LCD-11315
TLcd3DTilesProcessorBuilder
: Improved robustness of decoding of material files. We now replace backslashes in paths with OS-dependent file
separators. This allows some OBJ files which were encoded in Windows environments to be decoded on other operating
systems.
Bug fixLucy (LuciadLightspeed)
LUCY-4889
Bug fixLucy (LuciadLightspeed)
LUCY-4885
Bug fixDefense Symbology
LCD-11325
The following APP6-D symbols did not display a (correct) dimension icon:
Set Code |
Symbol Code |
Name |
10 |
111001 |
LAND UNIT - Command and Control - Signal – Radio |
10 |
111002 |
LAND UNIT - Command and Control - Signal - Radio Relay |
10 |
111003 |
LAND UNIT - Command and Control - Signal – Teletype |
10 |
111004 |
LAND UNIT - Command and Control - Signal - Tactical Satellite |
10 |
111005 |
LAND UNIT - Command and Control - Signal - Video Imagery (Combat Camera) |
Bug fixDefense Symbology
LCD-11323
Fixed symbol with id 25272100 - "Minimum Safe Distance Zone" in APP-6D and MIL-STD 2525d. It was incorrectly painted
with a movement direction arrow, and could throw an exception when interactively created in APP-6D.
Bug fixDefense Symbology
LCD-11319
Changed the way plain line symbols are painted to ensure consistent draping behaviour with patterned line symbols in
Lightspeed 3D views.
Bug fixDefense Symbology
LCD-11327
Added missing text modifier labels for some icon symbols.
Bug fixInfrastructure Standards
LCD-11316
TLcd3DTilesProcessorBuilder
: When encoding material files, the illum value is now correctly interpreted as an integer instead of a floating
point value.
2020.0.04
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-11311
Added ILcdEditableTimeBounds#setToIncludeTime
to easily include a single time in
a time bounds object.
Bug fixLuciadLightspeed
LCD-11292
The SLD band-specific raster normalization style incorrectly used the histogram of the R band for all RGB bands.
Bug fixLuciadLightspeed
LCD-11305
TLcdGMLTransformer
would close 3D polygons with a 2D point, regardless of the CRS. This has been fixed.
Bug fixDefense Symbology
LCD-11309
Fixed issue in GXY views where symbol decorations would disappear when zooming out far enough and back in.
2020.0.02
ImprovementLucy (LuciadLightspeed)
LUCY-4858
TLcyPIMTrackAddOn
has a new property
TLcyPIMTrackAddOn.useSmoothTurns
,
which enables/disables smoother turns for a new PIM Trajectory.
ImprovementDefense Symbology
LCD-11256
Changed placement of echelon symbols for "Boundaries - Line" symbols so they disappear less quickly when zooming out.
Bug fixLucy (LuciadLightspeed)
LUCY-4692
TLcyPIMTrackAddOn
: after turning off the "smooth turns" property in the layer properties
dialog and deselecting the trajectory, PIM trajectory was disappearing.
The issue is fixed, the pim trajectory no longer disappears if the "smooth turns" property is turned off.
Bug fixLuciadLightspeed
LCD-11276
SLD raster rendering in GXY / Lightspeed did not support the application of a color map on the result of a single
band selection for multi-band raster data.
Bug fixLuciadLightspeed
LCD-11291
Addressed an issue where WMTS services that can be accessed with custom parameters (e.g. access token) added
to the URL couldn't be displayed on the map. These custom parameters in the URL were treated as dimensions by
the WMTS client.
Bug fixDefense Symbology
LCD-11246
Bug fixTiling Engine
LF-1950
For very specific combinations of coverage settings and very detailed data the fusion engine could fail with a NullPointerException
.
This could happen when defining a tile matrix set in WGS:84 covering the entire world,
using 4 columns and 2 rows at the top-level and using 32x32 pixels per tile,
to fuse data where each pixel is about a few centimeters.
This case is handled correctly now.
Additionally threshold values internally have been adjusted to allow such global coverages up till 1cm resolution.
Upgrade considerationLuciadLightspeed
LCD-11278
ILcdEvaluatorFactory
: the canBuildEvaluator
method could not
perform a decent check
because it did not receive the same arguments as the buildEvaluator
method.
This could result in the creation of evaluators which would throw exceptions when used.
This has been fixed by introducing a new default canBuildEvaluator
method which has the
same arguments
as the buildEvaluator
method.
The old method has been deprecated.
The result of this change is that calling TLcdOGCFilterEvaluator#buildFilter
for a filter
containing
expressions that cannot be evaluated will now throw an IllegalArgumentException
in all
cases,
and never return a filter with undefined behavior at runtime.
The ILcdEvaluatorFactory
interface should not be implemented nor used by customers,
so this change should not affect your code base.
2020.0
New featureLuciadLightspeed
LuciadLightspeed now comes with a native JavaFX Lightspeed view called TLspFXView
.
All controller and editing API has been adjusted to work with FX input events.
In addition, the following API has been added to kick-start your JavaFX development:
Refer to the samples.lightspeed.javafx
package for samples demonstrating the new FX
view.
Note that the LuciadLightspeed API provides numerous Swing UI components. However, only the UI elements
explicitly listed above are currently available for JavaFX.
New featureWeather & Environment Standards
BUFR files containing World Area Forecasting System (WAFS) Significant Weather (SIGWX) data can now be decoded and
visualized in Lightspeed and GXY views, and LuciadFusion WMS/WMTS/WFS services.

Example of a BUFR dataset visualized in Lightspeed
For more details, see:
New featureDefense Standards
XML files containing data for the MGCP 2.0.1 Portrayal standard can now be decoded and visualized in Lightspeed
and GXY views, and LuciadFusion WMS/WMTS services.

Example of a dataset rendered with MGCP styling
For more details, see:
New featureInfrastructure Standards
Support for the Hexagon PPM Binz data format. For more details, see
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
The new
TLcyMGCPFormatAddOn
add-on provides support for the MGCP 2.0.1 Portrayal standard.
Refer to the reference documentation of
TLcdMGCPModelDecoder
for more information about the
supported files.
ImprovementLuciadLightspeed
A new model encoder
TLcdOGC3DTilesModelEncoder
was added.
It can be used to encode tiled and multi-leveled mesh models into OGC 3D Tiles.
Currently it can only be used to encode models loaded from OSGB, BINZ or other Luciad-provided decoders.
ImprovementLuciadLightspeed
Balloon managers can now automatically pick up any content provider that is annotated with
LcdService
.
See the appropriate constructor for more information.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
The on-map scale indicator now shows a constant scale when panning around the map, making the behavior more
intuitive and consistent with both GXY maps and the scale drop-down selector. You can revert to the old behavior by
adjusting the
TLcyLspMapAddOn.scaleIcon.scaleAtCenterOfMap
property in the
TLcyLspMapAddOn
config file.
ImprovementLuciadLightspeed
ALcdScaleIndicator
: you can now toggle between the scale bar icon and a textual
representation of the scale (e.g. 1 : 5000).
Refer to the class javadoc for more information on how to use this new feature.
ImprovementLuciadLightspeed
ILcdGXYView
: added several methods that were already present in all view implementations.
ImprovementLucy (LuciadLightspeed)
The TLspMagnifierController
has been added to Lucy.
This controller allows users to zoom in on a part of the view through a square overlay that
follows the mouse position.
In the magnifier overlay, world-sized objects are scaled while view-sized objects have the same size as in the
original view.
You can find this controller with the other visual inspection controllers in Lucy, such as the swipe and porthole
controllers.
ImprovementLuciadLightspeed
TLspMagnifierController
: this new controller allows users to zoom in on a part of the view,
that is then displayed in a square overlay that follows the mouse position.
In the magnifier overlay, world sized objects are scaled while view sized objects have the same size as in the
original view.
The new controller is available in all samples with visual inspection tools
(e.g. samples.lightspeed.decoder
)
ImprovementLuciadLightspeed
TLcdGXYShapePainter
: considerably improved anti-aliased appearance of shapes that are discretized
into many small line segments.
ImprovementLuciadLightspeed
LCD-10079
GXY label placement can now be configured at the layer level. This means you can configure label visualization as
well as label placement in your layer factory.
Refer to TLcdGXYLayer#setGXYLabelingAlgorithmProvider
and its sample code usages for more information.
ImprovementLucy (LuciadLightspeed)
The new
TLcyBUFRFormatAddOn
and
TLcyLspBUFRFormatAddOn
add-ons provide
support for the BUFR format. The first add-on provides support for decoding BUFR data and visualizing it on a 2D map,
the second for displaying BUFR data on a 3D map. Only BUFR files containing World Area Forecast System (WAFS)
Significant Weather (SIGWX) data are supported. Refer to the reference documentation of
TLcdBUFRModelDecoder
for more information about the supported WAFS SIGWX files.
ImprovementLuciadLightspeed
Support for the Krovak projection was added, see
TLcdKrovak
.
TLcdWKTReferenceParser
and
TLcdEPSGReferenceParser
have been
modified to support this new projection. For the latter, the following EPSG codes that use the Krovak projection
are now supported:
- EPSG:2065
- EPSG:5221
- EPSG:5513
- EPSG:5514
- EPSG:8352
- EPSG:8353
ImprovementDefense Standards
LCD-11166
MGCP zip files are now supported. In order to use the .zip files they must be renamed to .mgcp.zip
.
ImprovementDefense Symbology
The initial/uncached symbol icon rendering speed has been significantly improved.
ImprovementInfrastructure Standards
We have added the
TLcd3DTilesProcessorBuilder
to the API. This class lets you create a
processor that converts 3D meshes into the OGC 3D Tiles format. We also added a command line sample that allows you
to invoke the processor without writing code.
ImprovementMaritime Standards
The GXY-specific ECDIS sample has been removed. You can open S-57 data using the generic GXY Decoder sample.
If you need the S-52 display settings UI panel in GXY, you can easily plug that in and use the S52GXYLayerFactory
to pick up the S-52 display settings instance.
For more information, see the tutorial article "How to customize the S-52 visualization".
ImprovementS-63
The S-63-specific sample have been removed. You can open S-63 data using the regular ECDIS Lightspeed sample, or the generic
Lightspeed and GXY Decoder samples.
All these samples will automatically pick up the TLcdS63UnifiedModelDecoder
to load S-63 data. Place your Cell Permit files (ENC.PMT or PERMIT.TXT) next to the source data, and make sure you are using
the Luciad license that has the corresponding User Permit.
Bug fixLuciadLightspeed
LCD-11244
Fixed a potential deadlock when loading BINZ data in a
TLspFXView
.
Bug fixInfrastructure Standards
LCD-11264
TLcd3DTilesProcessorBuilder
: fixed an issue that would cause small triangles to disappear when processing OBJ files with a geodetic reference.
Upgrade considerationLuciadLightspeed
You now need to manually initialize touch support for Swing applications by calling
TLcdTouchDevice#getInstance()
at application startup. Any touch enabled application that checks the touch device status automatically fulfills this requirement.
Additionally, the
TLcdAWTEventDispatcher
no longer dispatches touch events.
Upgrade considerationLuciadLightspeed
TLcdTouchEvent#getSource
and TLcdAWTEvent#getSource
: the return type
has been changed from Component to Object.
This allows using the Lightspeed touch controllers in a Lightspeed JavaFX view.
If you were using those methods in your application, you may need to cast the result to a Component.
Upgrade considerationLuciadLightspeed
The data category in the model metadata of OBJ models produced by
TLcdOBJModelDecoder
has been
changed from VECTOR to MESH.
Upgrade considerationLuciadLightspeed
TLspExternalView
is now deprecated. Integration of LuciadLightspeed in C++
applications is no longer actively supported as of V2020.0. Please contact your account manager or
support.luciad.gsp@hexagon.com
to discuss possible alternatives.
Upgrade considerationLuciadLightspeed
To improve the separation between AWT and JavaFX code paths, the return type of
TLspEditHandleResult#getProcessedEvent()
was changed from
EventObject
to
AWTEvent
. In practice,
this change should have no impact on existing applications, since
- API users are not expected to have overridden
getProcessedEvent()
;
- Other parts of the API and implementation did enforce the use of
AWTEvent
.
Upgrade considerationLuciadLightspeed
The GXY view implementations now have the following useful options enabled by default:
- All views now have label placing enabled by default. If you don't want advanced label placement
or decluttering, you can disable it by calling
view.setGXYViewLabelPlacer(null)
.
- All views now use anti-aliasing by default. To disable this, call
view.setAntiAliased(false)
.
- All views no longer use smart panning by default. To revert this, call
view.setSmartPan(true)
.
- All map implementations (e.g.
TLcdMapJPanel
) now come with sensible minimum and maximum scale ranges.
To revert this, call view.setMinScale(0)
and view.setMaxScale(Double.MAX_VALUE)
.
2019.1
2019.1.11
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v9.8.6.
2019.1.10
ImprovementLuciadLightspeed
LCD-10644
ImprovementLuciadLightspeed
LCD-10394
ImprovementMaritime Standards
LCD-11262
The M_SREL object class in IENC can have the INFORM attribute, even if the spec doesn't prescribe this.
It is now added.
Bug fixLuciadLightspeed
LCD-11263
Bug fixLuciadLightspeed
LCD-11243
Fixed an issue where navigating around a geopackage file would keep opening new connections to the file,
which could result in a system running out of usable file descriptors.
The amount of connections to a geopackage file is now capped to a fixed amount.
Bug fixLuciadLightspeed
LCD-123
Bug fixLuciadLightspeed
LCD-11248
A
TLcdGML*LinearRing
now implements
ILcdInvalidateable
and automatically
invalidates itself when replacing its
posGroup
.
Bug fixLuciadLightspeed
A TLcdGML*LinearRing
with an empty TLcdGML*Coordinates
posGroup
would throw an exception when inserting a point. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4777
Don't hide exceptions when we couldn't save a workspace in
TLcyFileWorkspaceCodec
. (e.g. read-only directory).
Bug fixLuciadLightspeed
LCD-6488
Bug fixLuciadLightspeed
LCD-10947
TLsp2DPointListEditor/TLsp3DPointListEditor
: fixed an issue that prevented customizing
the create handle to append points to both the start and end of a pointlist
using freehand ELspCreationMode.FREEHAND_AND_CLICK and ELspCreationMode.FREEHAND_SINGLE_SWIPE.
Bug fixLuciadLightspeed
LCD-11260
Bug fixLuciadLightspeed
LCD-10926
Fixed bug in
TLcdSHPModelDecoder
that could cause incorrect String properties in the decoded
features.
Bug fixDefense Symbology
LCD-11257
Fixed issue where Rectangular symbols would become triangular when zoomed in in GXY.
Bug fixDefense Symbology
LCD-11201
Removed label gaps that appear in the fill patterns of following symbols
Code Mask |
Name |
G*F*AKPC--****X |
Purple Kill Box, Circular |
G*F*AKPR--****X |
Purple Kill Box, Rectangular |
G*F*AKPI--****X |
Purple Kill Box, Irregular |
G*F*AKBC--****X |
Blue Kill Box, Circular |
GG*F*AKBR--****X |
Blue Kill Box, Rectangular |
G*F*AKBI--****X |
Blue Kill Box, Irregular |
G*F*ACNR--****X |
No Fire Area (NFA), Rectangular |
G*F*ACNC--****X |
No Fire Area (NFA), Circular |
G*M*NM----****X |
Minimum safe Distance Zones |
Bug fixDefense Symbology
LCD-11152
The lines at the back of the "Support by Fire Position" and "Attack by Fire Position" symbols now appear as dashed
when the symbol status is Planned/Anticipated.
Bug fixDefense Symbology
LCD-11266
Fixed issue where labels of circles, ellipses, rectangles, etc were not centered properly.
2019.1.09
ImprovementLuciadLightspeed
LCD-7828
TLcdDatabaseModel
now has a method
#refresh
that updates all cached elements with data in the database.
This method also picks up elements that were added to the database.
Previously, a workaround was needed that involved clearing the cache and querying the model in order for the cached elements
to be updated.
Note that this method only works for Oracle Spatial, PostgreSQL, MSSQL and Geopackage databases.
Bug fixLuciadLightspeed
LCD-5170
TLcdSVGIcon
: improved rendering accuracy for small icons.
Bug fixLuciadLightspeed
LCD-11208
Fixed erratic scale calculation when tilting the camera in a 3D grid reference.
Bug fixLuciadLightspeed
LCD-11224
ALspComplexStroke
: When creating a stroke with icons, it was possible that small gaps
were visible between adjacent icons on the stroke.
Bug fixLuciadLightspeed
LCD-9110
Fixed an issue where GeoTIFF data was interpreted as elevation data but a multilevel version of the data was not.
Bug fixLuciadLightspeed
LCD-11184
SLD raster rendering in GXY / Lightspeed did not take the optional opacity attribute for SLD
ColorMapEntry elements into account; the colors in these elements were assumed to be non-transparent.
Bug fixDefense Standards
LCD-11192
TLcdVPFModelDecoder
: If the decoder was configured to decode features using
ELEMENT_PER_FEATURE
, some geometries could be missing.
Bug fixDefense Symbology
LCD-11183
Added the following symbols which were missing from the APP-6D hierarchy.
Set Code |
Symbol Code |
Name |
10 |
111001 |
LAND UNIT - Command and Control - Signal – Radio |
10 |
111002 |
LAND UNIT - Command and Control - Signal - Radio Relay |
10 |
111003 |
LAND UNIT - Command and Control - Signal – Teletype |
10 |
111004 |
LAND UNIT - Command and Control - Signal - Tactical Satellite |
10 |
111005 |
LAND UNIT - Command and Control - Signal - Video Imagery (Combat Camera) |
10 |
160501 |
LAND UNIT - Sustainment - Band - Army Music |
Bug fixDefense Symbology
LCD-10377
APP-6C icons with "Exercise/Hostile" or "Exercise/Suspect" affiliation were incorrectly painted as hostile and
are now painted with the friendly affiliation frame. Constant values of AFFILIATION_EXERCISE_HOSTILE and
AFFILIATION_EXERCISE_SUSPECT are marked as deprecated and redirect to AFFILIATION_JOKER and AFFILIATION_FAKER
respectively.
Upgrade considerationDefense Symbology
TLcdAPP6AEchelonNode.getCodeMask
and TLcdMS2525bEchelonNode.getCodeMask
have been deprecated.
These methods are not compatible with the more recent symbology standards which no longer use code masks (MIL-STD
2525d, APP-6C, APP-6D,...).
These methods now always return the name of the echelon.
Use TLcdAPP6AEchelonNode.getName()
or TLcdMS2525bEchelonNode.getName()
to identify an echelon.
Use TLcdAPP6AEchelonNode.applyOn(ILcdEditableAPP6ACoded)
or
TLcdMS2525bEchelonNode.applyOn(ILcdEditableMS2525bCoded)
to apply the echelon to a symbol.
2019.1.08
ImprovementLuciadLightspeed
LCD-11142
Bug fixLuciadLightspeed
LCD-11203
Bug fixLucy (LuciadLightspeed)
LUCY-4847
Lucy: Fixed highlighting for showcase theme thumbnails when hovering above the thumbnail with the mouse.
Bug fixLuciadLightspeed
LCD-11132
TLcdVVJPanel
: improved behavior for profiles with vertical lines.
Bug fixLuciadLightspeed
LCD-11190
Corrected a multi-threading issue in the transformation code. This fixes visual artifacts which could appear in some scenarios.
For example, displaying some kinds of raster data in Lightspeed views.
Bug fixLuciadLightspeed
LCD-11121
Bug fixLuciadLightspeed
LF-1917
Fixed a race condition problem where using the "most detailed" geometry from a tiled vector feature triggered an error about
an incorrect amount of fills.
This could happen when you iterate over the elements of a tiled vector model and used their geometry.
Bug fixDefense Symbology
LCD-11139
Fixed several icon symbols in MIL-STD 2525d and APP-6D that would be displayed with an incorrect hierarchy icon.
2019.1.06
ImprovementDefense Symbology
LCD-11100
Support was added for the engagement bar graphical amplifier for the MIL-STD-2525c, MIL-STD-2525d and APP-6D
standards.
A new text modifier was added which can be used to set the content of the engagement bar.
The name of this text modifier can be accessed trough the static properties
ILcdAPP6ACoded.sEngagementBar
and
ILcdMS2525bCoded.sEngagementBar
.
Styling options for the engagement bar are configured using the new class
TLcdEngagementBarStyle
, which can be set and retrieved from
ILcdAPP6AStyle
and ILcdMS2525bStyle
.
ImprovementMaritime Standards
LCD-11124
Added an option to disable certain painting optimizations in TLcdS52GXYCatalogueLayer
.
By default, these optimizations are enabled, and typically reduce the amount of elements to be painted by 30%.
The cost of determining which elements to skip is offset by faster subsequent paints because of spatial locality.
In the context of a WMS server however, you have multiple threads/layers handling requests of multiple users, in different
areas.
In this case, each layer has to build up the visibility information separately and can re-use it a lot less in subsequent
requests.
When using tiled WMS or WMTS, requests don't overlap and are typically cached on the client and/or server.
To use this option in WMS or WMTS, plug in your own ILcdGXYLayerFactory
:
@LcdService(service = ILcdWMSGXYLayerFactory.class, priority = LcdService.HIGH_PRIORITY)
public class MyWMSLayerFactory implements ILcdWMSGXYLayerFactory {
@Override
public ILcdGXYLayer createGXYLayer(ILcdModel aModel, ALcdWMSLayer aWMSLayer, String aStyleID, TLcdWMSRequestContext aContext) {
TLcdS52GXYCatalogueLayer layer = (TLcdS52GXYCatalogueLayer)
TLcdS52ProductConfiguration.getInstance(ELcdS57ProductType.ENC).createGXYLayerFactory(displaySettings).createGXYLayer(aModel);
layer.setMultileveledObjectVisibilityCalculations(false);
return layer;
}
}
2019.1.05
Bug fixMaritime Standards
LCD-11106
Resolved a very rare issue where polygons were wrongly displayed with holes and spikes.
2019.1.04
Bug fixLuciadLightspeed
LCD-11091
Data obstructed by fully transparent pixels of a raster layer, was not always visible in a 3D view.
Bug fixLuciadLightspeed
LCD-11102
Using an SLD Recode function inside a text symbolizer label element triggered an exception during rendering.
Bug fixDatabase Connectors
LCD-11098
Fixed an issue where an incorrect value was set for the dimensions property when decoding 3D data from an Oracle database.
Bug fixDatabase Connectors
LCD-11047
Fixed an issue where 3D points were encoded as 2D points when saving it to an Oracle database.
Bug fixDatabase Connectors
LCD-11046
Fixed an issue where 3D lines stored in an Oracle database were decoded as 2D lines.
Bug fixAviation Standards
LCD-11101
The behavior of TLcdSegmentBasedRoute.set3DEditablePolyline
was incorrect: when
the supplied polyline contained 2 or more existing points, some of these points were incorrectly included in the resulting
route geometry.
2019.1.03
Bug fixLuciadLightspeed
LCD-11087
Fixed UnsupportedOperationException
in
ILcdGL#glGetProgramInfoLog()
Bug fixLuciadLightspeed
LCD-11093
Conversion to 3DTiles: Fixed a bug where the normals would have an incorrect direction, thus negatively affecting
the lighting.
2019.1.02
Bug fixLucy (LuciadLightspeed)
LUCY-4866
Using a startup workspace containing DAFIF, ASDI or AIXM5 data resulted in a
NullPointerException
when starting Lucy.
Bug fixLucy (LuciadLightspeed)
LUCY-4865
The default style files (.sty
) for some of the GXY formats (e.g. GeoJSON, SHP, GML, ...)
were not applied because they lacked the correct header.
Such a header looks like
#com.luciad.lucy.addons.decoders.TLcyDefaultDecodersAddOn.SHPFormat.layerCodec
This issue was fixed by dropping the requirement of the presence of such a header.
When the header line is present, it will be checked and it must be the correct one.
When no header line is present, the style file is assumed to be in the correct format.
2019.1.01
ImprovementLucy (LuciadLightspeed)
LUCY-4862
TLcyGXYSetControllerActiveSettable.combineWithNavigateController
now works with
controllers that (only) implement
ILcdAWTEventListener
.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-10958
SLD now supports the use of functions inside SLD Geometry and ParameterValue (such as rotation) elements. On top of
the existing capability to use property names, this provides additional flexibility to determine the desired value.
Additionally, support has been added for 4 new functions in
TLcdOGCVendorSpecificFunctions
that operate on a geometry defined by a given property name:
startAngle(propertyName)
and endAngle(propertyName)
: determine respectively the start and end angle of the referred geometry,
measured in degrees clockwise from the direction at 12 o'clock.
startPoint(propertyName)
and endPoint(propertyName)
: determine respectively the start and end point of the referred geometry.
An example use case combining these new functions and the possibility to use them inside SLD Geometry and ParameterValue elements
is
the configuration of an arrow head at the end of a polyline. By using a point symbolizer with a geometry defined by the
endPoint of the polyline and a rotation defined by the endAngle of the polyline, an oriented arrow icon can be drawn
at the end of the polyline.
ImprovementLuciadLightspeed
LCD-11038
The
TLcdOBJModelDecoder
will no longer throw exceptions when encountering 'map_d' lines with
empty reference in an MTL file.
ImprovementLuciadLightspeed
LCD-10183
The magnetic north data files for WMM and IGRF have been updated to cover the period 2005-2025.
The IGRF decoder now decodes the official coefficients file as downloaded from NOAA (i.e. igrf13coeffs.txt).
ImprovementDefense Symbology
LCD-11027
Allow creation of icon symbols for the following top-level symbols for the APP-6D and MI-STD-2525d standards.
- Air
- Air Missile
- Space
- Space Missile
- Land Unit
- Land Civilian Organization
- Land Equipment
- Land Installation
- Dismounted Individual
- Sea Surface
- Sea Subsurface
- Mine Warfare
- Activities
- Signals Intelligence - Space
- Signals Intelligence - Air
- Signals Intelligence - Land
- Signals Intelligence - Surface
- Signals Intelligence - Subsurface
- Cyberspace - Space
- Cyberspace - Air
- Cyberspace - Land
- Cyberspace - Surface
- Cyberspace - Subsurface
Bug fixLuciadLightspeed
LCD-11017
Bug fixLuciadLightspeed
LCD-11037
SLD raster rendering in GXY / Lightspeed incorrectly applied color interpolation in case of a color map
defined by an SLD Categorize function. To enable interpolation, support has been added for color maps defined
with an SLD Interpolate function.
Bug fixLuciadLightspeed
LCD-11016
Bug fixDefense Symbology
LCD-11024
Fixed a military symbology issue that could cause a RuntimeException when editing symbols on a GXY view
in some cases where label editing and/or label decluttering was enabled.
Bug fixTiling Engine
LF-1876
In certain cases the fusion engine would not immediately stop processing when an exception occurred.
This could for example happen when there is no disk space left to store data.
Now the exception makes the processing fail fast.
Bug fixTiling Engine
LF-1882
Fixed case where the creation of the engine session failed with a IllegalStateException
.
2019.1
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
ILcdLayered
: added a default
addLayeredListener
method which triggers
the listener for all current and future layers.
ImprovementLuciadLightspeed
ILcdLayeredListener
:
2 static factory methods have been added to the interface to easily listen for added and removed layers,
respectively.
ImprovementLucy (LuciadLightspeed)
Added Line-of-sight coverage support for Lightspeed maps. You can take any point on the map and
add line-of-sight coverage by right clicking and selecting 'Add line-of-sight coverage' from the
menu. The line-of-sight will follow the object it is related to.
To use the API there is access to a TLcyLOSManager which is available through the Lucy service mechanism.
lucyEnv.getService(TLcyLOSManager.class)
ImprovementLuciadLightspeed
LCD-10862
The ServiceRegistry
interface is deleted from the sample code. All samples now use
TLcdServiceLoader
to query the service registry.
This makes the sample code less complex.
ImprovementLuciadLightspeed
LCD-7602
TLcdLonLatPointFormat
now has a strict mode using
setOnlyAllowStrictValidCharacters
.
In strict mode no invalid characters will be allowed. By default this will be set to
false
.
ImprovementLuciadLightspeed
LuciadLightspeed now supports the eye-dome lighting (EDL) technique to improve depth perception in point cloud
data sets. For more details, see the how-to article
on eye-dome lighting.
The functionality of changing the EDL parameters is also available in the Lucy UI.
ImprovementLuciadLightspeed
LCD-7424
TLcdSymbol
now allows configuring the border width for the outline of the symbol.
ImprovementLuciadLightspeed
LCD-9399
The
TLcdCSVModelDecoder
has been improved to handle coordinate data in a single column.
Valid coordinate data will be automatically detected. See
TLcdCSVDataSource
for more
info on how to specify column types.
ImprovementLuciadLightspeed
LCD-9358
Made the
TLcdColorMapCustomizer
more user friendly by adding hover indications and tooltips.
These should make it clear for the user that the components can be edited.
ImprovementLuciadLightspeed
LCD-10811
The JVM option
optimize.raster.color.model
no longer affects the
TLcdGeoTIFFModelDecoder
.
The behavior is now always the same whether you have a graphics environment or not.
ImprovementLuciadLightspeed
LCD-10498
Added support for registering an
ILcdStringTranslator
as a service. It will be automatically picked up by
all our classes that use an
ILcdStringTranslator
. This makes it easy to translate all the UI components.
Just like other service interfaces we added a
TLcdCompositeStringTranslator
which makes it easy to work
with all registered instances.
ImprovementLuciadLightspeed
LCD-9540
ImprovementLuciadLightspeed
LCD-8425
Deprecated ILcdModel.FIRE_NOW
as proper usage of model locks only allow for use cases
with ILcdModel.NO_EVENT
or ILcdModel.FIRE_LATER
.
ImprovementLuciadLightspeed
LCD-10430
ImprovementLuciadLightspeed
LCD-9949
The
TLcdCSVModelDecoder
has been improved to handle GeoJson geometry data.
Valid GeoJson data will be automatically detected. See
TLcdCSVDataSource
for more
info on how to specify column types.
ImprovementLuciadLightspeed
LCD-9714
Improvements have been made to the WKT (well known text) format parser. It is now possible to place the UNIT before
the PROJECTION tag.
ImprovementLuciadLightspeed
LCD-9560
TLcdOGCFilterContext#fromModel
: this new utility method makes it easier to create
a filter context for filtering domain objects from a model.
ImprovementLuciadLightspeed
LCD-9241
ImprovementLuciadLightspeed
LCD-10559
The
ILcdPointList2
interface added no extra methods compared to the
ILcdPointList
interface.
There was no more reason to use the
ILcdPointList2
interface, so it has been deprecated.
ImprovementLuciadLightspeed
LCD-9148
The WMS client samples now show when connecting to a new WMS URL the layers of the newly added WMS layer.
ImprovementLuciadLightspeed
LCD-4977
ImprovementLuciadLightspeed
LCD-9691
Made sure that runtime exceptions are wrapped into an
IOException
when creating
an output stream using an
ILcdOutputStreamFactory
.
ImprovementLuciadLightspeed
LCD-5035
The
ILcdLogger
interface now has default methods that accept an array of message parameters,
making it easier to log parameterized messages.
A custom
ILcdLogger
implementation must detect and handle these message parameters.
The log implementation must check whether or not it is receiving a single message parameter or an array of
message parameters and format the message accordingly.
ImprovementLucy (LuciadLightspeed)
LUCY-4639
Lucy: a new filter button is added to the table view filtering the table to the elements visible on the map.
ImprovementLucy (LuciadLightspeed)
LUCY-4723
Lucy: added a delete option in the table pop-up menu to delete selected objects.
ImprovementLucy (LuciadLightspeed)
LUCY-4684
ImprovementLuciadLightspeed
LCD-11018
ImprovementOGC Server
LCD-10925
Improved the interoperability with legacy WFS clients that do not recognize the reference notation urn:ogc:def:crs:OGC:1.3:CRS84;
for this reference, the WFS capabilities now also include the legacy CRS:84 notation als additional reference.
ImprovementTerrain Analysis Engine
TLcdAltitudeMatrixViewFactory
: a new overloaded version of
createPathAltitudeMatrixView
has been added which retrieves the elevation values for the point of an
ILcdCurve
from the
curve itself,
instead of relying on an altitude provider.
ImprovementTerrain Analysis Engine
Bug fixLuciadLightspeed
TLcdDomainObjectContext
: The equals method did not use an identity check to compare domain
objects.
As a result, contexts with different
ILcdShape
instances as domain object could be indicated
as equal.
It now compares the different domain objects using an identity check.
Bug fixLuciadLightspeed
LCD-10618, LCD-873, LCD-10797
Fixed a bug where
TLcdLonLatEllipse#getBounds
could return undersized bounds that would not
contain the entire ellipse. Now the bounds calculation is more accurate and consistent with
TLcdLonLatArc
.
Bug fixLuciadLightspeed
LCD-10466
TLcdInputStreamFactory
: can now create input streams for zipped data, independent of whether the data uses zlib/gzip compatible compression or not.
Bug fixLucy (LuciadLightspeed)
LUCY-4761
Lucy: Pressing 'more...' or 'Edit current' from the projections menu no longer result in an error when none
are available.
Bug fixLucy (LuciadLightspeed)
LUCY-4698
Lucy: hitting the maximum table size limit will now log a warning entry. This is to clearly indicate
not all items are visible in the table.
Bug fixLucy (LuciadLightspeed)
LUCY-3059
Lucy workspaces now support data sources that are loaded through symbolic links.
Bug fixLucy (LuciadLightspeed)
LUCY-4796
Lucy: To properly display error messages containing xml using html, xml characters are now escaped.
Bug fixLuciadLightspeed
The SLD decoder now ignores leading newline and/or leading spaces when decoding a text symbolizer label element.
Bug fixLuciadLightspeed
LCD-10991
The SLD label rotation implementation for Lightspeed views did not properly take into account a possible label
offset introduced by a an SLD label anchor point and/or label displacement property.
Bug fixTerrain Analysis Engine
Bug fixDefense Symbology
LCD-11006
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
- Single Fence
- Double Fence
- Double Apron Fence
- Low Wire Fence
- High Wire Fence
- Antitank Ditch - Under Construction
- Antitank Ditch - Complete
- Wire Obstacle - Unspecified
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
LCD-10695
The Java version handling in
TLcdSystemPropertiesUtil
has been improved with a new method
isJavaVersion(JavaVersion)
. Java version check methods below the minimum Java requirement have been removed.
Upgrade considerationLuciadLightspeed
TLcdOGCFilterFactory
: the public constructor has been removed.
This class only contains static factory methods and was never designed to be instantiated.
To make the intended usage of this class crystal clear, the public constructor has been removed.
Upgrade considerationLuciadLightspeed
LCD-7667
A new version of the JAI ImageIO library is used.
- Fix for possible
IndexOutOfBoundsException
when encoding a GeoTIFF with JPEG compression.
Upgrade considerationLuciadLightspeed
LCD-10754
Removed
com.luciad.view.lightspeed.action.TLspDeleteSelectionAction
in favor of
com.luciad.view.TLcdDeleteSelectionAction.
This is an incompatible change
which can be resolved by using
TLcdDeleteSelectionAction
.
Upgrade considerationAviation Standards
LCD-10586
com.luciad.ais.model.TLcd2DBoundsIndexedModelList
has been removed since
it duplicated com.luciad.model.TLcd2DBoundsIndexedModelList
. Existing
usages of the removed class can simply be replaced with
com.luciad.model.TLcd2DBoundsIndexedModelList
.
2019.0
2019.0.11
ImprovementLuciadLightspeed
LCD-11004
ImprovementLuciadLightspeed
LCD-11003
TLcdSymbol
: improved anti-aliased/HiDPI rendering of several shape types.
TLcdRotatingIcon
also works better with anti-aliased/HiDPI symbols.
ImprovementLuciadLightspeed
LCD-10996
TLspLabelPainter
has the behavior to not display labels when they are obscured by the terrain.
It is now possible to disable this behavior, i.e. allow labels to remain visible, even if their anchor is
located behind the terrain. See
TLspLabelPainter#setUseTerrainForCulling
.
ImprovementLuciadLightspeed
LCD-10981
ImprovementLuciadLightspeed
LCD-10973
Bug fixLuciadLightspeed
LCD-11010
Fixed a potential synchronization issue between the calling thread and the Swing EDT in
TLspExternalView#display()
.
Bug fixLuciadLightspeed
LCD-10984
Bug fixLuciadLightspeed
LCD-11005
It is now possible to enable only a subset of the navigation actions when the combined gestures property is
activated using the TLspTouchNavigateController#setCombineGestures(true)
.
See the javadoc of setShouldRotate
, setShouldPan
,
setShouldZoom
and
TLspTouchNavigateController(aShouldRotate, aShouldZoom, aShouldPan)
for more details.
Bug fixDefense Symbology
LCD-10997
Fixed an issue that caused a VM crash when closely zooming in on the Line Of Contact symbol with planned status
in a GXY view.
Bug fixDefense Symbology
LCD-10986
Bug fixDefense Symbology
LCD-10964
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
- Follow And Assume
- Follow And Support
- Direction Of Attack - Main Attack
- Direction Of Attack - Supporting Attack
- Abatis
- Crossing Site/Water Crossing - Lane
- Crossing Site/Water Crossing - Ferry
- Crossing Site/Water Crossing - Raft Site
- Foxhole, Emplacement or Weapon Site
- Linear Target
- Linear Smoke Target
- Final Protective Fire
- Line Of Contact
Bug fixDefense Symbology
LCD-10983
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
- Seize
- Withdraw
- Withdraw Under Pressure
- Relief In Place
Bug fixDefense Symbology
LCD-10977
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
- Isolate
- Occupy
- Retain
- Secure
Upgrade considerationLuciadLightspeed
LCD-10526, LCD-10974
To simplify implementing an
ILcdGXYChainableController
, the view no longer dispatches the same event twice to
controllers implementing both
MouseListener/MouseMotionListener/MouseWheelListener
and
ILcdAWTEventListener
.
For example, the view used to dispatch a mouse drag event to both
handleAWTEvent
and
mouseDragged
.
This is no longer the case.
If you have a controller like this, you can dispatch events yourself as follows:
@Override
public void handleAWTEvent(AWTEvent aEvent) {
// delivers drag events to #mouseDragged, wheel events to #mouseWheelMoved, and so on
com.luciad.gui.TLcdAWTUtil.dispatchAWTEvent(aEvent, this);
}
2019.0.10
ImprovementDefense Symbology
LCD-10952
Added Hostility indication labels (ENY) to the "Obstacle Effect - Block" symbol
ImprovementDefense Symbology
Increased spacing between letters of ENY decorations on line symbols in GXY views.
Bug fixLuciadLightspeed
LCD-10966
TLcdServiceLoader
no longer throws an exception when the current thread's context class loader is null.
Bug fixLuciadLightspeed
LCD-10960
Fixed the handling of the SLD label placement offset for lines in Lightspeed views: while the implementation previously
positioned the label at a random side of the shape depending on the current view extent, it now takes the offset sign into
account
to consistently position the label at one side of the shape.
Bug fixLuciadLightspeed
LCD-10959
Improved the TLcdGeoTIFFModelEncoder#canExport
to check that the image within the model
does have values of type double. If this is the case the method returns false
as encoding
such images is not supported by the GeoTIFF encoder.
Bug fixAdvanced Raster Connectors
LF-1855
The ECW decoder now actively loads the Microsoft Visual C++ runtime libraries on Windows.
Bug fixDefense Symbology
LCD-10893
Fixed ArrayIndexOutOfBoundsException that could occur when editing the second to last sector of "Weapon/Sensor Range
- Sector Fan" symbols with an uneven number of points in their point list.
Bug fixDefense Symbology
LCD-10936
Fixed a performance issue that occurred on GXY views when zooming in for the following symbols:
- Fortified Line
- Bearing Line
- Retirement
- Antitank Wall
- Obstacle Restricted Area
- Main Supply Route
- Alternate Supply Route
- Explosive State of Readiness 1 (Safe)
- Explosive State of Readiness 2 (Armed But Passable)
- Roadblock Complete
- Single Concertina
- Double Strand Concertina
- Triple Strand Concertina
Bug fixMaritime Standards
LCD-10948
ECDIS S52 layers didn't pick up the value from setInteractMargin
properly for text elements.
This is now resolved.
2019.0.09
ImprovementMaritime Standards
LCD-10919
Added support for InlandECDIS (IENC) cells that contain regular ENC data.
While this is not according to the specification, data providers often do this.
For example, often IENC cells contain both "achare" objects (part of IENC) and "ACHARE" objects (part of regular ENC).
The IENC object classes and attributes now include those from ENC that were not already part of the IENC spec.
Similarly, the IENC visualization rules now include the full S-52 rules as a fallback.
If you have IENC cells or catalogs/multicatalogs with only IENC cells, all this will be picked up automatically.
If you have catalogs or multicatalogs that contain cells of product type IENC as well as regular ENC, you have to
manually force IENC. This is because the cells themselves contain this information, and are lazy-loaded.
// Decode the model
TLcdS57CatalogueModelDecoder decoder = TLcdS57ProductConfiguration.getInstance(ELcdS57ProductType.IENC).createCatalogueModelDecoder();
decoder.setLoadingPolicy(SOFT_REFERENCED);
ILcdModel model = decoder.decode("/path/to/CATALOG.031");
Bug fixLuciadLightspeed
LCD-10945
In a Lightspeed view, imagery with an IndexColorModel
could sometimes be visualized
with incorrect colors.
Bug fixLuciadLightspeed
LF-1856
ILcdLoggerFactory
and its implementations are no longer obfuscated so that they can be picked up by the service loader.
You don't need to do anything when you obfuscate your application and include our luciadlightspeed.pro
file in your Proguard configuration, as is recommended.
If you use your own Proguard configuration file which does not include luciadlightspeed.pro
, you need to add the following lines:
-keep interface com.luciad.util.logging.ILcdLoggerFactory
-keep class * implements com.luciad.util.logging.ILcdLoggerFactory
Bug fixLucy (LuciadLightspeed)
LUCY-4849
TLcyDebugAddOn
the action to inspect a workspace threw a IOException when trying to use it.
Bug fixLuciadLightspeed
LCD-10918
SLD raster rendering in GXY ignored any alpha band in the source image in case no channel selection and/or
normalization was defined.
Bug fixLuciadLightspeed
LCD-10944
Improved the robustness of
ALcdImageMosaic
to cope with small inaccuracies between
the image bounds and the mosaic's tile grid bounds.
Bug fixLucy (LuciadLightspeed)
LUCY-4851
TLcyMapEditUnitAddOn
: due to a regression, setting the precision of the altitude format was
no longer possible. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4850
TLcyMapEditUnitAddOn
: the config file contained the
TLcyMapEditUnitAddOn.altitude_precision
property which wasn't read. The correct property to use is
TLcyMapEditUnitAddOn.default_altitude_precision
.
The configuration file has been updated to reflect this.
Bug fixDefense Symbology
LCD-10929
Fixed an issue that affected GXY views where the labels of some line symbols were not properly aligned with the
stroke of the symbol in some view projections.
Bug fixMaritime Standards
LCD-10937
Fixed an issue when applying cell updates that referred to non-existing fields in the base cell.
This caused errors when loading these cells. Now, the cells are loaded and the update is applied.
Bug fixMaritime Standards
LCD-10943
The InlandECDIS (IENC) visualization rules had swapped the "symbolized boundaries" with the "plain boundaries".
This has now been corrected.
Upgrade considerationLuciadLightspeed
LCD-10871
The fillOutlineArea property of
TLcdGXYImagePainter
is now set to false for models with
multiple images when created with
TLcdGXYImagePainter.create
. Some layer factories use
this method internally.
The result is that outlines will no longer be filled for these cases. This avoids cluttering the view with red
hatched rectangles in areas where they overlap.
Upgrade considerationLucy (LuciadLightspeed)
LCD-10908
TLcyE57AddOn
: the interpretation of the
TLcyE57AddOn.maxNumberOfPointsPerPointCloud
property in the config file has changed.
Using a negative value will now result in the removal of the limit of the number of decoded points.
In the past, using a negative value would result in using the default limit value.
Upgrade considerationLucy (LuciadLightspeed)
LCD-10908
TLcyLASAddOn
: the interpretation of the
TLcyLASAddOn.maxNumberOfPointsPerFile
property in the config file has changed.
Using a negative value will now result in the removal of the limit of the number of decoded points.
In the past, using a negative value would result in using the default limit value.
2019.0.08
Bug fixLuciadLightspeed
LCD-10915
Fixed a potential deadlock when initializing a
TLspSwingView
in certain circumstances.
Bug fixLuciadLightspeed
LCD-10914
3D Tiles visualisation: Fixed an issue where
TLcdOGC3DTilesModelDecoder
would not propagate
correctly the transformation matrix from the tileset.json to the meshes.
Bug fixLuciadLightspeed
LCD-10905
Bug fixLuciadLightspeed
LCD-10870
Calling TLcdDatabaseModel#clearCache
now correctly invalidates the cache instead of only
discarding local changes.
Bug fixDefense Symbology
LCD-10902
Fixed a performance issue that occurred on GXY views when zooming in on "Forward Line of Own Troops (FLOT)" and
"Fortified Area" symbols.
2019.0.07
Bug fixLuciadLightspeed
LCD-10897
The clone method of the following painters didn't do a correct deep clone of all fields.
This could lead to incorrectly painted labels when enabling asynchronous painting.
Bug fixLuciadLightspeed
LCD-10894
The
TLcdTFWRasterModelDecoder
did not take the provided default model reference into account
as fall-back when it was provided through the class constructor.
Bug fixLuciadLightspeed
LCD-10879
Transforming points from a geocentric reference to a geocentric reference with an other unit of measure could
result in incorrect results.
Bug fixAviation Standards
LCD-10880
The DAFIFT data preparator tool
TLcdDAFIFTDataPreparatorMain
could cause a
NullPointerException
when encountering Refueling Track data (part of file ARF/ARF_PAR.TXT).
Bug fixDefense Symbology
LCD-10872
Added the missing exercise indicator (X) for the MIL-STD-2525 C 'Moored Exercise Mine' symbol for the Unknown,
Pending, Friend, Assumed Friend, Neutral and Hostile affiliations.
Bug fixDefense Symbology
LCD-10883
The affiliation and alternate fill color property could not be configured for the APP-6/MIL-STD-2525
Equipment symbol.
2019.0.06
ImprovementAviation Standards
LCD-10767
Added a "Select All" option to ease decoding of all AIXM data types at once in the
samples.decoder.aixm.gxy
sample.
Bug fixLuciadLightspeed
LCD-10779
Bug fixOGC Server
LCD-10865
A WFS 2.0 GetFeature request containing a PropertyName filter and sent as an XML POST request
triggered a ClassCastException.
Bug fixMaritime Standards
LCD-10868
Scale ranges set on the display settings
after creating an S-52 GXY layer were not picked up.
They were only picked up if set
before creating the layer.
This is now resolved: you can use
TLcdS52DisplaySettings.setScaleRanges
at any time, and your
TLcdS52GXYCatalogueLayer
will
apply the change immediately.
2019.0.05
ImprovementLuciadLightspeed
The API to create new on-map navigation controls has been simplified:
ImprovementLuciadLightspeed
LCD-10603
TLspInteractiveLabelsController
was updating labels regardless of which view they belonged to.
The controller now only updates labels that belong to the view it is configured for.
ImprovementLuciadLightspeed
LCD-10572
It is now possible to pan a 2D map with two fingers without jitter if the two fingers are close enough to each other.
See TLspTouchNavigateController#set2DPanDistanceThreshold
for more details.
Bug fixLuciadLightspeed
LCD-10863
TLcdXYEllipse
and
TLcdLonLatEllipse
: inversed the results of the
getTangent2D
method to match the direction (counter-clockwise) of the
computePointSFCT
method.
Bug fixLucy (LuciadLightspeed)
LUCY-4844
Fixed an issue in Lucy where the deploy_lucy
deployment build script failed when the
src
folder containing custom classes was found.
Bug fixLucy (LuciadLightspeed)
LUCY-4845
TLcyCSVAddOn
: the Import dialog shown when opening a CSV file in Lucy no longer showed a
preview of the data on the preview map.
This has been fixed.
Bug fixLuciadLightspeed
LCD-10814
Some GeoTIFF files with multi-band data could not be decoded in a headless environment.
This was due to the default value for optimize.raster.color.model
which was
true
but cannot be used in a headless environment.
The implementation has been fixed and the above flag defaults value has been set to
false
such that the behavior is the same in an environment with or without graphics.
Bug fixLuciadLightspeed
LCD-10795
TLspPinLineStyle#getPinVisibilityThreshold()
is now evaluated correctly for pins that use
PinEndPosition.MIDDLE_OF_BOUNDS
.
Bug fixAdvanced GIS Engine
LCD-10409
Fixed a bug in Ellipsoidal Basic Binary Topology where checkTopology
and
lineIntersectionSFCT
results would contradict.
Bug fixDefense Symbology
LCD-10822
Fixed a regression which caused movement direction arrows to be painted in Lightspeed views when they were disabled
through styling.
Bug fixDefense Symbology
LCD-10453
Changed the label painter for Boundary lines symbol. The unique designation modifier will now be moved along the
boundary so it always remains in view instead of being repeated when zooming in.
This change brings the functionality of GXY views in line with Lightspeed views and resolves a number of performance
issues and bugs in GXY views.
Bug fixDefense Symbology
LCD-10788
Fixed a regression which caused the painting of the APP-6A/B/C/D "Security (Screen)", "Security (Guard)" and
"Security (Cover)" symbols
to be broken in GXY views.
Bug fixDefense Symbology
LCD-10820
Fixed issue that caused military icon symbols configured with an invalid affiliation to be painted as a black square
and also caused various
NullPointerExceptions
to be thrown.
Bug fixMaritime Standards
LCD-10847
Scale ranges or scale denominators set on the display settings
after creating an S-52 GXY layer were not picked up.
They were only picked up if set
before creating the layer.
This is now resolved: you can use
TLcdS52DisplaySettings.setScaleDenominators
at any time, and your
TLcdS52GXYCatalogueLayer
will apply the change immediately.
Bug fixMaritime Standards
LCD-10659
Fixed an issue when applying cell updates that referred to non-existing fields in the base cell.
This caused errors when loading these cells. Now, the cells are loaded and the update is applied.
2019.0.04
ImprovementLuciadLightspeed
LCD-10131
Fixed an issue where the LASzip file was displayed in reverse color when both low and high bits of a 16-bit color
were populated.
ImprovementLuciadLightspeed
LCD-10805
ImprovementLucy (LuciadLightspeed)
LUCY-4806
TLcyCSVAddOn
: when opening a CSV file in Lucy and entering incorrect information in the
Import dialog, Lucy no longer shows an Internal Error dialog.
Instead, an error dialog stating that the file could not be opened is shown.
ImprovementLuciadLightspeed
LCD-10571
The distance threshold at which touch navigation switches between rotating and pitching in 3D, can now be customized.
See TLspTouchNavigateController#setPitchDistanceThreshold
for more details.
Bug fixLuciadLightspeed
LCD-10753
3D Tiles conversion: Reduced the memory usage of the conversion from OSGB to 3DTiles.
Bug fixLuciadLightspeed
LCD-10800
The SLD normalize improvement LCD-10441 caused a regression where an SLD raster symbolizer with an
RGB channel selection containing the same band would throw a NullPointerException
.
Bug fixLuciadLightspeed
LCD-10796
TLcdLonLatGridPainter
: fixed a regression introduced in 2018.1 that caused vertical labels
not to snap to the edge of the view anymore.
Bug fixLuciadLightspeed
LCD-10793
TLspTouchNavigateController#getMaximumNumberOfPoints
incorrectly reported that it could handle up to 10 touch points.
TLspTouchNavigateController
does not handle more than 2 touch points.
Bug fixOGC Server
LCD-10808
A WFS Transaction Update request was implemented by a delete and insert of respectively the original and
updated object, instead of an actual update of the original object. This could trigger unexpected object
id changes in case of a database back-end.
Bug fixOGC Server
LCD-10803
Performing a GetFeatureInfo request on a queryable raster layer would fail for the text/plain
info format.
Bug fixDefense Symbology
LCD-10809
Fixed an issue with MIL-STD 2525 D symbols which only defined a single possible value for status or standard
identity 2 modifiers.
For example, the "Friendly Planned or on Order Area" symbol defines "Friend" as the only possible standard identity 2 modifier
and "Planned/Anticipated/Suspect" as only possible status.
The issue caused these symbols to be painted with incorrect affiliation color and status stroke. This issue also
caused the values of these modifiers to be empty in the properties customizer panel in the
military symbology sample.
Bug fixDefense Symbology
LCD-10679
Changed the following display name of modifiers
-
MIL-STD-2525 B/C/D
- 'Reinforced or Detached' got renamed to 'Reinforced or Reduced'
-
APP-6 C/D
- 'Special Headquarters' got renamed to 'Named Headquarters'
Upgrade considerationLuciadLightspeed
LCD-10798
The laszip4j library has been upgraded to 0.7.
2019.0.03
ImprovementLuciadLightspeed
LCD-10782
ImprovementLuciadLightspeed
LCD-4001
The TAB raster model decoder provides a more clear message in case the TAB file may be for MapInfo MAP (vector)
files.
ImprovementLuciadLightspeed
LCD-10239
The GeoTIFF model decoder documentation contains information on the heuristic used to mark data as elevation.
ImprovementLucy (LuciadLightspeed)
LUCY-4843
Removed pre-defined URLs for Web Map Services (WMS) which are no longer present.
Lucy users that have those URLs within their cached connections can remove such stale URLs
via the WMS Client
dialog which allows to manage collected connections.
ImprovementOGC Server
LCD-9862
Removed obsolete section in OGC server documentation regarding setting up of native libraries.
Native libraries used within LuciadLightspeed / LuciadFusion are extracted from jars automatically.
ImprovementOGC Server
LCD-10740
The SERVICE request parameter validation check in the WMS, WFS, WMTS, WCS and CSW server has been made case insensitive
to improve interoperability with non-compliant OGC web service clients.
ImprovementMaritime Standards
LCD-10708
Improved rendering of
TLcdS52FillStyle
on HiDPI displays. You should take into account HiDPI
scaling if you are writing your own
ILcdS52FillStyle
implementations.
Bug fixLuciadLightspeed
LCD-10781
A regression in LuciadLightspeed 2019.0 prevented
TLspSelectController
from calling its protected methods.
Bug fixLuciadLightspeed
LCD-10746
Resolved a performance regression when rendering halo's in HiDPI displays.
Bug fixLuciadLightspeed
LCD-10748
Bug fixLuciadLightspeed
LCD-10780
Bug fixLuciadLightspeed
LCD-10648
TLspTouchNavigateController
now extends ALspConfinedTouchController
.
This fixes a bug where calling startInteraction
or terminateInteraction
would call those same methods multiple times on the rest
of the controller chain.
This could cause problems in any of the appended controllers.
For example, when a TLspKeyActionController
was appended to it, it would trigger
a NullPointerException
.
Bug fixLuciadLightspeed
LCD-9815
Model change events must happen on the Event Dispatch Thread (EDT).
The WMS client sample now fulfils this expectation.
Bug fixLuciadLightspeed
LCD-10756
TLcdWFSProxyModelFactory and TLcdWFSProxyModel#Builder did not take into account a configured model reference parser
when decoding WFS response data.
Bug fixLuciadLightspeed
LCD-10657
GML model encoders: encoding an empty model could sometimes result in an exception stating "No compatible elements to export".
Bug fixLuciadLightspeed
LCD-10744
TLcdWKTReferenceParser
didn't interpret the latitude origin for Cassini projections
correctly. This also impacted
TLcdEPSGReferenceParser
for EPSG references EPSG:2314,
EPSG:3068, EPSG:3140, EPSG:3377-3385, EPSG:4390-4398, EPSG:24500, EPSG:28191, EPSG:28193 andEPSG:30200.
Bug fixOGC Server
LCD-10783, LCD-7660, LCD-7633
The handling of WFS 1.1 GetFeature requests could trigger a service exception report in case of a
POST request with a BBOX filter containing coordinates outside the coordinate reference's projection bounds.
Bug fixDefense Symbology
LCD-10745
Fixed a regression that was introduced by the fix for LCD-10640, causing symbols to be painted with an extra line
to the symbol's start point in a GXY view.
Bug fixDefense Symbology
LCD-10250
Fixed issue with the rendering of Cover, Screen and Guard symbols in APP6 symbologies in GXY views.
Bug fixDefense Symbology
LCD-10250
An issue has been fixed that caused the labels of area symbols to be placed on the stroke instead of inside the area
when label placement was set to be centered through styling.
All area symbols have been converted to a new GXY painter in order to fix the label placement for area symbols in
GXY views.
Bug fixDefense Symbology
LCD-10743
Fixed issue that caused some rounded polyline symbols to be painted with straight lines in GXY views.
Upgrade considerationLuciadLightspeed
LCD-10792
TLspTouchNavigateController
: the
setPitchSensivityFactor
method
which was accidentally added in version 2019.0.02 has been removed again.
2019.0.01
ImprovementLuciadLightspeed
LCD-10719
The WCS client API now automatically uses sensible settings for
TLcdWCSProxy
's tiled
multilevel raster structure, based on the coverage bounds. This helps to efficiently query WCS raster data and
avoids manual configuration of the raster structure settings (tile width, tile height, rows, columns ...).
ImprovementLuciadLightspeed
TLcdGXYSurfacePainter
now supports creation of a surface,
provided that it has an exterior ring and no inner rings.
Bug fixLuciadLightspeed
LCD-10689
When running LuciadLightspeed on a 32-bit JVM, functionality that depends on OpenCL could cause exceptions,
e.g. when using an
ALcdImageOperator
.
Bug fixLuciadLightspeed
LCD-10701
Improved rendering of SLD icons on HiDPI displays.
Bug fixLuciadLightspeed
TLcdIconFactory.LINK_DECO_ICON
: made the 16x16 icon consistent with the other icon sizes.
Bug fixLuciadLightspeed
LCD-10688
TLspIconStyle
: icons did not adapt correctly when switching between a HiDPI and non-HiDPI
screen. As a result icons would appear to large on the non-HiDPI screen or to small when switching to a
HiDPI screen.
Bug fixLuciadLightspeed
LCD-10687
TLcdImageIcon
: the icon would not be painted with the correct resolution
when switching between a HiDPI and a non-HiDPI display.
Bug fixLuciadLightspeed
LCD-10686
TLspSLDStyler
configured an incorrect labeling algorithm for line and polygon symbolizers.
This would result in polygons with labels on the outline of the polygon instead of labels inside the polygon.
Bug fixLuciadLightspeed
LCD-10730
Bug fixDefense Symbology
LCD-10714
Fixed issue where an exception was thrown during creation of the MIL-STD-2525 D symbol "Rectangular Target - Single
Target (Aegis Only)" in a GXY view.
Bug fixDefense Symbology
LCD-10698
Fixed issue with icon symbols of the APP6-C standard where the country code label would appear in multiple places around the
symbol.
2019.0
ImprovementLuciadLightspeed
The lightspeed.imageprojection
sample has been modified to show
a sample video draped onto the terrain instead of a single image icon.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
Improved the rendering of both GXY and Lightspeed views on High DPI screens.
Accordingly, TLcdImageIcon
now supports multiple versions of an icon for
different resolutions and uses the proper one according to the DPI scale of the screen.
Note:In most Linux distributions, Java does not pick up the operating system's configured
scale factor. You can use the -Dsun.java2d.uiScale
VM parameter to manually set the scale factor.
Please refer to the articles
Support high-resolution displays on a GXY map
and
Support high-resolution displays on a Lightspeed map
for more information.
ImprovementLuciadLightspeed
LCD-10410
TLcdWFSDataSource.Builder
now allows to set a
QName
as feature type
name, next to the existing capability to set a
String
. This better aligns with the
OGC WFS specification, which focuses on the use of qualified names for feature types.
ImprovementLuciadLightspeed
LCD-3558
Improved the performance of adding and removing (many) layers to a view.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
The WFS client model decoder class
TLcdWFSModelDecoderDecorator
can now be instantiated with a custom
ILcdOWSTransport
. Example uses cases include the configuration of authentication
credentials or request / response interception.
ImprovementLuciadLightspeed
Visualizing Bing Maps data has been simplified:
Adding the Bing Maps logo and copyright information on your view is also simplified:
- Introduced
TLcdBingMapsCopyrightIcon#asComponent
method allowing to convert the
copyright icon in a component which can be added to a Swing UI
- Introduced the
TLcdBingMapsLogoIcon
class (including a similar asComponent
method), making it easy to add the Bing Maps icon to a Swing UI
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-10526
ImprovementLuciadLightspeed
TLcdGXYLayer
now configures a more accurate pen by default.
If you need to switch back to the previous implementation, you can do so by calling
layer.setGXYPen(new TLcdGXYPen());
.
ImprovementLuciadLightspeed
Raster painting performance has been improved in Lightspeed views for imagery that has an
IndexColorModel
and for RGB images without an alpha channel. The performance improvement will be automatically applied when
possible, this requires no configuration.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
TLcdDataModel
A new annotation type (
TLcdHiddenDataPropertyAnnotation
) is available to annotate properties
that need to be excluded from the user interface.
Lucy now works with this annotation within:
- the table view and its filter-functionality
- the object properties window
- the label-selector interface
Adding this annotation to certain properties is possible for custom models as well as for models with existing
decoders.
ImprovementLucy (LuciadLightspeed)
Lucy: the UI to adjust the elevation data colors on a Lightspeed map now includes a button to revert
to the default elevation coloring.
ImprovementLuciadLightspeed
LCD-10243
LAS and LAZ files which only contain black colors now will be treated as non-colored data.
ImprovementLuciadLightspeed
LCD-9956
ILcdEllipsoid
: introduced
ILcdEllipsoid#geoc2height
to calculate the
height above the ellipsoid for a geocentric point.
ImprovementGraph and Routing Engine
ImprovementAviation Standards
A new property
separateFeatureTypes
has been added to
TLcdAIXM51ModelDecoder
to support decoding AIXM 5.1 data as a model tree node, containing one model per separate feature type (airspace,
airport/heliport, ...). This was already possible as a manual post-decoding step through a utility method in
TLcdAIXM51MessageUtil
, but it can now be done automatically by the decoder. Similarly,
TLcdAIXM51ModelEncoder
now also accepts model tree nodes containing one model per feature type.
ImprovementDefense Symbology
LCD-10640
Painting of some military symbols in GXY views now starts once the first point has been placed, as opposed to once
the minimum number of points for that symbol has been placed.
Which gives quicker feedback as to how the symbol would look during creation.
ImprovementDefense Symbology
Editing behaviour of circular symbols has been improved so that moving the center point now translates the whole
symbol instead of only the center point.
ImprovementDefense Symbology
LCD-10432
ImprovementDefense Symbology
LCD-10429
The classes
TLcdAPP6ADataTypes
and
TLcdMS2525bDataTypes
have now been
marked as
final
to make it clear they should not be extended.
Their default constructor was already private, meaning it was already impossible to extend these classes. This
change should thus not have any impact on existing applications.
ImprovementDefense Symbology
Patterns and strokes of tactical graphics in a Lightspeed view now scale with the configured line width.
This improves visualization on HiDPI devices.
Bug fixDefense Symbology
LCD-10642
Fixed issue that caused labels to be cut of when label font scaling was enabled in styling.
The scaling calculation has also been changed os it is consistent across all symbols.
Specifically the scaling is always made based on a combination of label font size and symbol size configured in
styling.
See ILcdMS2525bStyle#getLabelFont
, ILcdMS2525bStyle#getSizeSymbol
,
ILcdMS2525bStyle#isLabelFontScalingEnabled
for MIL-STD-2525 symbologies.
See ILcdAPP6AStyle#getLabelFont
, ILcdAPP6AStyle#getSizeSymbol
,
ILcdAPP6AStyle#isLabelFontScalingEnabled
for APP6 symbologies.
Upgrade considerationLuciadLightspeed
Lightspeed views now support high DPI rendering. This means that fonts, icons and
other map elements will be automatically resized in proportion to the DPI scale factor
configured in the operating system. Due to the way high DPI support is implemented in
Swing, however, applications that use a Lightspeed view now essentially have
an additional coordinate system to deal with, which we refer to as "toolkit coordinates".
In most scenarios this is merely an implementation detail. Applications may need to be
adjusted to work correctly with DPI scaling if they
Please refer to the
javadoc of ALspViewXYZWorldTransformation
for more information on
toolkit coordinates and DPI scaling.
Upgrade considerationLucy (LuciadLightspeed)
Lucy no longer supports integration with the Eclipse SWT framework.
Upgrade considerationLuciadLightspeed
The method TLcdWFSDataSource#getFeatureTypeName()
now returns a QName
instead
of a String
, to better reflect the focus of the OGC WFS specification on the use
of qualified names for feature type names. Existing implementations can be updated by simply relying on the
toString
method to convert the QName
to a String
.
Upgrade considerationLuciadLightspeed
TLcdIconFactory.DRAW_VARIABLE_BUFFER_ICON
has been removed since
it was duplicating the TLcdIconFactory.DRAW_VARIABLE_WIDTH_BUFFER_ICON
.
Upgrade considerationLuciadLightspeed
TLcdGXYSelectController2
now only draws a multi-select rectangle when holding down the shift key.
This makes it trivial to add pan behavior by appending
TLcdGXYNavigateController
.
To revert the previous behavior, call
selectController.setMultiSelectModifierKey(0);
.
Upgrade considerationLuciadLightspeed
ALspDensityStyle.Builder
and subclasses: the public constructors have been removed.
Creating your own density style (builder) instances was never supported.
Removing the constructors makes this clear.
If you called the public constructor of TLspDensity...Style.Builder
, use the
TLspDensity...Style#newBuilder
method instead.
Upgrade considerationLuciadLightspeed
LCD-10486
ILcdGXYPen
and ILcdAWTPath
now support double coordinates
to improve precision in HiDPI views.
Hereafter methods accepting integer coordinates accept double coordinates.
In the unlikely event that you have a custom ILcdGXYPen
or
ILcdAWTPath
implementation, you may have to
modify it to use double coordinates as well, or alternatively convert the double coordinates to integers.
The following classses inherit ALcdGXYPen
, and they were updated accordingly to be
able to use double coordinates.
Accordingly, the type of the protected field ALcdGXYPen#fLastAWTPoint
has been changed
to TLcdXYPoint
and the field has been renamed as fLastViewPoint
.
Upgrade considerationLuciadLightspeed
LCD-9310, LCD-9763
A new version of the JAI ImageIO library is used.
- Support for decoding TIFF files using floating point predictor 3 (TIFF Technical Note 3) has been added.
- It improves on memory usage needed for reading the image metadata for large (Big)TIFF files when decoding the model.
Upgrade considerationLucy (LuciadLightspeed)
Lucy no longer supports the legacy 3D view component.
The legacy 3D view was already disabled in Lucy since the introduction of the Lightspeed view in
LuciadLightspeed 2012.0.
All public classes and add-ons that depended on the legacy 3D component were removed from the API.
This change removed the following packages and add-ons:
- The
com.luciad.lucy.format.opengl
package.
- The
com.luciad.lucy.map.opengl
package.
- The
TLcyAIXM51OpenGLAddOn
class and related files.
- The
TLcyBingMapsOpenGLAddOn
class and related files.
- The
TLcyCameraLinkAddOn
class and related files.
- The
TLcyCameraTrackingAddOn
class and related files.
- The
TLcyPOLOpenGLAddOn
class and related files.
- The
TLcyDrawingOpenGLAddOn
class and related files.
- The
TLcyEarthOpenGLAddOn
class and related files.
- The
TLcyFusionRasterFormatOpenGLAddOn
class and related files.
- The
TLcyGridOpenGLAddOn
class and related files.
- The
TLcyGLMapAddOn
class and related files.
- The
TLcyKML22OpenGLAddOn
class and related files.
- The
TLcyMapOverviewOpenGLAddOn
class and related files.
- The
TLcyGLPreviewAddOn
class and related files.
- The
TLcyExtremePointOpenGLAddOn
class and related files.
- The
TLcyToteOpenGLAddOn
class and related files.
- The
TLcyViewPointAddOn
class and related files.
- The
TLcyLspGLFallbackFormatAddOn
class and related files.
- The
TLcyGridCoordinateOpenGLAddOn
class and related files.
- The
TLcyG4JAddOn
class and related files.
- The
TLcyMSSQLFormatOpenGLAddon
class and related files.
Upgrade considerationLuciadLightspeed
All public classes that depended on the legacy 3D component were removed from the API.
Upgrade considerationLuciadLightspeed
LuciadLightspeed now uses LWJGL as
its Java binding for the OpenGL and OpenCL APIs (instead of the JogAmp libraries
used by previous versions). This means that the following JAR files are no longer
part of the release:
- gluegen-rt-<version>.jar
- gluegen-rt-<version>-natives-<platform>.jar
- jocl-<version>.jar
- jocl-<version>-natives-<platform>.jar
- jogl-all-<version>.jar
- jogl-all-<version>-natives-<platform>.jar
The following JARs have been added to replace the above:
- lwjgl-<version>.jar
- lwjgl-<version>-natives-<platform>.jar
- lwjgl-jawt-<version>.jar
- lwjgl-opencl-<version>.jar
- lwjgl-opengl-<version>.jar
- lwjgl-opengl-<version>-natives-<platform>.jar
Users upgrading from LuciadLightspeed V2018.x or earlier to V2019.0 may
need to adapt their IDE settings or build scripts to reflect these changes.
Additionally, the migration to LWJGL has also brought with it some
changes to how Lightspeed views deal with NIO buffers. The most visible result
of these changes is that some data which was previously stored in native memory,
will now be stored on the heap. As a result, upgrading an application from an
older version of LuciadLightspeed to V2019.0 or newer may result in the
application using less native memory and more heap memory. This may require some
adjustment of JVM parameters, especially for applications that were tuned to run
within tight memory constraints.
Finally, some of the API surrounding ALcdGLBinding
has been
changed incompatibly:
ILcdGLBuffer
et al. have been removed. All API
methods that used this interface now accept only
java.nio.Buffer
and/or primitive arrays. Applications that used these API methods will have
to be updated accordingly. Note that the new class
TLcdGLNIOBufferFactory
should be used to allocate buffers
that are intended to be passed to OpenGL calls.
- The interface
ILcdGL
has been streamlined and now
contains only the OpenGL core and compatibility profile API (i.e. no OpenGL
extensions). It has, however, been updated to cover all OpenGL versions up to and
including OpenGL 4.6. Applications that contain custom OpenGL code and use certain
OpenGL extensions, can access these extensions by calling LWJGL directly. This is
safe and easy to do since LWJGL exposes the OpenGL API entry points as static
methods.
ILcdGL
has also been stripped of method overloads
that take a primitive array followed by an array offset parameter. Applications
that use these methods should use an NIO buffer instead, positioned to the
appropriate offset.
-
The methods
makeCurrent()
,
canMakeCurrent()
and release()
, which were previously deprecated, have now been
removed from ILcdGLDrawable
. To execute code that requires an active
OpenGL context, use the drawable's invokeLater()
or
invokeAndWait()
methods instead.
-
The previously deprecated
displayChanged()
method has been removed
from ILcdGLEventListener
. The method was never called by any
implementation of ILcdGLDrawable
.
Upgrade considerationLuciadLightspeed
LCD-10581
The return types of some of the methods of the following classes were narrowed from Enumeration to ILcdAutoCloseableEnumeration.
- ILcdDatabaseDecoder
- ILcdDatabaseDecoder2
- TLcdDatabaseModel
- TLcdDatabaseReadOnlyModel
The new return type allows clients to close enumerations so resources can be cleaned up.
Upgrade considerationAdvanced GIS Engine
ILcd2DBasicBinaryTopology
: the constants defined in this interface have moved to the super
interface.
The ILcd2DBasicBinaryTopology
no longer has any functionality left and has been deprecated as
a result.
It might get removed in a future release.
Upgrade considerationDatabase Connectors
The lib directory now contains the latest SQL Server JDBC driver in mssql-jdbc.jar (version 7.2.1.jre8) replacing
sqljdbc4.jar (version 4.0.2206.100).
Upgrade considerationDatabase Connectors
An upgrade to the latest Oracle JDBC Driver has introduced slightly stricter connection url validation. Users that are
connecting to Oracle databases without specifying a SID and not including the trailing ":" will now get an error that the
connection url is invalid. The solution is to correct the connection string to include the trailing ":". This upgrade
replaces oracle_jdbc.jar (version 11.2.0.1.0) with ojdbc8.jar and sdoapi.jar (version 12.2.0.1).
Upgrade considerationOGC Server
LCD-10353
The class com.luciad.ogc.common.log.TLcdOGCLogFilter
has been removed from the API.
This Servlet Filter implementation was introduced in the past for request logging purposes but was never
integrated / used in any of the OGC web service (WFS / WMS / WCS) implementations.
The removal of this class should not pose any impact.
Upgrade considerationTerrain Analysis Engine
TLspLOSProperties
has been made final.
This class was never designed to be extended and to make that clear the class has been made final.
Upgrade considerationWeather & Environment Standards
LCD-10324
Added a dependency to a customized version of the thredds library, used to parse NetCDF and GRIB files.
Upgrade considerationDefense Symbology
LCD-10662
2018.1
2018.1.16
ImprovementLucy (LuciadLightspeed)
Lucy: the UI of the connection dialog to a WMS/WFS/WCS/WMTS/LTS service has been improved:
- A loading icon is shown while the capabilities are being requested
- An option to (de)select all available datasets is added
ImprovementLucy (LuciadLightspeed)
LUCY-4814
Bug fixLuciadLightspeed
LCD-10139
Fixed an issue where the bounds of an
ALcdImage
might not
get painted if the model contained multiple images with different references.
Bug fixLuciadLightspeed
LCD-10650
TLcdGXYLabelPainter
and its extensions could paint labels of non-selected objects in the
selection color.
Bug fixLuciadLightspeed
LCD-10645
The
TLcdGXYClippingPainterWrapper
performed its clipping incorrectly when the clipping
geometries passed world boundaries.
This could happen for example when defining a clip shape in a Lambert Conformal Conic based coordinate reference
and displaying the data on the map in an Equidistant Cylindrical projection.
Bug fixLuciadLightspeed
LCD-10628
ALcdTransformingModel
: Fixed a memory leak that could occur when modifying elements in the
original model.
Bug fixLuciadLightspeed
LCD-10554
Bug fixAviation Standards
The method to automatically sort time slices in decoded AIXM 5.1 models,
TLcdAIXM51ModelDecoder#setAutoSortTimeSlices
,
was erroneously mapped on the behavior of
TLcdAIXM51ModelDecoder#setAutoMergeFeatures
.
Bug fixDefense Symbology
LCD-10656
Relaxed the validation of possible label keys that can be set using
TLcdDefaultAPP6AStyle#setLabelEnabled
and
TLcdDefaultMS2525bStyle#setLabelEnabled
so all static fields of
ILcdAPP6ACoded
and
ILcdMS2525bCoded
respectively,
can be passed to them without throwing exceptions.
When passing a label key of a modifier that is not a label, this will have no effect on the styling of the symbol.
Validation of label keys for
TLcdDefaultAPP6AStyle#isLabelEnabled
TLcdDefaultMS2525bStyle#isLabelenabled
has also been replaced.
these methods will no longer throw
IllegalArgumentException
for unknown label keys, they will
return
false
for unknown labels instead.
Bug fixDefense Symbology
LCD-10508
Fixed incorrect labeling for following MIL-STD-2525 C symbols:
Hierarchy Code |
Symbol Name |
2.X.4.3.3.4 |
Censor Zone |
2.X.4.3.3.4.1 |
Censor Zone, Irregular |
2.X.4.3.3.4.2 |
Censor Zone; Rectangular |
2.X.4.3.3.6 |
Critical Friendly Zone (CFZ) |
2.X.4.3.3.6.1 |
Critical Friendly Zone (CFZ), Irregular |
2.X.4.3.3.6.2 |
Critical Friendly Zone (CFZ), Rectangular |
Bug fixDefense Symbology
LCD-10610, LCD-13317
Fixed issue where the method TLcdNVG20Point#getZ
would always return
0.0
, no matter what the value of the z property was set to.
TLcdNVG20Point#getZ
also always returned 0.0
when decoding an nvg file where the z attribute of the point element
was not 0.0
.
2018.1.15
ImprovementLuciadLightspeed
LCD-10631
The Lightspeed demo sample was removed from the release. Refer to the Lucy Showcase for integration samples and the samples
and tutorials for simple use cases.
ImprovementLuciadLightspeed
LCD-10611
It is now possible to customize the distance at which the pin of a label disappears.
See TLspPinLineStyle.Builder#pinVisibiltyThreshold
.
Bug fixLuciadLightspeed
LCD-10505
The axis-order was not correctly handled for all coordinate reference systems.
For example the Polish CRS EPSG:2180
reverses the X and Y axis which needs to be
reflected in the GetMap BBOX parameter.
Bug fixLuciadLightspeed
LCD-10584
Bug fixLuciadLightspeed
LCD-10629
Bounds transformations from a reference with a cylindrical projection to a geodetic reference would sometimes
result in bounds that are too small. This could result in data not being shown in the view when zooming out.
Bug fixOGC Server
LCD-10505
The axis-order was not correctly handled for all coordinate reference systems.
For example the Polish CRS EPSG:2180
reverses the X and Y axis which needs to be
reflected in the GetMap BBOX parameter.
Bug fixAviation Standards
LCD-10636
Made the decoding of DAFIFT ATS Route data more robust in case of a missing route direction property.
Bug fixAviation Standards
LCD-10601
The method canCreateLayers
in the sample Lightspeed layer factory class AISLayerFactory
always assumed a non-null data model, which could lead to a NullPointerException.
Bug fixAviation Standards
Made the decoding of DAFIF(T) data more robust in case of a missing ICAO code property in holding, navaid,
airspace and waypoint records.
2018.1.14
ImprovementLuciadLightspeed
LCD-10612
The OGC Web Client HTTP(S) connection class TLcdOWSHttpTransport now automatically sets a "User-Agent" request
header on each request (with as value the String Java followed by the Java version). This improves the
interoperability with servers that require a non-empty value for this header.
ImprovementTiling Engine
LF-1757
Bug fixLucy (LuciadLightspeed)
LUCY-4816
Added work-around for a bug that could cause glitches in the dimension filter overlay component in certain
circumstances. This could happen, for example, when loading a Lucy workspace containing dimensional data.
Bug fixLuciadLightspeed
LCD-10595
Bug fixLuciadLightspeed
LCD-9051
The
TLcdGeoTIFFModelDecoder
could result in certain cases in throwing an
IllegalArgumentException
.
This was the case when
- the decoder was configured to create multiple levels automatically for files having only a single level of detail
- the data had 4 samples/pixel
Note that for performance it is always better to ensure the GeoTIFF file is well-structured, i.e.,
it is organized with internal tiling and having multiple levels of details.
Bug fixLuciadLightspeed
LCD-10604
The WMTS client could not handle WMTS services with capabilities that did not include a service identification
section.
Bug fixInfrastructure Standards
LCD-10616
Fixed a NullPointerException related to the view clip when using a TLspGXYLayerAdapter to visualize DGN data.
Bug fixRadar Connectors
LCD-10619
When the records received from a radar feed (ASTERIX cat240) are not next to each other in terms of azimuth,
the visualization would show artifacts.
2018.1.13
Bug fixLuciadLightspeed
LCD-10592
The TLcdWFSModelDecoderDecorator#decodeModel
methods to manually decode WFS response data did not set a model
reference in case of WFS 2.0 response data.
Bug fixLuciadLightspeed
LCD-10597
Bug fixLuciadLightspeed
LCD-10578
TLspLabelPainter
: curved labels with a white color (or an other light color) and no halo
showed dark artifacts along the edges of the text.
Bug fixLuciadLightspeed
LCD-10585
An exception handler configured on
ALcdWMSProxy
was not called in case of a server
that went offline.
Bug fixDatabase Connectors
LCD-10598
Fixed an issue that prevented a custom reference WKT string from being decoded.
Bug fixDefense Symbology
LCD-10593
Fixed a GXY symbol rendering regression introduced by LCD-10473, causing an incorrect ENY label for the
Contain symbol.
Bug fixDefense Symbology
LCD-10591
Fixed an issue with GXY views which caused the 'Forward Edge of Battle Area' (MIL-STD 2525 b/c 2.X.2.4.2.1) symbols
to no longer be painted.
Bug fixDefense Symbology
LCD-10251
Fixed an incorrect missile background color in the MIL-STD 2525b/c icon for the Ballistic Missile symbol.
Bug fixDefense Symbology
LCD-10253
Fixed an inaccuracy in the MIL-STD 2525b/c icon for the Backhoe symbol.
Upgrade considerationLuciadLightspeed
LCD-10570
The JOGL, JOCL, and GlueGen libraries have been updated to version 2.3.2+4-lcd. This is a patched version of the
official 2.3.2 version of JOGL, which now also fixes a bug that could cause Lightspeed to crash in Linux + AMD
setups.
2018.1.12
Bug fixLuciadLightspeed
LCD-10565
TLsp3DIconStyle
: When the geometry to position the 3D icon was provided with an
ALspStyleTargetProvider
, the 3D icon was not positioned at the correct height when the
elevation mode on the style was set to
ABOVE_TERRAIN
.
2018.1.11
ImprovementLuciadLightspeed
LCD-10557
The complex line stroking implementation TLcdGXYComplexStroke now allows to disable pattern rotations, which can be
useful in case of text-based patterns. A new constructor has been added to enable/disable rotation for
each pattern individually.
ImprovementLuciadLightspeed
LCD-10537
The SLD implementation now supports inline graphics containing Base64-encoded SVG graphic icons, next to
the existing support for Base64-encoded bitmap graphic icons and XML-encoded SVG graphic icons.
ImprovementDefense Symbology
LCD-10355
Added Hostility indication labels (ENY) to the symbols Tasks - Fix, Obstacle Effect - Fix and Block.
ImprovementDefense Symbology
LCD-10473
The single letter decoration character in the Clear, Contain and Canalize symbols is now always rendered
non-rotated.
ImprovementTiling Engine
LF-1743
The LuciadFusion engine now can handle GeoTIFF for which the image outline is not axis aligned.
This used to result in an exception that the model reference could not be encoded in the meta data.
Bug fixLuciadLightspeed
LCD-10480
TLcdDimensionFilter#createSnappingFilter
snapped to the first or last interval of an axis,
even though the given filter value was outside the range of that axis. No it only performs snapping when the filter
value is within the axis range. For a model that defines multiple images on a time axis, this resulted in the behavior
that an image was always displayed, even though the time filter specifies a time that is outside the time range of the
ILcdMultiDimensionalModel
.
Bug fixLuciadLightspeed
LCD-10297
TLcdGXYNewController2 and TLcdGXYTouchNewController: a regression triggered by LCD-9483 could trigger
warnings to be logged in some exceptional cases.
Bug fixLuciadLightspeed
LCD-10579
TLcdWKTReferenceParser
threw a NPE when trying to parse a COMPD_CS with an unsupported
vertical data. It now throws a ParseException.
Bug fixWeather & Environment Standards
LCD-10480
TLcdNetCDFFilteredModel
now correctly handles the case where the
applyDimensionFilter
method is called with a filter that doesn't match any of the images.
In that case, it now makes sure that no image is available in the model. The previous behavior was to do nothing
(i.e. don't change the image returned by the model) when such a filter was encountered.
Bug fixDefense Symbology
LCD-10576
Fixed a regression introduced in LuciadLightspeed 2018.1 that caused several symbols to be visualized using outdated
icons.
Bug fixDefense Symbology
LCD-10448
Improved the stroke pattern of the Decoy Mined Area, Fenced symbol to better match with the standard specifications.
2018.1.09
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn
: the add-on configuration file now has a flag called
GMLFormat.modelDecoder.linearElementsUseGeodesicInterpolationForGeodeticSrs
to control the
interpolation of linear GML elements with a geodetic SRS.
Although these GML elements conceptually represent geometries with a linear interpolation, they are often interpreted
as having a geodesic interpolation. The default setting is to use geodesic interpolation, in accordance with most
other vendors.
ImprovementLuciadLightspeed
LCD-10524, LCD-10412
The common GML decoder class TLcdGMLModelDecoder now allows to configure whether the interpolation of linear GML
elements needs to be geodesic in case of a geodetic reference, through the newly introduced methods
setLinearElementsUseGeodesicInterpolationForGeodeticSrs
and
isLinearElementsUseGeodesicInterpolationForGeodeticSrs
. This impacts the GML elements
LineString
, LineStringSegment
and LinearRing
.
Although these GML elements conceptually represent geometries with a linear interpolation, they are often used to
represent geometries with lon/lat coordinates and a geodesic interpolation.
Bug fixLuciadLightspeed
LCD-10546
TLcdVVJPanel
: fixed an accuracy problem when horizontally zooming in on a vertical view.
Bug fixLuciadLightspeed
LCD-10545
TLcdVVTerrainModel
: when computing the terrain for a buffer with purely vertical segments,
the calculation could get stuck in an infinite loop.
Bug fixAviation Standards
LCD-10544
Fixed a selection issue which occurs if there is imagery without terrain for AIXM5 airspaces in a 3D view.
Bug fixDefense Standards
LCD-10548
TLcdVPFModelDescriptor
: a NullPointerException was thrown when calling
#getDataModel
for models not containing VPF features (e.g. the library model).
Bug fixDefense Symbology
LCD-10014
Set the outline for military symbol icons to black and white dots for the "Assumed Neutral" affiliation in APP-6B.
Bug fixDefense Symbology
LCD-10542, LCD-10474
Corrected arrow points for the "bypass easy", "obstacle effect - disrupt", and "counterattack by fire" symbols in a
Lightspeed view.
Bug fixDefense Symbology
LCD-10540
Isotach symbols now use the correct color.
2018.1.08
ImprovementLuciadLightspeed
LCD-10532
The SLD Lightspeed implementation now supports the rendering of curved labels that follow a feature's geometry,
a capability already supported in the SLD GXY implementation. A common example is the labeling of road names.
This capability can be enabled on a
TLcdSLDTextSymbolizer
by configuring an SLD vendor option
with name
followLine
and value
true
.
ImprovementTerrain Analysis Engine
LCD-10525
TLcdLOSCoverageFactory.createLOSCoverageContours
now creates contours that wrap around if
the angle arc spans 360 degrees. It does this even if the angle step is not a divisor of 360.
ImprovementDefense Symbology
LCD-10495
Added a subset of 'Control Measure' tactical graphics for APP-6D. The added symbols are:
- 25110101: Boundary - Lateral
- 25110102: Boundary - Forward
- 25110103: Boundary - Rear
- 25110200: Light Line
- 25110300: Engineer Work Line
- 25120100: Area Of Operations
- 25120200: Named Area Of Interest
- 25120300: Target Area Of Interest
- 25120400: Airfield Zone
- 25120500: Base Camp
- 25120600: Guerrilla Base
- 25140100: Forward Line Of Troops
- 25140300: Phase Line
- 25140400: Forward Edge Of The Battle Area
- 25140900: Limit Of Advance
- 25141000: Line Of Departure
- 25141100: Line Of Departure / Line Of Contact
- 25141500: Holding Line (HL)
- 25150200: Assembly Area (AA)
- 25150501: Action Area - Joint Tactical Action Area (JTAA)
- 25150502: Action Area - Submarine Action Area (SAA)
- 25150503: Action Area - Submarine-Generated Action Area (SGAA)
- 25150700: Extraction Zone (EZ)
- 25150800: Landing Zone (LZ)
- 25151000: Fortified Area
- 25151200: Battle Position
- 25151203: Battle Position - Strong Point
- 25151205: Battle Position - Retain
- 25151300: Engagement Area (EA)
- 25151403: Axis Of Advance - Main Attack
- 25151404: Axis Of Advance - Supporting Attack
- 25151600: Attack Position
- 25151700: Objective Area
- 25151800: Encirclement
- 25170100: Air Corridor
- 25170101: Air Corridor - Air Corridor With Multiple Segments
- 25170200: Low-Level Transit Route
- 25170300: Temporary Minimum-Risk Route
- 25170400: Safe Lane
- 25170500: Standard Use Army Aircraft Flight Route (SAAFR)
- 25170600: Transit Corridors
- 25170700: Special Corridor
- 25170800: Base Defence Zone
- 25170900: High-Density Airspace Control Zone
- 25171000: Restricted Operations Zone (ROZ)
- 25171100: Air-to-Air Restricted Operations Zone (AARROZ)
- 25171200: Unmanned Aircraft Restricted Operations Zone (UA-ROZ)
- 25171300: Weapon Engagement Zone
- 25171400: Fighter Engagement Zone (FEZ)
- 25171500: Joint Engagement Zone (JEZ)
- 25171600: Missile Engagement Zone (MEZ)
- 25171700: Low (Altitude) Missile Engagement Zone (LOMEZ)
- 25171800: High (Altitude) Missile Engagement Zone (HIMEZ)
- 25171900: Short Range Air Defence Engagement Zone (SHORADEZ)
- 25172000: Weapons Free Zone
- 25190100: Identification, Friend-or-Foe (IFF) Off Line
- 25190200: Identification, Friend-or-Foe (IFF) On Line
- 25240101: Airspace Coordination Area (ACA) - Irregular
- 25240102: Airspace Coordination Area (ACA) - Rectangular
- 25240103: Airspace Coordination Area (ACA) - Circular
- 25240201: Free Fire Area (FFA) - Irregular
- 25240202: Free Fire Area (FFA) - Rectangular
- 25240203: Free Fire Area (FFA) - Circular
- 25240301: No Fire Area (NFA) - Irregular
- 25240302: No Fire Area (NFA) - Rectangular
- 25240303: No Fire Area (NFA) - Circular
- 25240401: Restricted Fire Area (RFA) - Irregular
- 25240402: Restricted Fire Area (RFA) - Rectangular
- 25240403: Restricted Fire Area (RFA) - Circular
- 25240601: Point Targets - Point or Single Target
- 25240602: Point Targets - Nuclear Target
- 25240603: Point Targets - Target-Recorded (Aegis Only)
- 25240701: Linear Targets - Linear Target
- 25240702: Linear Targets - Linear Smoke Target
- 25240703: Linear Targets - Final Protective Fire (FPF)
- 25240801: Area Targets - Area Target
- 25240802: Area Targets - Rectangular Target
- 25240803: Area Targets - Circular Target
- 25240804: Area Targets - Rectangular Target - Single Target (Aegis Only)
- 25240805: Area Targets - Series or Group Of Targets
- 25240806: Area Targets - Smoke
- 25240808: Area Targets - Bomb Area
- 25241001: Fire Support Area - Irregular
- 25241002: Fire Support Area - Rectangular
- 25241003: Fire Support Area - Circular
- 25241101: Artillery Target Intelligence Zone (ATI) - Irregular
- 25241102: Artillery Target Intelligence Zone (ATI) - Rectangular
- 25241103: Artillery Target Intelligence Zone (ATI) - Circular
- 25241201: Call for Fire Zone (CFFZ) - Irregular
- 25241202: Call for Fire Zone (CFFZ) - Rectangular
- 25241203: Call for Fire Zone (CFFZ) - Circular
- 25241401: Critical Friendly Zone (CFZ) - Irregular
- 25241402: Critical Friendly Zone (CFZ) - Rectangular
- 25241403: Critical Friendly Zone (CFZ) - Circular
- 25241601: Sensor Zone - Irregular
- 25241602: Sensor Zone - Rectangular
- 25241603: Sensor Zone - Circular
- 25241801: Target Value Area - Irregular
- 25241802: Target Value Area - Rectangular
- 25241803: Target Value Area - Circular
- 25242100: Weapon/Sensor Range Fan, Circular
- 25242200: Weapon/Sensor Range Fan, Sector
- 25260100: Fire Support Coordination Line (FSCL)
- 25270100: Obstacle Belt
- 25270200: Obstacle Zone
- 25270400: Obstacle Restricted Zone
- 25270504: Obstacle Effects - Turn
- 25270800: Mined Area
- 25270900: Decoy Mined Area
- 25270901: Decoy Mined Area - Fenced
- 25271000: Unexploded Explosive Ordnance (UXO) Area
- 25271100: Bridge or Gap
- 25271201: Roadblocks, Craters, and Blown Bridges - Planned
- 25271202: Roadblocks, Craters, and Blown Bridges - Explosives, State Of Readiness 1 (Safe)
- 25271203: Roadblocks, Craters, and Blown Bridges - Explosives, State Of Readiness 2 (Armed But
Passable)
- 25271204: Roadblocks, Craters, and Blown Bridges - Roadblock Complete (Executed)
- 25271400: Bridge
- 25271700: Biological Contaminated Area
- 25271701: Biological Contaminated Area - Toxic Industrial Material
- 25271800: Chemical Contaminated Area
- 25271801: Chemical Contaminated Area - Toxic Industrial Material
- 25271900: Nuclear Contaminated Area
- 25272000: Radiological Contaminated Area
- 25272001: Radiological Contaminated Area - Toxic Industrial Material
- 25272100: Minimum Safe Distance Zone
- 25272200: Radiation Dose Rate Contour Line
- 25290100: Obstacle Line
- 25290900: Fortified Line
- 25300100: Intelligence Coordination Line
- 25310100: Detainee Holding Area
- 25310200: Enemy Prisoner Of War Holding Area
- 25310300: Forward Arming and Refuelling Point (FARP)
- 25310400: Refugee Holding Area
- 25310500: Regimental Support Area
- 25310600: Brigade Support Area (BSA)
- 25310700: Division Support Area
- 25330100: Moving Convoy
- 25330200: Halted Convoy
- 25330300: Main Supply Route (MSR)
- 25330301: Main Supply Route (MSR) - One Way Traffic
- 25330302: Main Supply Route (MSR) - Two Way Traffic
- 25330303: Main Supply Route (MSR) - Alternating Traffic
- 25330400: Alternate Supply Route (ASR)
- 25330401: Alternate Supply Route (ASR) - One Way Traffic
- 25330402: Alternate Supply Route (ASR) - Two Way Traffic
- 25330403: Alternate Supply Route (ASR) - Alternating Traffic
- 25340600: Counter Attack
- 25340800: Delay
- 25341100: Fix
- 25341300: Follow and Support
- 25341500: Isolate
- 25341700: Occupy
- 25342000: Retire/Retirement
- 25342100: Secure
- 25342201: Security - Cover
- 25342202: Security - Guard
- 25342203: Security - Screen
- 25342300: Seize
- 25342400: Withdraw
Bug fixLuciadLightspeed
LCD-10491
Fixed an issue with the undo behavior of extruded shapes after their creation with a right click.
When an object creation finished with a right click, the next editing operation was not recorded as expected.
As a result, corrupted undo operations were removing created object completely.
Bug fixLucy (LuciadLightspeed)
LUCY-4810
Lucy printing: changing the TLcyPrintAddOn.pagePreview.previewScale
property in the configuration file
had no effect.
Bug fixLuciadLightspeed
LCD-15000
Fixed an issue with
TLspRulerController
when
#displayAzimuth
was set
to true,
a misleading snap target was created during the creation of a new measurement.
Bug fixLuciadLightspeed
LCD-10523
ALcdTransformingModel
: would fire incorrect model events, triggered by changes on the
original model in some cases.
Bug fixDefense Symbology
Removed incorrect label on Encirclement
symbol in APP6-C and MIL-STD-2525 D.
Bug fixDefense Symbology
LCD-10456
The stroke label baseline for the Series or Group of targets symbol was not centered around the stroke.
Bug fixDefense Symbology
LCD-10531
TLcdMS2525bNode/TLcdAPP6ANode#getName
: corrected the casing of several acronyms.
2018.1.07
ImprovementWeather & Environment Standards
LCD-10511
Bug fixLuciadLightspeed
LCD-10521
TLspIconStyle
,
TLspParameterizedIconStyle
: A scale configured on
these styles in combination with the default selection style could cause a partially hidden selection box when
the icon was selected.
Bug fixLuciadLightspeed
LCD-10518
The SLD channel selection / normalize operation ignored any alpha band in the source image, causing a potential
removal of transparency in the result.
Bug fixLucy (LuciadLightspeed)
LUCY-4809
Lucy: the UI to connect to a WFS/WMS/WCS/LTS server could throw NullPointerExceptions in certain circumstances.
This has been fixed.
Bug fixLuciadLightspeed
LCD-10512
Bug fixLuciadLightspeed
LCD-10510
TLspLonLatGridStyler
: the
setLabelLineOffset
and
setLabelEdgeOffsets
methods didn't always have any effect.
Bug fixLuciadLightspeed
LCD-10507
TLspShapeLayerBuilder
: When there are frequent model updates, for certain camera angles
objects would sometimes appear to be flickering.
Bug fixLuciadLightspeed
LCD-10519
Fixed an issue where for certain DTED data sets, under certain conditions, the visualization was not correct at tile borders.
Bug fixDefense Symbology
LCD-10462
Resolved display problems for small Rectangular Target symbols, which was caused by rounding errors.
Upgrade considerationDefense Symbology
LCD-10516
Min and max point count constraints are now applied for military symbols with multipoint and polyline geometry in
NVG.
This may cause some changes in the editing behaviour of nvg files. If a multipoint or polyline symbol which does not
respect its max point count is present in
an nvg file, this symbol will initially be rendered as-is. When the symbol gets edited however, the constraint will
be applied and the points will be removed from the symbol
until it matches the constraint.
2018.1.06
ImprovementLuciadLightspeed
LCD-10459
Improved the default styling for E57 point clouds. The size of the icons used for the points is more reasonable now.
ImprovementLuciadLightspeed
LCD-7988
In a snapping operation, a domain object snaps to another nearby domain object on the map.
TLspPointToPointSnapper
now allows you to find out to which domain object the snapping object has snapped.
Use the
TLspPointToPointSnapper.OBJECT_PROPERTY_KEY
to get the target domain object
from the
TLspEditOperation
produced by
TLspPointToPointSnapper.snap
method.
See the developer guide for sample code.
Bug fixLucy (LuciadLightspeed)
LUCY-4807
TLcySelectionEditorAddOn
: the title of the object properties application pane would not
update
when the
ILcyCustomizerPanel.NAME
was updated.
Bug fixLuciadLightspeed
LCD-10440
TLspIconStyle
: When the elevation mode of the style was set to ABOVE_TERRAIN
and there was no terrain or imagery layer in the view, the icon would incorrectly have a small height offset
in a 3D view.
Bug fixLuciadLightspeed
LCD-10485
TLcdPrintPreview
: added some missing translation strings.
The possible translation keys are listed in the
setStringTranslator
method javadoc.
Bug fixLuciadLightspeed
LCD-10482
The
TLcdModelQueryConfiguration
of a layer would not always be taken into account when a
repaint was triggered by changes to model elements.
Bug fixLuciadLightspeed
LCD-10488
Fixed an issue in TLcdLonLatArc#getLength2D
. It always returned the full lengths, even when the two parameters were not 0.0 and 1.0.
Bug fixLucy (LuciadLightspeed)
LUCY-4804
Lucy drawing: fixed a NullPointerException that occurred when submitting an empty altitude in the object properties panel.
The old behavior of refusing empty values has been restored.
Bug fixLucy (LuciadLightspeed)
LUCY-4802
Lucy drawing: Fixed StackOverflowError that occurred when using a very large number as input in the bearing
column in the object properties panel.
Bug fixDefense Symbology
LCD-10354
Added UniqueDesignation label to the symbols 'Minimum Safe Distance Zones', 'Fix', 'Bypass Easy',
'Series or Group of Targets' and 'Block.
Bug fixDefense Symbology
LCD-10497
Fixed an incorrect label indication for the Minimum Safe Distance Zones symbol
when one of the circles is edited to make it smaller or larger than another circle.
Bug fixDefense Symbology
LCD-10496
Added the missing Width, Length and Attitude properties to the TLcdAPP6ADataTypes.APP6ACodedType and
TLcdMS2525bDataTypes.MS2525bCodedType.
Bug fixDefense Symbology
LCD-10479
Fixed a label displacement issue in GXY views for the 'Position Area for Artillery (PAA) - Rectangular' symbol.
Related to this, the label position in the MIL-STD 2525C implementation now aligns with the axis
of the symbol; this better reflects the way the symbol is defined in MIL-STD 2525C.
Bug fixDefense Symbology
LCD-10471
Fixed an issue for a number of APP-6/MIL-STD-2525 line and area symbols that caused the removal of the
Anticipated / Planned status dash pattern in a Lightspeed view if a halo was enabled.
2018.1.05
ImprovementLuciadLightspeed
LCD-10441
The SLD normalize operation now automatically calculates the normalization min/max interval(s),
to avoid the need for users to define them upfront. If the min/max interval(s) are not defined,
a histogram operation is used to automatically deduce them from the data.
ImprovementLucy (LuciadLightspeed)
Lucy drawing constructive geometry: Added support for Rhumb polylines and polygons.
ImprovementLuciadLightspeed
LCD-10263
TLspTouchNavigateController
keeps track of the inconsistent series of touch events
when navigating in a Lightspeed view with multiple fingers.
Before this enhancement, the contradictory state of the touchpoints reported with an error message
which may leave the view unresponsive.
Now, before the view becomes unresponsive, the controller waits until all the touched fingers lifted.
Afterward, the controller starts to interact with the view as usual.
ImprovementAdvanced GIS Engine
LCD-10461
Fixed a bug in Constructive geometry where operations between shapes would yield no result.
ImprovementAdvanced GIS Engine
Ellipsoidal constructive geometry now correctly supports Rhumb shapes. They were previously treated the same way as
geodetic shapes, causing accuracy problems.
ImprovementDefense Symbology
LCD-10331
Changed the creation mode of the ellipse painter in the TLcdNVGGXYPainterProvider to
TLcdGXYEllipsePainter.THREE_CLICK
in order to match the creation mode of military symbols with a non-standard ellipse geometry.
Bug fixLuciadLightspeed
LCD-10467
3D Tiles encoding: Fixed a bug when the amount of indices of a mesh would be greater than the size of a short. Now
encoding those as
unsigned integers.
Bug fixLucy (LuciadLightspeed)
LUCY-4800
Fixed an issue in Lucy's hyperlink widgets that caused them to become invisible. This affected the time labels
in the Lucy Map Centric front-end previewer UI.
Bug fixLuciadLightspeed
LF-1713
Fixed an issue when accessing the original, full-detail shape of a fused text vector object (for example through ((ILcdShapeList)
e).getShape(0)).
That object was originally an ILcdText object, but the fused full-detail shape could be absent.
Bug fixLucy (LuciadLightspeed)
LUCY-4799
Lucy drawing: the enabled state of the buttons to change the fill color or line color was not always in sync with the
selection on the map.
Bug fixDefense Symbology
LCD-10454
Fixed the following labeling issues with the Rectangular Target symbol
- Labels no longer disappear when the rectangular target gets too small
- Space between two words in a label has been reduced
- Hostility indication labels (ENY) are no longer painted for the Rectangular Target symbol
- Label text is always painted upright and no longer follows the slope of the axis line of the rectangle
Bug fixDefense Symbology
LCD-10352
Fixed an incorrect min / max distance label indication for the Weapons/Sensor Range Fan - Circular symbol
when one of the circles is edited to make it smaller or larger than another circle.
Bug fixDefense Symbology
LCD-10450
Fixed some label issues for biological and chemical release event icons.
2018.1.04
ImprovementLuciadLightspeed
TLcdEllipsoidRhumblineUtil
: The
#polygonContains2D
,
#intersectsGeodesicRhumbline
and
#intersectionGeodesicRhumblineSFCT
methods now do the necessary calculations on the ellipsoid passed as a parameter instead of on a sphere.
ImprovementOGC Server
LCD-10442
Improved the message in the WMS service exception report for the case when the parameter for the coordinate reference
system is missing for operations like GetMap
and GetFeatureInfo
.
In case of WMS 1.3.0 the parameter CRS is required and for WMS 1.1.x the parameter SRS is required.
Bug fixLuciadLightspeed
LCD-10447
Source names of supporting files extracted from iso 19115 metadata files are now url decoded before being returned
by TLcdModelMetadata#discoverSupportingSources
Bug fixLuciadLightspeed
LCD-10445
TLcdGeoJsonFeature#applyDataType
would incorrectly resolve null
values
to empty HashMap instances.
Bug fixLuciadLightspeed
LCD-10336
The map navigation has been improved when using touch displays.
To get the best user experience, enable
combined gestures on
TLspTouchNavigateController
with
setCombineGestures(true)
On 2D maps, you can pan, rotate and zoom at the same time with two fingers.
On 3D maps, the map will pitch when using two fingers close to each-other, otherwise you can rotate and zoom at the same time.
Default behaviour unchanged, map can be rotated, zoomed, panned and pitched(only 3D) individually. Drift problem solved while
rotating the map.
Bug fixDefense Symbology
LCD-10427
Changed the painters of some symbols to resolve very poor performance when zoomed in with a GXY view.
Because of this change, the symbol's painting will now be affected by the configured corner smoothness in the
styling.
These symbols can thus be painted with rounded corners. See
ILcdMS2525bStyle#getCornerSmoothness
and
ILcdAPP6AStyle#getCornerSmoothness
.
The following symbols are affected:
MIL-STD-2525 B:
- 2.X.3.1.1.1 - Belt
- 2.X.3.1.1.2 - Line
- 2.X.3.1.1.3 - Zone
- 2.X.3.1.1.4 - Obstacle Free Area
MIL-STD-2525 C:
- 2.X.3.1.1.1 - Belt
- 2.X.3.1.1.2 - Line
- 2.X.3.1.1.3 - Zone
- 2.X.3.1.1.4 - Obstacle Free Area
MIL-STD-2525 D
- 25260100 - Fire Support Coordination Line (FSCL)
- 25260200 - Coordinated Fire Line (CFL)
- 25290100 - Obstacle Line
- 25270300 - Obstacle Free Zone
APP6-A:
- 2.X.2.2.1.1.2 - Line
- 2.X.2.2.1.1.3 - Zone
- 2.X.2.2.1.9 - Obstacle Free Area
APP6-B:
- 2.X.2.2.1.1.2 - Line
- 2.X.2.2.1.1.3 - Zone
- 2.X.2.2.1.9 - Obstacle Free Area
APP6-C:
- 25260100 - Obstacle Belt
- 25260200 - Obstacle Zone
- 25270100 - Obstacle Line
- 25260300 - Obstacle Free Zone
Bug fixDefense Symbology
LCD-10428
Fixed issue where the stroke pattern of some military symbols was flipped the wrong way in GXY views.
Bug fixDefense Symbology
LCD-10435
Fixed issue with the symbol (2.X.4.3.2.6) 'Position Area for Artillery (PAA) - Rectangular' where the symbol could
get displaced when switching projections in GXY views.
2018.1.03
ImprovementLuciadLightspeed
LCD-10422
The
TLcdGXYEllipsePainter
now starts painting its axis line editing handles after the first
point has been placed.
This used to only happen after the second point was placed. This brings the behaviour of the
TLcdGXYEllipsePainter
in line with Lightspeed.
ImprovementLuciadLightspeed
LCD-10425
TLcdXMLBuiltInEncoderLibrary: improved handling of object property values containing 0x1a characters,
which represent character errors that cannot be defined in XML. To avoid any XML encoding issues,
such characters are converted to the - character.
ImprovementOGC Server
LCD-10201
A number of improvements have been implemented related to the WFS server's interoperability with 3rd party
WFS client solutions:
- For GML 3.1 / 3.2 responses, linear GML elements are used by default. This makes sure that
ILcdPolyline
and ILcdPolygon
instances are respectively
encoded to LineString
and LinearRing
elements,
regardless of their interpolation. Previously, GeodesicString
elements were
used for a geodesic interpolation.
- The sample WFS server now uses qualified feature type names by default. Additionally, these feature
type names are reused as XML element names in the GML output data.
ImprovementDefense Symbology
LCD-10391
Changed the editing behaviour of the 'Rectangular Target' symbol to more closely match the symbol definition in the
military standards.
The symbol is now defined by a center point and the newly added "length", "width", and "attitude" text
modifiers.
The values in these modifiers will be changed as the visual representation of the symbol is edited.
Conversely changing those values programmatically (by using
ILcdEditableMS2525bCoded#putTextModifier
and
ILcdAPP6Coded#putTextModifier
) will also change the symbol's visual representation.
Creating such a symbol programmatically with two or more points in the
ILcdMS2525bShape/ILcdAPP6AShape
's point list
will revert back to the legacy visualization and editing behaviour,
where the points define the start and end point of the buffer axis and
ILcdMS2525bShape/ILcdAPP6AShape#getWidth
defines the
buffer width.
The following symbols are affected by this change:
- MIL-STD-2525 B: 2.X.4.3.1.1 - Rectangular Target
- MIL-STD-2525 C: 2.X.4.3.1.1 - Rectangular Target
- MIL-STD-2525 D: 100025000024080200001 - Rectangular Target
- APP6-C: 10002500002306000000 - Rectangular Target
Bug fixLuciadLightspeed
LCD-10421
Fixed issue with the TLcdGXYGeoBufferPainter where the buffer contour was painted with geodetic lines but the
buffer axis line was painted with straight lines when using a geodetic model reference in combination with an
ILcdGXYPen created with the ALcdGXYPen.Quality.FASTEST enum value.
Bug fixLuciadLightspeed
LCD-10378
Fixed issue with TLspFixedInPathLabelLocationProvider, where an incorrect locations was provided for composite
curves.
Bug fixOGC Server
The output format encoding in the DescribeFeatureType requests in XML Schema location URLs could contain
an unexpected + character.
2018.1.02
ImprovementLuciadLightspeed
LCD-10414
ImprovementLuciadLightspeed
LCD-10156
The border factor property of raster layers allows you to configure processing some additional data outside of the
view. This reduces the popping effect while panning or zooming.
TLspRasterLayerBuilder
and
TLspRasterLayer
now allow you to configure
to include texture loading in this additional processing. By default, it is not included. Including it increases
the memory and cpu usage, but will often give faster updates for small pan and zoom operations.
ImprovementLucy (LuciadLightspeed)
LUCY-4797
Lucy drawing layer creation: cancelling or closing the model reference chooser dialog without choosing a reference
will
no longer blank out the model reference field.
ImprovementDefense Symbology
LCD-10399
Made the font of the 'PAA' label of the symbol 'Position Area For Artillery (PAA) - Rectangular'
(MIL-STD-2525-C) adjustable trough styling.
Bug fixLuciadLightspeed
LCD-10379
OGC 3D Tiles decoders can now handle query parameters in the contents' URL.
Bug fixLuciadLightspeed
LCD-10405
Fixed an issue where E57 files declaring extension namespaces could not be decoded.
Bug fixLuciadLightspeed
The OGC Filter evaluation of mathematical expressions containing an Add, Substract, Divide and/or Multiply operation
could wrongly misinterpret numeric input values as dates.
Bug fixLuciadLightspeed
LCD-10401
Fixed an issue when using applyOnInteract2DBounds on a model based on a LuciadFusion vector coverage.
It would retain all overlapping tiles in memory, causing out of memory if the requested bounds were large.
Note that regular visualization or other built-in functions never triggered this problem, as they use a different path.
Bug fixLuciadLightspeed
LCD-10388
Fixed an issue when interactively editing geodetic ellipses (
TLcdLonLatEllipse
) on a Lightspeed view
using the regular
TLspEllipseEditor
.
When dragging a handle on one of the axes beyond XYZ, the ellipse was flipped: the major axis reversed and rotated by 180
degrees.
This has no visual result on the ellipse, but was unexpected.
Bug fixLuciadLightspeed
LCD-10406
Fixed a regression related to the decoding of SLD ParameterValue elements, introduced by enhancement
LCD-10387.
Bug fixOGC Server
LCD-10404
Fixed an issue where the WMTS server tried to write data to an already closed response.
This issue occured when the client closed the connection while the server was still working on it.
Bug fixDefense Symbology
LCD-10408
The introduction of APP-6D and MIL-STD 2525D caused a regression in the TTA 106 icons. This has been fixed.
2018.1.01
ImprovementLuciadLightspeed
LCD-10343
The WFS client can now handle WFS feature types for which the mandatory geographical reference information
is missing in the WFS server's capabilities.
ImprovementLuciadLightspeed
LCD-10387
The SLD label painting pipeline in GXY / Lightspeed views now support the use of multiline labels, by using
a CDATA element inside the label content that specifies a new line as follows:
<![CDATA[
]]>
ImprovementLuciadLightspeed
LCD-10365
TLcdWMMMagneticNorthMap#setIgnoreModelLifeSpan
and
TLcdWMMMagneticNorthMap#setInputStreamFactory
can now be called even before the data files have been set.
Additionally, improved the error output for methods that cannot be called before the data files have been set.
ImprovementLuciadLightspeed
LCD-10337, LCD-10423
TLcdWKTReferenceParser
now support WKT strings for the EPSG:3857 reference that were
formatted using the gdal library.
ImprovementLuciadLightspeed
LCD-10275
Added caching for HTTP(S)-based XML Schema locations when evaluating an OGC Filter on an XML dataset.
Bug fixLuciadLightspeed
LCD-10374
Bug fixLucy (LuciadLightspeed)
LUCY-4785
Lucy: long entries in the "Connect to..." dialog would result in an empty line, instead of just showing the start of
the entry.
This has been fixed.
Bug fixLuciadLightspeed
TLcdISO8601DateFormat
did not correctly handle parsing errors according to the contract defined
in
java.text.Format
. In case of parsing errors:
parseObject(String)
now throws a ParseException
instead of an IllegalArgumentException
.
parseObject(String, ParsePosition)
now returns null instead of throwing an IllegalArgumentException
.
Bug fixLucy (LuciadLightspeed)
LUCY-4782
Lucy: when restoring a workspace, the icon of the table view application pane could be incorrect.
Bug fixLuciadLightspeed
LCD-10299
The automated conversion of OGC filter to SQL inside database models did not support database properties
of type java.sql.Timestamp
.
Bug fixLuciadLightspeed
LCD-10312
Fixed issue that would cause a ConcurrentModificationException
when toggling tableview
visibility with multiple editable domain objects selected.
Bug fixLuciadLightspeed
LCD-10356
ILcdTransformingModel
: when model changes were triggered on the original model, you did not
always get an event on the ILcdTransformingModel
. This was the case when using
ILcdModel#allElemensChanged
or ILcdModel#removeElement
followed by an
ILcdModel#addElement for the same object.
Bug fixLuciadLightspeed
LCD-10304
Fixed issue with broken mouse clicks that have modifiers, for example ALT-clicks.
This issue was introduced by the fix for LCD-10086.
Bug fixLuciadLightspeed
LCD-10358
Fixed bug where TLcdWMMMagneticNorthMap#setDate
would throw an exception for invalid dates,
even when isIgnoreModelLifeSpan
is true.
Bug fixLuciadLightspeed
LCD-10321
Fixed memory leak in
TLspShapePainter
that could be triggered when using a styler that
does not reuse
ILcdIcon
implementations.
Bug fixLucy (LuciadLightspeed)
LUCY-4784
Lucy: the dialog to edit the settings of the current map projection interpreted the rotation value as radians,
while the UI specified that the value is in degrees. The value is now correctly interpreted as degrees.
Bug fixLucy (LuciadLightspeed)
LUCY-4787
Lucy: shift-selection and alt-selection did not work on a Lightspeed map.
Bug fixLucy (LuciadLightspeed)
LUCY-4786
Bug fixOGC Server
LCD-10305
The resolution logic introduced by LCD-9859 could cause the return of RGBA images for elevation coverages,
leading to possible data interpretation issues in WCS clients.
Bug fixAviation Standards
LCD-9562
Helipads without any location data are now being positioned using the related Heliport's location for better visualization.
Bug fixDefense Symbology
LCD-10396
Fixed possible bug in OpenJDK with GXY views where label bounds were calculated incorrectly, which could cause
labels to be placed at an incorrect location.
Affected symbols include the 'Relief in Place' symbol.
Bug fixDefense Symbology
LCD-10389
Fixed bug where some APP-6C Airspace Control Area symbols were painted by an incorrect painter
Bug fixDefense Symbology
LCD-10360
MIL-STD-2525D and APP-6D: Disabled the "echelon" modifier for Land Equipment, and the "mobility" modifier for other
Land Symbols, following the standard specifications.
Bug fixDefense Symbology
LCD-10361
Avoid possible NullPointerException in the symbol painter of MIL-STD-2525 c "Overhead Wire/Power Line" symbols.
Bug fixDefense Symbology
LCD-10252
Shortened the length of the HQ indicator line so it does not pass the frame for Hostile and Unknown affiliations.
Bug fixDefense Symbology
LCD-10280
Removed dashed lines in the drawing of 'Weapon/Sensor Range Fan, Sector' symbol.
Bug fixDefense Symbology
LCD-10276
The cache size of TLcdMS2525bObjectIconProvider and TLcdAPP6AObjectIconProvider has been limited to 5000 to keep the
cache from growing too large (was previously unlimited).
This limit can be adjusted using the system property com.luciad.symbology.iconsymbols.MAX_CACHE_SIZE.
Bug fixDefense Symbology
LCD-10257
Removed unwanted gap from 'Bypass - Difficult' symbol from the MIL-STD 2525 C standard.
Bug fixS-63
LCD-10393
Fixed an issue with loading S-63 cell permits concurrently for multiple S-63 datasets, causing errors and missing cells.
In case where a single S-63 model decoder was used for multiple S-63 models, they share cell permit files.
When displaying these models, these cell permit files were decoded concurrently, depending on timing.
However, certain aspects of the IHO S-63 permit file decoding were not thread-safe, causing errors, that caused
some permits to be skipped.
The end result was that some cell were not displayed. This is now resolved.
2018.1
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-10283
SLD raster rendering in GXY / Lightspeed now supports the SLD normalize operation to normalize raster data to a
given min and max interval. Through the existing class
TLcdSLDContrastEnhancement
, a
TLcdSLDNormalize
instance can be set that defines the normalization step; the min and max
interval values are defined through the vendor options "minValue" and "maxValue". Aligned with the SLD specification,
a
TLcdSLDContrastEnhancement
defining a normalize operation can either be set globally on the
raster symbolizer (to let it apply to all raster channels) or separately per raster channel selection.
ImprovementLucy (LuciadLightspeed)
LUCY-4628
Lucy can now open a Fusion coverage directly from disk, without the need to connect to the tilestore first.
ImprovementLucy (LuciadLightspeed)
LUCY-4711
Lucy Showcase sample: the theme chooser UI no longer stores the full-sized theme preview images in memory.
Since the UI only shows thumbnails, it is sufficient to store those thumbnails.
ImprovementLuciadLightspeed
LCD-10206
ImprovementLuciadLightspeed
LCD-10047
The OGC Web Client classes
TLcdWFSDataSource
,
TLcdWMSDataSource
,
TLcdWMTSDataSource
and
TLcdWCSDataSource
have improved support
for parameterized URIs:
TLcdWFSDataSource.Builder.uri
: now supports the use of the parameters 'data',
'typename' and 'typenames' to automatically set the desired feature type name.
TLcdWMSDataSource.Builder.uri
: now supports the use of the parameters 'data',
and 'layers' to automatically set the desired layer(s); additionally, the parameters 'styles' and
'format' can be used to respectively set the layer style(s) and desired format.
TLcdWMTSDataSource.Builder.uri
: now supports the use of the parameter 'data'
to automatically set the desired layer, similar to the existing supported parameter 'layer'.
TLcdWCSDataSource.Builder.uri
: now supports the use of the parameters 'data'
and 'coverage' to automatically set the desired coverage name.
ImprovementLuciadLightspeed
Added compatibility for OracleJDK/OpenJDK 11.
Warnings might still appear at runtime when using those JDK but can be avoided using the --add-opens
flags.
More information about this flag is available in the technical notes.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
LUCY-4567
Lucy: when connecting to a WMS server and visualizing a single WMS layer, the layer added to the map by Lucy will
have the WMS layer title as label.
This results in a more meaningful label in the layer control for WMS layers.
ImprovementLuciadLightspeed
Added support for the E57 format. This format is commonly used for by certain LIDAR scanners. To decode
an E57 file, use the
TLcdE57ModelDecoder
. This produces a model with a
TLcdE57ModelDescriptor
, which can
be used to access the metadata of the decoded model. Models can be visualized using a
TLspLIDARLayerBuilder
.
ImprovementLuciadLightspeed
LCD-9910
Improved asynchronous painting performance in
ILcdGXYView
instances with many invisible layers.
ImprovementLucy (LuciadLightspeed)
Partial support for the military standard APP-6D has been added to the TLcyAPP6AAddOn
.
Note that this standard is now the default, which may cause errors or warnings when loading workspaces containing
data from older standards. If you prefer the previously used symbologies, refer to the respective config files of
these add-ons to revert this change.
The supported symbol sets are:
- 00: Unknown
- 01: Air
- 02: Air Missile
- 05: Space
- 10: Land Unit
- 11: Land Civilian Organization
- 15: Land Equipment
- 20: Land Installation
- 27: Dismounted Individual
- 30: Sea Surface
- 35: Sea Subsurface
- 36: Mine Warfare
- 37: Activities
ImprovementLucy (LuciadLightspeed)
Support for the military standard MIL-STD-2525D has been added to the
TLcyMS2525bAddOn
.
Note that this standard is now the default, which may cause errors or warnings when loading workspaces containing
data from older standards. If you prefer the previously used symbologies, refer to the respective config files of
these add-ons to revert this change.
ImprovementLuciadLightspeed
LCD-7843
ImprovementLuciadLightspeed
LCD-10078
An extra constructor has been added to the class
TLcdWCSCoverageModelDecoder
to allow
configuring a custom
ILcdOWSHttpTransport
instance. This interface is used by the OGC client
implementations to perform request / response handling.
ImprovementLuciadLightspeed
LCD-10054
TLspRasterLayerBuilder
and
TLspRasterLayer
now allow configuring
whether the layer should be repainted as soon as a tile is available. If the incremental painting property
is set to false, the layer is not updated until all tiles are ready.
ImprovementLucy (LuciadLightspeed)
LUCY-4491, LUCY-3256
Lucy: the UI for connecting to WMS, WCS, WFS, WMTS and LuciadFusion servers is now consistent between all services.
The UI also has been improved:
- A search field has been added
- The bounds of the dataset are now previewed on a map
ImprovementLucy (LuciadLightspeed)
It is now possible to connect to WxS servers in Lucy programmatically:
- Support for
TLcdWCSDataSource
and TLcdWFSDataSource
has
been added.
- Support for decoding a String which contains both the server name and the requested dataset has been
added.
Consult the Lucy developer guide for more information and example code snippets.
ImprovementLuciadLightspeed
LCD-9017
The abstract model implementation
ALcdModel
has a method
setModelDisposer
to register a function to be called on
ILcdModel#dispose()
.
This avoids the need to override the method
ILcdModel#dispose()
when using a model
implementation based on
ALcdModel
.
The GeoTIFF model decoder registers such a function to the model such that file descriptors are closed on disposal
of the model. There is no need anymore to do this yourself for GeoTIFF.
ImprovementLuciadLightspeed
LCD-2075
TLcdLayerTree
now by default hides its root node. If you don't want this,
call
TLcdLayerTree#setRootVisible(true)
.
ImprovementLuciadLightspeed
LCD-9286
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-9223
TLcdTextIcon
is a new multi-line text icon implementation.
TLcdBoxIcon
draws an outlined and/or filled box around another icon.
ImprovementLuciadLightspeed
LCD-9922
TLcdDTEDColorModelFactory
The default color scheme for elevation data was enhanced to differentiate between levels of 3500m, 4000m, 4500m, 5000m, 5500m
and 6000m. Each of these levels now has a different color.
This will cause regions with high altitude, like e.g. the Himalayas, to show more details.
The
createColorModel
method uses these updated colors and levels by default.
The colors and levels returned by the static methods
getDefaultColors
and
createColorModel
will include the updated colors and levels.
ImprovementLuciadLightspeed
LCD-10281
TLcdWKTReferenceParser
now also supports WKT strings that use Mercator_Auxiliary_Sphere as
projection parameter
ImprovementLuciadLightspeed
LCD-10285
ImprovementAdvanced Raster Connectors
LCD-10270
The
TLcdGDALModelDecoder
will now try and find external prj or ref files when the georeference
of the embedded WKT could not be parsed. This means that it is now possible to georeference a file by adding a WKT
string to an external filename.prj file next to the source file.
For more information, have a look at the
TLcdWKTModelReferenceDecoder
class javadoc.
ImprovementTerrain Analysis Engine
In LOS calculations, the maximum radius and radius step implicitly define the radius sample distances.
These are the distances (in meters) from the center of the LOS coverage at which to sample to perform the calculations.
Now, radius sample distances can be configured directly via a new property on
TLspLOSProperties
.
This allows you to use your own custom sampling scheme. For example, using small steps close to the center of the
coverage and larger steps farther away could help increase the total range without impacting performance and accuracy much.
ImprovementTerrain Analysis Engine
LCD-10266
ImprovementAviation Standards
LCD-4633
The AIXM 3/4 sample (decoder.aixm.gxy
) now includes AIXM 4.5 example data which gets loaded at startup.
ImprovementAviation Standards
LCD-10174
Improved the rendering of point-based AIXM 5.1 VerticalStructure features at large scales in GXY and Lightspeed views.
ImprovementDefense Symbology
LCD-10226
Improved the rendering of the Screen, Cover and Guard military symbols to better match with the symbol description
in the APP-6 / MIL-STD 2525 standards: the letter decoration is now placed next to the starting point of the arrows.
ImprovementDefense Symbology
LCD-10137
Partial support for the military standard APP-6D has been added.
It is now possible to create and visualize TLcdEditableAPP6AObject
instances using the
APP-6D 20-digit SIDC codes. TLcdAPP6ANode
also exposes the new domain hierarchy.
The supported symbol sets are:
- 00: Unknown
- 01: Air
- 02: Air Missile
- 05: Space
- 10: Land Unit
- 11: Land Civilian Organization
- 15: Land Equipment
- 20: Land Installation
- 27: Dismounted Individual
- 30: Sea Surface
- 35: Sea Subsurface
- 36: Mine Warfare
- 37: Activities
ImprovementDefense Symbology
Support for the military standard MIL-STD-2525D has been added.
It is now possible to create and visualize
TLcdEditableMS2525bObject
instances using the new
20-digit SIDC codes.
TLcdMS2525bNode
also exposes the new domain hierarchy.
ImprovementTiling Engine
Added TLfnPointCloudPreprocessor
to the Fusion API. This API lets you preprocess point
cloud file such as LAS, LAZ or E57 so they can efficiently be served in LuciadFusion Studio. LuciadFusion Studio
automatically preprocesses any point cloud file that is served as OGC 3D Tiles
. The difference
is that this preprocessor lets you perform the preprocessing as part of a separate process. The output
can be served directly with LuciadFusion Studio without further processing requirements.
The TLfnPointCloudPreprocessor
has a command-line sample that you can find in
samples.fusion.pointcloud.PointCloudPreprocessorTool
.
Bug fixLuciadLightspeed
LCD-10091
XML framework: fixed a ClassCastException
when working with an XML list type of
xsd:integer
or xsd:long
values.
Bug fixLuciadLightspeed
LCD-9111
Fixed bug that would make OpenFlight models have incorrect bounding boxes, because transformations were not taken
into account.
Bug fixLuciadLightspeed
LCD-9927
Bug fixLuciadLightspeed
LCD-10168
TLcdOGC3DTilesModelDecoder
now correctly decodes normals.
This especially improves the rendering of meshes without textures when lighting is enabled.
Bug fixLuciadLightspeed
LCD-10290
Visualizing a Lightspeed layer created for a model with zero width and/or height bounds in combination with an
OGC SLD style containing one or more rules with filters could lead to an IllegalStateException
.
Bug fixLucy (LuciadLightspeed)
LCD-10292
TLcyDrawingAddOn
: fixed an issue that caused an exception when performing
copy-paste actions on shapes in a Lightspeed view, followed by undo operations.
Bug fixLuciadLightspeed
LCD-10277
Fixed an issue when displaying lines with 3D information from LuciadFusion vector coverages.
In some cases, their Z information got lost.
Bug fixLuciadLightspeed
LCD-10288
TLcdClusteringTransformer
: When reused after another transformer was configured on the
TLcdTransformingModel
, model changes that occurred when it was not in use,
were not visualized anymore (e.g. added elements were missing).
Bug fixTerrain Analysis Engine
LCD-9036
Bug fixAviation Standards
LCD-10130
Fixed an issue that prevented the rendering of VerticalStructure features with radius null in a Lightspeed 3D view;
this also caused the logging of message "GLU tessellation error: 100155".
Bug fixDefense Symbology
LCD-9819
Improved the rendering of T-shaped and U-shaped military symbols in the APP-6 / MIL-STD 2525 standards.
The updated symbol set are:
- Block
- Breach
- Bypass
- Canalize
- Clear
- Contain
- Penetrate
- Bypass Easy
- Bypass Difficult
- Bypass Impossible
Bug fixDefense Symbology
LCD-10118
Improved the rendering of the "Infiltration Lane" and "Roadblocks, Craters, and Blown Bridges: Planned" military
symbols to better align with the selection rectangle in GXY for some geo-references (e.g. Equidistant Cylindrical).
Bug fixDefense Symbology
LCD-10151
Fixed slow military symbology label painting performance in case of labels with Arabic text and a label halo style.
Bug fixDefense Symbology
LCD-10217
Fixed bug were editing constraints were not properly applied to some symbols.
Affected symbols
APP6-C
Name |
Code(SIDC) |
Control |
25321300 |
Locate |
25323600 |
Affected symbols
APP6-A / APP6-B
Name |
Code(SIDC) |
Hierarchy Code |
Occupy |
G*T*GO----*****" |
2.X.1.1.16 |
Secure |
G*T*GS----***** |
2.X.1.1.21 |
Affected symbols
MIL-STD-2525 B / MIL-STD-2525 C
Name |
Code(SIDC) |
Hierarchy Code |
Occupy |
G*T*O-----****X |
2.X.1.16 |
Secure |
G*T*S-----****X" |
2.X.1.21 |
Bug fixDefense Symbology
LCD-10231
Changed the default NVG element binding for the following APP-6C symbols from polygon to multipoint:
Name |
Code(SIDC) |
Control |
25321300 |
Locate |
25323600 |
Bug fixTiling Engine
LF-1632
Fixed fusing a raster coverage of type IMAGE
with an area of interest (bounding box)
for geographic references. The area of interest was internally converted to a polygon to determine the clip to apply.
Upgrade considerationLuciadLightspeed
Added a dependency to the LWJGL library version 3.2.0, used to retrieve window handles.
Upgrade considerationLuciadLightspeed
The JOGL, JOCL, and GlueGen libraries have been updated to version 2.3.2+3-lcd. This is the same as the
official 2.3.2 version of JOGL, with the exception that it contains a fix to prevent a JVM crash when
closing an application on the Mac OS X platform when using OpenJDK 11.
Upgrade considerationLucy (LuciadLightspeed)
The JIDE third party library, which is used by the Lucy docking front-end, has been upgraded to version 3.7.4.
This upgrade fixes a ClassNotFoundException
on macOS when using Java 11, which blocked Lucy
from running.
Upgrade considerationLuciadLightspeed
A new version of the jai_imageio library is used. It no longer depends on classes that are not available in certain Java
versions.
Upgrade considerationLuciadLightspeed
Some API constructs in Luciad's abstract OpenGL binding have been deprecated:
ILcdGLBufferFactory
and
ILcdGLBuffer
should be replaced by the equivalent java.nio.Buffer
constructs.
-
The
makeCurrent()
, canMakeCurrent()
and
release()
methods of ILcdGLDrawable
are prone to
improper use. Code that requires an active OpenGL context outside of a regular repaint cycle
should instead be scheduled using the invokeLater()
or
invokeAndWait()
method of the drawable.
ILcdGLEventListener#displayChanged()
is never called by any
current implementations of ILcdGLDrawable
. The
init()
method serves essentially the same purpose and should
be used instead.
2018.0
2018.0.12
ImprovementLuciadLightspeed
LCD-10242
Improved interoperability with WMS servers that define WMS extensions through the XML Schema attribute
'noNamespaceSchemaLocation'.
ImprovementOGC Server
LCD-10187
The WFS server is now flexible against the casing used in the output format parameter in GetFeature requests.
Bug fixLuciadLightspeed
LCD-10264
Fixed
TLcdDTEDModelDecoder
behavior which became more strict in 2018.0 on DTED file names.
This was related to improved meta data decoding functionality.
Bug fixLuciadLightspeed
LCD-10260
Bug fixLucy (LuciadLightspeed)
LUCY-4776
Lucy: changing the TLcyWorkspaceAddon.savePreviewImage
setting in the configuration file of
the
workspace add-on had no effect. The preview image would always been saved, independent of that setting.
Bug fixLuciadLightspeed
LCD-5486, LCD-9543
The SLD GXY raster rendering pipeline did not respect any configured scale ranges. The scale ranges were applied
but an additional scale range was often added depending on the pixel density of the data.
Bug fixLuciadLightspeed
LCD-10188
The SLD Lightspeed raster rendering pipeline did not support the use of a geometry property name in raster symbolizers.
Bug fixLuciadLightspeed
LCD-10267
Bug fixLuciadLightspeed
LCD-10244
Fixed an issue that could cause
TLcdClusteringTransformer
to stop updating clusters
if the user intentionally sets the system clock back while the application is running.
Bug fixLuciadLightspeed
LCD-10225
TLcdClusteringTransformer
: when using multiple scale denominators to create a scale based
cluster transformer with
TLcdClusteringTransformer#createScaleDependent
,
an exception was incorrectly thrown when the denominators were ordered from low to high values. As a result it
was not possible to create a scale based cluster with more than one scale denominator.
Bug fixLuciadLightspeed
LCD-10203
TLspPlotLayerBuilder
: Fixed a NullPointerException that could occur when performing
a query on a plot layer (e.g. when using the select controller).
Bug fixLuciadLightspeed
LCD-10161
Fixed an issue where point-to-point snapping could behave erratically for domain objects
that do not implement
ILcdPoint
.
Bug fixLucy (LuciadLightspeed)
LUCY-4778
Fixed an issue in the visibility module of the Terrain Analysis add-on of Lucy.
The "sky distance" field was not properly taken into account, resulting in incorrect results.
Bug fixOGC Server
LCD-10212, LCD-10213, LF-1626
Fixed an issue where the WMTS server could produce:
- inverted-color images for jpeg output.
- non-transparent images for png output with requested transparency for the map background.
The server now returns a proper image.
Bug fixOGC Server
LCD-10179
Fixed the handling of negative GridOffsets X / Y / Z resolution values in WCS 1.1 GetCoverage requests.
Upgrade considerationLuciadLightspeed
TLcdClusteringTransformer#createScaleDependent
has been deprecated. To create a scale based
cluster transformer TLcdClusteringTransformer#createMapScaleDependent
should be used instead.
2018.0.11
ImprovementLuciadLightspeed
LCD-9732
The WFS client samples now enable support for the GeoJSON exchange format, next to GML 2 / 3.1 / 3.2.
ImprovementLucy (LuciadLightspeed)
LUCY-4150
Lucy drawing: the object properties panel for polylines and polygons now allows to remove multiple points in one go.
ImprovementLuciadLightspeed
LCD-10181, LCD-10210
Bug fixLucy (LuciadLightspeed)
LUCY-4772
Lucy print preview: triggering the Print Preview action from a pop-up could result in a NullPointerException when
closing the Print Preview
window.
Bug fixLucy (LuciadLightspeed)
LUCY-4773
Lucy printing: pressing the pan buttons in the Print Preview dialog had no immediate effect on the view when
printing a 2D Lightspeed view.
Only when making another change (for example a zoom), the previous panning of the map was correctly previewed.
Bug fixLuciadLightspeed
LCD-9926
Fixed an issue in
TLcdGXYCirclePainter
that would break outline selection and isTouched behavior
when working with multiple circles. This also affected the editing of variable width buffers.
Bug fixLuciadLightspeed
LCD-10202
In some cases, the Z (height) information of rhumb polylines was lost when visualizing in a Lightspeed 3D view.
This happened when a lon-lat-height rhumb polyline was part of a composite curve.
This is now resolved.
Bug fixWeather & Environment Standards
LCD-10228
Bug fixWeather & Environment Standards
LCD-10220
Bug fixDefense Symbology
LCD-10221
Fixed a regression introduced by LCD-10190, causing exceptions to be thrown when creating and visualizing a
Weapons/Sensor Range Fan symbol in a Lightspeed view.
Bug fixRadar Connectors
LCD-10176
"Time of Day" (Data Item I021/030) octets of ASTERIX Category 21 (version 0.23) are now decoded as unsigned numbers.
Upgrade considerationDefense Symbology
LCD-10190
Weapons/Sensor Range Fans now allow specifying a non-zero minimum radius for the first arc band.
The shape now requires 4 points for the first arc band instead of 3.
If you programmatically created such shapes, make sure to insert the minimum radius point after the center.
2018.0.10
ImprovementLuciadLightspeed
LCD-10196
ImprovementLuciadLightspeed
LCD-10182
The magnetic north data files for WMM now use the WMM2015v2 coefficients.
NOAA has issued this update to address degraded performance of the WMM2015 in the Arctic region.
ImprovementLuciadLightspeed
ILspTerrainSupport
now has an additional
intersectTerrain
method which can be used to perform ray/terrain intersection tests even when the view is set to 2D.
ImprovementDefense Symbology
LCD-10157
Configured an icon for the APP6-A/B symbol 'Area Target' (2.X.2.3.3.3)
Bug fixLuciadLightspeed
LCD-9716
Bug fixLuciadLightspeed
LCD-10146
Fixed bug that could cause the
TLspContext
of an
ALspLayer
to
(incorrectly) return a null pointer when calling
#getModel
.
Bug fixLuciadLightspeed
LCD-10186
Fixed an integer overflow issue that caused transactions of over 2 GiB to be rolled back after encoding.
This would appear to a user as if the data was being encoded correctly, i.e. the output file would grow steadily, only to
suddenly disappear at the end.
Bug fixLuciadLightspeed
LCD-10180
Fixed an issue where a ConcurrentModificationException
was triggered in some rare cases.
Bug fixLuciadLightspeed
LCD-10175
Fixed issue where creating a point near the start and endpoint of a pointlist would not work.
Bug fixLuciadLightspeed
LCD-10154
The vertical label displacement property in SLD styles was incorrectly interpreted downwards instead of upwards
in a GXY view.
Bug fixLuciadLightspeed
LCD-10124
Fixed an issue that would cause point insertion not to work correctly for 3D pointlists in a 3D view on high-altitude terrain.
Bug fixOGC Server
LCD-10155
A threading issue within an internal GXY view pool used by the WMS has been fixed.
Internal clean up could result in a NoSuchElementException
which in turn would result in HTTP status code 500 (internal server error).
Bug fixDefense Symbology
LCD-10177
Fixed an issue where Hostile Static Depiction symbols in MIL-STD 2525 b/c where painted with only one ENY label in
Lightspeed
Bug fixDefense Symbology
LCD-9899
Weapons/Sensor Range Fans no longer look solid when painted with dashed stroke and overlapping.
Bug fixDefense Symbology
LCD-10169
The color (affiliation and default color) of unframed APP-6 icons could not be changed.
Bug fixDefense Symbology
LCD-10165
Last point representing arrow width of multipoint arrows is placed to the left of the arrow head instead of to the
right
Bug fixDefense Symbology
LCD-10158
Fixed issue were two points were placed when finishing the creation of an NVG arrow military symbol in Lightspeed.
2018.0.09
ImprovementLucy (LuciadLightspeed)
Lucy now supports InlandECDIS (IENC) with the existing TLcyS57DecoderAddOn
.
You can configure your ship's beam and air draft with the S-52 display settings customizer UI.
These settings affect the visualization of the safety of fixed bridges.
For details, see the release note in the Maritime Standards component.
ImprovementDefense Symbology
LCD-10135
Added support for the symbol status codes "Present/Damaged", "Present/Destroyed" and "Present/Full To Capacity" in
APP-6C.
ImprovementMaritime Standards
The ECDIS decoders and visualization now support InlandECDIS (IENC).
You can simply use TLcdS57UnifiedModelDecoder
to decode an
IENC
CATALOG.031 or
.000
cell file.
The product type will be ELcdS57ProductType.IENC
.
The decoder supports IENC versions 2.0, 2.1, 2.2, 2.3 and 2.4. The visualization will use the display rules from
IENC 2.4.
To visualize the data in a Lightspeed view, use TLspS52LayerBuilder
.
To visualize the data in a GXY view, use TLcdS52GXYLayerFactory
.
You can configure your ship's beam and
air draft
on the S-52 display settings (see TLcdS52DisplaySettings
).
These settings affect the visualization of the safety of fixed bridges.
If necessary, you can also use TLcdS57ProductConfiguration
and
TLcdS52ProductConfiguration
with product type IENC to have more fine-grained control
over the decoding and/or visualization, as described in Chapter 12 of the Maritime Standards Developer's Guide.
ImprovementS-63
The S-63 ECDIS decoder (
TLcdS63UnifiedModelDecoder
and variants) now supports InlandECDIS (IENC).
For details, see the release note in the Maritime Standards component.
Bug fixLuciadLightspeed
The GLTF decoder now accepts missing primitive type. When that field is incorrect or absent, the decoder now
simply falls back to GL.Triangle.
Bug fixLuciadLightspeed
LCD-10031
Fixed an issue where tilting or zooming past a certain threshold caused a flicker for draped raster layers in 3D views.
Bug fixLuciadLightspeed
LCD-10141
Bug fixLuciadLightspeed
LCD-10138
Fixed an issue with touch controllers on
TLspExternalView
. At some point, it would try and
create an
AWTEvent
with a null source component.
Bug fixLuciadLightspeed
LCD-10149
The GeoTIFF encoder now encodes model references with a user defined geodetic datum correctly.
Only the first parameter of the geodetic datum transformation was stored.
Bug fixLuciadLightspeed
LCD-10134
The parsing of the WMS capabilities could get into an infinite loop in the case a WMS layer is defined without
a geographic coordinate reference, i.e., CRS:1.
Bug fixLuciadLightspeed
LCD-10097
Fixed an issue where an image height provider returned an incorrect value for a coordinate on the edge of a tile in certain
cases.
Bug fixReal-time Engine
LCD-10141
Bug fixDefense Symbology
LCD-9886
Improved the rendering quality of the Static Depiction symbol in MIL-STD 2525 b/c by enhancing the accuracy of the
inner circles and increasing the readability of the ENY text (in case of hostile affiliation).
Bug fixDefense Symbology
LCD-10120
Fixed placement of the last point of multipoint symbols that could be represented with both arrow and multipoint
elements.
The last point of multipoint elements used to be placed at the tail of the arrow, it is now placed at the corner of
the arrow head, as is specified in the NVG specification.
Bug fixDefense Symbology
LCD-10133
The fix for issue LCD-9300 introduced a bug in the editing behaviour of the Arrow symbols for GXY and Lightspeed
views.
this bug has now been fixed.
Upgrade considerationDefense Symbology
LCD-10136
The two-digit APP-6C code used for echelons at Brigade level and below was not correct: the echelons Brigade,
Regiment/Group, Batallion/Squadron, Company/Battery/Troop, Platoon/Detachment, Section, Squad and Team/Crew
were respectively incorrectly set to the digits 18, 17, 16, 15, 14, 13, 12 and 11 instead of to the expected digits
11, 12, 13, 14, 15, 16, 17 and 18.
2018.0.07
ImprovementLuciadLightspeed
LCD-10114
The GeoTIFF decoder supports a user defined projection (GeoTIFF key 3075) with coordinate transformation code 9815
as Hotine Oblique Mercator (variant B), as defined in the EPSG database.
Bug fixLuciadLightspeed
LCD-10113
2018.0.04
ImprovementLuciadLightspeed
LF-1497
The TLfnRasterCoverageMetadata
now allows to define an area of interest (bounding box),
which is used to clip the data within the raster coverage.
This does not affect the coverage tile set structure which is determined by the bounding box.
Note that the version number of the tile store format has been updated for this.
ImprovementAviation Standards
LCD-8792
TLcdAIXM51RouteSegmentTimeSlice.START_PROPERTY
and TLcdAIXM51RouteSegmentTimeSlice.END_PROPERTY
properties are now used to deduce the geometry of Route Segments when there is no TLcdAIXM51RouteSegmentTimeSlice.CURVE_EXTENT_PROPERTY
property.
ImprovementDefense Symbology
LCD-10090
Improved feedback and documentation when using invalid APP-6 and MIL-STD 2525 symbol codes.
ImprovementDefense Symbology
Small improvements to some APP-6C icons.
ImprovementTiling Engine
LF-1497
The TLfnRasterCoverageMetadata
now allows to define an area of interest (bounding box),
which is used to clip the data within the raster coverage.
This does not affect the coverage tile set structure which is determined by the bounding box.
Note that the version number of the tile store format has been updated for this.
Bug fixLuciadLightspeed
LCD-10071
TLcdOGCFilterEvaluator#buildFilter
would return
ILcdDynamicFilter
instances for unsupported
TLcdOGCFilter
instances.
Using the returned dynamic filter would result in runtime exceptions (like
NullPointerExpception
s).
Bug fixLuciadLightspeed
LCD-10082
The evaluation of a OGC filter could result in a NullPointerException when the filter contains XPaths using the
descendant-or-self axis specifier.
Bug fixLuciadLightspeed
LCD-10060
TLspShapeLayerBuilder
: Fixed a memory leak that could occur when modifying elements of the
layer's model. This could only occur when the layer was configured with a
TLcdModelQueryConfiguration
and/or the minimum object size for painting was not equal to 0.
Bug fixLuciadLightspeed
LCD-10086
Fixed an issue with right-clicks in Swing views. Lightspeed incorrectly assumed that these right-clicks had the
CTRL modifier set (due to https://bugs.openjdk.java.net/browse/JDK-8041928). One way this manifested itself,
was that right-clicking on selected objects in a Swing view, would deselect the objects.
Bug fixOGC Server
LF-1568
Service exception reports returned by the WMTS service are now of content type 'text/xml'.
Previously the content type was not in accordance with the OGC WMTS protocol specification.
Bug fixOGC Server
LF-1568
Service exception reports returned by the WFS service are now of content type 'text/xml'.
Previously the content type was not in accordance with the OGC WFS protocol specification.
Bug fixOGC Server
LF-1568
Service exception reports returned by the WCS service are now of content type 'text/xml' when using version 1.1.0 or 1.1.1
of the protocol.
Previously the content type was not in accordance with the OGC WCS protocol specification for version 1.1.0 and 1.1.1.
Bug fixAviation Standards
LCD-10005
Fixed an inconsistency between TLcdDAFIFModelDecoder#decode
and TLcdDAFIFModelDecoder#canDecodeSource
while decoding the data in a directory.
Bug fixAviation Standards
LCD-10064
Getting properties of a Military Training Route data could throw an exception, which has been fixed.
Bug fixAviation Standards
LCD-10058
TOUCHDOWN_ZONE_ELEVATION
,
TOUCHDOWN_ZONE_ELEVATION_UNIT
and
TRUE_BEARING
properties in
TLcdARINCRunwayDataProperties
are
now retrieved from Runway instead of RunwayDirection.
Bug fixDefense Symbology
LCD-9889
Added Hostility (ENY) labels to the Trip Wire symbol for the standards MIL-STD-2525 b/c and APP6-A/B/C
Bug fixDefense Symbology
LCD-10027
Fixed issue where NVG text elements weren't updated on screen when the text content changed
Bug fixDefense Symbology
The "Feint/Dummy Headquarters" value for APP-6C installations was not visualized.
Bug fixDefense Symbology
LCD-9492
Bug fixDefense Symbology
LCD-10088
Fixed an issue for APP-6C where retrieving country values from a symbol using ILcdDataObject could trigger an exception.
Bug fixDefense Symbology
LCD-10085
Fixed a problem in
TLcdNVGGXYPainterProvider
that caused a missing view repaint when
using NVG data containing text in combination with asynchronous painting.
2018.0.03
ImprovementLuciadLightspeed
LCD-10077
TLcdSVGIcon
now supports icons that have no width or size but do have a view box.
ImprovementLuciadLightspeed
LCD-9999
Model metadata retrieved from any model that also implements
ILcdModelContainer
will now
by default include the data categories of the contained submodels as well.
ImprovementLuciadLightspeed
LCD-9967
ALcdModel
has new methods to set or get the function that is used to collect metadata for
the model. See
ALcdModel#getModelMetadataFunction
and
ALcdModel#setModelMetadataFunction
ImprovementLuciadLightspeed
LCD-10068
The
TLcdGeoJsonModelDecoder
will set
TLcdCoreDataTypes.DOUBLE_TYPE
and
TLcdCoreDataTypes.LONG_TYPE
respectively in the data type for double and long values, instead
of
TLcdCoreDataTypes.NUMBER_TYPE
for both.
ImprovementRadar Connectors
LCD-9760
TLcdASTERIXCategory62
: Following trajectory properties are now available on the
TLcdASTERIXTrajectory
and their values can be changed by calling the
setValue
method
in the
ILcdDataObject
interface:
- Callsign
- IFPSFlightId and all its subproperties
- FlightCategory and all its subproperties
- TypeOfAircraft
- WakeTurbulenceCategory
- DepartureAirport
- DestinationAirport
Bug fixLuciadLightspeed
LCD-10072
Removed the enforcing of accessor.byteOffset as per the GLTF 2.0 spec.
Bug fixLuciadLightspeed
LCD-9952
The GeoTIFF decoder now can handle case of missing ProjectedCSTypeGeoKey within the GeoTIFF tags by
handling it as user defined.
Bug fixLuciadLightspeed
LCD-9955
The GeoTIFF decoder now correctly interprets model references where a user defined geodetic datum is used (GeoTIFF key 2062).
The interpretation of the rotation and the scale correction has been fixed.
Bug fixLucy (LuciadLightspeed)
LCD-9563
While loading the ARINC data, "Open ARINC File" popup window is opened to configure the decoder.
If you select the "Select all" checkbox, even though the "Procedure" checkbox is selected, "Procedure airport filter" is
disabled.
This issue is fixed.
Bug fixAviation Standards
LCD-6993
Fixed the handling of sunrise and sunset times in AIXM 5.1 timesheets in case of a Polar Day or Midnight Sun.
Bug fixAviation Standards
LCD-7281
To ease the visual recognition of restricted airspaces and to better align with common charting guidelines,
AIXM 5.1 restricted airspaces (prohibited, restricted, danger area) are now painted with a striped red border in GXY views.
Bug fixAviation Standards
LCD-9673
Missing time zone information in AIXM 5.1 time slice dates was causing incorrect calculation of the active time slice. This
issue is fixed by using UTC-0 as default time zone when the time zone is missing.
Upgrade considerationLuciadLightspeed
LCD-10003
TLcdModelList#setClassTraceOn
is now declared static, similar to other classes with that
method. If you override this method somewhere in your code, you should make that overriding method static as well.
Upgrade considerationLuciadLightspeed
LCD-10001
TLcdFeatureIndexedAnd2DBoundsIndexedModel#setTraceOn
is no longer declared static. This was a
bug, since the method would enable tracing on for every instance of that class, which is not what the javadoc says
it does. If you call this method statically somewhere in your code, you should either:
- replace it with a call to
TLcdFeatureIndexedAnd2DBoundsIndexedModel#setClassTraceOn
, which results in the same
behaviour as before, or
- call the method on a specific instance of the class.
2018.0.02
ImprovementLuciadLightspeed
LCD-10013
ImprovementLuciadLightspeed
LCD-10000
ImprovementLuciadLightspeed
LCD-7968
TLcdGeoJsonModelDecoder
can now decode geojson files with properties that have special characters (non-alphanumerics/underscores) in their
name. Note that such properties will be renamed to something that does meet the requirements.
ImprovementLuciadLightspeed
LCD-9931, LCD-9883, LCD-9281
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v9.3.
ImprovementLuciadLightspeed
LCD-3324
ImprovementLuciadLightspeed
LCD-6117
The MIF model decoder now supports a lot more different geodetic datums. For a detailed list of supported datums,
refer to the javadoc of
TLcdMIFModelReferenceParser
.
ImprovementLuciadLightspeed
LCD-9283
TLcdSHPModelEncoder
: The DBF file writer now logs warning messages when field names are
truncated because of the limiting dBASE IV format.
ImprovementLuciadLightspeed
LCD-9881
The geojson model decoder now uses EPSG:4979 as default fallback reference when the input file contains
Z-coordinates.
ImprovementWeather & Environment Standards
LCD-9054
TLcdNetCDFModelDecoder
The logic that automatically combines variables for the creation of a multi-band image (e.g. northward and eastward wind)
has been improved.
ImprovementWeather & Environment Standards
LCD-9762
ImprovementAviation Standards
LCD-6109
Improved labeling of ApronElement, RunwayElement and TaxiwayElement by using the associated element:
- ApronElement: If there is an associated Apron, the value of
TLcdAIXM51ApronTimeSlice.APRON_NAME_PROPERTY
of Apron is used as name of the ApronElement.
- RunwayElement: If there is an associated Runway, the value of
TLcdAIXM51RunwayTimeSlice.NAME_PROPERTY
of Runway is used as name of the RunwayElement.
- TaxiwayElement: If there is an associated Taxiway, the value of
TLcdAIXM51TaxiwayTimeSlice.NAME_PROPERTY
of Taxiway is used as name of the TaxiwayElement.
ImprovementAviation Standards
LCD-9904
TLcdAIXM5AbstractAIXMMessage
now implements the
ILcdDataObjectIndexedModel
interface which adds data object index support to AIXM 5 models.
ImprovementAviation Standards
LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.
ImprovementAviation Standards
LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.
ImprovementAviation Standards
LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.
ImprovementAviation Standards
LCD-6349
Procedures are now rendered with a thicker line style to increase their visibility.
ImprovementDefense Symbology
LCD-9888
Added UniqueDesignation label to the MIL-STD-2525 c symbols 'Biological Contaminated Area symbols' (G*MPNB---***X)
and 'Chemically Contaminated Area' (G*MPNC--**X) (and equivalent symbols of MIL-STD 2525 c and APP6-A/B/C)
Bug fixLuciadLightspeed
LCD-10013
Bug fixLuciadLightspeed
LCD-9984
Added support for content.uri in tilesets. If one of content.url or content.uri is not present, the other will be
used.
Bug fixLuciadLightspeed
LCD-10024
Fixed a where hidden entrypoint files were taken into account instead of the non-hidden corresponding files.
Bug fixLuciadLightspeed
LCD-10004
LuciadLightspeed now supports OGC 3D Tiles URL containing query parameters and correctly uses those for all
subsequent requests.
Bug fixLuciadLightspeed
LCD-9954
Added support for content.uri in tilesets. This is now used by default instead of content.url
Bug fixLuciadLightspeed
LCD-9935
Fixed a precision problem occurring with 3DTiles' not axis-aligned Bounding Boxes.
Bug fixLuciadLightspeed
LCD-10038
Fixed an issue that caused some database decoders (e.g. Oracle) to construct an empty or syntactically incorrect
column list whenever values with vendor-specific data types are selected.
Bug fixLuciadLightspeed
LCD-9263
Fixed bug that could crash the
TLcdSHPModelDecoder2
when multiple threads concurrently try
to decode the same .shp file that is missing a valid corresponding .sbn or .sbx file.
Bug fixLuciadLightspeed
LCD-10028
The Maven deployment script in build/maven will no longer allow deployment to the system's local repository (~/.m2/repository) since doing so results in file corruption.
The default repository path has been updated to a more suitable location.
Bug fixLuciadLightspeed
LCD-10040
Considerably improved snapping performance in Lightspeed views for large complex polygons.
Bug fixLuciadLightspeed
LCD-9934
Fixed bug in
TLcdSHPModelDecoder
that would leak the .dbf file descriptor when a shape file's
header could not be read.
Bug fixLuciadLightspeed
LCD-8540
licenseserver.exe
: when you specify a log file, the log file will now contain
the log messages for all specified license files, instead of only the messages for the first given license file.
Bug fixLuciadLightspeed
LCD-9402
The OBJ model decoder now correctly handles referenced texture files that contain spaces in their path.
Bug fixLuciadLightspeed
LCD-7888
The geojson model decoder now simply ignores features with a null geometry, instead of throwing an exception.
Bug fixLuciadLightspeed
LCD-9770
Different geojson features with the exact same geometry are no longer considered 'equal' by their equals method.
Bug fixOGC Server
LCD-9930
The default, automatically generated URLs listed in the operations metadata of the WFS capabilities
did not include the part covered by a wildcard URL pattern defined in the deployment descriptor.
Bug fixWeather & Environment Standards
LCD-10011
TLcdNetCDFModelDecoder
Resolved an issue where variables were incorrectly combined for the creation of multi-band images if they had very similar
names.
This fixes some problems introduced by the changes made in LCD-9700.
Bug fixWeather & Environment Standards
LCD-9700
The system property com.luciad.netcdf.cachedir
can now be used to set the NetCDF cache directory.
This directory is used e.g. for GRIB index files.
Setting this property prevents issues with creating cache files in case the default chosen cache directory is non-writable.
The system property can be set by providing it as a VM argument, e.g. -Dcom.luciad.netcdf.cachedir=<a-valid-path>
.
The directory provided in the system property will be created if it is not available.
Bug fixAviation Standards
LCD-6820
Fixed AIXM Basic Message and Digital NOTAM schema resources collision when configuring the model decoder to use a custom entity
resolver for
providing access to locally stored schema definitions.
Bug fixAviation Standards
LCD-6617
XLinks references with UUIDs are now converted to lower-case to be compliant with the gml:identifier values.
Bug fixDefense Symbology
LCD-10012
The Infiltration Lane symbol incorrectly painted a wave pattern with many waves.
This symbol is now painted with only 2 repeating waves in the wave pattern. This way it matches the template as
specified in the MIL-STD 2525 b/c and APP6-a/b/c standards.
2018.0
ImprovementLucy (LuciadLightspeed)
LUCY-4682
TLcyNetworkConnectionAddOn
: it is now possible to provide hardcoded credentials by overriding
the
getPasswordAuthentication
method.
ImprovementLucy (LuciadLightspeed)
The LIDAR theme in the Lucy Showcase sample has been replaced by a new theme which shows the ability to connect
to 3D riality meshes and point clouds.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-9816
The XML decoders now accept anyURI values with spaces. Although it is highly discouraged to use spaces in an anyUri,
it is not prohibited - see https://www.w3.org/TR/xmlschema-2/#anyURI.
ImprovementLuciadLightspeed
LCD-6481
TLcdLASModelDecoder#setPerformBoundsAndRangeScan
now allows skipping the (limited) data scan during decoding.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-9603
ImprovementLuciadLightspeed
OGC filter: some new vendor specific functions have been added allowing to check whether a property matches one of
multiple values.
Consult the javadoc of the
TLcdOGCVendorSpecificFunctions
class for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-4661
Lucy MapCentric: the layer properties panel is now shown in a non-modal dialog. This allows you to interact with the
map, the table view, ... while the layer properties are shown.
The configuration file of the layer control allows to configure the modality (see the
TLcyLspMapAddOn.LspMapLayerControl.layerPropertiesAction.useModalDialog
property).
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
TLcdPointCloudModelDecoder: this new class decodes point clouds in the Luciad point cloud file format
(tilestore.lpc
files).
ImprovementLuciadLightspeed
LuciadLightspeed now supports the OGC 3D Tiles and OSGB formats. This enables users to decode large 3D mesh
or point cloud data sets and display them efficiently in a Lightspeed view. For more details, see:
- The 3D Tiles Developer's Guide
- The javadoc of TLcdOGC3DTilesModelDecoder on how to decode OGC 3D Tiles
- The javadoc of TLcdOSGBModelDecoder on how to decode OSGB files
- The javadoc of TLsp3DTileLayerBuilder on how to visualize such data
ImprovementLucy (LuciadLightspeed)
The unstyled Lightspeed vector formats (like SHP, GML, GeoPackage, ...) now allow to define styling based on
a property of the data through the Lucy UI. An example of this is adjusting the fill color of a country based
on the population of that country.
The customizer panel factories for this UI are registered by the
TLcyLspLayerCustomizerAddOn
.
The factories can also be created using the new methods on the
TLcyLspStyleCustomizerPanelFactories
class.
ImprovementLuciadLightspeed
TLcdExpressionFactory
can now create expressions for trigonometric, vector and distance
operations. A view position attribute, which represents the view coordinates of the object that is
evaluated, was also added.
ImprovementLuciadLightspeed
Three parameterized styles that can be used by the
TLspShapePainter
(e.g. layers created with
TLspShapeLayerBuilder
) were added to the
com.luciadview.lightspeed.style
package:
- TLspParameterizedIconStyle
- TLspParameterizedLineStyle
- TLspParameterizedFillStyle
These styles are configured using
ILcdExpression
, which can be created with the
TLcdExpressionFactory
. This allows to style objects based on their property values
without the need to create a custom
ALspStyler
and submit multiple styles.
Since the evaluation of the expressions of the style is done on the GPU and only one style needs to be used
for property based styling, performance will improve compared with a custom
ALspStyler
.
The sample package samples.lightspeed.style.expressions
contains a sample
demonstrating how
the parameterized styles can be used.
These styles can be used for dynamic and static data sets. However, for large static point data sets, it
is recommended to use
TLspPlotLayerBuilder
.
ImprovementLuciadLightspeed
The properties in the LAS data model (see
TLcdLASModelDescriptor
) now disallow null values, because they cannot have absent values.
Only the "ExtraBytes" property is nullable, because whether or not extra bytes are present depends on the file content, not
the LAS point format.
ImprovementLucy (LuciadLightspeed)
LUCY-4708
The ILcdOWSTransport
used by the OGC services (WMS, WCS, WFS, WMTS) is now retrieved
from the Lucy back-end. Customizing the transport is as easy as registering your own instance as service on the
Lucy
back-end. This allows for example to provide hardcoded credentials for a specific server.
TLcyCompositeOWSTransport
can be used as composite transport implementation.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
The LAS model decoder can now decode LASzip (LAZ) 1.0, 1.1, 1.2 and 1.3 files.
It depends on the laszip4j third party library for this.
ImprovementLuciadLightspeed
The new
TLcdModelMetadata
class encapsulates advanced metadata information (including
ISO 19115 metadata) about
ILcdModel
instances.
ILcdModelDecoder
has a new method
decodeModelMetadata
to retrieve
model information without having to decode the entire model.
The information can also be accessed from any
ILcdModel
.
The Luciad model decoders have been enhanced to decode the metadata as efficiently as possible and provide more
generic metadata, such as the data category, related files and their mime types.
ImprovementLuciadLightspeed
LCD-9430
ImprovementLucy (LuciadLightspeed)
The new
TLcyOGC3DTilesAddOn
adds support to decode OGC 3D tile data sets.
The
TLcyLsp3DTilesB3DMFormatAddOn
adds visualization support on Lightspeed views for such
data sets with B3DM data as payload (riality meshes).
The
TLcyLsp3DTilesPNTSFormatAddOn
does the same for data sets with PNTS data as payloads
(point clouds).
There is no support to visualize these data sets on a GXY view.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-8520
ImprovementLuciadLightspeed
LCD-7761
ImprovementLucy (LuciadLightspeed)
LUCY-4703
ImprovementLuciadLightspeed
The GXY view map implementations (for example,
TLcdMapJPanel
) now come with grid layers
that automatically refine when zooming in. If you want the previous behavior you can call
setGridLayer(new TLcdMapLonLatGridLayer());
.
ImprovementLucy (LuciadLightspeed)
Lucy will now first try to save a model reference as a .prj
file instead of directly saving
it as a Luciad-specific .ref
file.
ImprovementLuciadLightspeed
LCD-4316
TLcdCompositeModelReferenceDecoder
: a composite model reference decoder has been added.
To easily populate the composite instance with all available ILcdModelReferenceDecoder
instances,
the model reference decoders have been made available as @LcdService
.
The same has been done for the encoding of the model references by introducing
TLcdCompositeModelReferenceEncoder
.
ImprovementLuciadLightspeed
LCD-9509
The OGC Web Client Suite Developer's Guide has been extended with a quick start sample to illustrate loading WCS,
WFS and WMTS data in a GXY and Lightspeed view, next to the existing quick start sample for WMS.
ImprovementLuciadLightspeed
LCD-8866
The OGC Web Client implementations WMS, WFS, WCS and WMTS now support the use of a "direct data URL", consisting
of the server URL and a key-value pair property 'data=...' that refers to the identifier of the desired data
(WMS / WMTS layer, WCS coverage or WFS feature type id). This "direct data URL" can be set as follows:
- WMS: through
TLcdOGCWMSProxyModelDecoder#decode
or
(since issue fix LCD-10047) through TLcdWMSDataSource#Builder#uri
.
- WFS: through
TLcdWFSModelDecoderDecorator#decode
or
(since issue fix LCD-10047) through TLcdWFSDataSource#Builder#uri
.
- WCS: through
TLcdWCSCoverageModelDecoder#decode
or
(since issue fix LCD-10047) through TLcdWCSDataSource#Builder#uri
.
- WMTS: through
TLcdWMTSModelDecoder#decode
or
(since issue fix LCD-10047) through TLcdWMTSDataSource#Builder#uri
.
ImprovementLuciadLightspeed
LCD-9409
To ease connecting to a WFS and to better align with Luciad's general model decoding API, a new convenience class
TLcdWFSDataSource
has been introduced. A
TLcdWFSDataSource
models all
aspects of a WFS data source (URL, feature type,
format, ...). Instances can be created through the embedded builder and afterwards supplied to
TLcdWFSModelDecoderDecorator
or
TLcdWFSProxyModel#Builder
to decode WFS data into a model.
ImprovementLuciadLightspeed
LCD-9410, LCD-8866
ImprovementLuciadLightspeed
LuciadLightspeed now comes with several JavaFX integration samples, which can be found in
the package samples/lightspeed/integration/javafx.
ImprovementLuciadLightspeed
The Natural Earth sample data (see Shp/NaturalEarth) has been updated to version 4.1.
ImprovementLuciadLightspeed
com.luciad.util.collections
: the collections for primitive types were extended with
methods to efficiently add an entire array of values without the overhead of boxing the primitive values. See the
javadoc for the new addAll
methods for more detail.
ImprovementLuciadLightspeed
LCD-9096
ImprovementLuciadLightspeed
LCD-9611
ImprovementLuciadLightspeed
LCD-8401
Greatly improved the worst-case performance of
TLcdClusteringTransformer
. This improvement
greatly reduces the clustering time when zooming in on a large (100.000s of points) clustered data set.
For a data set with approximately 300.000 points, this can give a 20x performance improvement.
ImprovementLuciadLightspeed
ILcdSelection
now has a new default method
getSelectedObjects
that exposes the selected objects as a
List
.
In addition, the interface now has a type parameter so you can select more specific collections.
ImprovementLuciadLightspeed
ILcdModelContainer
now has a new default method
getModels
that exposes the models as a
List
.
ImprovementLucy (LuciadLightspeed)
LUCY-4686
The "not in" filter was added to the table view filters, as the negation of the "in" filter.
ImprovementLucy (LuciadLightspeed)
LUCY-4665
The "Connect to..." menu now includes the ability to tag data sources as favorites for an easier access.
ImprovementLuciadLightspeed
LCD-9413
ImprovementLuciadLightspeed
LCD-4144
TLspShapeLayerBuilder
: you can now configure whether the created layer should be regarded
as a source for snapping points via
TLspShapeLayerBuilder#snapTarget
.
ImprovementReal-time Engine
TLspRadarVideoLayerBuilder
now paints a sweep line, radar grid and range style by
default. Before, it only painted the radar video content.
The styler of the built layer implements ILspCustomizableStyler
, so you can disable
and change the style for this new content using the methods of that interface. Consult the javadoc for detailed
information.
ImprovementReal-time Engine
The new
TLcdRadar
class allows you to visualize radar video data from
custom data feeds. See its
addRadarSweep
method to find out how to pass radar video
data into the radar object. The
samples.realtime.lightspeed.radarvideo
sample demonstrates
how to use these classes and how to visualize the data using
TLspRadarVideoLayerBuilder
.
ImprovementReal-time Engine
LCD-8729
TLspRadarVideoLayerBuilder
now offers better support for radar video data in high resolution.
Previously, the data was sampled at a smaller resolution before it was shown on the screen. Now the full resolution
is preserved.
ImprovementRadar Connectors
LCD-6033
ImprovementRadar Connectors
Bug fixLuciadLightspeed
Changed TLcdSpatiaLiteModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixLuciadLightspeed
Improved trackpad/magic mouse zooming on macOS in GXY and Lightspeed views.
Bug fixLuciadLightspeed
LCD-9434
Fixed a JRE related performance problem that occurs when using JRE 1.8 update 131 and newer on macOS.
It caused low framerates when moving or dragging the mouse.
Bug fixDatabase Connectors
Changed TLcdOracleSpatialModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixDatabase Connectors
Changed TLcdInformixSpatialModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixDatabase Connectors
Changed TLcdDB2SpatialModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixDatabase Connectors
Changed TLcdPostGISModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixDatabase Connectors
Changed TLcdInformixGeodeticModelDescriptor.TYPE_NAME
to correspond with the actual type name in
the model descriptor instances.
Bug fixReal-time Engine
LCD-9487
TLspRadarVideoLayerBuilder
: a radar layer was only repainted in response to a model change event or a view change.
That could result in an unsmooth fade-out of the blips. Now the radar will
repaint itself automatically, resulting in a smooth fade-out of the blips.
Upgrade considerationLuciadLightspeed
Added a dependency on the third party library HPCC Collections for efficient HashMap implementation which is used in
PointCloud tile voxelization.
Upgrade considerationLuciadLightspeed
Due to the introduction of enhancement LCD-4316, the
ILcdModelReferenceDecoder
and
ILcdModelReferenceEncoder
instances in a deployed application should no longer be obfuscated.
The Proguard configuration file in the release has been adjusted for this.
If you use your own Proguard configuration, make sure to update it as well.
Upgrade considerationLuciadLightspeed
TLcdGeoJsonModelDecoder
now ensures that the uid property value of decoded Geojson features
is always of type String, as described by the associated data model. Implementations that expected an Integer type
in case of a numeric value in the input data should adapt accordingly.
Upgrade considerationLuciadLightspeed
ILcdOWSTransport
a default
canPerformRequest
method has been added to the interface, allowing users of the transport to first check whether the request can be performed.
Upgrade considerationLuciadLightspeed
TLspPlotStyle
: The alpha value of the modulation color configured on the style is now
also taken into account, previously it was ignored. The transparency of the icon is now determined by multiplying
the alpha value of the modulation color and the opacity configured on the style. If in your code you use a
modulation color which is transparent on your style e.g.
TLspPlotStyle.newBuilder().modulationColor(new Color(255,0,0,128)).build()
, then you will
need to change this to
TLspPlotStyle.newBuilder().modulationColor(new Color(255,0,0,255)).build()
if the icon needs to remain fully opaque.
Upgrade considerationLucy (LuciadLightspeed)
ALcyProperties.keys()
now returns an Iterator<String>
instead of
a plain Iterator
.
Upgrade considerationLuciadLightspeed
TLcdInputStreamFactory
now by default requests compressed content over HTTP, using the "Accept-Encoding" header, for performance.
When serving compressed data is not available on the server, it automatically falls back on raw data, unless specified
differently.
This can be disabled using:
- The boolean system property com.luciad.io.TLcdInputStreamFactory.acceptHttpCompressedEncoding
- The method
TLcdInputStreamFactory#setAcceptCompressedEncoding
-
The
setDefaultRequestProperty("Accept-Encoding", null)
method on a specific factory
instance
There is no change on the user side, as the TLcdInputStreamFactory automatically unzips the content.
Upgrade considerationLuciadLightspeed
LCD-9343
Upgrade considerationLuciadLightspeed
Removed the protected
fNextNumber
and
fScaleOrigin
fields from the
GXY view map implementations (for example,
TLcdMapJPanel
).
If you used
fNextNumber
, you should manage the map count yourself in your map extension class.
If you used
fScaleOrigin
, you can replace it with
450 / (2 * Math.PI * TLcdConstant.EARTH_RADIUS)
.
Upgrade considerationLuciadLightspeed
TLcd3DPrimitiveType
: this class represents an enumeration, but still had a public
constructor.
This constructor has been removed as nobody should create new instances of this class.
Upgrade considerationLuciadLightspeed
TLcdModelDescriptor
's protected fields have been removed from the API.
You can replace any uses with calls to the respective setter and getter methods.
Upgrade considerationLuciadLightspeed
Removed the
isBackgroundImageCapable
methods from the GXY view map implementations
(for example,
TLcdMapJPanel
). You can safely replace any invocation with
false
.
Upgrade considerationLuciadLightspeed
LCD-9577
TLcdGXYLayer
's default interact margin has been increased to 32 pixels.
It ensures that a model element is still painted if its visual representation
falls inside the view, but its model bounds do not. If you notice a performance impact,
you can change the value back by calling
layer.setInteractMargin(5)
.
Upgrade considerationLuciadLightspeed
The heuristic used by the Lightspeed view to determine the size of its OpenGL resource cache
has been modified to result in somewhat bigger cache sizes. This reduces the risk of performance
issues when loading large amounts of data in the view. This change does not affect applications
that explicitly specify the cache size using TLspViewBuilder#glResourceCacheSize
.
Note that the cache size can also still be specified by setting the system property
com.luciad.view.lightspeed.opengl.cacheSize
to a value in megabytes, e.g.
-Dcom.luciad.view.lightspeed.opengl.cacheSize=768
.
Upgrade considerationAdvanced Raster Connectors
The ECW decoder now supports the ECW version 3 file format.
The native libraries used by the decoder have been updated to version 5.4 of the ERDAS ECW JPEG2000 Software Development Kit
(SDK)
for this purpose.
The support for linux 32-bit binaries has been removed in this version.
Upgrade considerationOGC Server
The CSW server component is now included in the OGC server component.
Upgrade considerationDefense Standards
LCD-9361
TLcdVPFModelDescriptor#getVFPFeatureClass
has been removed, this method duplicated
TLcdVPFModelDescriptor#getVPFFeatureClass
which should be used instead.
Upgrade considerationDefense Symbology
LCD-9751
Removed painting behaviour where Axis of advance arrows with only two points were painted differently than Axis of advance
symbols with 2+ points.
This is old behaviour that was kept for backwards compatibility reasons.
From now on the Axis of advance symbols will always be painted as specified in MIL-STD-2525 b/c, APP6-a/b/c.
The following style methods are no longer used and have been deprecated:
- ILcdMS2525bStyle#setArrowCurvedness
- ILcdMS2525bStyle#getArrowCurvedness
- ILcdAPP6AStyle#setArrowCurvedness
- ILcdAPP6AStyle#getArrowCurvedness
Upgrade considerationRadar Connectors
TLcdASTERIXDataSource
: this class is now final. This class was never designed to be extended,
and to make that clear the class has been made final.
2017.1
2017.1.18
ImprovementLuciadLightspeed
LCD-9863
When your license file now specifies the license server, but not the amount of floating licenses, the connection to the
license server is now checked. Before, the license server was not contacted at all.
ImprovementOGC Server
LF-1476
WMS layer scale ranges are now handled more efficiently in the WMS service, resulting in faster responses for WMS
requests outside the visible range.
Bug fixLuciadLightspeed
LCD-9153
The SLD Lightspeed sample did no longer apply SLD styling to raster layers since 2017.0.
Bug fixLucy (LuciadLightspeed)
LUCY-4747
Use File | Save for a military symbology layer which was created through the Lucy UI no longer allowed to save the model
as a .ims
file.
Bug fixLuciadLightspeed
LCD-9913
Fixed a NullPointerException when painting content on an GXY view with a world reference that does not extend TLcdGridReference.
Bug fixDefense Symbology
LCD-9920
The Axis of Advance tactical graphics incorrectly showed a closed arrow head for symbols with
2 points in a GXY view.
Bug fixDefense Symbology
LCD-9908
The Axis of Advance tactical graphics did not show ENY labels in case of hostile affiliation for symbols with
2 points in a GXY view.
Bug fixDefense Symbology
LCD-9900
Corridor-like tactical graphics (e.g., Infiltration Lane in MIL-STD 2525b) could disappear when zooming in closely
on them in a GXY view.
Bug fixDefense Symbology
LCD-9924
TLcdMS2525bObjectCustomizer and TLcdAPP6AObjectCustomizer now support translating all content displayed
in the customizer, through the configured ILcdStringTranslator. This was previously only supported for the
labels of UI components.
Bug fixDefense Symbology
LCD-6336
Fixed issue where the Mobility Amphibious echelon visualization was not legible.
2017.1.17
ImprovementLuciadLightspeed
TLcdOGCFilter
: added support to set a
TLcdOGCResourceId
condition for a single id value,
instead of requiring the need to use a
TLcdOGCResourceIdOperator
condition.
ImprovementLuciadLightspeed
LCD-9219, LCD-9493
TLcdTransformingModelFactory
: the bounds of the transformed model are now valid immediately
when creating it. This allows you to fit on the layer containing the transformed layer as soon as you created the
layer, for instance.
ImprovementAviation Standards
LCD-9895
The following ARINC object properties were added in support of version 19 of the ARINC 424 format:
- TLcdARINCAirport/HeliportCommunicationHandler: TLcdARINCAerodromeCommunicationDataProperties.COMMUNICATION_TRANSMIT_FREQUENCY,
TLcdARINCAerodromeCommunicationDataProperties.COMMUNICATION_RECEIVE_FREQUENCY
- TLcdARINCEnrouteCommunicationHandler: TLcdARINCEnrouteCommunicationDataProperties.COMMUNICATION_TRANSMIT_FREQUENCY, TLcdARINCEnrouteCommunicationDataProperties.COMMUNICATION_RECEIVE_FREQUENCY
The handlers mentioned above were updated accordingly.
Bug fixLuciadLightspeed
LCD-9869
Counter-clockwise rhumb-polygons that were visualized with an
TLspLineStyle
using a dash
pattern, were visualized with geodetic lines instead of rhumb lines.
Bug fixLuciadLightspeed
LCD-9897
Fixed an issue with
TLspPortholeController
: an exception was thrown if the porthole
was resized to a width or height of 0 pixels, on a 3D map.
Bug fixLucy (LuciadLightspeed)
LUCY-4341, LUCY-4636
TLcyWMSClientAddOn
: changing the color scheme for ECDIS WMS layers during tile loading
and rendering could result in incorrect image tiles.
Bug fixAviation Standards
LCD-9785
TLcdFeaturedParachuteJumpArea.getValue("Segments") returns a list with null elements instead of segments data. This has been
fixed.
Bug fixAviation Standards
LCD-9755
Bug fixDefense Symbology
LCD-9838
The maximum length of altitude/depth test modifier was increased for MIL-STD-2525c
Bug fixDefense Symbology
LCD-9891
Added missing hostility indicator labels (ENY) for the "Nuclear / Biological / Chemical Contaminated Area" symbols.
Bug fixDefense Symbology
LCD-9890
Translating the "Weapon/radar range fans - sector / circular" symbols no longer changes the ranges or angles
in a Lightspeed view.
Bug fixTiling Engine
LF-1513
Fusion replication kept running on the server, even though the client connection was aborted. This could cause
unnecessary resource usage and huge log output on the server.
2017.1.16
ImprovementLuciadLightspeed
LCD-9874
The Lightspeed layer now avoids for the non-tiled case creating a
TLcdWMSGetFeatureInfoContext
when the query coordinate is outside the extent of the GetMap request.
ImprovementLuciadLightspeed
ImprovementOGC Server
LCD-9871
The WFS server's GeoJSON output now includes 3D coordinates.
ImprovementDefense Symbology
LCD-9873
Improved calculation of clipping area around echelon size indicators for decorated stroked.
Situations were the clipping area is too large are now avoided.
Also tweaked the threshold ratio that determines at which zoom levels the echelon indicator disappears.
ImprovementDefense Symbology
LCD-9880
The "Weapon/radar range fans - sector" symbol now also supports sectors with equal min/max radius.
Bug fixLuciadLightspeed
LCD-9872
The TLcdEPSGReferenceFormatter#formatGeodeticDatum
method now formats the WGS 84 datum
as EPSG:6326 instead of EPSG:6763.
Bug fixLuciadLightspeed
LCD-9867
The use of ALcdWMSProxy#setCacheImage(true)
could lead to incorrect cache entries
in case of style parameter changes (e.g., an SLD).
Bug fixLuciadLightspeed
LCD-9168
Fixed several instances where an exception could occur when rapidly switching between 2D and 3D.
Bug fixDefense Symbology
LCD-9882
The "Weapon/radar range fans - sector" symbol's GXY bounds calculation was not correct, leading to potential symbol
editing issues in case of a custom painter / editor.
Bug fixDefense Symbology
LCD-9870
Added missing hostility indicator labels (ENY) the following symbols:
- OBSTACLE FREE AREA - TACGRP.MOBSU.OBST.GNL.OFA (2.X.3.1.1.4)
- OBSTACLE RESTRICTED AREA - TACGRP.MOBSU.OBST.GNL.ORA (2.X.3.1.1.5)
- ASSAULT CROSSING AREA - TACGRP.MOBSU.OBSTBP.CSGSTE.ASTCA (2.X.3.2.2.1)
- GAP - TACGRP.MOBSU.OBST.MNEFLD.GAP (2.X.3.1.1.1)
2017.1.15
ImprovementLuciadLightspeed
LCD-9147
The default SLD label locations have been improved for area-like shapes in the GXY view, making sure that the labels
are nicely centered around an anchor point inside the shape - aligned with the existing SLD default label locations
in a Lightspeed view.
ImprovementAviation Standards
LCD-9861
A gravel runway pattern in the AIS data could not be distinguished from a normal viewing distance in a Lightspeed view. This
has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4739
TLcyModelCustomizerAddOn
: restoring a workspace which contained a table view for a certain layer
and deleting that layer would not close the table view.
Bug fixLuciadLightspeed
LCD-9856
The SLD Recode element was not correctly decoded: the Data value was never set on its MapItem elements.
Bug fixOGC Server
LCD-9859
The WCS Server could get overloaded / generate timeouts in case too large amounts of
data were needed to process a GetCoverage request; an example use case is the request
of a coverage backed by a large high-resolution data set with only a single level of detail.
The WCS Server now uses additional resolution logic to avoid this and return an image
with a red hatched pattern in case of a resolution mismatch betweem the request and the data
- similar to how raster painting works in the client.
Upgrade considerationAviation Standards
LCD-9852
The following changes in our feature interface allows extended support in our ARINC domain model and decoder for version 18
of the ARINC 424 format.
Restrictive Airspace decoding is improved for start and end dates related fields (5.152 and 5.153):
- TLcdARINCRestrictiveAirspaceDataProperties.START_END_DATE is divided into two separate properties; TLcdARINCRestrictiveAirspaceDataProperties.START_DATE,
TLcdARINCRestrictiveAirspaceDataProperties.END_DATE.
- TLcdARINCRestrictiveAirspaceDataProperties.START_END_INDICATOR is removed. Afterwards TLcdDateIndicator class became unnecessary
and it is also removed.
- "Change Date" capability is added which updates the record using the following record.
Runway decoding is improved for displacement threshold distance (5.69) and touchdown zone elevation (5.97) fields:
- TLcdARINCRunwayDirectionDataProperties.RUNWAY_THRESHOLD_DISPLACEMENT_DISTANCE is renamed as THRESHOLD_DISPLACEMENT_DISTANCE.
- TLcdARINCRunwayDirectionDataProperties.RUNWAY_THRESHOLD_DISPLACEMENT_DISTANCE_UNIT is renamed as THRESHOLD_DISPLACEMENT_DISTANCE_UNIT.
- TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE and TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT
are removed. Use newer properties in TLcdARINCRunwayDirectionDataProperties.
- TLcdARINCRunwayDirectionDataProperties.RUNWAY_TOUCHDOWN_ZONE_ELEVATION and TLcdARINCRunwayDirectionDataProperties.RUNWAY_TOUCHDOWN_ZONE_ELEVATION_UNIT
are removed. Use properties in TLcdARINCRunwayDataProperties.
2017.1.14
ImprovementDefense Symbology
LCD-9820
Adjusted label placement of the Point/Single target symbol to avoid overlap with the symbol.
ImprovementDefense Symbology
LCD-9834
To enable users to customize the formatting of distances, angles and/or altitudes in the labels of
the Weapon/Sensor Range Fan Circular and Sector symbols, new methods have been introduced to the style
interfaces
ILcdMS2525bStyle
and
ILcdAPP6AStyle
to set a preferred
java.text.Format
instance:
setDistanceFormat(Format) and getDistanceFormat()
setAltitudeFormat(Format) and getAltitudeFormat()
setAngleFormat(Format) and getAngleFormat()
Bug fixLuciadLightspeed
LCD-9835
TLcdSVGIcon no longer supported inline PNG content since the upgrade to Batik 1.9.
Bug fixLuciadLightspeed
LCD-9854
Fixed an issue that caused incorrect queries to be generated when the system locale doesn't use . (period) as its decimal
separator.
Bug fixDefense Symbology
LCD-9821
The label placement of air corridor symbols (low level transit route, standard–use army aircraft flight route, air corridor,
etc) has been fixed in GXY.
Following changes have been applied:
- The label is placed between the first two anchor points, as specified by the standard
- The label will be moved around so it does not overlap with other segments of the symbol
Bug fixDefense Symbology
LCD-9851
The following MIL-STD-2525c equipment symbols had echelon size modifiers instead of equipment mobility modifiers
enabled. This has been rectified.
- EUOPAE----***** (EMERGENCY MEDICAL OPERATION AMBULANCE)
- EUOPAF----***** (MEDICAL EVACUATION HELICOPTER)
- EUOPBB----***** (EMERGENCY OPERATION EQUIPMENT)
- EUOPAB----***** (EMERGENCY MEDICAL OPERATION EQUIPMENT)
- EUOPCB----***** (FIRE FIGHTING OPERATION EQUIPMENT)
- EUOPCC----***** (FIRE HYDRANT)
- EUOPDB----***** (LAW ENFORCEMENT OPERATION EQUIPMENT)
- EFOPDDB---***** (ATF EQUIPMENT)
- EUOPDEB---***** (BORDER PATROL EQUIPMENT)
- EUOPDFB---***** (CUSTOMS SERVICE EQUIPMENT)
- EFOPDGB---***** (DEA EQUIPMENT)
- EFOPDHB---***** (DOJ EQUIPMENT)
- EFOPDIB---***** (FBI EQUIPMENT)
- EUOPDJB---***** (POLICE EQUIPMENT)
- EFOPDLB---***** (SECRET SERVICE EQUIPMENT)
- EFOPDMB---***** (TSA EQUIPMENT)
- EFOPDOB---***** (US MARSHALS SERVICE EQUIPMENT)
- EUOPEA----***** (BIOLOGICAL SENSOR)
- EUOPEB----***** (CHEMICAL SENSOR)
- EUOPEC----***** (INTRUSION SENSOR)
- EUOPED----***** (NUCLEAR SENSOR)
- EUOPEE----***** (RADIOLOGICAL SENSOR)
Bug fixDefense Symbology
LCD-9828
Added missing hostility indicator labels (ENY) the following symbols:
- TACGRP.MOBSU.OBST.GNL.BLT - BELT (2.X.3.1.1.1)
- TACGRP.MOBSU.OBST.GNL.LNE - LINE (2.X.3.1.1.2)
- TACGRP.MOBSU.OBST.GNL.Z - ZONE (2.X.3.1.1.3)
- TACGRP.MOBSU.OBST.ATO.TDTSM - ANTITANK OBSTACLES: TETRAHEDRONS, DRAGONS TEETH, AND OTHER SIMILAR
OBSTACLES (2.X.3.1.3.3.1), (2.X.3.1.3.3.2), (2.X.3.1.3.3.3)
- TACGRP.MOBSU.OBST.OBSEFT.TUR - TURN (2.X.3.1.7.3)
- TACGRP.MOBSU.OBST.UXO - UNEXPLODED ORDNANCE AREA (UXO) (2.X.3.1.8)
- TACGRP.MOBSU.OBST.RCBB - ROADBLOCKS, CRATERS, AND BLOWN BRIDGES (2.X.3.1.9.1), (2.X.3.1.9.2),
(2.X.3.1.9.3), (2.X.3.1.9.4)
- TACGRP.MOBSU.OBSTBP.CSGSTE.BRG - BRIDGE OR GAP (2.X.3.2.2.2)
Bug fixDefense Symbology
LCD-9827
Translating the "Weapon/radar range fans - sector / circular" symbols no longer changes the ranges or angles in
a GXY view.
2017.1.13
ImprovementLuciadLightspeed
LCD-9817
WMTS servers sometimes advertise incompatible tile matrix sets for a WMTS layer (e.g., a tile matrix set
defined in a projection that does not overlap with the WMTS layer bounds), potentially causing an issue when
trying to visualize the data in a view. The WMTS client now automatically avoids this by ignoring incompatible
tile matrix sets.
ImprovementLuciadLightspeed
LCD-9790
The error dialog that is shown when an license error occurs now allows you to exit the application immediately.
ImprovementOGC Server
LCD-9266
The performance of WMS GetCapabilities requests were improved for WMS services with a large amount of WMS layers.
ImprovementDefense Symbology
LCD-9789
Added the methods
setSelectionRectangleHaloColor(Color aColor)
,
getSelectionRectangleHaloColor()
,
getSelectionRectangleHaloWidth(int aWidth)
and
getSelectionRectangleHaloWidth()
to
ILcdMS2525bStyle
and
ILcdAPP6AStyle
.
These styling properties allow for the configuration of the halo width and color of the selection rectangle of icon
symbols.
Bug fixLuciadLightspeed
LCD-9811
The openflight model decoder is now able to handle relative paths to external references that contain backslashes on
a non-Windows OS.
Bug fixLuciadLightspeed
LCD-9791
The license mechanism now also recognizes MAC addresses of disconnected network cards on Linux and macOS. On Windows
this was already the
case.
Bug fixLucy (LuciadLightspeed)
LUCY-4735
The table view filter did not produce correct results for numerical value comparisons in case of a database model.
Bug fixLuciadLightspeed
LCD-9818
OGC Filter: using a
TLcdOGCBinaryComparisonOperator
with numeric values and with matchCase
set to false caused the numerical values to be interpreted as Strings in case of a database model,
potentially resulting in incorrect results.
Bug fixLucy (LuciadLightspeed)
LUCY-4733
The table view filter did not accept properties of type TLcdCoreDataTypes.NUMBER_TYPE
.
Bug fixLuciadLightspeed
LCD-9823
When using TLcdPolarStereoGraphic
, converting lon lat points to polar stereographic points
could result in NaN values when the true scale latitude is nearly at the pole.
Bug fixDefense Symbology
LCD-9829
In some cases, rotating a "Weapon/radar range fans - sector" shape in a GXY view was incorrect.
2017.1.12
ImprovementLuciadLightspeed
LCD-9799
The geojson model decoder now accepts '_' characters (underlines) in data type names.
ImprovementLuciadLightspeed
LCD-8837
Improved message in case connection to a OGC service fails due to a SSL related problem.
ImprovementAviation Standards
LCD-9803
Improved airspace rendering performance by optimizing the underlying OGC SLD / Filter rendering pipeline.
ImprovementAviation Standards
LCD-9798
Restrictive Airspace Handler (TLcdARINCRestrictiveAirspaceHandler) now recognizes the National Security Area ('N') record
in the Restrictive Airspace Type (REST TYPE) field.
Instead of parsing as TLcdAirspaceType.UNKNOWN, the handler now uses TLcdAirspaceType.NATIONAL_SECURITY_AREA as value in this
case.
Airport Handler (TLcdARINCAerodromeHandler) and Heliport Handler (TLcdARINCHeliportHandler) now also support Airport is joint
Civil and Military ('J') record in the Public/Military Indicator (PUB/MIL) field.
The handler now uses TLcdAerodromeOperationsType.JOINT as value in this case.
ImprovementDefense Standards
LCD-9802
The USRP decoder now supports all known directory structures regardless of the specific format (ADRG/ASRP/USRP).
ImprovementDefense Symbology
LCD-9809
Added the methods
setAlternateAffiliationColor(int aAffiliation, Color aColor)
and
getAlternateAffiliationColor(int
aAffiliation)
to
ILcdMS2525bStyle
and
ILcdAPP6AStyle
.
These methods allow the configuration of an alternate color, to be used when painting the symbol.
This property only applies to symbols that visually express the boundary or line of contact between two entities,
including:
- MIL-STD 2525 b:
- 2.X.2.1.2.3 - Lines - Line Of Contact
- MIL-STD 2525 c:
- 2.X.2.1.2.3 - Lines - Line Of Contact
- APP 6a:
- 2.X.2.1.1.2.3 - Line - Line Of Contact
- APP 6b:
- 2.X.2.1.1.2.3 - Lines - Line Of Contact
- APP 6c:
- 25140200 - Manoeuvre Lines - Line Of Contact
ImprovementDefense Symbology
LCD-9800
Fixed echelon indicator placement for the following symbols:
- MIL-STD 2525 b:
- MIL-STD 2525 c:
- APP 6a:
- 2.X.2.1.4.1.3 - Strong Point (SP)
- 2.X.2.1.4.1.3.1 - Strong Point - Friendly
- 2.X.2.1.4.1.3.2 - Strong Point - Enemy Known and Confirmed
- APP 6b:
- 2.X.2.2.3.5 - Survivability - String Point
- APP 6c:
- 25151100 - Manoeuvre Areas - Strong Point
These symbols now only get one echelon size indicator. This echelon indicator will be placed near the first point of
the polygon.
This change was done in order to make these symbols follow the standards more closely.
Bug fixLuciadLightspeed
LCD-9795
Fixed handling of null values for NUMERIC, DATE and DATETIME data types.
These values are now decoded as null instead of throwing a NullPointerException.
Bug fixLuciadLightspeed
LCD-9808
Fixed an issue with
TLspRulerController
.
When
#setKeepMeasurements
was set to true, the last created measurement would remain selected
during the creation of a new measurement.
Bug fixLuciadLightspeed
LCD-9761
Fixed handling of layers having a Dimension
element without a value for the
unitSymbol
field. The unitSymbol
field is optional.
When absent it could cause a NullPointerException
.
Bug fixLuciadLightspeed
LCD-9801
TLspPlotLayerBuilder
: The plot layer did not always take locks on the model when accessing
it, which could lead to unexpected exceptions.
Bug fixOGC Server
LF-1433
Fixed rare threading issue ("Unable to marshal") during GML encoding on the WFS server.
Bug fixDefense Symbology
LCD-9750
Added missing vertical 'Bridge lines' to the MIL-STD-2525b/c 1.X.3.1.1.4.2.1 'Axis of Advance, Attack Rotary wing'
symbol.
Bug fixDefense Symbology
LCD-9810
Fixed issue where the unique designation labels of the Boundaries tactical graphic could switch sides for some
segments.
Bug fixDefense Symbology
LCD-9807
Fixed issue where TLcdMS2525bCountryModifier still tried to load it's data from the file csv/countries.csv.
This file was renamed to csv/countriesISO3166.csv but TLcdMS2525bCountryModifier was never updated.
2017.1.11
ImprovementLuciadLightspeed
LCD-9737
It is now possible to define different line and label styles for horizontal and vertical lines for
MGRS and Georef grids in a Lightspeed view. See TLspMGRSGridStyle#axes
and
TLspGeorefGridStyle#axes
.
ImprovementLuciadLightspeed
LCD-9771
The geojson model decoder has new API for setting a custom model reference parser.
Bug fixLucy (LuciadLightspeed)
LUCY-4732
Lucy Showcase sample: the density theme was not able to load all its data. This has been fixed.
Bug fixLucy (LuciadLightspeed)
TLcySearchAddOn
: the search would only find string properties when the property started
with the search
string, and not when the property contained the search string.
If you are using (a modified version of) the sample version of this add-on (SearchAddOn
),
the
only modified class is the DataObjectSearchTaskFactory
class.
Bug fixLuciadLightspeed
LCD-9774
The geojson encoder now only flushes its underlying output stream after encoding has finished.
Bug fixOGC Server
LCD-9792
The BoundingBox
element within the WMS capabilities now honours the axis order
in case it is expressed in EPSG:4326
iso the default CRS:84
.
2017.1.10
ImprovementLucy (LuciadLightspeed)
LUCY-4719
TLcyLspCameraLinkAddOn
: the minimal distance of the Look At camera can now be specified in
the
configuration file of the add-on.
ImprovementLuciadLightspeed
LCD-9709
We now avoid drifting when editing a 3D pointlist with a high z-value by performing the translation relative to ellipsoid
instead of at its
actual height.
ImprovementLuciadLightspeed
LCD-9769
Improved lightspeed editor snapping accuracy. We now avoid a transformation when source and target layer are different, but
share the same model reference.
Bug fixLuciadLightspeed
LCD-9776
Fixed regression in handling WMS 1.1 service exception reports. The regression did hide the actual message.
Bug fixLuciadLightspeed
LCD-9780
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
ALcdWMSProxy
: the default value for the property
invertXYForEPSG4326
is
true
.
Bug fixLuciadLightspeed
Fixed a bug that would cause the Lightspeed view to become severely corrupted after using
the mouse rotation or zoom controllers on Intel HD GPUs.
Bug fixLuciadLightspeed
LCD-9768
SLD rendering in a Lightspeed view did not take into account a perpendicular offset value
from an SLD polygon symbolizer.
Bug fixOGC Server
LCD-9779
A GetMap request with an empty LAYERS
for an image size within the cache threshold
resulted in an internal server error (NullPointerException
).
The server now returns a proper WMS exception.
Bug fixOGC Server
LCD-9780
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
Add the following to your WMS web.xml file to disable inversion (making the WMS non-compliant):
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>false</param-value>
</init-param>
Bug fixAviation Standards
LCD-9717
Adjacent Airspaces that have a geoborder as part of their confinement should have a coincident point if their common border
ends in the geoborder.
However, small deviations seem to be possible because of the way "start points" of subpoint lists are being handled. This
has been fixed.
Bug fixDefense Symbology
LCD-9745
Added missing text modifiers for some icon symbols of TTA-106 a and TTA-106 b.
Bug fixDefense Symbology
LCD-9749
Axis of advance Airborne/Aviation/Attack, Rotary Wing (TACGRP.C2GM.OFF.LNE.AXSADV.ABN/AVN/ATK) now have their
crossover point between the first two points of the symbol, as specified by the standard.
Bug fixDefense Symbology
LCD-9773
Fixed the following issues with the MIL-STD-2525-B/C '2.X.2.1.2.1 : Boundaries - Line' symbol.
- Changing the width of the Boundary Line didn’t have any effect
- Labels were not always not drawn for each segment of the line
- Labels were not replicated when zooming in
2017.1.09
ImprovementLucy (LuciadLightspeed)
The text of the unselected tabs in Lucy docking when using the BlackLimeLookAndFeel
was not
easily readable (white text
on a light gray background). The text color for the unselected tab has been changed to dark grey.
The change is made in the samples.common.gui.blacklime.BlackLimeLookAndFeel#installJideDockingDefaults
method
for the key "JideTabbedPane.unselectedTabTextForeground"
.
ImprovementLuciadLightspeed
LCD-9686
The tiled WMS GXY painter, TLcdGXYTiledWMSProxyPainter, now supports configuring whether the parent tiles of
visible tiles should be requested, through a newly introduced setter and getter:
setParentTileRequestAllowed(boolean) and isParentTileRequestAllowed(). The default is true, because it benefits
user experience (e.g., data is visible when you zoom out); when disabled, only the visible tiles will be requested.
ImprovementDefense Standards
LCD-9758
Bug fixLuciadLightspeed
LCD-9740
Fixed issue where the halo of a label in arabic could be painted in the wrong direction (from left to right instead
of right to left).
Bug fixLuciadLightspeed
LCD-9748
Bug fixLuciadLightspeed
LCD-9757
TLsp3DIconStyle
: the opacity configured on the style was not applied when using an OpenFlight
model as the 3D icon.
Bug fixLuciadLightspeed
LCD-9746
Fixed an incorrect interpretation of SLD line stroke dash offset values in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-9743
ILcdGXYPainter implementations: in some cases, shapes could be unexpectedly clipped on 4K displays. This has been fixed.
Bug fixLuciadLightspeed
LCD-9711
Decoding a TLcdSLDFeatureTypeStyle from an OGC StyledLayerDescriptor file using TLcdSLDFeatureTypeStyleDecoder
generated a NullPointerException in case debugging was enabled.
Bug fixAviation Standards
LCD-9636
Fix so airspaces without a contributor airspace but with a base shape still are shown correctly when crossing the antimeridian.
Bug fixDefense Symbology
LCD-9741
Fixed an ArrayIndexOutOfBoundsException that could occur when drawing decorated Tactical Graphics.
Bug fixDefense Symbology
LCD-9733
Added missing 'unique designation' labels to several tactical graphics.
Affected symbols
APP6-a / APP6-b
Name |
Code(SIDC) |
Hierarchy Code |
Lateral Boundary |
G*C*MGLBL-***** |
2.X.2.1.1.2.1.2 |
Forward Boundary |
G*C*MGLBF-***** |
2.X.2.1.1.2.1.3 |
Rear Boundary |
G*C*MGLBR-***** |
2.X.2.1.1.2.1.4 |
APP6-c
Name |
Code(SIDC) |
Boundary - Lateral |
25110101 |
Boundary - Forward |
25110102 |
Boundary - Rear |
25110103 |
MIL-STD 2525 b/ MIL-STD 2525 cc
Name |
Code(SIDC) |
Hierarchy Code |
Boundaries |
G*G*GLB---****X |
2.X.2.1.2.1 |
2017.1.08
ImprovementLucy (LuciadLightspeed)
LUCY-4715
TLcyLspMapAddOn
: fixed an issue that prevented configuring the command (cmd) key for
selection customization on macOS.
ImprovementLuciadLightspeed
LCD-7002
TLspTouchNavigateController now allows you to rotate the camera up or down (aka 'pitching') by dragging two fingers
up or down.
ImprovementLuciadLightspeed
LCD-9728
TLcdGML32LinearRing/TLcdGML31LinearRing now automatically remove pointProperty values with a dead xlink.
ImprovementLuciadLightspeed
LCD-9686
TLcdEarthGXYRasterPainter now supports configuring whether the parent tiles of
visible tiles should be requested, through a newly introduced setter and getter:
setParentTileRequestAllowed(boolean) and isParentTileRequestAllowed().
The default is true, because it benefits user experience.
When disabled, only the visible tiles will be requested.
Bug fixLuciadLightspeed
LCD-9719
Improved SHP and SQLite decoder compatibility with Windows network URI's.
Bug fixLuciadLightspeed
Improved the javadoc of ILcdModelDecoder.discoverDataSources(String)
.
It now better describes the contract of the method.
Bug fixLuciadLightspeed
LCD-9684
Fixed a problem where image data could fail to render and cause exceptions.
This issue could occur when using image processing with OpenCL on Intel hardware with a recent driver.
Bug fixLuciadLightspeed
LCD-9715
Fixed an issue with TLspViewXYZWorldTransformation2D: it would fire property changes even when no properties changed.
2017.1.07
ImprovementLuciadLightspeed
LCD-9694
ImprovementLuciadLightspeed
LCD-9697
Relaxed parsing of GeoTIFF tag 42113 (GDAL_NODATA).
Floating numbers using a comma as decimal separator are accepted.
ImprovementLuciadLightspeed
LCD-9669
In enhancement LCD-9517
behavior was added to the WMS painters to request images larger than the view port.
For the Lightspeed WMS painter the check whether a new image needs to be requested has been updated
such that it does this earlier.
This helps avoiding gaps on the map display when a new WMS request is needed.
ImprovementLuciadLightspeed
LCD-9688
Improved painting performance for certain kinds of very sparse, poorly tiled multilevel image mosaics or tile sets
when used in interactive layers.
Bug fixLuciadLightspeed
LCD-9708
The DTED directory decoder could throw a
IndexOutOfBoundsException
in case it was configured with a bounds area not overlapping with the actual data.
Now it throws an IOException
following the contract of
ILcdModelDecoder
.
Bug fixLuciadLightspeed
LCD-9647
Bug fixLuciadLightspeed
LCD-9702
Improved handling of the GeoTIFF tags.
The case with a count of 0 data elements was not handled correctly and resulted in exceptions.
Bug fixLuciadLightspeed
LCD-9701
TLcdProj4ReferenceFormatter
returned incorrect strings for geodetic references. It returned
proj4 strings with a "lonlat" or "latlon" projection instead of "longlat" or "latlong".
Bug fixLuciadLightspeed
LCD-9699
Source elements without a value array element caused a RuntimeException.
Bug fixLuciadLightspeed
LCD-9667
Fixed possible infinite loop in ArcInfo ASCII Grid decoder for invalid input files.
Bug fixLuciadLightspeed
LCD-9696
Bug fixOGC Server
LF-1471
When starting the ogc.server sample from the LuciadFusion release, no slf4j binding could be found,
resulting in reduced logging.
2017.1.06
ImprovementLucy (LuciadLightspeed)
LUCY-4709
TLcyGotoAreaOfInterestAddOn
: the configuration file now allows to remove a specific AOI
without
having to create a copy of the configuration file. Consult the comments in the configuration file of the add-on for
more
information.
ImprovementLuciadLightspeed
LCD-9680
ImprovementAviation Standards
LCD-9687
The following ARINC object properties were added in our feature interface to allow extended support in our ARINC domain model
and decoder for version 18 of the ARINC 424 format:
- TLcdARINCHeliportHandler, TLcdARINCAerodromeHandler: ILcdARINCAerodromeFeature.ELEVATION
This corresponds to the following properties in the newer properties class:
- TLcdARINCHeliportHandler: TLcdARINCHeliportDataProperties.ELEVATION
- TLcdARINCAerodromeHandler: TLcdARINCAerodromeDataProperties.ELEVATION
The handlers mentioned above were updated accordingly.
Bug fixLuciadLightspeed
LCD-9670
Fixed issue where a freehand drag of a pointlist would not respect the minimum pointcount set by the create controller model.
2017.1.05
ImprovementLuciadLightspeed
LCD-9685
The non-tiled WMS GXY painter, TLcdWMSProxyGXYPainter, now supports the configuration of the preferred
reference to be used in map requests, through a newly introduced setter and getter:
setPreferredMapRequestReference(ILcdXYWorldReference) and getPreferredMapRequestReference().
ImprovementLuciadLightspeed
LCD-9683
Implemented workaround for certain zip-compressed KMZ files with bad headers for file entries. Previously, these
files could not be decompressed completely causing missing icons and images in your KML files.
ImprovementTiling Engine
LF-1465
The LuciadFusion engine now encodes tiles using the newly introduced ILcdEarthTileDataCodec#encodeTile method.
This method provides additional geographical context about the tile to be encoded (reference, bounds, ...),
making it easier to reuse the engine in a tile processing pipeline that requires this information.
Bug fixLuciadLightspeed
LCD-9676
The previous fix LCD-9466 to add the missing property link inside a WFS 2.0 Transaction Update request
incorrectly used the Name XML element instead of the expected ValueReference XML element.
Bug fixLuciadLightspeed
LCD-9616, LCD-8512
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
ALcdWMSProxy
: the default value for the property
invertXYForEPSG4326
is
true
.
TLcdWMSDataSource.newBuilder()
constructs a builder where the default value
for the property
invertXYForEPSG4326
is
true
.
Bug fixLuciadLightspeed
LCD-9681
Bug fixLuciadLightspeed
LCD-9618
Fixed an issue where painting or querying images that rely on RenderedImage
s with
tile grid offsets could throw exceptions in some cases.
Bug fixLuciadLightspeed
LCD-9671
Bug fixLuciadLightspeed
LCD-9658
Bug fixLucy (LuciadLightspeed)
LUCY-4713
Bug fixOGC Server
LCD-9616
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
Add the following to your WMS web.xml file to disable inversion (making the WMS non-compliant):
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>false</param-value>
</init-param>
Bug fixOGC Server
The WCS GetCoverage request handler could not handle GetCoverage XML requests using a RectifiedGrid instead of
a Grid to specify the desired spatial resolution.
Bug fixOGC Server
LCD-9652
The WCS GetCoverage request handler could not handle geodetic coordinates expressed in a reference with
a lat/lon axis order instead of a lon/lat axis order (e.g. urn:ogc:def:crs:EPSG::4326).
Bug fixAviation Standards
LCD-4372
Airspace volumes with segments that link to geographical borders are now correctly supported, by using the part of
the geographical border that is closest to the previous and next airspace segment.
2017.1.04
Bug fixLuciadLightspeed
LCD-9657
Zooming in on a pole in a 3D geocentric view may cause many tiles to be loaded.
Fixed an issue where this could lead to an OutOfMemoryError after some time.
2017.1.03
ImprovementLuciadLightspeed
LCD-9661
The WFS client can now correctly handle GML feature collection data containing a top-level envelope in which
the mandatory srsName attribute is missing. Such data can be encountered when using Geoserver with WFS 2.0
(see https://osgeo-org.atlassian.net/browse/GEOS-7660).
ImprovementLuciadLightspeed
It is now possible to set the default srsName to the GML model decoders that will be used to determine
the model reference if neither the first feature, its possible envelope or the possible envelope of the feature collection
has an srsName attribute set.
ImprovementLuciadLightspeed
LCD-9638
TLspMGRSGridStyle
now has an option to always keep labels inside the view. While many labels
were already kept inside the view, this was not the case yet for zone/band or 100k labels that are placed inside
their square.
ImprovementAviation Standards
LCD-9653
The built-in support for Eurocontrol's ADR extension schema has been upgraded from version 18.5 to 21.5,
the latest version used by Eurocontrol NM.
ImprovementAviation Standards
The AIXM 5.1 decoder and encoder now provide out-of-the-box support for Eurocontrol's CFMU ADR message
extension schema namespace http://www.eurocontrol.int/cfmu/b2b/ADRMessage.
Bug fixLuciadLightspeed
LCD-9666
Using military symbols in combination with the realtime.gxy.clusterLabeling sample didn't work correctly.
Bug fixLuciadLightspeed
LCD-9649
Fixed issue with points where the clampToGround altitude mode would not move the point to the terrain.
Bug fixLuciadLightspeed
LCD-9627
Bug fixReal-time Engine
LCD-9666
Using military symbols in combination with the realtime.gxy.clusterLabeling sample didn't work correctly.
Bug fixReal-time Engine
LCD-9632
Bug fixAviation Standards
LCD-9659, LCD-4170
Decoding and visualization of AIXM 5.1 airspace data containing GML point, curve or surface property links to other features
is now
supported.
Bug fixDefense Symbology
LCD-9655
Fixed the Friendly affiliation icon of the following MIL-STD-2525c symbols:
- 6.X.4.13.1 - Control Valve
- 6.X.4.13.3 - Discharge Outfall
2017.1.02
ImprovementLuciadLightspeed
LCD-9625
TLcdXMLSchemaBasedDecoder/TLcdXMLDecoder: improved protection against XML eXternal Entity injection (XXE) by
disallowing external entities. This also applies to XML based formats such as GML, NVG, and AIXM 5.
ImprovementLuciadLightspeed
LCD-9591
CVSModelDecoder
now prefers longitude and latitude coordinates over grid coordinates.
ImprovementLuciadLightspeed
LCD-9578
TLcdSLDFileGXYLayerFactory
now takes icon sizes into account for
PointSymbolizer
s in an SLD (.sld) file. This avoids clipped icons
at the edge of images produced by a Luciad WMS server relying on SLD files for data
styling - such as LuciadFusion Studio / Platform.
ImprovementOGC Server
LCD-8807
The performance of TLcdWMSCapabilities#findWMSLayer
has been
improved for the case where there are thousands of layers.
ImprovementDefense Symbology
LCD-9485
Fixed echelon indicator placement for the following symbols:
- MIL-STD 2525 b:
- 2.X.2.4.3.1 - Battle Position
- 2.X.2.4.3.1.1 - Battle Position - Prepared But Not Occupied
- MIL-STD 2525 c:
- 2.X.2.4.3.1 - Battle Position
- 2.X.2.4.3.1.1 - Battle Position - Prepared But Not Occupied
- APP 6a:
- 2.X.2.1.4.1.2.1 - Battle Position - Occupied (Battalion Sized Unit)
- 2.X.2.1.4.1.2.2 - Battle Position - Prepared But Not Occupied
- APP 6b:
- 2.X.2.1.4.1.2.1 - Battle Position - Occupied (Battalion Sized Unit)
- 2.X.2.1.4.1.2.2 - Battle Position - Prepared "(P)" But Not Occupied
- APP 6c:
- 25151000 - Battle Position
These symbols now only get one echelon size indicator. This echelon indicator will be placed near the first point of
the polygon.
This change was done in order to make these symbols follow the standards more closely.
ImprovementS-63
LCD-9602
You can now be notified of issues with cells in a catalog directly in the decode() call.
Set a handler using TlcdS63UnifiedModelDecoder.setInvalidCellExceptionHandler().
Your handler's handleCellWarnings() will be called with TLcdS63Exception during decode() to notify you of issues with cells:
- Cells for which there is no permit ({@link TLcdS63Exception.ErrorCode#SSE_011 SSE_011}). These cells will not be loaded.
- Cells for which the subscription is about to expire ({@link TLcdS63Exception.ErrorCode#SSE_020 SSE_020}). The cells will
still be loaded.
- Cells for which the subscription expired ({@link TLcdS63Exception.ErrorCode#SSE_015 SSE_015}). The cells will still be loaded.
Bug fixLuciadLightspeed
LCD-9626, LCD-9386
Bug fixLuciadLightspeed
LCD-9632
Bug fixLuciadLightspeed
LCD-9629
Bug fixLuciadLightspeed
LCD-9628
TLcdGeoJsonEncoderUtil now takes complex polygons defined with angular coordinates into account
Bug fixLucy (LuciadLightspeed)
LUCY-4704
Bug fixLucy (LuciadLightspeed)
LUCY-4701
The default object properties panel for the domain objects of a model with an
ILcdFeaturedDescriptor
as model descriptor would flicker when the domain object got updated.
In case you use your own copy of the sample add-on TreeTableViewAddOn
,
you need to update the TreeTableFeaturedModel#updateModel
method.
Bug fixOGC Server
LCD-9625
A security issue has been fixed in the OGC web services related to the handling of XML POST requests,
that could enable untrustworthy clients to access server information.
2017.1.01
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-9595
The
TLcdKML22GXYLayerFactory
now enables labels by default, even when placemarks are not explicitly selected.
This ensures consistency with Lightspeed layers.
ImprovementLuciadLightspeed
LCD-9598
CVSModelDecoder
: improved robustness when dealing with unmatched quotes.
ImprovementLuciadLightspeed
LCD-9517
The non-tiled WMS painters support requesting images from the WMS that are larger than the view port of the map (image size
and area).
This allows on following map re-paints to reuse the retrieved WMS image when possible.
This is the case when the proxy configuration is the same and when the area covered and image pixel density
of the image are close enough with the previous request.
This reduces the number of WMS requests when the map is panned (slightly).
ImprovementLuciadLightspeed
LCD-9528
The GXY layer factory order when using
TLcdServiceLoader
has been adjusted so that GML data is
styled using SLD if the SLD file is next to the GML file.
ImprovementLuciadLightspeed
LCD-9475
Our GeoPackage and LRDB encoders now try to use compatible tile sets in a model directly, instead of wrapping their image
content in a new one.
This increases performance and improves handling of empty tiles, which may result in significantly smaller files for certain
model types (e.g. LuciadFusion tile stores).
ImprovementLuciadLightspeed
LCD-9550
Added support for WKT references with "WGS 1984 Major AuxSphere" (or a variant) as datum name.
ImprovementTerrain Analysis Engine
LCD-9461
TLspLOSCoverageStyle now has a zOrder property to configure the relative ordering of the style with respect to other
styles in the same layer. This can be useful when there are overlapping LOS coverages in a layer in a 2D view.
ImprovementAviation Standards
LCD-9552
ImprovementDefense Symbology
LCD-9428
Improved the "Weapon/radar range fans - sector" shapes. The shape now supports several sectors.
Bug fixLuciadLightspeed
LF-1427
Adding null models to a
TLcdModelTreeNode
now always immediately throws a
NullPointerException
. This avoids possible other exceptions in unrelated parts
of the code.
Bug fixLuciadLightspeed
LCD-9604
The OGC WCS client could trigger the use and display of incorrect WCS coverage caches in case of subsequent
use of multiple coverages with equal positions, bounds and resolution settings.
Bug fixLucy (LuciadLightspeed)
LUCY-4689
Disabling the line style or the fill style in the Layer Properties panel of a Lightspeed vector layer will no
longer remove the layer icon in the layer control.
Bug fixLuciadLightspeed
LCD-9525
The CADRG model decoder now expands the color model for decoded tiles to full ARGB by default.
This ensures that CADRG tiles with clashing color maps are rendered correctly.
The decoder can still be forced to use indexed color models by setting the expandColorMap
property to false.
Bug fixLuciadLightspeed
LCD-9592
Bug fixLuciadLightspeed
LCD-9470
Spatial queries on GeoPackage models would sometimes not return objects with bounds that cross the date line. These objects
are now properly included in the result.
Bug fixLuciadLightspeed
LCD-9551
The performance of the
TLcdClusteringTransformer
could worsen over time when using a lot
of different classifications. This has now been fixed.
Bug fixLuciadLightspeed
Coverages with a WGS84 reference (EPSG:4326) could in some cases be visualized incorrectly, or cause exceptions.
This was a regression introduced in the previous patch release.
Bug fixLuciadLightspeed
LCD-9012
TLcdEPSGReferenceFormatter
didn't always return a String of the form "EPSG:xxxx", but it
could sometimes return a String of the form "urn:ogc:def:crs:EPSG::xxxx".
As a result the WMS proxy would not always correctly recognize CRSes advertised by the WMS as supported.
It would then fall back on another CRS and reproject the data.
Bug fixLuciadLightspeed
LCD-9533
TLcdEPSGReferenceFormatter
didn't always return a String of the form "EPSG:xxxx", but it
could sometimes return a String of the form "urn:ogc:def:crs:EPSG::xxxx".
Bug fixLuciadLightspeed
LCD-9531
On some Linux systems, logging out while a Lightspeed application was running could result
in the Lightspeed view throwing an exception.
Bug fixOGC Server
LCD-9545
Doing a POST request to the server with an incorrect feature type and a BBOX filter that
Bug fixOGC Server
LF-1369
The WMS server swallowed
IllegalArgumentExceptions
that are thrown by a delegate
ILcdWMSGXYLayerFactory
. Because of this, the logs didn't show why a WMS layer could not
be created. This made it more difficult, for example, to discover programming errors for custom implementations.
Bug fixWeather & Environment Standards
LCD-9605
TLcdNetCDFModelDecoder
would throw a
NullPointerException
for
NetCDF files without a standard name property. This is now fixed.
Bug fixDefense Symbology
LCD-9251
All tactical graphics use the same dot symbol for the squad, section and platoon echelons.
The squad, section and platoon echelons of all tactical graphics now also change size when the label font size is
changed in the style.
Bug fixMaritime Standards
LCD-9534
Bug fixTiling Engine
LF-1429
In some cases, the LuciadFusion engine didn't produce anti-aliased tiles when fusing vector data to image coverages.
2017.1
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
ELcdBingMapsMapStyle
: the enumeration has been extended with values for
CANVAS_DARK
,
CANVAS_GRAY
and
CANVAS_LIGHT
, allowing you to access those Bing Maps styles.
See the
Bing Maps blog
post
for the announcement from Microsoft
about those new map types.
ImprovementLuciadLightspeed
OGC Filter: the handling for spatial operators has been improved:
- Some inconsistencies between the BBOX operator and the other spatial operators have been removed.
- When the
TLcdOGCPropertyName
used in the spatial operator to point to the geometry
refers to a non-existing property,
the geometry will evaluate to null instead of falling back to the domain object itself.
This ensures that the spatial operators behave as descriped in the specification
in section 7.8.3.4 NULL geometries.
ImprovementLucy (LuciadLightspeed)
LUCY-4683
TLcyWCSClientAddOn
: WCS coverages are now automatically requested with bilinear interpolation
when this is supported by the server. This improves the rendering quality when zoomed in further than the native
resolution of the coverage.
ImprovementLucy (LuciadLightspeed)
The "Save Layer" action will now check all registered model encoder instances to determine whether the model a layer
can be saved,
instead of only checking ILcdModel#getModelEncoder
.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
The "Save Layer As..." action will now call the
ILcdModelEncoder#canExport
method with
a destination name which ends with the default extension of the associated
ALcyFileTypeDescriptor
when available.
This allows model encoder implementations to perform a check on the extension of the destination name if they want.
ImprovementLuciadLightspeed
The CSW client is now part of LuciadLightspeed.
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn
:
it is now possible to add your own duration formats and define their formatting through the configuration file.
See map_units.cfg and TLcyMapEditUnitAddOn_DurationFormats.cfg for more information.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn
now exposes the SHP format creation in the
createSHPFormat
method.
This allows to make small modifications to the SHP format.
To allow extensions of this method to have access to the configuration file, the add-on now also extends from
ALcyPreferencesAddOn
.
ImprovementLucy (LuciadLightspeed)
The release now comes with a Lucy Showcase sample. The Lucy Showcase contains a number of workspaces highlighting
different features of LuciadLightspeed and Lucy.
ImprovementLuciadLightspeed
LCD-9422
ImprovementLucy (LuciadLightspeed)
LUCY-4663
Lucy Map Centric: the Edit menu item now allows to change the formats used by Lucy.
ImprovementLucy (LuciadLightspeed)
LUCY-4662
Lucy Map Centric: the actions to create a new grid layer are now available under Data | New Layer | Grid.
ImprovementLuciadLightspeed
LCD-8737
3D icons and geo-referenced meshes are now rendered in two passes when the shape painting hints on the
TLspShapePainter
are set to
MAX_QUALITY
. The hints can also be set
when creating a layer with the
TLspShapeLayerBuilder
As a result, 3D icons with transparent textures will no longer contain 'holes'.
ImprovementLucy (LuciadLightspeed)
ALcyWorkspaceObjectCodec
: the decodeObject method is no longer abstract.
There are a lot of codecs which use an empty implementation of this method.
To avoid having to write such an empty implementation, the method is switched from abstract to a default, empty
implementation.
ImprovementLuciadLightspeed
LCD-6472
ImprovementLuciadLightspeed
LCD-9393
CSVModelDecoder
now supports quoted values.
ImprovementLucy (LuciadLightspeed)
Lucy Map Centric: the structure of the Data menu has been slightly adjusted.
- The "New Layer..." action has been removed in favor of individual actions for a new drawing, pim or
military symbology layer under a "New Layer" submenu.
- The Bing Map layer items have been moved to this "New Layer" submenu.
- The actions to create an hypsometry layer (new for 2017.1) have been added under this submenu as well.
This change affected the following sample code and configuration files:
- The
SideFormatBarAddOn
class and its configuration file.
- The
map_centric_bing_maps_addon.cfg
file.
- The
map_centric_map_addon_MapComponent.cfg
file.
ImprovementLucy (LuciadLightspeed)
TableViewAddOn
: the protected method
createTableViewCustomizerFactory
no longer uses private fields, but gets all the required objects as method parameters.
This makes it easier to override this method.
ImprovementLuciadLightspeed
ILcdLayered
(and hence all view implementations) now has a new default method
getLayers
that exposes the layers as a
List
.
ImprovementLuciadLightspeed
LCD-9376
ImprovementLucy (LuciadLightspeed)
TLcyLspHypsometryAddOn
: this new add-on provides menu items to add hypsometry shading layers
to a Lightspeed view.
ImprovementLuciadLightspeed
TLcdOGCFilter
: added the convenience method
asPredicate
to easily
evaluate an OGC Filter into a predicate.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-8466
The XML decoding framework now better handles "any" elements with namespace restrictions.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
TLcyLspLayerCustomizerAddOn
: the layer properties panel for multi-band image Lightspeed
layers now
allows to select which bands to use for the visualization.
ImprovementLuciadLightspeed
The GeoTIFF decoder and encoder now can handle the vertical reference geoid EGM2008.
Note that the decoder flag
TLcdGeoTIFFModelDecoder.isSupportGeoidDatums
must have the value true
.
ImprovementLuciadLightspeed
ILcdDisposable
now extends from
AutoCloseable
. This means that
objects that implement
ILcdDisposable
can now also be used in try-with-resources
statements.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-9106
ImprovementLucy (LuciadLightspeed)
The Lucy file chooser will now show a preview of the selected file when:
- The selected file is an image (png, jpg or gif)
-
An image file is present with the same name as the selected file, but with an image extension.
For example if you select
workspace.lws
and in that same directory the file
workspace.png
exists, the file chooser will show the png as preview icon.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddOn
: when saving a workspace (using the default
TLcyFileWorkspaceCodec
),
a screenshot of the map will be saved next to the workspace file.
This screenshot is detected by the Lucy file chooser and shown as preview icon when selecting the workspace file.
This feature can be de-activated with the TLcyWorkspaceAddon.savePreviewImage
property in
the
workspace_addon.cfg
configuration file.
ImprovementLucy (LuciadLightspeed)
LUCY-4624
TLcyTreeTableViewAddOn
: the fallback customizer panel no longer accepts domain objects
for which a balloon can be shown.
This avoids showing the same information twice.
In case you use the sample add-on TreeTableViewAddOn
, this change is contained to the
TreeTableFilter
class and the usages of the constructor of that class.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-7540
ImprovementLucy (LuciadLightspeed)
LUCY-4557
TLcyTreeTableViewAddOn
: URLs in the object properties panel are now clickable.
In case you use the sample add-on TreeTableViewAddOn
, the affected classes for this
enhancement
are the DefaultTreeTableCellRendererProvider
and the
EditableTreeTable
.
ImprovementLuciadLightspeed
LF-1123
TLcdXMLDataModelBuilder
now avoids parsing the same schema multiple times. This results in
a performance improvement when initializing XML based formats.
ImprovementLuciadLightspeed
ALcdGXYPen#create
allows creating a pen implementation based on a model reference and rendering quality preference.
ImprovementLucy (LuciadLightspeed)
LUCY-4449
The start-up time of Lucy has been reduced by postponing certain operations until Lucy is initialized, and then
performing those operations on a background thread while Lucy is already usable.
ImprovementLuciadLightspeed
LCD-9164
The package com.luciad.beans
and several older GUI classes have been deprecated to avoid
cluttering the API. There should be no need to use them.
ImprovementLucy (LuciadLightspeed)
TLcyLspMapAddOn
: the configuration file now allows to configure the layer control factory which is
used to create the map layer control. See the
TLcyLspMapAddOn.layerControl.GUIFactory.default
property for more information.
ImprovementLuciadLightspeed
LCD-9040
TLcdXMLPeeker
allows to quickly obtain the root element name of an XML datasource.
ImprovementLuciadLightspeed
LCD-4821
The GML model decoders now offer a specific method to decode a GML geometry.
ImprovementLuciadLightspeed
LCD-9527, LCD-9519
Improved the performance when repeatedly querying an
ILcdModel
with an OGC Filter.
This can considerably improve SLD styling performance for GML based models.
This also solves a possible memory leak regression caused by the fix for LCD-9455.
ImprovementLuciadLightspeed
LCD-9476
The WMS client now can handle WMS capabilities responses containing multiple root WMS layers.
The WMS specifies the capabilities document must contain a single root WMS layer.
However, some WMS servers may advertise multiple root layers.
ImprovementLuciadLightspeed
LCD-9433
Greatly improved the reference formatting performance of the
TLcdEPSGReferenceFormatter
class. It is now up to a 100 times faster.
ImprovementLuciadLightspeed
LCD-9514
The GeoTIFF decoder now accepts incomplete model references immediately when in non-strict mode.
Model references defined within the GeoTIFF tags are considered incomplete when a user defined geodetic datum is
specified without information on the geodetic datum transformation wrt WGS84, ie, the geo-directory tag 2062 is
missing.
In strict mode the GeoTIFF decoder does not accept such a model reference and the model reference must be specified
in an external file.
In any case a warning is logged when such an incomplete model reference is detected.
ImprovementLuciadLightspeed
LF-1078
The use of synchronized methods has been reduced within the custom JAI cache implementation
(mostly used by
TLcdGeoTIFFModelDecoder
).
This should improve the fusion performance for the GeoTIFF format.
ImprovementOGC Server
A number of improvements have been implemented related to the server's support for WFS 2.0:
- Support has been added for the optional 'RESOURCEID' parameter in a WFS 2.0 GetFeature request. This parameter
can be used to query a feature based on its identifier, without the need to specify a feature type.
- Support has been added for the WFS 2.0 requests ListStoredQueries and DescribeStoredQueries,
along with support for the default, standardized stored query urn:ogc:def:query:OGC-WFS::GetFeatureById.
This stored query can be used inside GetFeature requests to query a feature based on its identifier.
- The error reporting in case of invalid requests has been improved.
- The WFS 2.0 capabilities now include information about constraints and supported conformance classes.
ImprovementOGC Server
LCD-9408
A WMS GetFeatureInfo encoder for the
text/plain
mime-type has been added.
It replaces the encoder that was part of the samples and provides more information about the selected objects.
For more details on the encoder have a look at the documentation of
TLcdWMSTextPlainGetFeatureInfoEncoder
.
ImprovementAviation Standards
LCD-9363
The following ARINC object properties were added in our feature interface to allowed extended support in our ARINC domain
model and decoder for version 18 of the ARINC 424 format:
- TLcdARINCHeliportHandler: ILcdARINCAerodromeFeature.PAD_IDENTIFIER, ILcdARINCAerodromeFeature.PAD_DIMENSIONS
- TLcdARINCDMEHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION,
ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
- TLcdARINCVORHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION,
ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
- TLcdARINCTACANHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION,
ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
- TLcdARINCNDBHandler: ILcdARINCNavaidFeature.FIR_IDENTIFIER, ILcdARINCNavaidFeature.UIR_IDENTIFIER, ILcdARINCNavaidFeature.FACILITY_ELEVATION,
ILcdARINCNavaidFeature.FACILITY_ELEVATION_UNIT, ILcdARINCNavaidFeature.FACILITY_CHARACTERISTICS
- TLcdARINCRunwayHandler: ILcdARINCRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION, ILcdARINCRunwayDirectionFeature.TOUCHDOWN_ZONE_ELEVATION_UNIT,
ILcdRunwayDirectionFeature.TRUE_BEARING, ILcdARINCRunwayDirectionFeature.THRESHOLD_DISPLACEMENT_DISTANCE, ILcdARINCRunwayDirectionFeature.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT
- TLcdARINCRestrictiveAirspaceHandler: ILcdARINCAirspaceFeature.START_END_DATE, ILcdARINCAirspaceFeature.START_END_INDICATOR
- TLcdARINCEnrouteAirwayHandler: ILcdARINCATSRouteSegmentFeature.SEQUENCE_NUMBER, ILcdARINCATSRouteSegmentFeature.FIX_IDENTIFIER,
ILcdARINCATSRouteSegmentFeature.WAYPOINT_DESCRIPTION_CODE
- TLcdARINCProcedureHandler: ILcdARINCProcedureFeature.TRANSITION_IDENTIFIER, ILcdARINCProcedureFeature.SUB_TYPE, ILcdARINCProcedureFeature.SUB_TYPE_QUALIFIER1,
ILcdARINCProcedureFeature.SUB_TYPE_QUALIFIER2, ILcdARINCProcedureFeature.GNSS_FMS_INDICATOR
This corresponds to the following properties in the newer properties class:
- TLcdARINCHeliportHandler: TLcdARINCHeliportDataProperties.PAD_IDENTIFIER, TLcdARINCHeliportDataProperties.PAD_DIMENSIONS
- TLcdARINCDMEHandler: TLcdARINCDMEDataProperties.ILS_DME_BIAS, TLcdARINCDMEDataProperties.ILS_DME_BIAS_UNIT, TLcdARINCDMEDataProperties.FIR_IDENTIFIER,
TLcdARINCDMEDataProperties.UIR_IDENTIFIER, TLcdARINCDMEDataProperties.FACILITY_ELEVATION, TLcdARINCDMEDataProperties.FACILITY_ELEVATION_UNIT,
TLcdARINCDMEDataProperties.FACILITY_CHARACTERISTICS
- TLcdARINCVORHandler: TLcdARINCVORDataProperties.FIR_IDENTIFIER, TLcdARINCVORDataProperties.UIR_IDENTIFIER, TLcdARINCVORDataProperties.FACILITY_ELEVATION,
TLcdARINCVORDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCVORDataProperties.FACILITY_CHARACTERISTICS
- TLcdARINCTACANHandler: TLcdARINCTACANDataProperties.FIR_IDENTIFIER, TLcdARINCTACANDataProperties.UIR_IDENTIFIER, TLcdARINCTACANDataProperties.FACILITY_ELEVATION,
TLcdARINCTACANDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCTACANDataProperties.FACILITY_CHARACTERISTICS
- TLcdARINCNDBHandler: TLcdARINCNDBDataProperties.FIR_IDENTIFIER, TLcdARINCNDBDataProperties.UIR_IDENTIFIER, TLcdARINCNDBDataProperties.FACILITY_ELEVATION,
TLcdARINCNDBDataProperties.FACILITY_ELEVATION_UNIT, TLcdARINCNDBDataProperties.FACILITY_CHARACTERISTICS
- TLcdARINCRunwayHandler: TLcdARINCRunwayDataProperties.TOUCHDOWN_ZONE_ELEVATION, TLcdARINCRunwayDataProperties.TOUCHDOWN_ZONE_ELEVATION_UNIT,
TLcdARINCRunwayDataProperties.TRUE_BEARING, TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE, TLcdARINCRunwayDataProperties.THRESHOLD_DISPLACEMENT_DISTANCE_UNIT
- TLcdARINCRestrictiveAirspaceHandler: TLcdARINCRestrictiveAirspaceDataProperties.START_END_DATE, TLcdARINCRestrictiveAirspaceDataProperties.START_END_INDICATOR
- TLcdARINCEnrouteAirwayHandler: TLcdARINCATSRouteSegmentDataProperties.SEQUENCE_NUMBER, TLcdARINCATSRouteSegmentDataProperties.FIX_IDENTIFIER,
TLcdARINCATSRouteSegmentDataProperties.WAYPOINT_DESCRIPTION_CODE
- TLcdARINCProcedureHandler: TLcdARINCProcedureDataProperties.TRANSITION_IDENTIFIER, TLcdARINCProcedureDataProperties.SUB_TYPE,
TLcdARINCProcedureDataProperties.SUB_TYPE_QUALIFIER1, TLcdARINCProcedureDataProperties.SUB_TYPE_QUALIFIER2, TLcdARINCProcedureDataProperties.GNSS_FMS_INDICATOR
The handlers mentioned above were updated accordingly.
ImprovementTiling Engine
LF-1322
Removed the runtime check for Mac OS that would prevent Fusion from starting up on Mac OS. Mac OS is now supported by default.
Bug fixLucy (LuciadLightspeed)
Certain workspaces containing WCS layers would throw an error during decoding caused by a circular reference
problem.
This fix ensures that such workspaces are no longer created.
Unfortunately, it is not possible to salvage the old incorrect workspaces.
Bug fixLucy (LuciadLightspeed)
LUCY-4671
The search field in the table view would lose focus each time the model was updated (for example when the
previewer is active).
That made it impossible to use the search field.
The affected class for this fix is the samples.lucy.tableview.BusyAction
class.
In case you use a copy of the table view sample code you might want to update your local copy of this class.
Bug fixLuciadLightspeed
LCD-9323
OGC Filter: the names for the comparison operators exposed in the capabilities were wrong for Filter 2.0.
Bug fixLuciadLightspeed
LF-1086, LF-1110, LCD-9806
TLfnFileSystemTileStore
: File deletion is now more reliable on Windows. This means that
deleting a coverage or asset is now less likely to throw an IOException.
Bug fixLuciadLightspeed
LCD-9414
Decoding the XML representation of an OGC filter containing an empty literal elements would result in
a
TLcdOGCLiteral
containing an empty list as value. Prior to V2017.0, this would result
in a literal with an empty string. This behavior is now restored.
Bug fixLuciadLightspeed
LCD-3380, LCD-8846
Bug fixLuciadLightspeed
LCD-9407
TLcdGeoPackageModelDecoder
: Points are now always returned when filtering geometries based on their size. This fixes an issue with SLD styling on GeoPackage
models containing points.
Bug fixLuciadLightspeed
LF-1150
Path prefixes (ALfnEnvironment#addPathPrefix
) didn't always work correctly on Windows.
Bug fixLuciadLightspeed
LCD-9395
TLspViewXYZWorldTransformation3D
could fire property change events before the entire state
of the object was updated. This could possibly create problems in listeners that depend on the state being updated.
Bug fixLuciadLightspeed
LCD-9045
Fixed an issue which caused artifacts when visualizing certain tile sets containing (alpha premultiplied) transparency.
This was most noticeable when displaying tiled WMS services providing vector data.
Bug fixLuciadLightspeed
LCD-9522
Fixed an issue with the header length of some CADRG files, which caused the decoder to throw an EOFException.
Bug fixLuciadLightspeed
LCD-9524
Fixed a possible threading issue when decoding XML on multiple threads at the same time.
Bug fixLuciadLightspeed
LCD-9494
The CADRG decoder now detects and attempts to correct an offsetted subframe mask table, which would otherwise result in decoding
errors.
Bug fixLuciadLightspeed
Fixed a rare
ConcurrentModificationException
when constructing a new
TLcdXMLEntityResolver
using the default constructor.
Bug fixWeather & Environment Standards
LCD-9443
Fixed a performance problem in
TLcdNetCDFModelDecoder
for NetCDF files that contain
data with a large number of pixels.
Bug fixAviation Standards
LCD-9384
LCD-8432 introduced thread unsafe behavior when dealing with Procedures. This has been fixed.
Upgrade considerationLuciadLightspeed
LCD-9513, LCD-8614
Ensured that
TLspEditingStateEvent
supports multiple objects in a single event. This allows
editing state listeners to be more efficient when editing a large group of objects.
This incompatible change removes the
TLspEditingStateEvent.getObject()
method
in favor of a
TLspEditingStateEvent.getObjects()
method, which returns a list of objects, instead
of a single domain objects.
If you have code that relies on
TLspEditingStateEvent
objects, you can easily update your code by
iterating over the list of objects returned by
TLspEditingStateEvent.getObjects()
in a for loop,
and handle the event one by one.
Note that if you manually used to call
ALspEditor.edit()
in your code, without using a
TLspEditController
, you now also have to call
ILspInteractivePaintableLayer.editedObjectChanged()
explicitly in your own code. The responsibility of calling this method has been moved from the editor to the controller. The
default
TLspCreateController
and
TLspEditController
have been updated to reflect
this, but if you have your own controller (that does not extend from either controllers), then you might have to call
ILspInteractivePaintableLayer.editedObjectChanged()
directly in your controller.
Upgrade considerationLuciadLightspeed
Upgraded JTS to version 1.14.0
The dependency changed from com.vividsolutions:jts:1.8 to com.vividsolutions:jts-core:1.14.0
Upgrade considerationLuciadLightspeed
LCD-6951
The ArcInfo ASCII Grid format does not include metadata for specifying the coordinate reference system (CRS) of the
data.
This needs to be specified using an external file (eg .prj or .ref) which is handled by the
ILcdModelReferenceDecoder.
The decoder no longer has a default model reference (EGM96) as fall-back when no external geo-reference is found.
This makes it visible that important metadata is missing rather than showing the data at a wrong location.
The behavior is consistent with other model decoders.
Users that want to get the behavior as before can do this based on the following fragment in their application
code.
TLcdArcInfoASCIIGridModelDecoder arcInfoASCIIGridModelDecoder = new TLcdArcInfoASCIIGridModelDecoder();
arcInfoASCIIGridModelDecoder.setDefaultModelReference(
new TLcdGeodeticReference(new TLcdGeoidGeodeticDatumFactory().createGeodeticDatum(EGM96_GRID_BILINEAR))
);
Upgrade considerationLucy (LuciadLightspeed)
TLcyLspLayerCustomizerAddOn
now extends from
ALcyPreferencesAddOn
.
If you are using your own
addons.xml
file, make sure to specify the configuration file for
this add-on.
The default config file is located at
lucy/layercustomizer/lightspeed/TLcyLspLayerCustomizerAddOn.cfg
.
Upgrade considerationOGC Server
The CSW API is now final.
The following changes were made since the 2017.0 release:
ALcdCSWRecordDescriptor
has been renamed to TLcdCSWRecordType and all subclasses have been replaced by constants.
ILcdCSWQueryHandler
is now part of ILcdCSWCapabilitiesProvider
.
ILcdCSWQueryHandler#getQueryLanguages
has moved to ILcdCSWCapabilitiesProvider#getInputRecordTypes
.
ILcdCSWQueryHandler#getOutputRecordTypes
has moved to ILcdCSWCapabilitiesProvider#getOutputRecordTypes
.
ILcdCSWQueryHandler#getFilterCapabilities
has moved to ILcdCSWCapabilitiesProvider#getFilterCapabilities
.
ILcdCSWQueryHandler#getQueryLanguages
has been removed.
ALcdCSWFilterQueryHandler#executeFilter
now passes the original request.
TLcdCSWGetCapabilitiesRequest
has been removed.
TLcdCSWCommandDispatcherContext
has been removed.
ALcdCSWCommandDispatcherFactory#createQueryHandler
has been moved to ILcdCSWCapabilitiesProvider#getQueryHandler
TLcdCSWGetCapabilitiesRequest
: removed getVersion
and setVersion
TLcdCSWOpenSearchTemplate
: removed OutputFormat
in favor of TLcdCSWRecordType
TLcdCSWQuery
: split up get/setElements
into get/setElements
and get/setElementNameSet
TLcdCSWElementSetName
: renamed get/setValueObject
to get/setElementSet
TLcdOpenSearchAtomFeed
: removed some property constants, use the getters and setters instead
TLcdCSWServiceException
: has been moved to the com.luciad.ogc.csw package
TLcdCSWRecordPropertyRetrieverProvider
: now takes a record type as constructor argument
- Several client API related classes have been moved out of the
com.luciad.ogc.csw.server
package
Upgrade considerationWeather & Environment Standards
All API in the com.luciad.format.grib
package has been deprecated.
The NetCDF decoder offers superior support for GRIB and should be used instead.
Upgrade considerationDefense Standards
LCD-9312
When VPF data is decoded via the VPF database header table (dht), the
TLcdVPFModelDecoder
returns an
ILcdModelTreeNode
. At the level that coincides with the VPF database, library and
coverage levels, these
ILcdModelTreeNode
no longer have an
TLcdVPFModelDescriptor
, instead they will now return a
TLcdModelDescriptor
.
As a result of this change, to check if a model contains VPF data, you need to check whether
TLcdVPFModelDescriptor.TYPE_NAME
is equal to
ILcdModelDescriptor#getTypeName
.
Upgrade considerationTiling Engine
The protected TLfnEngineFactory#createEngineSession
method was removed from the API. This
method was not designed to be called or overridden.
2017.0
2017.0.10
ImprovementLuciadLightspeed
LCD-9499
An optimization has been done in the output stream used within the JPEG tile data codec for the case where
there is no need for use of the custom transparency extension.
This avoids writing byte[]
by looping over the individual bytes as is done
in the default implementation of FilterOutputStream
.
Bug fixLuciadLightspeed
LCD-9454
A GeoJson datamodel's type now has an instance class that extends ILcdShapeList as well as ILcdDataObject, so encoders
like the GeoPackage encoder can recognize it
Bug fixLuciadLightspeed
LCD-9502
Parsing esri world files could result in runtime exceptions.
Now such exceptions result in an IOException
.
Bug fixOGC Server
LCD-9506
A WFS 2.0 Transaction Insert request could trigger a request decoding error in the server.
Bug fixOGC Server
LCD-9466
The property link inside a WFS 2.0 Transaction Update request was not correctly encoded (in the client)
and decoded (in the server).
Bug fixTiling Engine
LF-1095
The composite format method ALfnFormat#createAsset(String, List<ALfnAssetMetadata>)
now exposes the reason why an asset could not be created by the underlying delegate formats supporting the data format.
When the delegate format threw an IOException
this exception is forwarded to the caller.
When multiple delegate format implementations indicate they can support the format
(via ALfnFormat#canCreateAsset
) their exceptions are aggregated in a single
IOException
. The source exceptions are available via the suppressed exceptions
and they are logged as warning messages.
2017.0.09
ImprovementLuciadLightspeed
LCD-9455
Improved the performance of OGC Filter evaluation when using successive equal xpath expressions.
ImprovementLuciadLightspeed
LCD-9457
Improved decoding of GML 3.2 documents referring to the SFP 2.0 schema.
ImprovementLuciadLightspeed
LCD-9478
TLcdGML32LineString/TLcdGML31LineString and TLcdGML32LineStringSegment/TLcdGML31LineStringSegment now automatically remove
pointProperty values with a dead xlink.
ImprovementLuciadLightspeed
LCD-9419
TLcdGML32GeodesicString/TLcdGML31GeodesicString now automatically remove pointProperty values with a dead xlink.
ImprovementLuciadLightspeed
LCD-9471
The WMTS client now exposes information about the location of the data inside a layer,
by means of the newly introduced getWGS84LonLatBounds() method in TLcdWMTSLayer.
Bug fixLuciadLightspeed
LCD-9483
TLcdGXYNewController2 and TLcdGXYTouchNewController: in some cases, freehand creation caused duplicate points to appear
in the resulting polyline.
Bug fixLuciadLightspeed
LCD-9466
The property link inside a WFS 2.0 Transaction Update request was not correctly encoded (in the client)
and decoded (in the server).
Bug fixLuciadLightspeed
LCD-9445
Floating licenses for optional components were counted incorrectly since 2017.0. This has been fixed.
Bug fixLuciadLightspeed
LCD-9486
TLcdGXYRoundedPointListPainter: fixed a recent regression (introduced by LCD-9282) that caused some handles not be editable
anymore.
Bug fixLucy (LuciadLightspeed)
LUCY-4673
Bug fixLuciadLightspeed
LCD-9458
Native libraries in the thirdparty OSGi bundle (thirdparty.jar) are now properly exported so the library loader can find them.
2017.0.08
ImprovementLuciadLightspeed
LCD-9425
TLcdServiceLoader
now includes extra information when it cannot find the required
LcdService
annotation.
Additional information includes:
-
The name of the
LcdService
annotation the service loader is looking for as it may be obfuscated.
-
The actual annotations that are available at runtime on the class.
This helps you to find out what is going.
For example when you create a deployment configuration with a mix of obfuscated and non-obfuscated classes.
ImprovementLuciadLightspeed
LCD-9302
The TLcdTFWModelDecoder
now supports JPW
as world file for JPG
images.
ImprovementLucy (LuciadLightspeed)
LUCY-4667
Lucy Map Centric: removing the Luciad logo is now possible by using an empty value for the TLcyLspMapAddOn.logo.imageFileName
property in map_centric_map_addon_MapComponent.cfg
.
ImprovementLuciadLightspeed
LCD-9355
The speed of the method
TLcdOGCWMSProxy.isSupportedXYworldReference
has been improved significantly.
Bug fixLucy (LuciadLightspeed)
LUCY-4669
Table view: the filter UI could show the wrong operator when restoring certain workspaces.
Bug fixLuciadLightspeed
LCD-9351
A WMS map caching issue has been fixed that could lead to an out-of-memory error in the rendering pipeline (Lightspeed / GXY)
in case of
frequent changes on the
ALcdWMSProxy
element (e.g., configuration of dimensions).
Bug fixLuciadLightspeed
LCD-9417
The WFS model
TLcdWFSProxyModel
could determine an incorrect geometry property name in case
of a WFS feature type served by LuciadFusion Platform and backed by an XML Schema with multiple complex types.
Bug fixLuciadLightspeed
LCD-9449
TLcdWKReferenceParser
did not always interpret the latitude_of_origin parameter
for the polar stereographic projection correctly. Also, TLcdWKReferenceFormatter
now
formats the true scale latitude correctly.
Bug fixLuciadLightspeed
LCD-9435
TLspXYGridLayerBuilder
and
TLcdXYGridLayer
: Fixed exception when
no grid data is configured at zoomed out scale levels. This was a regression, introduced by the fixes for
LCD-9383 and LCD-9387.
Bug fixLucy (LuciadLightspeed)
LUCY-4668
The TLcyWCSAddOn
did not show the service description metadata of a connected WCS in the WCS connection dialog.
Bug fixLuciadLightspeed
LCD-9438
TLspGXYLayerAdapter
: when switching between polar south and north projections, a repaint was not triggered.
Bug fixLuciadLightspeed
LCD-9353
The method TLcdOGCWMSProxy.isSupportedXYworldReference
was sometimes incorrect.
It could return a false positive.
For example when the server reported to support EPSG:3266
the method would
return true when checking for EPSG:32662
even when the server did not advertise
support for the latter.
Bug fixLuciadLightspeed
LCD-9420
Bug fixLucy (LuciadLightspeed)
LUCY-4666
The
TLcySelectionEditorAddOn
could throw a NullPointerException when the
object properties panel was visible and a model change happened.
Bug fixDefense Symbology
LCD-9423
Fixed issue where the 'Radioactive Material (6.X.1.4.11)' symbol became bloated when the symbol fill was disabled.
Bug fixDefense Symbology
LCD-4059
Added Range and altitude label to the 'Weapon Range/Fan - Circular' and 'Weapon Range/Fan - Sector' symbols for MIL-STD 2525.
Upgrade considerationDefense Symbology
LCD-9300, LCD-9303
TLcdNVGGXYPainterProvider/TLspNVGStyler: reversed the arrow direction for some symbols to be compliant with the NVG
to APP6/MIL-STD binding specifications.
Affected symbols
APP6a / APP6b
Name |
Code(SIDC) |
Hierarchy Code |
Counterattack (CATK) |
G*T*GK----***** |
2.X.1.1.7 |
Counterattack by Fire |
GFC*MOLAF-***** |
2.X.1.1.7.1 |
Axis of Advance - Friendly Aviation |
GFC*MOLAF-***** |
2.X.2.1.5.2.1.1 |
Axis of Advance - Friendly Airborne |
GFC*MOLAA-***** |
2.X.2.1.5.2.1.2 |
Axis of Advance - Friendly Attack Helicopter |
GFC*MOLAH-***** |
2.X.2.1.5.2.1.3 |
Axis of Advance - Friendly Ground Axis Of Supporting Attack |
GFC*MOLAS-***** |
2.X.2.1.5.2.1.4 |
Axis of Advance - Friendly Ground Axis Of Main Attack |
GFC*MOLAM-***** |
2.X.2.1.5.2.1.5 |
Axis of Advance - Friendly Ground Axis On Order With Date and Time (If Known) Effective |
G*C*MOLAO-***** |
2.X.2.1.5.2.1.6 |
Axis of Advance - Enemy Confirmed |
GHC*MOLAE-***** |
2.X.2.1.5.2.1.7 |
Axis of Advance - Enemy Templated |
GHC*MOLAT-***** |
2.X.2.1.5.2.1.8 |
Direction Of Attack - Enemy Confirmed/Known Ground |
G*C*MOLDG-***** |
2.X.2.1.5.2.2.5 |
Direction Of Attack - Templated Enemy Ground |
G*C*MOLDG-***** |
2.X.2.1.5.2.2.6 |
Direction Of Attack - Friendly Planned or On Order |
G*C*MOLDO-***** |
2.X.2.1.5.2.2.9 |
APP6c
Name |
Code(SIDC) |
Counterattack (CATK) |
10002500003214000000 |
Counterattack by Fire |
10002500003215000000 |
Airborne/Aviation Axis of Advance Aviation |
10002500001513000000 |
Main Attack/Decisive |
10002500001514000000 |
Supporting Attack/Shaping |
10002500001515000000 |
Supporting Attack/Shaping - Feint |
10002500001515010000 |
Mission Tasks/Verbs - Attack |
10002500003204000000 |
MS2525b / MS2525c
Name |
Code(SIDC) |
Hierarchy Code |
Counterattack (CATK) |
G*T*K-----****X |
2.X.1.7 |
Counterattack by Fire |
G*T*KF----****X |
2.X.1.7.1 |
Axis of Advance - Aviation |
G*G*OLAV------X |
2.X.2.5.2.1.1 |
Axis of Advance - Airborne |
G*G*OLAA------X |
2.X.2.5.2.1.2 |
Axis of Advance - Attack, Rotary Wing |
G*G*OLAR------X |
2.X.2.5.2.1.3 |
Axis of Advance - Main Attack |
G*G*OLAGM-----X |
2.X.2.5.2.1.4.1 |
Axis of Advance - Supporting Attack |
G*G*OLAGS-----X |
2.X.2.5.2.1.4.2 |
Axis of Advance For Feint |
G*G*PA--------X |
2.X.2.3.2 |
2017.0.07
ImprovementLuciadLightspeed
LCD-9391
Bug fixLuciadLightspeed
LCD-9389
Unsafe symbols, e.g. spaces, in the artifactId of some LuciadLightspeed components are now replaced by underscores.
This should fix any POM validation errors you may have encountered.
Bug fixLucy (LuciadLightspeed)
LUCY-4660
The filter UI in the table view was not correctly restored when the defined filter used the "in" operator.
For example after workspace loading, the value field would remain empty.
Bug fixLuciadLightspeed
LCD-9401
Fixed issue within GeoTIFF model decoder for certain BigTIFF files.
BigTIFF files with RGB data having an extra sample per pixel with unspecified meaning could lead to
an exception with the message Invalid scanline stride
in java 8.
Bug fixLuciadLightspeed
LCD-9316
When painting a point with height 0 and ElevationMode
OBJECT_DEPENDENT
,
ON_TERRAIN
or ABOVE_TERRAIN
, its body and label were painted at an
incorrect height when the datum of the model reference was different than the datum of the terrain reference (WGS84).
Bug fixLuciadLightspeed
LCD-9387
Bug fixLuciadLightspeed
LCD-9383
Bug fixLuciadLightspeed
LCD-9380
The SLD dynamic icon location support introduced by LCD-9207 did not work properly in case of OGC
Symbology Encoding 1.1.
Bug fixDefense Standards
LCD-9261
TLcdVPFModelDecoder
: An ArrayIndexOutOfBoundsException was thrown when the header
of an FCS table indicated a wrong row count. Now the decoder reads all the rows from the table and logs a warning
when the row count does not match.
Upgrade considerationLuciadLightspeed
LCD-9390
The
isUseDataSourceAsFallback
and
setUseDataSourceAsFallback
were
removed from the
TLcdRPCModelReferenceDecoder
class. These methods were added starting from
the 2016.1.37 LuciadLightspeed patch release to solve a performance problem (LCD-8979). A better fix was added,
which doesn't require these methods anymore. Compile errors can be solved by not calling these methods anymore.
2017.0.06
ImprovementLuciadLightspeed
ImprovementDefense Standards
LCD-9370
The NITF, CADRG and ECRG decoders now support all data series codes that were added in MIL-STD-2411-1 Change 3 (2010).
Codes without a predefined scale (CG, CM, CO, HA, IV, M1, M2, MM, OA) and codes with sub-meter resolution (I5) are recognized,
but can't be decoded.
The ECRG decoder will issue a warning if an unsupported frame is encountered, but still try to decode the remaining frames.
Bug fixLuciadLightspeed
LCD-9375
The Maven configuration was updated with the libraries that were changed or added for 2017.0.
Broken links to Maven Central, which caused some libraries to be miscategorized as provided by Luciad, were restored.
Bug fixLucy (LuciadLightspeed)
LUCY-4659
Due to the introduction of LUCY-4518, it had become impossible to plug in the sample TableViewAddOn and LspTableViewAddOn
at the same time, because those add-ons extend from each other.
This is fixed by adjusting the LspTableViewAddOn class so it no longer extends from the TableViewAddOn.
Bug fixLuciadLightspeed
LCD-9372
TLcdUtmMgrsUtil
returned an (incorrect) location when converting a non-existing MGRS
coordinate to a lon lat coordinate instead of throwing a
ParseException
.
Bug fixOGC Server
LCD-9371
When registering custom encoders with the same mime-type in the WMS server lower priority encoder implementations
overwrote higher priority implementations.
Bug fixAviation Standards
LCD-9365
TLcdAerodromeType and TLcdAIXMAerodromeHandler now offer support for the fourth possible aerodrome type (according
to the AIXM 4.5 specs), i.e. 'LS' (Landing Site).
Bug fixAviation Standards
LCD-9269
Fix for the type of route segment not being visualized in Lightspeed.
Bug fixDefense Symbology
LCD-9377
Fixed issue were the label font size was not applied properly for some symbols when ILcdAPP6AStyle.isLabelFontScalingEnabled
or ILcdMS2525bStyle.isLabelFontScalingEnabled was set to false.
Bug fixMaritime Standards
LCD-9382
In some cases when using AML, objects below other objects were selected instead of the topmost object.
2017.0.05
ImprovementGraph and Routing Engine
LCD-7514
TLcdGraph#addEdge
now throws an IllegalArgumentException
with a clear
message when this method is called with a start or end node that is not part of the graph.
Bug fixLuciadLightspeed
LCD-8559
Bug fixLuciadLightspeed
LCD-9352
When using a
TLcdGeodeticDatum
instance created using the default constructor, modifying a
property (for example the prime meridian) would change its reference datum as well. This could result in incorrect
transformations between references with different geodetic datums, and incorrect reference encoding
(for example EPSG/WKT).
Bug fixAviation Standards
LCD-9305
The TLcdDAFIFModelDecoder#canDecodeSource
method didn't handle unsupported source file names
well, so now it checks for supported as well as unsupported source file names.
2017.0.04
ImprovementLuciadLightspeed
LCD-9320
Bug fixLuciadLightspeed
LCD-9314
TLcdColorConvertOp: fixed an alpha band issue when converting color spaces.
This issue caused certain GeoTIFF files to not be displayed properly.
Bug fixDefense Symbology
LCD-9345
Fixed issue for MIL-STD-2525c where the flagpole wasn't displayed properly for HQ symbols under the "Emergency Management"
track (hierarchy code 6.x).
2017.0.03
ImprovementLuciadLightspeed
LCD-9331
The GetFeatureInfo domain object
TLcdWMSGetFeatureInfoRequest
has a new method
setAdditionalParameters
,
enabling users to include vendor-specific parameters in GetFeatureInfo KVP requests.
ImprovementDefense Symbology
LCD-9282
Improved consistency when editing multiple symbols at the same time in a GXY view.
More specifically, dragging the outline of a shape translates all the shapes, while dragging a handle point only changes that
handle.
ImprovementDefense Symbology
LCD-9251
Label font style now also affects echelon, affiliation and other symbol decoration in GXY views.
This was already supported in Lightspeed views.
ImprovementS-63
LCD-9317
When there are multiple cell permit files configured, the S63 decoders will use the cell permits associated with your current
user permit.
Earlier, the first file would be used, even if not related to your user permit, causing decoding failures.
Note that you will get warning logging indicating that certain cell permit files could not be used.
Bug fixLuciadLightspeed
LCD-9335
Bug fixLuciadLightspeed
LCD-9324
Bug fixDefense Symbology
LCD-9319
Fixed a regression in GXY views that caused polygon symbols to be filled when selecting or editing them.
Bug fixDefense Symbology
LCD-9003
Fixed issue where the label position of 'Support by fire position' symbols did not get updated when the symbol was moved.
Upgrade considerationLuciadLightspeed
LCD-9301
TLcdSHPDomainObject.clone
now has extra checks to prevent NullPointerException's when f.e. editing SHP files without DBF data.
2017.0.02
ImprovementLuciadLightspeed
LCD-9292, LCD-7643
ImprovementLucy (LuciadLightspeed)
LUCY-4648
TLcyConnectionAddOn
: it is now possible to configure default paths.
See the
TLcyConnectionAddOn.cacheSettings.default_strings_path
property in the
TLcyConnectionAddOn.cfg
config file for more information.
ImprovementLuciadLightspeed
LCD-9289
The SLD implementation now supports Base64-encoded embedded graphic icons that also include mime type information.
ImprovementLuciadLightspeed
LCD-9076
TLcdVVTerrainModel now supports variable (per segment) terrain sampling rates. The sample
interval for each segment can be specified by overriding the calculateStepSize() method.
ImprovementLucy (LuciadLightspeed)
LUCY-4642
TLcyWFSClientAddOn
: the straight line mode of the pen is now configurable, and
switched to false by default.
ImprovementLuciadLightspeed
LCD-9242
An SLD fill pattern is now anchored on a world point of the view.
This makes the pattern aligned over tiles when used in a tiled WMS.
ImprovementOGC Server
LCD-9197
The disk tile cache checks whether sufficient disk space is left on the device.
If not the size of the disk cache is reduced automatically and a warning is logged.
ImprovementOGC Server
LCD-9200
The clearing of the disk cache on exit of the application is improved.
Some folders where not deleted cluttering the file system.
ImprovementDefense Symbology
LCD-9293
Added the following possible text modifiers for all symbols under 1.x.6 in APP6-a and APP6-b:
- Combat Effectiveness
- Higher Formation
- Reinforced Or Reduced
Bug fixLucy (LuciadLightspeed)
LUCY-4647
The UI to add a filter in the table view would throw an exception when a filter for a numeric property was created,
and the workspace was saved and restored.
Bug fixLuciadLightspeed
LF-1280
The LTS and LFS clients now better handle response content types that contain a character encoding.
Bug fixLuciadLightspeed
LCD-9306
GeoTIFF files with RPC00B coefficients take precedence over other geo-reference tag information.
In some cases the CRS correctly used the RPC00B coefficients for determining the model reference
but incorrectly still used other tags for positioning the image within the model reference.
This applies to JPEG2000 as well.
Bug fixLuciadLightspeed
LCD-9304
In rare cases, TLcdAlbersEqualAreaConic#world2DEditableBoundsOnEllipsoidSFCT
could
return incorrect bounds.
Bug fixLuciadLightspeed
LCD-9072
Bug fixLuciadLightspeed
LCD-9107
Fixed an SLD regression in 2016.1.x and 2017.0 that caused raster images to disappear in case of an SLD with a
custom color map.
Bug fixLuciadLightspeed
LCD-7466
Bug fixLuciadLightspeed
LCD-9288
Fixed a memory leak that could occur in TLspLabelPainter when painting many moving objects with a changing
label content. This could lead to an OutOfMemoryError after some time.
Bug fixLuciadLightspeed
LCD-9276
Fixed an issue where, in some rare cases, toggling the visibility of a layer painting a tile set could prevent painting from
finishing.
Bug fixLuciadLightspeed
LCD-8403, LCD-8750
You no longer need to specify the nut.nativeDir
system property to be able to
use license files with iButton keys. All necessary libraries are now packaged inside jar files, and will be
found from the classpath now instead of the native library path.
Bug fixLuciadLightspeed
LCD-9271
Fixed case of decoding GeoTIFF using the ModelTransformationTag for positioning the image in combination with
a geodetic reference. This was a regression caused by implementing LCD-9202
.
Bug fixLucy (LuciadLightspeed)
LCD-8979
It takes a very long time to open the reference chooser dialog (provided by
TLcyModelReferenceAddOn
)
when loading a large file without spatial reference.
Bug fixTerrain Analysis Engine
LCD-9249
Fixed a bug that caused TLcdBoundedCompositeViewshed to not always return the correct visibility.
Bug fixDefense Standards
LCD-9287
Bug fixDefense Symbology
LCD-9195
Fill patterns are aligned using an achor point based on a world point of the view.
This makes the visualization of NVG within a tiled WMS consistent.
Bug fixDefense Symbology
LCD-9299
Fixed issue where NVG 1.5 arrows weren't rendered with the correct width.
Bug fixDefense Symbology
LCD-9037
Improved painting of haloed movement arrow by taking into account halo thickness when defining arrow icon bounds etc.
Bug fixDefense Symbology
LCD-9090
Added missing text modifiers for some icon symbols.
Bug fixDefense Symbology
LCD-9114
Fixed issue where the symbol line styles were ignored for offset lines in Lightspeed views.
2017.0.01
ImprovementLuciadLightspeed
LCD-9207
The SLD implementation now supports dynamic locations for external graphic icons: an icon location can include
{$propertyName} variables, referring to actual properties of the features to be styled.
ImprovementLuciadLightspeed
LCD-8973
ImprovementLucy (LuciadLightspeed)
LUCY-4635
ImprovementLuciadLightspeed
LCD-7829
ImprovementLuciadLightspeed
LCD-8799
ImprovementLuciadLightspeed
LCD-8989
The GeoTIFF model decoder now detects if a user-defined reference is used if the GTCitationGeoKey
contains the value WGS_1984_Web_Mercator_Auxiliary_Sphere
.
If this is the case the EPSG:3857 reference (Web Mercator) is used.
ImprovementLuciadLightspeed
LCD-9182
ImprovementLuciadLightspeed
LCD-9203
TLspRulerController#setMeasureMode
will now throw an exception when trying to set
the measure mode to null.
ImprovementLuciadLightspeed
LCD-2155
ImprovementLucy (LuciadLightspeed)
LUCY-4620
The domain object customizer panel (factory) for MS2525 and APP6 domain objects is now available as sample code,
making it easier to customize this UI. The class javadoc of the
TLcyMs2525bAddOn
and the
TLcyAPP6AAddOn
contain more information on how to plug in a custom object properties panel.
ImprovementLuciadLightspeed
LCD-8189
The GeoTIFF model decoder now decodes geo-references using the RPC00B coefficients without requiring a world file (.tfw).
When no geo-reference data is available as GeoTIFF tags the decoder looks for the existence of the optional
_rpc.txt
which contains the RPC00B coefficients.
ImprovementOGC Server
LF-1145
It is now possible to add an updateSequence to the WCS Capabilities. See
ILcdWCSCapabilitiesProvider#getUpdateSequence
.
ImprovementWeather & Environment Standards
LCD-9181
GRIB models decoded using
TLcdNetCDFModelDecoder
now expose the original GRIB metadata,
see
TLcdNetCDFModelDescriptor#getGRIBMetadata
.
ImprovementDefense Symbology
LCD-8529
Added support for 'icc' standard for symbols.
Symbols that start with the 'icc' standard will be resolved the same way as symbols that start with the 'icon' standard.
ImprovementDefense Symbology
LCD-9003
Added the possibility to display the unique designation property of the Following symbols:
for MIL-STD 2525c:
- 2.X.2.2.2.2
- 2.X.2.2.2.4
- 2.X.2.2.2.5
- 2.X.2.4.2.1
- 2.X.2.5.3.3
- 2.X.2.5.3.4
- 2.X.2.6.1.1
- 2.X.5.2.1.1
- 2.X.5.2.1.2
- 2.X.3.2.2.1
- 2.X.3.2.2.2
- 2.X.3.2.2.5
- 2.X.3.1.9.4
- 2.X.3.1.10
for APP-6a:
- 2.X.2.1.2.2.2
- 2.X.2.1.2.2.4
- 2.X.2.1.2.2.5
- 2.X.2.1.4.2.1
- 2.X.2.1.5.3.3
- 2.X.2.1.5.3.4
- 2.X.2.1.6.1.2
- 2.X.2.2.1.11.4
- 2.X.2.2.1.12
- 2.X.2.2.2.2.1
- 2.X.2.2.2.2.2
- 2.X.2.2.2.2.5
- 2.X.2.3.3.11
- 2.X.2.4.2.1.1
- 2.X.2.4.2.1.2
ImprovementTiling Engine
LF-1099
The quality setting of the JPEG tile data codec used in the Fusion Engine can be controlled with a system property.
To set the value to 0.95 use -Dcom.luciad.fusion.tilestore.jpeq.quality=0.95
.
The default quality value used is 0.9
.
Bug fixLuciadLightspeed
LCD-9247
The iterator returned by TLcdLocationListLabelingAlgorithmSupport#createLabelPlacementIterator
didn't always behave correctly. Calling hasNext() multiple times without calling next() could result in a different
result. This could lead to ArrayIndexOutOfBoundsExceptions
.
Bug fixLuciadLightspeed
LCD-9057
ALspStyle
which have a color property, assumed that the color was defined in the sRGB color
space. Now the color space is taken into account.
Bug fixLuciadLightspeed
LCD-6586, LCD-4856
TLcdUTMGrid
could contain an incorrect EPSG authority code in its metadata after modifying
the zone, hemisphere, geodetic datum or projection.
Bug fixLuciadLightspeed
LCD-6608
Bug fixLuciadLightspeed
LCD-7882
TLcdAlbersEqualAreaConic#world2lonlatOnEllipsoidSFCT
would create points containing a
NaN value when using a spherical ellipsoid.
Bug fixLuciadLightspeed
LCD-9204
Bug fixLuciadLightspeed
LCD-9202
Fixed too enthusiastic derivation of model references introduced by fixing LCD-8981.
There is often no need to.
Bug fixLuciadLightspeed
LCD-9188
Bug fixLuciadLightspeed
LCD-9183
Fixed an issue where touch input might break when tapping on a
component while that component gets hidden (for example, a dialog's close button).
Bug fixLuciadLightspeed
LCD-9088
The GeoTIFF model decoder now uses the Oblique Mercator variant B as default when a user defined projection CS is
used with value CT_ObliqueMercator
.
The decoder also handles geographic CS types codes based on ellipsoid only.
Bug fixLuciadLightspeed
LCD-9085
TLcdLonLatGeoBuffer
instances that contain a base shape with non-consecutive coinciding
points could be visualized incorrectly.
Bug fixLucy (LuciadLightspeed)
LUCY-4598
The extract offset line tool now used ellipsoidal calculations instead of spherical calculations. This makes
the tool produce more precise results.
Bug fixLuciadLightspeed
The TLcdEllipsoid#bufferContour2DOfSegmentSFCT
and
TLcdEllipsoid#bufferContour2DOf2DPolylineSFCT
methods now use geodetic
calculations instead of spherical calculations.
Bug fixLuciadLightspeed
LCD-9088
For some configurations of
TLcdObliqueMercator
, converting from world to
lon-lat could result in points with NaN values.
Bug fixLuciadLightspeed
LCD-9103
The OGC clients threw an incorrect exception (TLcdOWSUnsupportedVersionException) when a HTML website was accessed
that did not represent an OGC web service.
Bug fixOGC Server
LCD-9244
The OGC WMS server incorrectly used a lon lat instead of a lat lon axis order when interpreting the bounding box
information of a GetMap request with CRS urn:ogc:def:crs:EPSG::4326.
Bug fixReal-time Engine
LCD-9152
TLspRadarVideoLayerBuilder: radar layers removed from the view did not release all retained memory.
Bug fixAviation Standards
LCD-9245
TLcdARINCModelDecoder#canDecodeSource returns false incorrectly sometime due to LCD-8984. This has been fixed.
Bug fixTiling Engine
LF-1109, LF-1019
Fixed performance regression introduced by the fix of LF-1075 that cause very long loading times for tile stores
with many coverages on Linux.
2017.0
ImprovementLuciadLightspeed
An new Dublin Core metadata package is now available in com.luciad.format.metadata.dc.model
.
It provides support for the DCMI's specification for metadata.
ImprovementLuciadLightspeed
An new ATOM metadata package is now available in com.luciad.format.metadata.atom.model
.
It provides support for describing metadata using the Atom Syndication Format.
ImprovementLuciadLightspeed
Added a new, generic cartesian reference that can be used as a model reference or world reference.
You can optionally specify a unit of measure (ILcdISO19103UnitOfMeasure
) per axis.
This reference can be used to specify any non geospatial 2D X/Y plane or 3D X/Y/Z volume.
See TLcdCartesianReference
for more information, or the TimeView
sample code where it is used for a time-line.
ImprovementLuciadLightspeed
TLcdUnitOfMeasureFactory
: a number of predefined unit of measures have been added as
constants to
this class. Part of these constants were already available in the API, but are now grouped in a central location to
make
it easier to find them.
ImprovementLuciadLightspeed
TLcdOGCSortBy
: new (static) methods are added, which facilitate the creation of a sort-by
instance
for the most common use-cases. See the
comparing
and
thenComparing
methods.
A utility method to convert the sort-by condition to a
java.util.Comparator
has also been
added
(see the
asComparator
method).
ImprovementLuciadLightspeed
The SLD GXY implementation now supports the rendering of curved labels that follow a feature's geometry;
a common example is the labeling of road names. This capability can be enabled on a
TLcdSLDTextSymbolizer
by configuring an SLD vendor option with name
followLine
and value
true
.
ImprovementLuciadLightspeed
New custom OGC functions have been introduced which operate on strings: see
TLcdOGCVendorSpecificFunctions.STRING_LENGTH_FUNCTION_NAME
,
TLcdOGCVendorSpecificFunctions.STRING_SUBSTRING_FUNCTION_NAME
,
TLcdOGCVendorSpecificFunctions.STRING_SUBSTRING_START_FUNCTION_NAME
,
TLcdOGCVendorSpecificFunctions.STRING_TO_LOWER_CASE_FUNCTION_NAME
and
TLcdOGCVendorSpecificFunctions.STRING_TO_UPPER_CASE_FUNCTION_NAME
.
ImprovementLucy (LuciadLightspeed)
LCD-8856
TLcyS63FormatAddOn
: the configuration file now allows to specify your S63 customer id.
Consult the documentation of the
TLcyS63FormatAddOn.s63CustomerSystemID
property in the
TLcyS63FormatAddOn.cfg
file for more information.
ImprovementLuciadLightspeed
Some changes to the product directory structure have been implemented:
-
The
resources
directory in the installation root has been renamed to config
to better reflect its content type.
-
All sample Proguard configuration files have been collected into
build/proguard
instead of being scattered around.
ImprovementLuciadLightspeed
The WFS client now supports the new "minBoundsSize" OGC function.
When used with servers that support this function (for example LuciadFusion), the function is evaluated by the
server, so the client can avoid retrieving small elements.
This function allows to filter out elements which do not have a certain minimum size. A use-case of this function
is requesting only the elements which will be visible when painting data on a map at a certain scale, and skip
all objects which are too small.
For more information, see TLcdOGCVendorSpecificFunctions
.
ImprovementLuciadLightspeed
LCD-7622
TLcdDataModelDescriptor
now uses sensible defaults for model element types and model types if you pass null for the respective arguments:
- The
TLcdDataModel.getDeclaredTypes()
are used as model element types if you pass null.
- The
TLcdDataModel.getTypes()
are used as model types if you pass null.
ImprovementLucy (LuciadLightspeed)
LUCY-4612
When adding WMS layers to a Lightspeed view using a connection dialog, the map now fits on the added data.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnvListener
: new static methods have been added which facilitate the
creation of Lucy env listeners.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
TLcdSymbol
now has a new symbol type: a filled circle with a double outline.
ImprovementLuciadLightspeed
Added new parameter to
TLcdKML22Parameter
called "asynchronousAllowed". This allows you to set whether dynamic
models should retrieve their resources synchronously or asynchronously. The default behavior is asynchronous, as
before. We recommend setting this parameter to false when working on a server-side application such as WMS.
Note that by default, if you are already using a parameters updater object, such as
TLcdKML22GXYViewParametersUpdater
,
TLcdKML22GXYViewParametersUpdater,
then this will automatically update this setting based on the preferences of the currently active view.
ImprovementLuciadLightspeed
Added decoding/encoding support for GML 3.2 coverages (see
TLcdGML32AbstractCoverage
and subclasses).
Note that visualization of or image operations on GML coverages are not supported.
ImprovementLuciadLightspeed
LCD-8853
To be able to use an existing OpenGL texture object with
ALspTextureObject
, it was required
to overwrite
all the methods of this class. Now it's only required to overwrite
ALspTextureObject#getTextureObject
to provide the OpenGL texture object ID.
ImprovementLuciadLightspeed
LCD-8974
A new custom OGC function is introduced: see
TLcdOGCVendorSpecificFunctions.GEOMETRY_TYPE_FUNCTION_NAME
.
This function allows to filter on specific geometry types.
A use-case for this function is having SLD rules which only apply on a specific geometry type.
ImprovementLuciadLightspeed
TLcdWFSProxyModel.Builder
: a new
modelDecoder
method is available
which allows to specify a model decoder for a specific output format.
ImprovementLucy (LuciadLightspeed)
Connecting to a WFS server will now request data in GeoJSON format when available.
This improves the performance and avoids GML specific properties on the domain objects at the client side.
Those properties were visible in the object properties panel and the table view.
ImprovementLuciadLightspeed
A new custom OGC function is introduced: see
TLcdOGCVendorSpecificFunctions.MIN_BOUNDS_SIZE_FUNCTION_NAME
and TLcdOGCFilterFactory#minBoundsSize
.
This function allows to filter out elements which do not have a certain minimum size. A use-case of this function
is requesting only the elements which will be visible when painting data on a map at a certain scale, and skip
all objects which are too small.
ImprovementLuciadLightspeed
The scale range of a layer in a 3D view is now applied using a local scale instead of a single scale per view.
Unlike a 2D view, a 3D view does not have a single map scale, every point in the visible area in a 3D view has another scale.
Previously, the scale range was all-or-nothing, based on a scale determined at one location on the screen.
Now, within one view the layer can load data for nearby regions within the scale range, and leave out data for regions outside
the scale range.
If you have a TLcdModelQueryConfiguration
on a layer in 3D, the layer will use different OGC conditions for different regions in your view at the same time.
For example, within one view you can have major roads in the distance as well as minor roads nearby.
The "minimum object size for painting" setting on a layer is also applied adaptively.
Previously, each frame one uniform pixel size was used for the entire layer, based on a scale determined at one location on
the screen.
Now, the layer can load smaller elements near the viewer and only larger elements further in the distance.
ImprovementLuciadLightspeed
Improved handling of large vector data sets by introducing the ILcdModel.query
method and
the concept of a TLcdModelQueryConfiguration
which can be set on a TLspLayer
and
TLcdGXYLayer
.
- The new default method
ILcdModel.query
method allows to request from a model all
elements that match a certain OGC filter.
That OGC filter can contain a "BBOX" operator as well as other non-spatial conditions.
You can also specify a certain order and/or limit.
- Since it's a default method, it is available for all
ILcdModel
s.
By default, it will use applyOnInteracts2DBounds
if available, or elements
otherwise.
This means most in-memory models will use a spatial tree to evaluate the spatial part of the OGC filter,
and evaluate other parts by testing all remaining elements.
- Certain models have an optimized implementation of the
ILcdModel#query
method.
For example database models will convert the OGC filter to SQL and let the database do the filtering.
WFS models will send the filter to the WFS server so that the server can perform the filtering, and only needs
to send the requested elements back to the client.
- By configuring a
TLcdModelQueryConfiguration
on the layer, you can specify
which OGC filter the layer should use at a certain scale when it queries the model. This allows to reduce the
amount of data the layer loads at certain scales. This also works in 3D, where the scale is not uniform across the screen.
See TLspShapeLayerBuilder.modelQueryConfiguration
and
TLcdGXYLayer.setModelQueryConfiguration
.
- When a layer is styled using SLD styling, a
TLcdModelQueryConfiguration
is
automatically
derived from the SLD to ensure that only the data which will be visualized is loaded. See for
example TLspShapeLayerBuilder.sldStyle
.
For more information, please refer to the javadoc of
TLcdModelQueryConfiguration
or the LuciadLightspeed Developer's Guide.
See also the article
How to visualize OpenStreetMap data sets with LuciadLightspeed
on the
Luciad Developer Platform for an example use case.
ImprovementLuciadLightspeed
LCD-8678
Several API usability improvements were made for working with OGC filters:
ImprovementLuciadLightspeed
Several minor inconsistencies in the different evaluators for OGC filters have been fixed. An example of such an
inconsistency is
an evaluator which would return true for A == B but false for A >= B.
ImprovementLucy (LuciadLightspeed)
On a Lightspeed map, SLD files next to the source data are now picked up automatically and used to style the layers.
This mechanism can be used to configure scale ranges on a layer, to apply more advanced styling, to limit the amount
of data that is loaded, ... .
The automatic detection of SLD files is also integrated in ALcyLspStyleFormat
, allowing you
to use this mechanism in your own formats.
ImprovementLucy (LuciadLightspeed)
The SearchAddOn
can now search through WFS and database models as well by using the new
ILcdModel#query
API.
This new API is now used for all models.
ImprovementLucy (LuciadLightspeed)
LUCY-4558
The Lucy table view now works for all models instead of only for ILcdIntegerIndexedModel
. This
allows for example to show a table view for WFS and database models.
This is achieved by using the new ILcdModel#query
API.
-
The model is queried on a background thread, avoiding that slow models (like for example a WFS model) would
block the UI.
-
The table view has UI to define an OGC filter for a layer.
-
Only a limited number of rows is shown in the table view, instead of the whole model.
This avoids for example loading a whole database table into memory.
This limit can be configured in the configuration file.
ImprovementLuciadLightspeed
LCD-8418, LCD-7697
ALspCameraConstraint
can now be used to constrain parameters other
than those passed to
lookAt()
and
lookFrom()
,
such as the field of view or the near and far clipping planes. This improvement also fixes possible
drifting of a 3D camera when a constraint is active (reported in LCD-7697).
ImprovementLuciadLightspeed
XML framework: improved the handling of content in elements of the "any" type.
ImprovementLuciadLightspeed
LCD-8743
The WFS model
TLcdWFSProxyModel
now properly takes into account all bounding
boxes of a feature type to locate the data. In the past, only one bounding box was considered, which is the
most common use case.
ImprovementLuciadLightspeed
LCD-8968
ILcdModelDecoder
now has a method to retrieve all
ILcdDataSource
instances for a given source path. This method can be used in conjunction with the new API to retrieve a specific
ILcdModel
custom model decoder that wraps an existing
ILcdModelDecoder
,
we highly recommend delegating these new default interface methods as well.
ImprovementLuciadLightspeed
LCD-8896
An new ISO metadata package is now available in com.luciad.format.metadata.model.service
.
It provides support for the ISO 19119 specification for Geographic information Services.
ImprovementLuciadLightspeed
LCD-8965
All common implementations of
ILcdISO19103UnitOfMeasure
now implement
equals()
and
hashcode()
so that they can be compared more easily. This also makes serialization of
units of measure easier to implement.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-8467, LCD-3912
TLcdISO8601DateFormat
formats and parses
java.util.Date
objects to/from the ISO 8601 date/time
format representation.
ImprovementLucy (LuciadLightspeed)
TLcyLspMapComponentFactory
: the creation of the view has been split in two different methods,
facilitating the customization of the created view. Consult the
createView
and
createViewBuilder
methods.
ImprovementLuciadLightspeed
TLcdOGCFilterEvaluator
now supports case-insensitive "is like" operators as mentioned in
the OGC Filter 1.1 specification OGC 04-095c1.
See
TLcdOGCIsLikeOperator#setMatchCase
for more information.
ImprovementLucy (LuciadLightspeed)
You can now modify the transparency of a Lightspeed layer directly in the layer control. You can also modify its brightness
and contrast in the layer properties.
ImprovementLucy (LuciadLightspeed)
LUCY-4596
TLcyPreferencesTool
no longer saves an entry in the workspace file if it doesn't have anything to save. As a result,
you no longer get warnings if you load such a workspace when the add-on, that would otherwise have written that
empty chunk, is not plugged in. This makes it more convenient to exchange workspaces between subtly differently
configured Lucy instances. It also removes some clutter from the workspace files.
ImprovementLuciadLightspeed
LCD-8438
The version suffix for third-party library jars has been reformatted to improve compatibility with some third-party
classloaders.
The jars are now named according to the format lib-version.lcd-buildnumber.jar. For example,
libfoo@2.0+3-lcd.jar
is named libfoo-2.0.lcd-3.jar in the new format.
ImprovementLuciadLightspeed
LCD-8924
The LSP decoder sample (a.k.a. data viewer) now picks up companion .sld files for imagery files such as tif. This
allows to specify for example band selections using an .sld file next to the tif file. An example sld file can be
found in 'samples/resources/Data/SLD/raster_band_selection.xml' (it assumes 4-band imagery, but can easily be
modified).
ImprovementLuciadLightspeed
LCD-8924
The GXY decoder sample (a.k.a. data viewer) now picks up companion .sld files for imagery files such as tif. This
allows to specify for example band selections using an .sld file next to the tif file. An example sld file can be
found in 'samples/resources/Data/SLD/raster_band_selection.xml' (it assumes 4-band imagery, but can easily be
modified).
ImprovementLuciadLightspeed
LCD-8922
TLcdISO19115GeoGraphicBoundingBox
is now no longer limited to geodetic geo referenced coordinates.
ImprovementLuciadLightspeed
The sample package samples.lightspeed.daynight
contains a sample
showing how to visualize a day/night map using the Lightspeed styling API. The sample
visually distinguishes day and night as well as civil/nautical/astronomical twilight. It
also displays the point on the Earth where the sun is directly overhead.
ImprovementLuciadLightspeed
The WMTS Client now supports
multidimensional data. More specifically, the
TLcdWMTSModelDecoder
now returns an
ILcdMultiDimensionalModel
.
By applying a dimensional filter (
ILcdMultiDimensionalModel.applyDimensionFilter
), you can
now change one or more values of a model with multidimensional data (e.g. GRIB or NetCDF), and see the underlying
image change accordingly.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
TLcdLayer
: added a
setSelectableSupported
method.
ImprovementLuciadLightspeed
The WFS client now supports connecting to WFS 2.0.0 servers. This includes OGC Filter 2.0 support.
Do note that stored queries are not yet supported.
ImprovementLuciadLightspeed
A model decoder for Fusion coverages has been added:
TLcdCoverageModelDecoder
decodes coverages directly from their coverage XML file description and treats
it just like any other data source. The decoder additionally supports coverage data outside the context of a tile store,
and coverage data served via a LTS service.
The remote coverages need to be specified via the TLcdCoverageDataSource
.
Only coverages of types ELfnDataType#IMAGE
,ELfnDataType#ELEVATION
,
and ELfnDataType#RASTER
are supported.
The returned models expose their dimensions through the ILcdMultiDimensional
interface.
ImprovementLucy (LuciadLightspeed)
LUCY-4586
The width of the dialog which is shown when data loading fails is now limited. This to avoid messages which do not
fit on the screen.
ImprovementLuciadLightspeed
The display names of several formats have been improved. Also, TLcdModelDescriptor.sourceNameToDisplayName
has been added to derive a display name from a source name.
ImprovementLuciadLightspeed
You can use a new, lazy-loading ESRI Shapefile decoder:
TLcdSHPModelDecoder2
.
This decoder does lazy loading of elements, based on the client request.
- This ensures a low memory footprint if only part of the data is needed at the same time:
- when visualizing a small area
- when a model query filter is used
- when doing processing on the elements one by one
- It also ensures fast model creation.
We recommend using the new
TLcdSHPModelDecoder2
.
If you do want eager-loading behavior, you can use
TLcdSHPModelDecoder
.
It loads all records up-front, including all geometry and property data. This results in large memory footprint as
well as a big decoding hit on startup, but subsequent queries are very fast.
TLcdSHPModelDecoder2
is registered in the Java service registry, while
TLcdSHPModelDecoder
is no longer registered. If you use the Java service loader to look up
model decoders, you will automatically use the new decoder.
ImprovementLuciadLightspeed
TLcdSLDLabelingAlgorithm
now prefers static labels over dynamic ones. This behavior was
set as the default labeling behavior. This is for example useful for cases where you need consistent consistent
label positions over multiple repaints, such as a (Tiled) WMS or WMTS server implementation. You can still enable
the dynamic behavior, where multiple locations are tried, by passing false to the constructor.
ImprovementLuciadLightspeed
LCD-8800
GML decoding: improved robustness when decoding GML features with incomplete geometry.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn
: the SHP format plugged in by this add-on now uses the new
TLcdSHPModelDecoder2
. Reverting to the old decoder is possible by adjusting the
SHPFormat.useLegacyModelDecoder
property in the default_decoders.cfg
file.
The default styling of the SHP format has been updated as well.
It now matches the styling used for other vector formats in Lucy.
Changing the default styles can be done by adjusting the values of properties
SHPFormat.defaultPolygonStyle
,
SHPFormat.defaultPolylineStyle
and
SHPFormat.defaultPointsStyle
in the default_decoders.cfg
file.
ImprovementLuciadLightspeed
LCD-8745
TLcdKMLGXYLayerFactory
now makes it possible to easily create layers for KML data.
ImprovementLuciadLightspeed
LCD-8745
TLcdSLDFileGXYLayerFactory
was added. This layer factory creates SLD styled layers if the data source file is
accompanied by an SLD (.sld) file.
ImprovementLuciadLightspeed
LCD-8745
ImprovementLuciadLightspeed
LCD-8745
ImprovementLuciadLightspeed
LCD-8789
The XML framework now logs a warning if it encountered broken xlinks during decoding.
ImprovementLuciadLightspeed
LCD-8655
Added support for OGC Filter 2.0.
This adds support for temporal operators. See
TLcdOGCBinaryTemporalOperator
for details. You cannot serialize this operator to a 1.1 OGC Filter.
Other notable changes when using Java to create filter and condition:
- You can use a function (
TLcdOGCFunction
) as condition (
ILcdOGCCondition
) if it evaluates to a boolean result.
- Instead of using "object ids" or "feature ids" on
TLcdOGCFilter
, you can now use a
condition to match ID: see TLcdOGCFilterFactory.resourceIds()
. Using object ids directly
is deprecated, but still works.
Both changes can be used regardless of whether the condition will eventually be serialized to a 1.1 OGC Filter (for
example WFS 1.x, or SLD), or a 2.0 OGC Filter (for example WFS 2.0).
Binary arithmetic operators (Add/Mul/Sub/Div) are no longer supported in the OGC Filter 2.0 standard. You can still
create them and evaluate them, but you will get an error
when it is serialized to OGC Filter 2.0 XML (for example WFS 2.0).
ImprovementLucy (LuciadLightspeed)
LUCY-4542
Drawing add-on: taking the union of two 2D polylines will now create a union which contains 2D polylines instead
of 3D polylines.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-7978
The new
TLcdShapeDataTypes.SHAPE_TYPE
is a built-in data type
(
TLcdDataType
) that you can use for properties that are
ILcdShape
.
ImprovementLuciadLightspeed
LCD-6917
3D icons are now rendered in two passes when the painting hints on the view are set to NICEST
. As a result,
3D icons with transparent textures will no longer contain 'holes'.
ImprovementLuciadLightspeed
ILcdFilter
now extends
java.util.function.Predicate<T>
and implements
test()
using a default method that delegates to
accept()
.
ImprovementLuciadLightspeed
LCD-8209
The sample package samples.lightspeed.style.textured
is removed. The fill style sample
in the package samples.lightspeed.style.fillstyle
shows how to use a texture with
a fill style.
ImprovementLucy (LuciadLightspeed)
LUCY-2666
TLcyDrawingAddOn
: it is now possible to add
java.util.Date
properties to the drawing domain objects.
ImprovementLuciadLightspeed
LCD-8546, LCD-8801
ILcdBounds
now has a few new default convenience methods:
getMinX()
, getMaxX()
, getMinY()
,
getMaxY()
, getMinZ()
, getMaxZ()
:
provide the left/right/lower/upper/bottom/top boundary values. These are derived properties, calculated from the
location and width/height/depth. They can be overridden for performance
getCenter()
: provides a point that is the center of the bounds.
ImprovementLucy (LuciadLightspeed)
When adding WFS or WCS layers to a Lightspeed view using a connection dialog, the map now fits on the added data.
ImprovementLucy (LuciadLightspeed)
LUCY-3154
ImprovementLuciadLightspeed
ILcdLogger
received new methods which accept a
Supplier<String>
as argument instead of a
String
, similar to what has been done in the JDK for the
java.util.logging.Logger
class.
ImprovementLuciadLightspeed
LCD-8247
TLcdAWTUtil
now has two new utility methods to add and remove components from a parent container that is already
visible on screen (addComponent, removeComponent). This is often needed when adding items to the map overlay panel,
but is useful for other cases as well. Sample code was updated to make use of this utility method. Consult the
reference documentation for more details.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-8097
TLsp3DIconStyle
: It is now possible to configure a translation to apply to the 3D icon.
See
TLsp3DIconStyle.Builder#translate()
.
ImprovementLucy (LuciadLightspeed)
LUCY-4158, LUCY-4157, LUCY-4215, LUCY-4548
Connecting to a data service on a secure server has been improved:
- When connecting to a secure server, the credentials dialog only pops up once instead of twice.
- The connection will no longer time-out if you do not input your credentials in the dialog before a certain time has passed.
ImprovementLuciadLightspeed
LCD-8444
TLcdTransportFactory.createTransport()
: the created transport now uses the
default java.net.Authenticator
to obtain the credentials when connecting
with a secure server/proxy, and the default java.net.ProxySelector
to determine
whether a proxy must be used.
ImprovementLuciadLightspeed
LCD-8460
GML encoding: in some cases, the configured target namespace was not taken into account.
ImprovementLuciadLightspeed
LCD-8383
ImprovementLuciadLightspeed
LCD-3689, LCD-7153
ImprovementLuciadLightspeed
LCD-7541
GML decoding: reduced memory needs when decoding large documents that don't have a version specific extension.
ImprovementLucy (LuciadLightspeed)
LUCY-4305
TLcyVerticalViewAddOn
: the vertical view panel now shows a helpful message if no compatible
object has been selected.
ImprovementLuciadLightspeed
LCD-7418
TLcdSymbol
: improved anti-aliased rendering of circles.
ImprovementLuciadLightspeed
LCD-7419
ImprovementLuciadLightspeed
LCD-8397
GML encoding: fixed a possible NullPointerException when exporting a degenerate arc-by-bulge.
ImprovementLucy (LuciadLightspeed)
LUCY-4475
The "Set layer reference to view" action in the layer control pop-up menu is now also available
for Lightspeed 3D views.
ImprovementLucy (LuciadLightspeed)
LUCY-4518
TLcyXMLAddOnLoader
: when plugging in an extension of an add-on, the
original add-on will automatically be excluded, while respecting the priority of the original add-on.
This makes it easier to replace standard add-ons which must be plugged in before another standard add-on
with the same priority.
ImprovementLucy (LuciadLightspeed)
LUCY-4392
ILcyGenericMapComponent
: the action bar related methods have been deprecated.
Adding actions and active settables to those action bars can be done using the
TLcyActionBarUtil.insertInConfiguredActionBars
method.
For the same reason, the
ILcyMapLayerControl.getActionBar
method has been deprecated.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
LUCY-4434
ImprovementLucy (LuciadLightspeed)
LUCY-4466
The ruler controller on a Lightspeed map can now also perform cartesian measurements.
ImprovementLucy (LuciadLightspeed)
LCD-7977
It is now possible to reverse the direction of certain military symbols.
Take for example a weather front: once you have drawn the front, you realize the decorations are at the wrong
side of the line. Previously, you had to start from scratch and redraw the front in the opposite direction.
Now it is possible to use the new action to reverse the direction.
This action is configured in the configuration files ms2525baddon.cfg
and app6aadoon.cfg
.
See the TLcyMS2525bAddOn.flipOrientationAction.*
and TLcyAPP6AAddOn.flipOrientationAction.*
properties.
ImprovementLuciadLightspeed
LCD-8179, LCD-9736
ImprovementLuciadLightspeed
LCD-8326
ImprovementAdvanced GIS Engine
LCD-8678
ImprovementOGC Server
LCD-3555
TLcdWFSClientModelEncoderFactory
now includes GeoJSON in its advertised output formats.
This made the previously available sample code to support GeoJSON redundant, so that sample code has been removed
(
WFSClientModelEncoderFactory
).
ImprovementOGC Server
A new server and client API for OGC Catalogue Services (CSW) has been introduced.
For more information, see:
- The OGC CSW Catalog Server developer's guide (CSW_DeveloperGuide.pdf)
- The class javadoc of
TLcdCSWServlet
and
TLcdCSWClient
- The package javadoc of
com.luciad.ogc.csw
ImprovementOGC Server
In the WFS service, the default implementation of
ALcdOGCWFSCommandDispatcherFactory#createModelDecoderFactory
returns a
TLcdOGCModelDecoderFactory
. This factory automatically picks up all the data
connectors that are found on the class path. It uses the
TLcdServiceLoader
to find all the
ILcdModelDecoder
s of the formats that are installed.
ImprovementOGC Server
LCD-6715
In the WCS service, the default implementation of
ALcdOGCWCSCommandDispatcherFactory#createModelDecoderFactory
returns a
TLcdOGCModelDecoderFactory
. This factory automatically picks up all the data connectors that
are found on the class path. It uses the
TLcdServiceLoader
to find all the
ILcdModelDecoder
s of the formats that are installed.
ImprovementOGC Server
The WMS now has anti-aliasing enabled by default, which produces smoother rendering results.
ImprovementOGC Server
LCD-8917
The sample WMS server code to monitor a directory for new/removed/updated data, available in
samples.wms.server.updater, has been updated to use Java's NIO WatchService API instead of
custom directory monitoring logic.
ImprovementOGC Server
The WFS server now supports WFS 2.0.0 clients. This includes OGC Filter 2.0 support.
Do note that temporal filtering and stored queries are not yet supported.
ImprovementOGC Server
LCD-3862
There is a default command dispatcher factory available which provides a good starting point for making
a Web Map Service with few or no additional programming.
The
TLcdOGCWMSCommandDispatcherFactory
loads most of its functionality using a service loader
mechanism. More specifically, implementations of decoders and layer factories are picked up automatically when they are
annotated with the appropriate
LcdService
annotation.
The sample command dispatcher factory extends from the default factory and only adds dynamic behavior.
ImprovementOGC Server
LCD-8767
ImprovementWeather & Environment Standards
LCD-8745
ImprovementWeather & Environment Standards
TLcdNetCDFModelDecoder
now also supports loading GRIB files. For GRIB files, it produces a
model that is structured exactly the same way as a model from NetCDF files, making it possible to visualize it
exactly the same way. This will also enable filtering on time/vertical or other dimensions for GRIB files. See
TLcdNetCDFFilteredModel#applyDimensionFilter
.
ImprovementAviation Standards
LCD-7648
The performance of TLcdDAFIFModelDecoder#canDecodeSource
has been improved.
ImprovementAviation Standards
LCD-8745
ImprovementDefense Standards
LCD-8745
ImprovementDefense Standards
LCD-8745
ImprovementDefense Symbology
LCD-8745
ImprovementInfrastructure Standards
LCD-8745
ImprovementInfrastructure Standards
LCD-8745
ImprovementMaritime Standards
LCD-9006
You can now intercept warnings when cells are decoded lazily within a catalog.
ILcdS57InvalidCellExceptionHandler
has a new default method handleCellWarnings
.
By default, this method logs a warning message. You can override the method to intercept the warnings.
In practice, these warnings are typically S-63 subscription expirations.
ImprovementMaritime Standards
ImprovementRadar Connectors
The ISO measure properties in the data model are now annotated with a
TLcdISO19103MeasureAnnotation
.
ImprovementS-63
LCD-9006
You can now intercept cell expiration warnings when cells are decoded within a catalog.
ILcdS57InvalidCellExceptionHandler
has a new default method handleCellWarnings
.
By default, this method logs a warning message. You can override the method to intercept the warnings.
During the initial decode()
, you will get warnings (SSE_015 or SSE_020) for all expired cell permits.
ImprovementS-63
LCD-7136
Changed
canDecode
of
TLcdS63UnifiedModelDecoder
,
TLcdS63CatalogueModelDecoder
and
TLcdS63ModelDecoder
such that it no longer checks cell permits.
This means
canDecode
will accept all S-63 cells and catalogues.
For cells, the
decode
will fail if there is no permit.
For catalogues, the
decode
will decode only cells in the catalogue for which you have permits (as before).
ImprovementTiling Engine
PNG encoding in the fusion engine is now faster. The implementation now uses the ObjectPlanet PNG encoder.
ImprovementTiling Engine
For better interoperability with reverse proxies, the server now uses OnlineResource paths relative to the servlet
mapping instead of relative to the servlet container in its capabilities. For backwards compatibility, the behavior
towards older clients remains as it was before. This feature requires that both client application
(DCM, Lucy, ...) and server are using LuciadFusion V2017.0 or higher. If you're running a LuciadFusion server
behind a reverse proxy and want to take advantage of this feature, you should make sure both client and server
are up-to-date.
Bug fixLuciadLightspeed
LCD-9010
The use of tiled visualization for WMS layers containing rasterized vector data could sometimes result in
vector graphics being cut off at the boundaries of the WMS layer.
Bug fixLuciadLightspeed
LCD-9034
LcdService
is now retained at runtime. This for example allows to retrieve the priority
from a service. This change allowed to fix the order of the services returned by the
ServiceRegistry
sample class.
Bug fixLucy (LuciadLightspeed)
LCD-9033
When using the drawing add-on, the Terrain Following Mode could work incorrectly when using a geodetic model
reference with a geodetic datum different than WGS84.
Bug fixLuciadLightspeed
LCD-9033
Geodetic bounds with a height of (approximately) 180 degrees were not always transformed correctly to a reference
with a different geodetic datum. This could cause issues such as height providers not returning any heights.
Bug fixLucy (LuciadLightspeed)
LUCY-3888
Lucy docking front-end: the tab titles would be invisible when using the Nimbus look and feel.
This has been resolved by including the jide-plaf.jar file on the class path.
Bug fixLuciadLightspeed
LCD-8940
Fixed a possible NPE when calling ALfnCoverage#getTile()
on a coverage that includes
a tile message digest. It is now possible to call this method with null as message digest buffer argument.
Bug fixLucy (LuciadLightspeed)
LUCY-4583
When Lucy Map Centric shows a status message notification, the notification window will no longer steal the focus.
The only affected class in this fix is the StatusMessageDisplayer
sample class.
If you use a custom version of the MapCentricStatusAddOn
based on the sample code,
you need to update your local copy of this class.
Bug fixLucy (LuciadLightspeed)
LUCY-4587
Search add-on: the SearchResultContainer
class could link search results with the
wrong search service due to the comparator used in the TreeMap
. Depending on the kind of
search service and search result, this could result in all kinds of exceptions.
The only affected class in this fix is the SearchResultContainer
sample class.
If you use a custom version of the search add-on based on the sample code, you need to update your local copy
of this class.
Bug fixLucy (LuciadLightspeed)
LUCY-4114
Connecting to a WMS service could log a warning message ("Could not find XML schema info for global element: ServiceExceptionReport")
in certain circumstances. This is now avoided.
Bug fixLuciadLightspeed
LCD-8831
In some cases, TLcdWFSProxyModelDescriptor#getModelElementTypes()
returned too many data types.
Bug fixLuciadLightspeed
GML encoding: has-a-shapelist domain objects are now correctly encoded to GML 2.
Bug fixLuciadLightspeed
LCD-7277
TLcdSHPModelDecoder
: The character set used for String values parsed from the DBF file
was incorrect if the DBF file uses one of the ISO-8859 encodings.
Bug fixLuciadLightspeed
LCD-8772
Bug fixLucy (LuciadLightspeed)
LUCY-4521
Model sharing has been disabled by default. This means that when you open the same file multiple times,
you will get new
ILcdModel
instances each time you open the file.
Consult the documentation of the
sharedModel
property in the
default_decoders.cfg
file for more information about
the benefits and drawbacks of enabling the shared model mode.
Bug fixLucy (LuciadLightspeed)
LUCY-4621
GeoJSON, MSSQL, WFS, Oracle Locator, PostGIS, SpatiaLite, WMS GetFeatureInfo: these formats did not respect the
straightLine
property from the configuration file for GXY layers.
As a result, recentering the projection of the map could result in visual artifacts for shapes which cross the
projection bounds.
Bug fixLuciadLightspeed
LCD-9107
Fixed a bug in
TLcdGXYImagePainter
that caused no image data to be painted.
This bug could occur when setting an
ALcdImageOperatorChain
on the painter.
It was most easily triggered when using an SLD with a color map to paint the image data.
Bug fixLuciadLightspeed
In rare cases,
TLcdWarpMultilevelRasterPainter
painted data where no data
should have been available. This could for example happen for DTED data where data is available on the
DMED level, but not on the DTED0 level.
Bug fixLuciadLightspeed
LCD-8616
XML framework: improved compatibility with JDK 1.8.
Bug fixOGC Server
LCD-8894
WMS Get map requests could suffer from a tiny offset due to rounding errors.
Bug fixOGC Server
The default
ILcdModelProvider
returned by
ALcdOGCWMSCommandDispatcherFactory#createModelProvider
threw an
IllegalArgumentException
instead of an
IOException
when no model decoder can be found for a given source.
Bug fixReal-time Engine
LCD-8729
TLspRadarVideoLayerBuilder can now handle radars which have an angular and/or radial resolution that is higher
than the maximum supported texture resolution of the GPU. In case the resolution of the radar is too high, it will
be visualized at a reduced resolution.
Bug fixWeather & Environment Standards
Bug fixAviation Standards
LCD-9052
TLcdARINCModelDecoder#canDecodeSource
is now more robust against non-arinc txt files.
Bug fixMaritime Standards
LCD-6575
The
TLcdS52GXYLayer
and
TLcdS52GXYCatalogueLayer
incorrectly passed
TLcdS57Edge
objects to their layer filters.
These objects are not domain objects, nor
ILcdS57Objects
: they are part of other
ILcdS57Object
s.
Now, these objects are no longer passed to the layer filter.
This is not necessary since the actual S-57 objects these edges belong to are already filtered.
Bug fixMaritime Standards
LCD-9050
In some cases, cells in a catalog were not being displayed in a GXY layer if they crossed the date line.
Now, these cells are properly displayed when they are in view.
Upgrade considerationLuciadLightspeed
TLcdXMLBuiltInConstants.XSD.TypeIndex
has been removed from the API, as it serves no
practical purpose. In the highly unlikely event you were using this constant, you can safely replace any reference
to it by zero.
Upgrade considerationLuciadLightspeed
Due to the introduction of support for OGC Filter 2.0 (see LCD-8655), using the
TLcdOGCFilterDecoder
to convert an XML representation of a filter into a TLcdOGCFilter
instance will not always
result
in a Java structure which matches the filter structure.
The Java filter will be the equivalent of the XML representation, but the individual building blocks of the Java
filter
might differ from the XML building blocks.
For example
<ogc:PropertyIsEqualTo>
<ogc:Function name="my_custom_function">
<ogc:Literal>foo</ogc:Literal>
</ogc:Function>
<ogc:Literal>true</ogc:Literal>
</ogc:PropertyIsEqualTo>
might be converted to just a
TLcdOGCFunction
which evaluates to a boolean, instead of being
wrapped in
a
TLcdOGCBinaryComparisonOperator
.
Upgrade considerationLucy (LuciadLightspeed)
TLcyXMLAddOnLoader
: the luciadMapOptions
element is now
ignored. The addons code itself knows to which optional component it belongs, so there is no need to
duplicate this information in the addons xml file anymore.
Addons xml files that contain luciadMapOptions
elements will still work,
but these elements will be silently ignored. We recommend that you remove the
luciadMapOptions
elements from your addons xml files.
Upgrade considerationLuciadLightspeed
The deprecated classes from the com.luciad.ogc.filter
package have been removed, as
well as the TLcdOGCBinarySpatialFilterFactory
class.
These classes have been deprecated since V6 and were only used in V5 to decode an XML representation of an OGC
filter
into Java classes.
For this, you can use the TLcdOGCFilterDecoder
instead.
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
LCD-3073
The third library dependency on Batik has been updated from version 1.7 to 1.9.
Its dependency on Xalan has also been updated from version 2.6.0 to 2.7.2.
Upgrade considerationLucy (LuciadLightspeed)
The Lucy resource files (for example the configuration files of the add-ons) have been moved from the "resources"
folder to the "config" folder, to clarify these can be edited. As this directory should be part of your classpath
when running Lucy, you may have to update your IDE projects and possibly build scripts. Example scripts have been
updated.
Upgrade considerationLucy (LuciadLightspeed)
LCD-7995
TLcyCompositeModelDecoder
and
TLcyCompositeModelReferenceDecoder
now
throw an
IOException
instead of returning null when the model (reference) could not be
decoded. This change has little impact as calling code already had to deal with exceptions. In addition, it is more
clear because of the exception message, and is more in line with what to expect the interface they implement.
Upgrade considerationLuciadLightspeed
LCD-7995
TLcdCompositeModelDecoder
now throws an exception when no delegate decoder creates a non-null
model. Before, it returned null instead. This change has little impact as calling code already had to deal with
exceptions. In addition, it is more clear because of the exception message, and is more in line with what to expect
from
ILcdModelDecoder.decode
, as defined by the interface. See javadoc of
TLcdCompositeModelDecoder.decode
for details.
Upgrade considerationLucy (LuciadLightspeed)
The custom table view for AIXM 5.1 data has been removed in favor of the regular table view.
As a result, all table view configuration options from the AIXM 5.1 add-on configuration files have been removed.
This means the table view improvements related to filtering the shown data now become available for AIXM 5 data
as well.
Upgrade considerationLuciadLightspeed
LCD-8955
Upgraded woodstox to a newer version. Previously, the XML module had a dependency on woodstox 4.0.9, but
this has been upgraded to woodstox 5.0.3 for compatibility reasons.
Upgrade considerationLuciadLightspeed
TLcdOGCBinaryComparisonOperator
: the unsupported class constants
MATCH*
have been removed from the API. As it was virtually impossible to use them, we don't
expect this to affect anyone.
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
TLcdKML22LookAt
and
TLcdKML22Camera
used to have a method
adjustCameraSFCT
to modify the settings of an
ILcdGLCamera
of an
ILcdGLView
(so not GXY nor Lightspeed views).
These methods are no longer available. It is still possible to fit an
ILcdGLView
on a feature using
TLcdKML22GLViewFitAction
, as before.
Upgrade considerationLuciadLightspeed
For reasons of technical software consistency,
TLcdCADRGModelDecoder
and related API have
moved to the NITF component, part of the option Defense Standards.
Please contact Luciad support if you have questions on how to get access to this option.
Upgrade considerationLucy (LuciadLightspeed)
CADRG format support is now part of
TLcyNITFAddon
instead of
TLcyDefaultDecodersAddOn
. Configuration parameters have been
moved to lucy/decoders/nitfdecoderaddon.cfg. If you adjusted the CADRG configuration of the
TLcyDefaultDecodersAddOn
in the lucy/decoders/default_decoders.cfg file, you need to migrate these customizations to the nitfdecoderaddon.cfg.
Upgrade considerationLuciadLightspeed
The
isAntiAliased
method was added to the
ILcdGXYView
interface. The
view implementations have the corresponding setter. This allows to globally enable anti-aliasing on a view, to
achieve smoother rendering results. This can lead to a compile error for custom
ILcdGXYView
implementations. The compile error can be solved either by delegating to an other view, or by implementing this
method when no delegate is available. A basic implementation would be to always return true or false.
Upgrade considerationLuciadLightspeed
TLcdWMTSModelDecoder
now returns models with
has-an-image domain objects
instead of just an image. So the element(s) returned by
ILcdModel.elements()
no longer extend
from
ALcdImage
, but rather contain a reference to such an
ALcdImage
.
In certain conditions, the returned
TLcdWMTSModelDescriptor
also implemented
ILcdEarthModelDescriptor
, this is no longer the case. Because of the has-an-image approach,
the WMTS client can now support multidimensional data such as GRIB or NetCDF that varies over time, altitude or
other dimensions (see also
ILcdMultiDimensionalModel
). By applying a dimensional filter
(
ILcdMultiDimensionalModel.applyDimensionFilter
), you can now change one or more values of
of a multidimensional data model, and see the underlying image change accordingly. This means the behavior of
serving NetCDF and GRIB data through a WMTS is very similar to opening it locally. This change does not affect any
typical painting related code, the regular approaches remain to work as expected (e.g.
TLcdGXYImagePainter
or
TLspRasterLayerBuilder
). Should direct access
to the image data be needed, please refer to
ALcdImage.fromDomainObject
.
Upgrade considerationLuciadLightspeed
Client-side support for coverages of type VECTOR has been deprecated in favor of other mechanisms for publishing
vector data. Please refer to the Fusion migration guide for more information.
This means that LuciadFusion clients remain able to read existing VECTOR coverages.
We recommend publishing vector data through the OGC WFS protocol.
In the context of this change, these API changes were done:
- The
ELfnDataType#VECTOR
field has been deprecated.
- Classes related to
ELfnDataType#VECTOR
coverages have been deprecated.
Upgrade considerationLuciadLightspeed
LCD-450
Upgrade considerationLuciadLightspeed
The dependency on the Jackson library changed from version 1 to 2. In case you had code written directly to this
library, you can keep on using Jackson 1 and 2 together as they have separate namespaces:
org.codehaus.jackson
and com.fasterxml.jackson
respectively. Please
refer to the library documentation for more information about this change.
Upgrade considerationLuciadLightspeed
LCD-8782
Various protected fields in the core
point and
bounds classes have been made private.
They were already clearly documented that they should not be accessed directly.
Changed classes and fields:
TLcdLonLatPoint
: fLon, fLat, fSinLon, fSinLat, fCosLon, fCosLat
TLcdLonLatHeightPoint
: fLon, fLat, fZ, fSinLon, fSinLat, fCosLon, fCosLat
TLcdLonLatFloatPoint
: fLon, fLat
TLcdLonLatBounds
: fPoint, fWidth, fHeight
TLcdLonLatHeightBounds
: fPoint, fWidth, fHeight, fDepth
TLcdLonLatFloatBounds
: fLon, fLat, fWidth, fHeight
TLcdXYPoint
: fX, fY
TLcdXYZPoint
: fX, fY, fZ
TLcdXYFloatPoint
: fX, fY
TLcdXYZFloatPoint
: fX, fY, fZ
TLcdXYBounds
: fPoint, fWidth, fHeight
TLcdXYZBounds
: fPoint, fWidth, fHeight, fDepth
TLcdXYFloatBounds
: fX, fY, fWidth, fHeight
TLcdXYZFloatBounds
: fPoint, fWidth, fHeight, fDepth
If you access any of these fields, you will now get a compilation error.
Each of the fields has an alternative method that you should use.
Upgrade considerationLuciadLightspeed
LCD-8698
Proguard's jar-merging capability is no longer supported. Proguard merges .jar files by simply adding all files
contained inside multiple jar files in a single jar file, not handling duplicate file names. This creates issues
with the contents of the META-INF directories, present in every jar file. Most notably, the contents of the
META-INF/services directory must be preserved as of now.
To know if you are affected or not, search your configuration files for the '-outjars' Proguard option. If it
specifies a directory name, you are not affected. If it specifies a file name, you are affected. You can solve it
by changing the file name into a directory name, and update the remainder of your build script to work with that
directory rather than a single file. This avoids using Proguard's jar-merging; it now obfuscates and copies every
jar file separately into the output directory. All example build scripts were updated to do so.
Should you not make this change, existing projects will keep on working. When starting to use new 2017.0
functionality, you may experience that not all services (model decoders, layer factories etc.) are found after
deploying your application.
Our product code (com.luciad.*) started to make use of TLcdServiceLoader
in certain places
(identical to java.util.ServiceLoader), such as the default WMS server configuration.
Previously, it was only used by sample code (samples.*).
This allows for many benefits, now and in future versions, to pick up optional dependencies. For example,
the default WMS server may automatically pick up the MrSID data format if you installed it.
These so called 'services' are listed in files in the META-INF/services directory of various jar files. Distinct
jar files use the same file names, as prescribed by ServiceLoader. When deploying your application using Proguard,
as our example deployment scripts do, care must be taken to disable its jar-merging capability which does not
correctly handle those services files (see also https://sourceforge.net/p/proguard/feature-requests/94/). This can
be done by specifying the name of a directory instead of a file for the -outjars property. Proguard then no longer
attempts to merge the jar files, but instead obfuscates them all individually and places them in the output dir.
Should jar-merging still be required, we recommend using an existing technology that supports services files, as
most do.
Upgrade considerationLuciadLightspeed
It is now possible to make ILcdGXYView
implementations behave synchronously. This
can be enabled or disabled by using the setAsynchronousAllowed
method on the
ILcdGXYView
implementations.
The isAsynchronousAllowed
method was added to the
ILcdGXYView
interface to make sure layers/painters/... can detect if asynchronous behavior is allowed. This can lead to
a compile error for custom ILcdGXYView
implementations. The compile error can be solved
either by delegating to an other view, or by implementing this method when no delegate is available. A basic
implementation would be to always return true or false.
The TLcdGXYViewBufferedImage
and TLcdGXYViewPlanarImage
and
their extension now don't allow asynchronous painting/operations by default. The previous behavior can be
restored by calling view.setAsynchronousAllowed(true)
.
Upgrade considerationLuciadLightspeed
ILspLayer
can have now post-processing effects with a
TLspLayerStyle
.
TLspLayerStyle
styles a layer as a whole contrary to
ILspStyler
or
ALspStyle
that perform the styling per object.
TLspLayerStyle
can be set and retrieved with the newly added methods
ILspLayer#setLayerStyle(TLspLayerStyle)
and
ILspLayer#getLayerStyle()
.
For layers built by
TLspShapeLayerBuilder
,
you can also set the layer style with
ALspLayerBuilder#layerStyle(TLspLayerStyle)
.
You can now set a
TLspLayerStyle
on a Lightspeed layer to
- change the transparency of the entire layer
- perform color conversions on the fly. For instance, you can convert an entire layer to greyscale.
- adjust the brightness and the contrast of each pixel.
- swap colors on the fly.
Upgrade considerationLucy (LuciadLightspeed)
Upgrade considerationLuciadLightspeed
Upgrade considerationLuciadLightspeed
Some thread names have been improved to facilitate debugging and profiling.
If you were relying on any Luciad thread name (which is not recommended), adjust your code accordingly.
Upgrade considerationLucy (LuciadLightspeed)
Lucy will not be able to load MULTIVALUED LuciadFusion coverages anymore. This is because the MULTIVALUED coverage
type was removed from LuciadFusion. This also means that workspaces that contain layers from a MULTIVALUED
LuciadFusion coverage will not be loaded when loading the workspace. A warning will be shown to signal this.
Upgrade considerationLuciadLightspeed
Support for MULTIVALUED fusion coverages has been removed. This type of coverage was only used for GRIB files,
but support for MULTIVALUED GRIB files had many limitations. Note that the fusion engine now supports the fusing
of GRIB files to RASTER coverages, which is better supported.
This means that fusion clients will not be able to read existing MULTIVALUED coverages anymore. This can be
resolved by re-fusing multivalued assets as RASTER coverages.
In the context of this change, these API changes were made:
- The
ELfnDataType#MULTIVALUED
field was removed.
- Several (deprecated)
setAssetPart
and addAssetPart
methods
were removed from TLfnRasterAssetMetadata.Builder
. You can use the
addAssetPart
method that doesn't take any parameters instead.
- The
get/setParameter
methods were removed from
TLfnRasterCoverageMetadata.Builder
. You can use the parameter
methods instead.
- Fields were removed from
TLfnQuery.Property
:
RASTER_ASSET_parameter_name
RASTER_ASSET_parameter_unit
RASTER_COVERAGE_parameter_name
RASTER_COVERAGE_parameter_unit
These were only useful in the context of multivalued assets and coverages.
Upgrade considerationLuciadLightspeed
The Apache HttpClient library has been updated to version 4.5.2.
Upgrade considerationLucy (LuciadLightspeed)
TLcyNetCDFFormatAddOn
and TLcyLspNetCDFFormatAddOn
now also support
loading and visualizing GRIB files. This improves the support for GRIB files and, among other, allows
TLcyDimensionalFilterAddOn
to filter GRIB data.
Because of this, the TLcyGRIBDecoderAddOn
and TLcyLspGRIBFormatAddOn
add-ons have been deprecated and removed from the default addons.xml and addons_gxy.xml files. This means that by
default, workspaces that contain GRIB layers that were written using the old GRIB add-ons, no longer restore those
GRIB layers.
In that case, warning messages will be logged: WARNING: Could not decode reference[%x] because codec for
uid[com.luciad.lucy.addons.decoders.TLcyGRIBDecoderAddOn.GRIBFormat.XxxCodec] was not available.
In order to restore the old GRIB add-on functionality, you can re-add these add-ons in the addons.xml and
addons_gxy.xml files, and remove the GRIB file extensions (*.grib, *.grb, *.grib2, *.grb2, *.dat) from the
TLcyNetCDFFormatAddOn.cfg file.
Upgrade considerationLuciadLightspeed
The signature of
TLcdOpenFlightModelDecoder.createModelReference
has been changed:
the method is now allowed to throw an IOException.
This allows the method to delegate to an
ILcdModelReferenceDecoder
instance.
Upgrade considerationLuciadLightspeed
TLcdSelectionSupport
: the
updateAppendedSelectionChanges
method
has been removed. It should not be necessary to call or override the method.
Upgrade considerationLucy (LuciadLightspeed)
The legacy AIXM 5.0 format is no longer supported. AIXM 3.3, 4.x and 5.1 remain supported.
The following add-ons have been removed : TLcyAIXM5AddOn
,
TLcyLspAIXM5FormatAddOn
, TLcyAIXM5RealtimeAddOn
and TLcyAIXM5OpenGLAddOn
.
Any entry of these add-ons has to be removed from your addons.xml.
Upgrade considerationLuciadLightspeed
LCD-8456
TLspLonLatGridStyler#LabelPosition
values were interpreted incorrectly. More specifically
EAST was interpreted as WEST, and vice versa. This is now fixed.
Upgrade considerationDatabase Connectors
LCD-9002
Upgraded the JDBC drivers to version 42.0.0. This new JDBC driver offers many improvements in terms
of functionality, stability and performance. It also removes support for PostgreSQL 8.1, which has been
end-of-life since 2011. If you still use PostgreSQL 8.1, we recommend you update your database to
the latest possible version.
Upgrade considerationOGC Server
The interface
ILcdCoverageFilterFactory
has been removed from the API. A compile error will
notify you if you were using this interface, which we don't anticipate as it was not used effectively. The
new
ILcdWCSCapabilitiesProvider
offers a more powerful and easier-to-use replacement, should
there be a need.
Upgrade considerationOGC Server
The caching behavior for ILcdWFSFeatureType
on the WFS server has been modified.
Previously, caches used the ILcdWFSFeatureType
instance itself as key for a cache.
This implies that caches didn't work as expected when using different WFS feature type instances that represent
the same data.
This instance-based caching mechanism has been replaced by a caching mechanism that uses the following
properties as cache key:
ILcdWFSFeatureType#getQName
: uniquely identifies the WFS feature type.
ILcdWFSFeatureType#getUpdateSequence
: identifies the 'version' of the WFS
feature type. I.e. if a property of the feature type changes, its update sequence should change as well.
ILcdOGCModelProvider#getUpdateSequence
: identifies the 'version' of the underlying
data. I.e. if the data changes, this update sequence should change as well.
Upgrade considerationOGC Server
The WMS server has added caches on two new levels:
-
The command dispatchers now use a mechanism of view pooling. This changes the call order of methods such as
TLcdOGCWMSCommandDispatcher.clearGXYView
. If needed, the pool size
(ALcdWMSCommandDispatcher.setGXYViewPoolSize
) can be set to 0 obtain the old behavior.
-
It now uses a non-persistent tile cache for tiled (Tiled WMS) GetMap requests. This cache makes
sure that subsequent tile requests are handled much faster, improving the performance and scalability of
the WMS server when using tiled requests. See
ALcdOGCWMSCommandDispatcherFactory
for more
information (also on how to disable tile caching for example).
This implies that for data that changes dynamically, extra care needs to be taken to make sure caches are
invalidated. To this end, the following API was introduced:
ALcdWMSLayer#setUpdateSequence
: Used to indicate that a WMS layer has changed.
This includes all dependencies such as styles, layer factory implementation, etc...
ILcdModelProvider#getModelUpdateSequence
: Used to indicate that the underlying
data has changed. This can mean that the model has been changed in-memory, or that the underlying data
(file/database/...) has been changed.
By default, the implementations of these methods (mostly) assume static data/layers. For WMS servers
that serve data that changes over time (for example data updates), these methods should be used correctly.
Note that the LuciadFusion Platform already takes care of this. An alternative is to disable the caches.
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 3.0 to 3.1. Consequently,
an application server or servlet container with support for Java Servlet 3.1 or
higher is now required for deployment of the server - for instance, Tomcat 8 or higher.
The impact of this is expected to be low since Java Servlet 3.1 is widely adopted
by application server and servlet container products.
The servlet container delivered with the Luciad products, Jetty 9, already supports Servlet 3.1.
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 3.0 to 3.1. Consequently,
an application server or servlet container with support for Java Servlet 3.1 or
higher is now required for deployment of the server - for instance, Tomcat 8 or higher.
The impact of this is expected to be low since Java Servlet 3.1 is widely adopted
by application server and servlet container products.
The servlet container delivered with the Luciad products, Jetty 9, already supports Servlet 3.1
Upgrade considerationOGC Server
All WCS request handler implementations are no longer part of the public API:
TLcdWCSGetCapabilitiesRequestHandler
TLcdWCSDescribeCoverageRequestHandler
TLcdWCSGetCoverageRequestHandler
Any unlikely usages of these concrete classes can be replaced as follows:
- Decoration: in case you were wrapping the request handlers, you can generically wrap them instead,
they offered nothing in addition to the
ILcdRequestHandler
interface.
setCoverageOfferingList
and setServiceMetaData
calls can be
replaced by creating/wrapping the ILcdWCSCapabilitiesProvider
in the WCS command
dispatcher factory. This is a much more powerful, easier and safer approach to achieve similar results.
See also the other release note about ILcdWCSCapabilitiesProvider
for more
information.
Upgrade considerationOGC Server
The ILcdWCSCapabilitiesProvider
interface was added. This interface describes the
capabilities of a WCS service. Advantages over ILcdCoverageOfferingList
are that:
- it is easier now to update the coverage offering while the service is running.
- it allows to lazily load models to improve the scalability of the server.
- it allows to do per-request handling of coverages. This for example allows to filter out coverages for
specific users or groups.
- it separates the configuration/metadata from the actual use of models.
The models should be accessed through the model provider. To this end, the method
createModelProvider
was added to the
ALcdOGCWCSCommandDispatcherFactory
. The default implementation
TLcdOGCModelProvider
maintains a cache for all decoded models.
The ALcdOGCWCSCommandDispatcherFactory
allows you to plug in a
ILcdWCSCapabilitiesProvider
by overriding the
createWCSCapabilitiesProvider
method.
The methods createServiceMetaData
and createCoverageOfferingList
of ALcdOGCWCSCommandDispatcherFactory
remain to exist but they will be no longer be
abstract. Overwriting the new method to create the capabilities provider
createWCSCapabilitiesProvider
will be the preferred way of working instead of using the two
previously mentioned methods.
In order to make sure this new interface is used in the WCS server, the following change
was made:
TLcdWCSCommandDispatcherContext
now contains the methods
getCapabilitiesProvider()
and getModelProvider()
instead of the getCoverageOfferingList()
and
getServiceMetaData()
methods. Usages of these methods can be replaced by the corresponding
functionality on the ILcdWCSCapabilitiesProvider
.
Upgrade considerationOGC Server
All WFS request handler implementations are no longer part of the public API:
TLcdWFSDescribeFeatureTypeRequestHandler
TLcdWFSGetCapabilitiesRequestHandler
TLcdWFSGetFeatureRequestHandler
TLcdWFSLockFeatureRequestHandler
TLcdWFSTransactionRequestHandler
Any unlikely usages of these concrete classes can be replaced as follows:
- Decoration: in case you were wrapping the request handlers, you can generically wrap them instead,
they offered nothing in addition to the
ILcdRequestHandler
interface.
setFeatureTypeList
calls (which had inherent threading issues) can be replaced
by creating/wrapping the ILcdWFSCapabilitiesProvider
in the WFS command dispatcher
factory.
This is a much more powerful, easier and safer approach to achieve similar results.
See also the other release note about ILcdWFSCapabilitiesProvider
for more
information.
-
The
TLcdDataModel
instances passed to
TLcdWFSTransactionRequestHandler
can now be configured in the WFS command dispatcher
factory. See ALcdOGCWFSCommandDispatcherFactory#createTransactionContentDataModels()
.
By default, this method, amongst others, returns the AIXM 5.1 data model (if available).
Upgrade considerationOGC Server
LCD-4837
The ILcdWFSCapabilitiesProvider
interface was added. This interface describes the
capabilities of a WFS service. Advantages over ILcdWFSFeatureTypeList
are that:
- it allows adding/removing data without restarting the server
- it allows to lazily load models to improve the scalability of the server
- it allows to do per-request handling of feature type. This for example allows to filter out feature
types for specific users or groups.
The ALcdOGCWFSCommandDispatcherFactory
allows you to plug in a
ILcdWFSCapabilitiesProvider
by overriding the
createWFSCapabilitiesProvider
method.
In order to make sure this new interface is used in the WFS server, the following changes
were made:
TLcdWFSCommandDispatcherContext
now contains a
getCapabilitiesProvider()
method instead of the
getFeatureTypeList()
, getServiceProvider()
and
getServiceMetaData()
methods. Usages of these methods can be replaced by the corresponding
functionality on the ILcdWFSCapabilitiesProvider
.
TLcdWFSRequestContext
now contains a getCapabilitiesProvider()
method instead of the getAvailableFeatureTypes
method. Usages of this method can be
replaced by a call to ILcdWFSCapabilitiesProvider#getFeatureTypes
. It will also be necessary to
handle the TLcdWFSServiceException
that is thrown by this method (during a request, this
exception should not be caught).
- The
TLcdWFSFilteredModelFactory
constructor now doesn't take any parameters as
input anymore.
ALcdOGCWFSCommandDispatcherFactory#createFilteredModelFactory
now
takes an ILcdWFSCapabilitiesProvider
as argument instead of an
ILcdWFSFeatureTypeList
.
Upgrade considerationOGC Server
The interfaces
ILcdRequest
and
ILcdResponse
have been extended
with additional methods that are useful in the context of conditional get requests.
The methods were already available on the concrete implementations for which internally instance of and casting
was done to achieve the desired behavior.
This change affects users that have implemented
ILcdRequest
and
ILcdResponse
themselves. There is no need to implement these interfaces yourselve though as there are implementations available
within the Luciad product.
Upgrade considerationOGC Server
The interfaces
ILcdRequest
and
ILcdResponse
have been extended
with additional methods that are useful in the context of conditional get requests.
The methods were already available on the concrete implementations, but are now accessible from the interface
without the need for downcasting.
This change affects users that have implemented
ILcdRequest
and
ILcdResponse
themselves. There is no need to implement these interfaces yourself though as there are implementations available
within the Luciad product.
Upgrade considerationOGC Server
The interfaces
ILcdKVPRequest
and
ILcdXMLRequest
have been merged within their common super-interface
ILcdRequest
. Consequently, these
interfaces have been removed. This change makes the request interface more in line with the well-known Servlet API,
and makes it easier to use. It also allows to deal with other content types in the future, and resolves an API
dependency on JDom XML parsing. In addition, extra methods are exposed on
ILcdRequest
to have
access to more information such as the attributes and the user principal.
As a consequence the interface
ILcdRequestHandler
and the abstract class
ALcdOGCCommandDispatcher
(and their implementations) have been updated accordingly.
They now have a single method
void handleRequest(ILcdRequest aRequest, ILcdResponse aResponse) throws TLcdOGCServiceException
which is used for all requests. This further simplifies the request handling, allowing implementations to decide if
they want to differentiate on the content type of the request or not.
Code that used to differentiate based on the content type of the request (e.g.
instanceof ILcdKVPRequest
or
ILcdRequestHandler.handleRequest(ILcdKVPRequest ...)
) needs to be adapted, the compiler will
flag these places. Typical OGC service customizations had no need to do this. The type of request can now be
determined using the content type of the request, utility methods
TLcdServletUtil#isKVPRequest
and
TLcdServletUtil#isXMLRequest
are available.
Upgrade considerationOGC Server
ILcdInitializationConfig
now exposes an
ILcdServletContext
object. This servlet context object contains the configuration for a group of servlets, while
ILcdInitializationConfig
contains the configuration for a single servlet.
This is useful for example to configure a shared cache between servlets. This change normally does not affect
anyone as the implementation of this interface is provided by the product.
Upgrade considerationOGC Server
The PNG encoder implementation
TLcdGXYViewPNGEncoder
now uses the ObjectPlanet PNG encoder,
which is part of an additional 3rd party library.
The ObjectPlanet PNG encoder library is a lot faster than the previously used JAI based PNG encoding.
As a result the implementation of
TLcdGXYViewPNGEncoder.encodeGXYView
declares it can throw
an
IOException
.
The interface
ILcdGXYViewEncoder.encodeGXYView
already declared the
IOException
on its method. This affects only users using the concrete class
TLcdGXYViewPNGEncoder
, which
is very unlikely.
Upgrade considerationOGC Server
The
ILcdRequest
interface has been extended with a few additional methods.
It provides access to the current authenticated user, if any authentication is taking place.
It also allows to retrieve programmatically set attributes to pass on information. As instances of this interface
are created internally, you are normally not affected by this change.
Upgrade considerationWeather & Environment Standards
Upgrade considerationAviation Standards
LCD-8780
TLcdDAFIFLayerConfiguration
instances built with the default constructor now have more useful default styling
properties, instead of painting all geometry in black. As this configuration is used by the
TLcdDAFIFDefaultLayerFactory
, it now also produces layers with more sensible default styling. Customizing the
styling remains possible as before.
Upgrade considerationAviation Standards
LCD-8780
TLcdARINCLayerConfiguration
instances built with the default constructor now have more useful
default styling properties, instead of painting all geometry in black. As this configuration is used by the
TLcdARINCDefaultLayerFactory
, it now also produces layers with more sensible default styling.
Customizing the styling remains possible as before.
Upgrade considerationAviation Standards
TLcdAIXMDefaultLayerFactory#isCreateLayerTreeNodes
now returns true by default. This means
that by default,
ILcdLayerTreeNode
instances will be created instead of (deprecated)
ILcdGXYLayerList
instances. This previous behavior can be restored by calling
setCreateLayerTreeNodes
with false as argument.
Upgrade considerationAviation Standards
TLcdARINCDefaultLayerFactory#isCreateLayerTreeNodes
now returns true by default. This means
that by default,
ILcdLayerTreeNode
instances will be created instead of (deprecated)
ILcdGXYLayerList
instances. This previous behavior can be restored by calling
setCreateLayerTreeNodes
with false as argument.
Upgrade considerationAviation Standards
LCD-8432
The behavior of
TLcdProcedure3DGeometryCalculator
has been modified
to continue to climb or to descend depending of the type of procedure (IAP, STAR, SID) and to
more align with reality.
Upgrade considerationAviation Standards
Support for the legacy AIXM 5.0 format has been discontinued. AIXM 5.0 was introduced in 2007 by FAA and Eurocontrol
as an intermediary to validate a new approach. This has lead to the creation of the official AIXM 5.1 standard in
2010, which of course remains supported, together with AIXM 3.3 and 4.x. Any reference to classes in the
com.luciad.format.aixm5 package need to be removed (not com.luciad.format.aixm51).
Upgrade considerationDefense Standards
When decoding a .THF file, the
TLcdUSRPModelDecoder
now returns
ILcdModelTreeNode
instances by default, instead of
TLcdModelList
instances.
ILcdModelTreeNode
's have many advantages such as the ability to mix sub-models with
different coordinate systems, and have built-in GXY layer factories to support them. If needed, this change can be
reverted using
TLcdUSRPModelDecoder#setCreateModelTreeNodes
.
Upgrade considerationDefense Symbology
ELcdNVG20WellKnownUnitOfMeasure
has been replaced by the more flexible
TLcdNVG20UnitOfMeasure
. As a result,
TLcdNVG20SimpleField#setUnit
and
TLcdNVG20SimpleData#setUnit
are now easier to use and less error-prone, because they only
accept
TLcdNVG20UnitOfMeasure
values instead of an
ELcdNVG20WellKnownUnitOfMeasure
or
String
value.
You can replace
ELcdNVG20WellKnownUnitOfMeasure
values by the equivalent static fields in
TLcdNVG20UnitOfMeasure
.
You can replace
String
values with a constructor call to
TLcdNVG20UnitOfMeasure
.
Upgrade considerationInfrastructure Standards
The servlet api has been updated to v3.1.0.
This only affects customers using the deprecated TLcdDGNMicroStationServlet
.
Upgrade considerationMaritime Standards
LCD-7481
ILcdS57Identifier
now has a new method getLongName
.
It returns the "Long Name" of the object, or -1 if unknown.
The “Long Name” is also known as "feature object identifier", or LNAM.
It is a representation of the FOID (Feature Object Identifier) fields.
More specifically, it is a "binary concatenation" (FIDS << 48) | (FIDN << 16) | AGEN
, where
AGEN is Producing Agency, FIDN is Feature Identification Number and FIDS is Feature Identification Subdivision.
Normally, you should implement this interface yourself, so will have no upgrade problems.
TLcdS57Identifier
has a new overloaded constructor that you can use should you need to create an identifier with a long name yourself.
Upgrade considerationMaritime Standards
LCD-6152
TLcdS52GXYPainterProvider
now allows to enable anti-aliasing for all objects, and not only icons. See
TLcdS52GXYPainterProvider#setAntiAliasing()
. As a consequence, TLcdS52GXYLayerFactory#setAntiAliasing()
now also
affects lines, and not only icons. When passing true for the antiAliasing
parameter of the
TLcdS52ProductConfiguration
constructor, its createGXYPainterProvider()
method will create a
TLcdS52GXYPainterProvider
with anti-aliasing enabled.
Anti-aliasing is now enabled by default for TLcdS52GXYPainterProvider.
Upgrade considerationTiling Engine
Support for coverages of type VECTOR has been superseded with other mechanisms.
Please refer to the Fusion migration guide for more information.
This means that it is no longer possible to read existing VECTOR coverages anymore.
This also means it is no longer possible to fuse data as VECTOR coverages anymore.
Upgrade considerationTiling Engine
LuciadFusion can not support legacy AIXM 5.0 anymore. AIXM 5.0 was introduced in 2007 by FAA and Eurocontrol as an
intermediary to validate a new approach. This has lead to the creation of the official AIXM 5.1 standard in 2010,
which of course remains supported, together with AIXM 3.3 and 4.x.
Upgrade considerationTiling Engine
Upgrade considerationTiling Engine
The fusion engine now doesn't support fusing multivalued data as MULTIVALUED coverages anymore. Support
for MULTIVALUED coverages was very limited. You can still fuse multivalued assets as RASTER coverages,
which is better supported.
In the context of this change, API changes were done:
- The
ALfnFormat
class now doesn't contain an
ILcdEarthMultivaluedProviderFactory
anymore. This means that its constructors now don't accept such a parameter anymore. The getter and setter for
this property was removed as well.
- The
ALfnFormat#newMultivaluedFormat
methods were removed.
- A similar change was done for
TLfnFormat
.
This also means that MULTIVALUED coverages can not be read anymore by fusion clients. In order to upgrade the
tile store, the assets that were used to create these coverages should be refused to a RASTER COVERAGE.
Upgrade considerationTiling Engine
The Fusion engine now uses TLcdNetCDFModelDecoder to fuse GRIB models. GRIB models that are decoded using
TLcdNetCDFModelDecoder can now be fused to an IMAGE, as well as to a RASTER coverage. The latter adds out-of-the-box
support for dimension filters (for time, elevation or other dimensions) to GRIB coverages when visualizing them.
This also means that the Fusion engine now doesn't support models that were decoded using TLcdGRIBModelDecoder
anymore.
2016.1
2016.1.33
ImprovementLuciadLightspeed
LCD-9098
The native touch library now also supports touch events for views inside a sun.awt.windows.WEmbeddedFrame
.
ImprovementLuciadLightspeed
LCD-9059
Added the possibility to configure a connection timeout and read timeout in
TLcdInputStreamFactory
.
These timeout will be applied to any
URLConnection
opened by the factory.
ImprovementRadar Connectors
LCD-8883
When trying to visualize a high resolution radar, it can occur that the radar data is not shown in the view.
This occurs when not enough texture memory is available (e.g. not enough GPU memory or when using a 32bit JVM).
Now a RuntimeException
will be thrown in this situation, to make clear what is causing the problem.
Bug fixLuciadLightspeed
LCD-9101
Fixed a memory leak in
TLcdGXYImagePainter
. This memory leak could occur when setting
a
ALcdImageOperatorChain
on the painter. This memory leak is most easily triggered when
using an SLD with a color map to paint the image data.
Bug fixLuciadLightspeed
LCD-9099
TLcdColorMapCustomizer
: the layout of the labels was wrong when you removed
or added a level to the color map.
Bug fixLuciadLightspeed
LCD-8964
Bug fixLuciadLightspeed
LCD-8319
TLcdGeoJsonModelDecoder
would indicate it could decode a folder named "geojson".
As a result, the decoder sample and Lucy added a button in the file chooser to load the whole directory, but
loaded only the first file.
Bug fixLuciadLightspeed
LCD-9065
Bug fixLuciadLightspeed
LCD-9047
Bug fixLuciadLightspeed
LCD-9055
TLcdScaleFormat
used to return and accept Double.NaN.
Setting Double.NaN as scale on a view could result in unexpected behavior.
This has been fixed by adjusting the format to refuse this value.
Bug fixLucy (LuciadLightspeed)
LUCY-4618
GXY map: entering 0 or 0:0 as scale would result in an unusable map. Those scale values are no longer considered valid
and are now refused by the UI.
Bug fixLuciadLightspeed
Fixed an issue where, in some cases, displaying point-sampled raster data caused exceptions.
Bug fixAviation Standards
LCD-9080
Some files without way points could provoke Null Pointer Exception. This has been fixed.
Bug fixTiling Engine
LF-1100
The fusion engine easily failed when fusing large image files with an SLD with a color map next to it.
This was cause by too much memory being allocated temporarily and the CPU spending too much garbage collecting.
This could result in an OutOfMemoryException. An other cause was a memory leak during raster painting,
LCD-9101.
Bug fixTiling Engine
LF-1098
Windows network paths could be handled incorrectly when creating asset metadata from NetCDF or S57
catalogue data located.
2016.1.32
Bug fixLuciadLightspeed
LCD-8952
Editing in a Lightspeed view no longer invalidates multi-object handles if an unrelated change has occurred in
another part of the view. This includes adding and removing of layers, making layers visible
and invisible, and changing the editing state of layers that are not being edited.
Bug fixLuciadLightspeed
LCD-9044
The following methods now also return a non-null result when the
TLcdHasGeometryAnnotation
was added on a super type of the domain object's data type:
ALcdShape#fromDomainObject
ALcdImage#fromDomainObject
ALcdBounds#fromDomainObject
Bug fixWeather & Environment Standards
LCD-9053
TLcdNetCDFModelDecoder#discoverDataSources
could return
ILcdDataSource
instances that can not be decoded.
2016.1.31
ImprovementLuciadLightspeed
LCD-9027
ImprovementLuciadLightspeed
LCD-8495
Added support for EPSG references based on the GDM2000 datum. This includes references 3375-3385, 4742 and 4920.
ImprovementOGC Server
LCD-9028
A new optional servlet configuration parameter "request.baseUrl" has been added to the deployment descriptor
of the WMS, WFS and WCS, allowing to manually set a base URL for the service requests listed in the capabilities.
ImprovementOGC Server
LCD-9028
A new optional servlet configuration parameter "request.baseUrl" has been added to the deployment descriptor
of Luciad's OGC services, allowing to manually set a base URL for the service requests listed in the capabilities.
Bug fixLucy (LuciadLightspeed)
LUCY-4615, LUCY-4616, LUCY-4617
The model reference chooser, added by
TLcyModelReferenceAddOn
, didn't preserve all reference metadata when
decoding or saving a model reference. This would lead to model reference instances that don't contain
authority and axis information. The latter could cause issues when used in combination with GML or WFS,
where the axis order is important.
Bug fixLucy (LuciadLightspeed)
LUCY-2258
The model reference chooser, added by
TLcyModelReferenceAddOn
, produced reference based on EPSG that didn't
preserve the original name.
Bug fixLuciadLightspeed
LCD-8937
Fixed a problem with KMZ models where the resources are located relative to a non-rooted KML-file inside the
KMZ archive. These are now correctly discovered during decoding.
Bug fixLuciadLightspeed
LCD-9013
Fixed an issue that could cause a ConcurrentModificationException while painting a vector coverage in a Lightspeed view.
Bug fixDefense Symbology
LCD-9032
Fixed issue where the halo thickness/color of the movement direction arrow didn't get updated properly.
Bug fixS-63
LCD-9022
Fixed an issue where cells without permit were being loaded when SENC caching is enabled.
The red cell outlines for these cells was shown.
The loading would fail because there is no permit, causing the
ILcdS57InvalidCellExceptionHandler
to be called.
Instead, these cells are now skipped during the initial decode, as when SENC caching is not enabled.
2016.1.30
ImprovementDefense Symbology
LCD-9000
Improve painting of unique designation in GXY for Bridge symbol.
Bug fixLuciadLightspeed
LCD-8981
TLcdGeoTIFFModelDecoder
did not handle GeoTIFF files using the
ModelTransformationTag
tag correctly.
This resulted in incorrect positioning and visualization of the data.
Bug fixLuciadLightspeed
LCD-8939
TLcdCGMModelDecoder
: The conjugate axis defining an ellipse were assumed to be the main axis.
Now the decoder correctly calculates the main axis based on the conjugate axis.
Bug fixLucy (LuciadLightspeed)
LUCY-4610, LUCY-4502
On Linux systems, saving the model reference file from the model reference chooser would not work
for data which was drag-and-dropped onto the map.
Bug fixLucy (LuciadLightspeed)
LUCY-4611
Lucy Map Centric: updates to the short description of application panes in the bottom area where not picked
up in the tooltip for the button to show the application pane.
This has been fixed in the HideableTabbedPane
sample class.
2016.1.28
Bug fixLuciadLightspeed
LCD-8931
The native touch library now has two system properties to tweak its behavior. Refer to
TLcdTouchDevice
for
more information.
Bug fixLucy (LuciadLightspeed)
LUCY-4606
WMS Lightspeed layers: the layer properties panel would only show the image style tab the first time the panel
was shown. Opening the layer properties panel a second time would no longer show that tab.
Bug fixLucy (LuciadLightspeed)
LUCY-4609
TLcyVerticalViewAddOn
could cause a stack overflow for certain types of domain objects. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4604
Editing a value in the tree-table based object properties panel could result in a
StackOverflowError
.
This has been fixed by adjusting the samples.lucy.treetableview.EditableTreeTable.StopEditingListener
class.
Bug fixAviation Standards
LCD-8984
TLcdARINCModelDecoder#canDecodeSource is now more robust against non-arinc txt files.
Bug fixDefense Symbology
LCD-8976
Fixed typo in possible values for MS2525c.
2016.1.27
ImprovementLuciadLightspeed
LCD-8948
TLcdColorMapCustomizer
: it is now possible to change the text color and font by recursively iterating
through the component's children and calling
setForeground/setFont
.
ImprovementDefense Symbology
LCD-8945
Added the possibility to display the unique designation (name) property of the Bridge symbol (6.X.4.12.3) for MS2525c
Bug fixLucy (LuciadLightspeed)
LUCY-4601
TLcyPreviewAddOn
: opening the UI element to modify the start and/or end date could block the
UI for several seconds.
Bug fixLuciadLightspeed
LCD-8951
Fixed an issue that would cause KML files where all the elements would only have a start or end bounds, to
incorrectly report the global time bounds for that renderable model.
Bug fixLuciadLightspeed
LCD-8881
The default SLD label color in GXY views was not correctly set to black.
Bug fixOGC Server
LCD-8953
The SLD WMS capabilities XML Schema sld_capabilities_1_3_0.xsd delivered with the WMS server contained a schema
location path that was incompatible with Spring Boot.
Bug fixDefense Symbology
LCD-8950
Fixed issue where an exception got thrown when viewing a custom symbol with a 3d geometry in a 3d view.
Bug fixDefense Symbology
LCD-8946
Fixed issue where an exception got thrown when creating TTA-106 symbols under hierarchy code 1.X.3.1.4.
2016.1.26
ImprovementLuciadLightspeed
LCD-8927
ImprovementLuciadLightspeed
LCD-8851
TLspPlotStyle: TLspPlotStyle#asBuilder now allows to reconfigure the color model.
ImprovementLuciadLightspeed
LCD-7442, LCD-8938
It is now possible to customize the tile grid used by the tiled WMS painters for GXY and Lightspeed views. The tile
grid can be specified through a newly added constructor in
TLcdGXYTiledWMSProxyPainter
and
TLspTiledWMSProxyPainter
.
Customizing tile grids can be useful to align with a server-defined tile grid used for caching of requests.
ImprovementGraph and Routing Engine
LCD-8869
The network.numeric sample now has the option to save changes of the graph.
ImprovementAviation Standards
LCD-8944
When requesting the altitude limits of an airpsace with invalid data, the error has now a meaningful message.
Bug fixLuciadLightspeed
BlackLimeLookAndFeel
: an indeterminate JProgressBar having its value set to the maximum now shows up. Before,
such progress bars being in the indeterminate, finished state remained all black.
Bug fixLucy (LuciadLightspeed)
LUCY-4597
Fixed a packaging problem with the resources in the Lightspeed swipe controller.
Bug fixLuciadLightspeed
LCD-8890
When the optional material attribute of a geometry element was missing a NullPointerException was thrown.
Now a default styling will be applied, when there is no material defined.
Bug fixLuciadLightspeed
LCD-8906
Some combinations of expand, crop and resize operations resulted in exceptions for some image sizes.
Bug fixGraph and Routing Engine
LCD-8871
Bug fixDefense Symbology
LCD-8941
Added disclaimer key to the domain json files.
This is to notify the users that these files are for internal use only and shouldn't be modified.
2016.1.25
ImprovementLuciadLightspeed
LCD-8904
ImprovementOGC Server
The WCS server now uses EPSG:4326 as fallback in case the data's native reference does not have an EPSG
representation.
Bug fixLuciadLightspeed
LCD-8911
TLspTextStyle: Text with trailing white spaces appeared to be stretched.
Bug fixLuciadLightspeed
Fixed an issue that would prevent overlay components on a
TLspExternalView
from updating correctly in applications that use more than one view.
Bug fixLuciadLightspeed
LCD-8867
TLcdIconFactory
did not support all available
Locale
s.
This could result in exceptions or the creation of the wrong icons.
Bug fixLuciadLightspeed
LCD-8893
Fixed a NullPointerException that could occur during painting when logging is enabled.
Bug fixAviation Standards
LCD-8916
TLcdDAFIFModelDecoder did not close all opened inputstreams during decoding. This has been fixed.
2016.1.24
ImprovementLucy (LuciadLightspeed)
LCD-8856
You can now set your S63 Customer System ID through the
TLcyS63FormatAddOn.s63CustomerSystemID
configuration setting
of the S-63 add-on: see TLcyS63FormatAddOn.cfg.
Alternatively, you can use a JVM system property: -Dcom.luciad.format.s63.s63CustomerSystemID=mys63id.
The setter method or Lucy setting take precedence over any system property.
See TLcdS63UnifiedModelDecoder.setS63CustomerSystemID()
for more information.
ImprovementS-63
LCD-8856
You can now set your S63 Customer System ID through a JVM system property:
-Dcom.luciad.format.s63.s63CustomerSystemID=mys63id.
In Lucy, you can use the TLcyS63FormatAddOn.s63CustomerSystemID add-on configuration setting:
see TLcyS63FormatAddOn.cfg.
The setter method or Lucy setting take precedence over any system property.
See TLcdS63UnifiedModelDecoder.setS63CustomerSystemID() for more information.
Bug fixLuciadLightspeed
LCD-8862
TLcdKML22ResourceProvider: Fixed resolution of links to URL's with spaces in them. These are now properly encoded
as URL safe strings.
Bug fixLuciadLightspeed
LCD-8471
In some cases, the boundedBy property of a GML model implementation would not be calculated automatically.
Bug fixLucy (LuciadLightspeed)
LUCY-4594
The Fit and Center actions in the pop-up of the map would throw an exception when the selected object
was a domain object which did not implement
ILcdBounded
. This would typically be the case for domain
objects which store the shape in their data model instead of extending from
ILcdShape
(as is the
case for the domain objects used in the fundamentals sample of Lucy).
Bug fixLuciadLightspeed
LCD-8885
Some datums returned by
TLcdGeoidGeodeticDatumFactory
returned NaN heights instead of throwing an exception when
not including lcd_geoid_resources.jar on the class path.
Bug fixLuciadLightspeed
LCD-8884
In some cases, TLspOnPathLabelingAlgorithm didn't calculate a location for all labels. This could happen for
example when using a data set where part of the objects don't have any labels.
Bug fixDatabase Connectors
LCD-8887
The default value (0) for empty cells used by the Georaster decoder was incompatible with elevation data and caused issues
when generating a color map.
Unless overridden by the metadata, Short.MIN_VALUE
is now returned for elevation data. The behavior for non-elevation data is unchanged.
Bug fixDatabase Connectors
LCD-8886
The TLcdOracleGeorasterModelDecoder incorrectly replaced the model descriptor of model trees containing only a single leaf
model.
The correct model descriptor is now used.
Bug fixAviation Standards
LCD-8878
ATS Route Segments that have rhumbline as type of path are now correctly visualized in Lightspeed views.
Bug fixDefense Symbology
LCD-8813
Fixed bug where a military symbol's editing geometry lost its constraints when provided by a custom ALspStyleTargetProvider.
To be clear: when providing a custom object in the ALspStyleTargetProvider, no constraints will be applied on the editing
geometry.
The constraints will only be applied when the ALspStyleTargetProvider provides ILcdAPP6ACoded or IcdMS2525BCoded objects as
edit targets.
2016.1.23
Bug fixLuciadLightspeed
LF-1086
In some cases, TLfnFileSystemTileStore failed to delete resources. This now works more robustly.
2016.1.22
ImprovementLuciadLightspeed
LCD-8806
TLcdVVJPanel#setSensitivity
now allows configuring the input sensitivity when interacting with altitude points
and/or the vertical cusor.
ImprovementLuciadLightspeed
LCD-8860
GML decoding: improved unit-of-measure related logging.
ImprovementLucy (LuciadLightspeed)
LUCY-4584
Improved the warning message which is shown to the user when during workspace loading a LuciadFusion model could not
be restored.
Bug fixLucy (LuciadLightspeed)
LUCY-4590
TLcyWMSClientAddOn
: the WMS connection panel didn't show any advertised WMS layers in case
of a WMS server offering single root layer without any child layers.
Bug fixLuciadLightspeed
LCD-8863
Fixed a quadratic complexity issue in the TLcdLabelLocations class. This could affect label painting performance
when painting many labels (1000+) at the same time.
Bug fixLuciadLightspeed
LCD-8839, LCD-8849
TLcdClusteringTransformer
:
Fixed event handling when a domain object in the original model changed. This fixes
cases where domain objects removed from the original model were being kept in the clustered model
and cases where model change events were fired on the original model for unrelated domain objects.
Bug fixLuciadLightspeed
LCD-5618
Fixed an issue where touch events were sometimes not delegated from
TLspAWTView
's overlay
panel to the view. This was especially noticeable when balloons were open.
Bug fixLuciadLightspeed
LCD-8854
Fixed an issue that could cause draped layers to flicker when looking at the horizon
over mountainous terrain.
Bug fixLucy (LuciadLightspeed)
LUCY-4585
TLcyDrawingAddOn
: several of the actions in the edit menu of the drawing tool bar would throw
NullPointerExceptions when the view did not contain a drawing layer. Those actions now instead whether the user wants
to create a drawing layer.
Bug fixDefense Symbology
LCD-8828
When the TTA-106 extension was enabled, the APP-6C domain model was overwritten by the TTA-106 domain model.
This was not expected behaviour as TTA-106 is only an extension for APP-6A and APP-6B. It is not compatible with APP-6C.
This has had side effect that you could not use APP-6C symbol codes on APP-6C layers when TTA-106 was enabled.
This also broke the military symbology samples when TTA-106 was enabled.
The APP-6C domain model is now no longer overwritten when TTA-106 is enabled.
2016.1.21
Bug fixLuciadLightspeed
LCD-8832
Using an SLD with an external graphic icon could lead to an OutOfMemory error in a Lightspeed view in case of
frequent layer repaints.
Bug fixOGC Server
LCD-8834
The WFS GetFeature request handler could trigger a NullPointerException in case the query included an OGC Filter
with XPath expression and the resulting response was empty.
Bug fixRadar Connectors
LCD-8728
TLcdASTERIXLiveDecoder
is now more robust against initial ASTERIX category 240 records which differ significantly
in azimuth resolution. Previously the radar could not initialize its parameters and as a result nothing
would be visualized.
2016.1.20
Bug fixLuciadLightspeed
LCD-8822
TLcdGeoTIFFModelDecoder
now takes the sampling mode (point vs. area-sampled)
into account when deriving the bounds of the image.
TLcdGeoTIFFModelEncoder
now takes the sampling mode (point vs. area-sampled)
into account when writing the bounds of the image.
Bug fixLuciadLightspeed
LCD-8819
Using TLspPinLineStyle didn't work correctly on the Mac OS X platform with NVIDIA graphics. In 2D, the line color
was always black. In 3D, no pin was visible at all.
Bug fixAviation Standards
LCD-8829
TLcdAssociationBasedAirspace methods could run into a stack overflow. This has been fixed.
2016.1.19
ImprovementLuciadLightspeed
LCD-8803
GML decoding: improved SRS-related logging.
ImprovementLuciadLightspeed
LCD-8802
In 3D, visual artifacts related to z-ordering could occur when using the visual inspection controllers. This has been fixed.
ImprovementLuciadLightspeed
LCD-8797
ImprovementLuciadLightspeed
TLspExternalView
is a new
ILspView
implementation which can
paint directly into an externally supplied OpenGL context (rather than creating a
new context of its own). This is useful in cases where a Lightspeed view should be
integrated with a non-Java application and windowing toolkit (e.g. a C++
application using Qt).
The article
How to integrate LuciadLightspeed in a C++ application on the
Luciad Developer Platform
provides more detailed information.
ImprovementLuciadLightspeed
LCD-8787
TLcdAdvancedMapRulerController#setAlwaysCreate
allows creating measurements that start from existing measurements.
If you don't set the flag, clicking or dragging an existing measurement edits that measurement.
The javadoc has more information on how to add snapping behavior to this.
ImprovementLuciadLightspeed
LCD-8778
The WMS client's XML capabilities decoder now supports capabilities documents that contain style definitions at the end of
a
layer definition instead of at the standardized position defined by the WMS capabilities XML Schema.
ImprovementAviation Standards
LCD-8804
It is now possible to set the default srsName to the AIXM 5/5.1 model decoders that will be used to determine
the model reference if neither the first AIXM message member, its possible envelope or the possible envelope of the AIXM message
has
a srsName attribute set.
Bug fixLuciadLightspeed
LCD-8766
Fixed an issue that caused the swipe and porthole controllers to appear jittery when
zooming in and out in a 3D view.
Bug fixLuciadLightspeed
LCD-8805
TLcdResizeOp did not behave consistently in conjunction with TLcdExpandOp.
In some cases this could result in an error when forcing visualization of high resolution data from a zoomed out perspective.
Bug fixLuciadLightspeed
Setting the overlay component of a
TLspAWTView
to invisible
did not actually hide the child components that had been added to it.
Bug fixLuciadLightspeed
LCD-8812
When printing a 3D view, visual artifacts on the print could occur if the visual inspection controllers were used on the view.
This has been fixed.
Bug fixLuciadLightspeed
LCD-8796
TLspShapePaintingHints.Builder#overlapResolution
: When configuring the overlapResolution with
ELspQualityHint.NICEST
, the outlines of overlapping filled shapes were rendered incorrectly
when the
ALspStyler
, configured on the layer, used other styles than
TLspLineStyle
and
TLspFillStyle
.
Bug fixLuciadLightspeed
LCD-8808
TLspLayerTreeNode#removeAllLayers() caused an AssertionError when running with assertions enabled.
Upgrade considerationLuciadLightspeed
LCD-8624
2016.1.18
ImprovementLuciadLightspeed
LCD-8723
Reduced the amount of editing state events fired when incrementally selecting or deselecting shapes.
ImprovementTerrain Analysis Engine
LCD-8744
Support for image elevation data has been added to hypsometry.
ImprovementAviation Standards
LCD-8579
Altitude and Distance units of measure set through
TLcdAltitudeUnit
and
TLcdDistanceUnit
will be picked up and used in AIXM 5 calculation (ex:
TLcdAIXM51VerticalStructurePart#getMaximumZ()
).
Also if a AIXM unit of measure (ex:
TLcdAIXM51UomDistance
) can not be converted, a warning will be logged.
ImprovementAviation Standards
LCD-6519
The XLinks support has been improved. XLinks pointing to the gml:identifier attribute are now resolved.
Additionally the
TLcdAIXM5LinkExpressionFactory
and
TLcdAIXM51LinkExpressionFactory
have been added. You can override their compile method for custom xlinks resolution.
Bug fixLucy (LuciadLightspeed)
LUCY-4578
Some raster data would show opaque borders around the data when visualized on a GXY view
(see TLcdRasterPainter#setAvoidOpaqueBorder
).
This was not the case when visualizing the same data on a Lightspeed view.
Now all raster data formats hide their opaque borders to ensure consistency between GXY and Lightspeed views,
as well as consistency between the different raster formats.
Bug fixLuciadLightspeed
LCD-8788
Setting a time instant or time interval on a TLcdWCSProxy domain object did not invalidate the loaded WCS image
raster.
Bug fixLucy (LuciadLightspeed)
LUCY-4577
Table view: triggering the "Pack all columns" action would throw an IndexOutOfBoundsException when the table is empty.
In case you have a copy of the table view sample code, the fix only required changes to the
AbstractMeasureAnnotationCellRendererProvider
class.
Bug fixLuciadLightspeed
LCD-8721
Prevented exception that could occur for 3D shapes when performing undo operations.
Bug fixLuciadLightspeed
LCD-8769
Fixed flickering for sample visual inspection controls overlay panels.
Bug fixLuciadLightspeed
LCD-8763
TLcdEllipsoidUtil#orientation2D could return an incorrect orientation for some polygons.
Bug fixAdvanced Raster Connectors
LCD-8781
The TLcdECWModelDecoder will now decode images with more than 4 bands. Only the first 3 bands will be available,
as specified in the release note for LCD-6440.
Bug fixAviation Standards
LCD-8791
Fixed NullPointerException when painting route segments containing null curve extent property.
Bug fixAviation Standards
LCD-8784
LCD-7356 didn't take into account for Association based Airspaces and Airspace Corridors. This has been fixed.
Bug fixAviation Standards
LCD-8783
If you provide a SLD file for a custom datatype for 3D visualization, it is not anymore necessary to provide
a SLD for this datatype for 2D.
Bug fixAviation Standards
LCD-8779
TLcdAssociationBasedAirspace.toString() could generate a stack overflow, which has been fixed.
2016.1.17
ImprovementTiling Engine
LF-1075
TLfnFileSystemTileStore: performance improvement for adding a large amount of assets.
Bug fixLucy (LuciadLightspeed)
LUCY-4575
The majority of the GXY data formats were affected by a small memory leak: when running for many days, the
application could slowly increase its memory usage up to a point where a restart was required.
2016.1.16
Bug fixLuciadLightspeed
LCD-8761
Bug fixLuciadLightspeed
LCD-8759
When there was a general TileMatrix definition and a TileMatrixSetLink which defines row and column limits for the
TileMatrix for a specific layer, WMTS client was requesting all the tiles in the TileMatrix for that layer. This was
leading to performance problems since the client was requesting invalid tiles and having error messages from the
server for each invalid tile.
Bug fixLuciadLightspeed
LCD-8754
Restored missing POM files for some native libraries (GEOS and the LizardTech Decoding SDK).
Bug fixLuciadLightspeed
LCD-8751
World scaled icons with a larger height than width, were difficult to select.
Bug fixLuciadLightspeed
LCD-8725
Improved referencing accuracy for image data with a small rotation.
Bug fixLuciadLightspeed
LCD-8720
Fixed a threading violation that could occur while editing polylines.
Bug fixDefense Standards
LCD-8732
The NITF decoder no longer relies on reflection to instantiate segments. This avoids issues caused by code optimizers removing
seemingly unused constructors.
Bug fixDefense Symbology
LCD-8764
The label of some military graphics (mostly lines) were positioned incorrectly.
Bug fixDefense Symbology
LCD-8762
Fixed bug where a label of the "Line Of Contact" symbol ("G*G*GLC---****X") was painted, even when it was empty.
This became apparent when using a custom military symbology label styler that adds a frame to the label using
TLspLabelBoxStyle.
2016.1.15
Bug fixLuciadLightspeed
LCD-5810, LCD-7629
Improved performance and memory usage when processing or painting images that are not tiled or not tiled
efficiently.
Bug fixLuciadLightspeed
LCD-8742
Fixed a WMS XML capabilities decoding regression (introduced by LCD-8001) that prevented the decoding
of custom operations in the capabilities.
2016.1.14
ImprovementLucy (LuciadLightspeed)
LUCY-4571
TLcyMapEditUnitAddOn
now includes a miles/hour unit.
Refer to the map_units.cfg file to configure the unit.
ImprovementLuciadLightspeed
LCD-6858
ImprovementLuciadLightspeed
LCD-5185
TLcdGXYImagePainter
: tiles at the current zoom level are now loaded first, without waiting for the tiles
of coarser levels to load first.
ImprovementLuciadLightspeed
LCD-8477, LCD-6320
The SLD Feature Type Style decoder and encoder now support Feature Type Styles documents that define VendorOption
key/value properties on a symbolizer. This information can be accessed in the API through the
different symbolizer classes (for instance, TLcdSLDPolygonSymbolizer) via a new method getVendorOptions()
and class TLcdSLDVendorOption.
ImprovementLuciadLightspeed
LF-1071
Performance improvement for the WMTS and LTS service when no S63 license is available. Tile requests can be
a few 10's of milliseconds faster in that case, depending on the number of assets in a coverage.
ImprovementLuciadLightspeed
LCD-8469
TLsp3DIconStyle
: It is now possible to define a minimum pixels size for a 3D icon.
This minimum pixel size is only applied when world scaling is used.
See
TLsp3DIconStyle.Builder#minimumPixelSize}
.
ImprovementLuciadLightspeed
LCD-3472
TLsp3DIconStyle
: It is now possible to apply view scaling to a 3D icon.
When using this type of scaling, the 3D icon will always have the same (pixel) size in the view.
See
TLsp3DIconStyle.ScalingMode#VIEW_SCALING}
.
ImprovementLuciadLightspeed
LCD-8704
SLD graphic strokes now support the Gap property for external graphics. This property
can be used to define the gaps between icons when they are used for a line stroke.
Bug fixLuciadLightspeed
LF-1046
Multidimensional WMS model was sometimes producing wrong tiles when applying different filtering values to the model
in a short period of time.
Bug fixLuciadLightspeed
LCD-8734
Background raster layers were not always updated correctly when making changes to them.
Bug fixLuciadLightspeed
Improved the WMS XML capabilities decoding process by adding support for the format element inside LegendURL, StyleSheetURL
and StyleURL elements.
Bug fixLuciadLightspeed
LCD-8715
TLcdGXYImagePainter
level switch factor was incorrectly interpreted when painting
ALcdMultilevelImageMosaics
.
which were only painted when you zoomed in.
Bug fixLuciadLightspeed
LCD-8712
TLspRasterLayer: fixed artifacts in terrain when the view's GL resource cache is close to its limit.
Bug fixLucy (LuciadLightspeed)
LUCY-4568
dmed.sty files next to a dmed file were not picked up by Lucy.
Bug fixLuciadLightspeed
LCD-8705
Fixed a WMS XML capabilities decoding issue that caused a decoding failure in case of WMS layer style definitions
containing LegendURL, StyleSheetURL and/or StyleURL elements.
Bug fixLuciadLightspeed
LCD-8697
Bug fixDefense Symbology
LCD-8707
Uncertain affiliated symbols such as Assumed Friend, Suspect, Pending are displayed with a black and white dotted
outline for APP6C. When the symbol is not filled and there is no hierarchy icon in it, there is no way
to see the affiliation of the icon since it is only a frame with a black and white outline. With this fix, a symbol
with an uncertain affiliation and an unfilled style is displayed with a dashed line whose color is the affiliation
color.
Bug fixDefense Symbology
LCD-8707
Uncertain affiliated symbols such as Assumed Friend, Suspect, Pending are displayed with a black and white dotted
outline for MS2525C and APP6B. When the symbol is not filled and there is no hierarchy icon in it, there is no way
to see the affiliation of the icon since it is only a frame with a black and white outline. With this fix, a symbol
with an uncertain affiliation and an unfilled style is displayed with a dashed line whose color is the affiliation
color.
2016.1.13
ImprovementLuciadLightspeed
LCD-8692
It is now possible to configure the gamma value of a TLcdSLDRasterSymbolizer through its builder.
Bug fixLuciadLightspeed
LCD-8701
Fixed a NPE that could occur when calculating the geodesic area after switching from 2D to 3D.
Bug fixLuciadLightspeed
LCD-8700
Bug fixLuciadLightspeed
LCD-2922
In the Tracking Camera Lightspeed sample, synchronous painting is now enabled on the track layer.
This avoids jitter when model updates take longer than rendering a frame.
Bug fixLuciadLightspeed
LCD-8693
TLcdWFSProxyModel
: when constructing a proxy model which does not contain GML elements, the
model would re-query the server on each interaction in CACHE_ALL mode.
2016.1.12
ImprovementLuciadLightspeed
LCD-8623
TLcdTransformingModelFactory
now allows you to specify
whether the transformed model should keep a spatial index.
This means you can now avoid the cost of spatial indices when your data updates often.
ImprovementLuciadLightspeed
LCD-5185
TLcdEarthGXYRasterPainter: tiles at the current zoom level are now loaded first, without waiting for the tiles
of coarser levels to load first.
ImprovementLuciadLightspeed
TLcdGXYImagePainter
now supports asynchronous painting of non-quadtree structured ALcdMultilevelImageMosaics.
However, all levels must have the same sampling mode.
Bug fixLuciadLightspeed
LCD-8686
TLcdTimeBounds
: the hashCode and equals method implementations were not in sync, which
is a violation of their contract.
Bug fixLuciadLightspeed
LCD-8682
Images painted asynchronously by
TLcdGXYImagePainter
were sometimes painted in the wrong color when zooming in. This has been fixed.
Bug fixLuciadLightspeed
LF-1058
TLfnTileStoreProvider#getTileStore(URI) could sometimes return a tile store with an incorrect path on Windows.
Bug fixLuciadLightspeed
LCD-8676
Multidimensional WMS model was not exposing a vertical dimension whose name was not "DEPTH" or "ELEVATION". This was
preventing the WMS Client to extract correct dimension information from a WMS source. Now the model exposes all dimensions
of a WMS source.
Bug fixLuciadLightspeed
LCD-8647
Fixed an issue in
TLcd2DBoundsIndexedModel
when using "elementChanged" for elements with "undefined" bounds going to "defined" bounds.
Bug fixLuciadLightspeed
LCD-8661
World scaled icons with an anchor point other than the center of the icon were difficult to select.
Bug fixLuciadLightspeed
LCD-8632
The WMS client could not properly handle WMS layers with a max scale denominator value of Double.MAX_VALUE.
Bug fixLucy (LuciadLightspeed)
LUCY-4563
OnBoardingHelpAddOn: the overlay help appeared too big when on Mac, and too small when on low dpi screens such
as projectors. The icon size for Lucy Map Centric is now also a bit smaller when running on Mac.
Bug fixLuciadLightspeed
TLcdColor.makeTransparentColor
: now returns the actually requested color.
Bug fixLuciadLightspeed
LCD-8504
Fixed NPE that could occur when a secondary view is disposed.
Bug fixLuciadLightspeed
LCD-8241, LCD-8505
When multiple 3D views, with context sharing enabled, were used, the altitude exaggeration factor would not
be applied correctly in all views.
Bug fixLuciadLightspeed
LCD-8630
SLD raster styles were not supported on ILcdRaster / ILcdMultilevelRaster / ILcdEarthTileSet data if the data
was not of the type ALcdImage.
Bug fixOGC Server
LCD-8631
The SLD raster styling capability of the WMS server sample could lead to empty image responses, due to
data getting rendered asynchronously.
Bug fixOGC Server
LCD-8630
The SLD raster styling capability of the WMS server sample could not handle raster data of type ILcdRaster /
ILcdMultilevelRaster / ILcdEarthTileSet if the data was not of the type ALcdImage.
Bug fixAviation Standards
LCD-8637
TLcdAIXM51ValDistanceVertical.getValue() returns the correct value even when it is negative one.
2016.1.11
ImprovementLuciadLightspeed
LCD-8619
A stereoscopic Lightspeed view that can be used with 3D glasses has been added.
See the javadoc of
TLspViewBuilder#buildStereoscopicView
and
TLspStereoDeviceBuilder
for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-4559
Lucy Map Centric: the debug actions added by the
TLcyDebugAddOn
are now inserted into the
tool bar as well. This is achieved by specifying a custom configuration file for the debug add-on in the map_centric_addons.xml
file.
ImprovementLuciadLightspeed
LCD-8435
The Maven deploy script now defines separate targets to deploy the Luciad core libraries, custom-built and publicly available
third-party libraries.
These targets can be called separately for users requiring more control over what gets deployed to the Maven repository.
The default behavior of the Ant script and the wrapper shell scripts has remained unchanged and is to deploy all libraries
and resources.
A new target deploy:private
and wrapper shell scripts deploy.private.sh|bat have been added to deploy only non-publicly available libraries (core and custom builds). Note
that use of this target is not recommended and therefore not supported by Luciad.
ImprovementLucy (LuciadLightspeed)
LUCY-4561
The TLcyLspMapAddOn_CommonMapComponent.cfg
configuration file incorrectly specified
FullScreenView
as a group priority for the rightToolBar
. This is
now corrected to FullScreenGroup
.
Bug fixLuciadLightspeed
LCD-8604
TLsp3DIconStyle
: When reusing a 3D icon style instance on a second view or layer,
the 3D icon would not be visible in one of them.
Bug fixLuciadLightspeed
LCD-8605
TLspComplexStrokedLineStyle
: When the elevation mode was set to
ON_TERRAIN
, shapes with non zero altitude were not draped correctly on the terrain.
Bug fixLuciadLightspeed
LCD-6249, LCD-8357
Fixed an issue where switching between 2D and 3D while editing a sphere or a dome would cause visual artifacts and
glitches.
Bug fixLuciadLightspeed
LCD-8602
TLcdKML22BalloonContentProvider now respects the configured background color.
Bug fixDefense Symbology
LCD-8611
Setting Min/Max Altitude and Time From/To fields of Aviation Areas tactical graphs (MS2525b, App6-A and App6-B)
was inconsistent. Now to set the Min/Max Altitude, you can use altitudeDepth modifier. For Time From/To, you can
use dateTimeGroup and effectiveTime modifiers respectively.
2016.1.10
ImprovementLuciadLightspeed
LCD-8502
TLcdCGMModelDecoder
: CGM closed arcs are now supported. Previously they were
handled the same as open arcs.
ImprovementLuciadLightspeed
BlackLimeLookAndFeel
now has slightly more prominent dialog borders. This is for example useful when a dialog shows
on top of another dialog.
ImprovementLuciadLightspeed
LCD-8574
LCD-6476 caused a behavioral change in the decoding of references in GML documents, resulting in the interpretation
of "http://www.opengis.net/gml/srs/epsg.xml#4326" as a lat-lon reference.
To maintain compatibility with older WFS servers and other GML clients, this has been changed back to lon-lat.
This lon-lat interpretation can also be activated in
TLcdOGCModelReferenceParser
by calling
setParseGMLPrefixedEPSG4326AsLonLat(true)
.
ImprovementLucy (LuciadLightspeed)
LUCY-4554
TLcyKML22AddOn
: it is now possible to disable the auto-show behavior of the
KML model contents tree. Consult the
TLcyKML22AddOn.cfg
configuration file
for more information.
ImprovementLuciadLightspeed
LCD-8581
The TLspEditController now only queries the layer editor for new edit handles when there has been an updated to any of
the edited objects. (Previously, it would request new handles from the editor for every model change)
Bug fixLuciadLightspeed
LCD-8595
TLcdGML32Circle/TLcdGML31Circle did not expose a correct arc angle, which could lead to an incorrect visualization of these
shapes.
Bug fixLucy (LuciadLightspeed)
LUCY-4553
Loading a workspace which contained a corrupted embedded model would crash the whole workspace loading,
instead of just avoiding loading that model/layer.
Bug fixLuciadLightspeed
LCD-8577
BlackLimeLookAndFeel
now supports custom background colors, for example in text fields. This for example means that
the text fields in Lucy Map Centric now color red when an invalid value is entered.
Bug fixLuciadLightspeed
LCD-8575
Fixed an issue that could cause layers to temporarily stop updating if the system clock
changed while the application was running.
Bug fixLuciadLightspeed
LCD-8555
Fixed an error that could occur when painting or querying image mosaic's with variable resolution.
Bug fixGraph and Routing Engine
LCD-8378
Bug fixWeather & Environment Standards
LCD-8583
For some files with bounds with a width of a bit more than 360 degrees, a wrong code path was triggered to shift the
view -180 degrees. This is fixed now.
Bug fixWeather & Environment Standards
LCD-8572
TLcdNetCDFModelDecoder could show irrelevant warnings for missing coverage info data.
Bug fixWeather & Environment Standards
LCD-8524
Disposing a NetCDF model didn't always dispose of its resources. It could leave files open, or not clean up
temporary files.
Bug fixAviation Standards
LCD-8598
TLcdAIXM5VerticalStructurePart and TLcdAIXM51VerticalStructurePart getMinimumZ() and getMaximumZ() return the
correct values.
Bug fixAviation Standards
LCD-8596
Standard meter altitude unit of measure doesn't provoke a Null Pointer Exception anymore in AIXM 5 and 5.1.
Bug fixAviation Standards
LCD-8553
Several fixes on DAFIFT decoding :
- TLcdDAFIFTHoldingDecoder : empty turn direction is handled as not defined.
- TLcdDAFIFTWayPointDecoder : doesn't fail on empty usage code.
- TLcdDAFIFTAirspaceDecoder : logs errors instead of propagate them like other decoders.
- TLcdDAFIFTVFRRouteDecoder : can return an empty model instead of null.
- TLcdDAFIFTRunwayDecoder : a NullPointException has been fixed.
Bug fixAviation Standards
LCD-8549
TLcdARINCRunwayHandler will not throw a IndexOutOfBoundsException for runways without points.
Bug fixAviation Standards
LCD-8578
CM distance unit of measure doesn't provoke a Null Pointer Exception anymore in AIXM 5.1.
Bug fixAviation Standards
LCD-8233
TLcdARINCModelDecoder.canDecode is more robust.
Bug fixDefense Symbology
LCD-8593
Symbol icon labels were overlapping when the icon is small enough or the font is big enough.
Bug fixDefense Symbology
LCD-8594
Creating multiple symbols and then putting text modifiers to them in a multithreaded environment was causing exceptions.
This has been fixed that symbols can be created and modified in a multithreaded environment.
2016.1.09
Bug fixLuciadLightspeed
LCD-8567
Fixed an inefficiency in the GetFeature request's XML encoding generation pipeline, which could cause performance
reductions when performing GetFeature requests.
Bug fixLuciadLightspeed
LCD-7921
Fixed an issue in
TLcdDatabaseModel
that would cause a NullPointerException when adding elements to an empty database.
Bug fixLuciadLightspeed
LCD-8561
When BlackLimeLookAndFeel
is used in combination with the JIDE docking framework (for example in Lucy), floating
panels could not be resized properly.
Bug fixLuciadLightspeed
LCD-8554
TLsp3DIconStyle
: When the styled domain objects were not an instance of
ILcdShape
the 3D icons would not be placed on or above the terrain correctly.
Bug fixLuciadLightspeed
LCD-8450
Fixed some corner cases where 3D terrain was not sufficiently detailed.
Bug fixLuciadLightspeed
LCD-8433
Removed GDAL dependency from Fusion Client.
Bug fixWeather & Environment Standards
LCD-8566
In rare cases, NetCDF files with a geodetic model reference had incorrect bounds, causing them to be painted at
a different location than expected.
Bug fixDefense Symbology
LCD-8530
MS2525b: the crossed circle icon of "Forward Edge Of The Battle Area" was being affected by the font which set via
ILcdMS2525bStyle#setLabelFont. This has been fixed that the icon is not affected anymore.
Bug fixDefense Symbology
LCD-8497, LCD-8498
Fixed minor visual defects for APP6A and MS2525C icons.
2016.1.08
ImprovementLuciadLightspeed
LCD-8544
Improved the robustness of the XML decoders when parsing invalid properties.
Bug fixLuciadLightspeed
LF-1052
TLfnTileStoreModelDecoder#discoverDataSources() could be blocked when an error occurs.
Bug fixLuciadLightspeed
LCD-8541
The default in-path labeling algorithm for Lightspeed views didn't handle ILcdCompositeCurve instances well. This
could cause labels to be places outside the labeled objects, for example when using GML or labeling WFS data.
Bug fixLuciadLightspeed
LCD-8548
Fixed an issue related to the internal WMS auto-detection mechanism to determine the correct axis order for
the EPSG:4326 (WGS 84) reference in case of a WMS 1.3.0 server; the determined axis order was not correctly
used for all layers.
Bug fixLuciadLightspeed
LCD-8538
Fixed error when visualizing mixed color-measurement data.
Bug fixLucy (LuciadLightspeed)
LUCY-4547
Removing multiple managed locations (for example from the recently opened file list, or the Connect to... UI)
would be really slow, and could block the Lucy UI for several seconds to minutes.
Bug fixLuciadLightspeed
LCD-8531
2016.1.07
ImprovementLuciadLightspeed
LCD-8388
TLcdGeoJsonModelDecoder
: It is now possible to decode GeoJSON data with custom geometry by
overwriting
TLcdGeoJsonModelDecoder#parseCustomGeometry
.
Bug fixLuciadLightspeed
LCD-8528
A density layer would not update when there was a change on the filter that was configured on the layer.
Bug fixLucy (LuciadLightspeed)
LUCY-4538
The on-boarding help, shown once at initial application start, could get stuck if an error dialog was showing on
Linux. This corner case is now handled by not showing the on-boarding help in that case.
Bug fixLuciadLightspeed
LCD-8516
Icons would sometimes turn black when reparenting a view while context sharing was disabled.
Bug fixLucy (LuciadLightspeed)
LCD-8511
TLcyWFSClientAddOn: the connection dialog could not handle WFS feature types with
empty bounding box content in the XML capabilities; this resulted in a NullPointerException.
Bug fixAviation Standards
LCD-8523
Generating vertical structure snapshots does not provoke Null Pointer Exception anymore.
2016.1.06
Bug fixLuciadLightspeed
LCD-8500
TLcdColorLookupOp
: the operator did not work correctly for color images without an alpha channel.
Bug fixLuciadLightspeed
LCD-8499
Bug fixOGC Server
Fixed a recent regression in the WMS server sample that prevented the rendering of Earth data repositories.
Bug fixTiling Engine
LF-1047
Increased the robustness of temp file removal when fusing SHP files.
Bug fixTiling Engine
LF-1043
NetCDF image fusing was not respecting color maps provided with a SLD style file.
2016.1.05
ImprovementLucy (LuciadLightspeed)
LUCY-4543
The pop-up menu of the GXY map now offers an action to copy the last clicked coordinates and to
copy the coordinates of a selected point (similar to what is available on a Lightspeed map).
These actions are created in the map component factory (see TLcyMapComponentFactory#COPY_POINT_COORDINATE_ACTION
and TLcyMapComponentFactory#COPY_LAST_CLICKED_COORDINATE_ACTION
).
The location of those actions
in the UI is configured in the map_addon.cfg file (see the TLcyMapAddOn.copyPointCoordinateAction.xxx
and
TLcyMapAddOn.copyLastClickedCoordinateAction.xxx
properties).
ImprovementLuciadLightspeed
LCD-8481
ImprovementLuciadLightspeed
LCD-7591
GML encoding: improved the export of models that are not GML feature collections but do contain GML features
(e.g. WFS models).
ImprovementLuciadLightspeed
BlackLimeLookAndFeel
: the color of selected toggle buttons is now slightly more prominent.
ImprovementLuciadLightspeed
LCD-8441
You can now add new points to the beginning or end of ILcd2DEditablePolyline implementations
(2D/3D polylines, arrows, buffers etc.) with a CTRL+left click to any location on the view by using TLsp2DPointListEditor.
If the clicked point is closer to the first point than the last point of the shape, it will be inserted as the first
point, otherwise it will be inserted as the last point.
ImprovementLuciadLightspeed
LCD-8451
DimensionalFilterManager
was setting a model's filter value to the first possible value of the filter when the model
is added to a view and if the model is the first model for that filtering dimension in the view. This was preventing
you to set a filter value on the model and then display it with the same filtering value via the DimensionalFilterManager.
To achieve that, you had to set the same filtering value after displaying the model. Now with this enhancement,
the DimensionalFilterManager sets the value of the filter by getting it from the model if the model is the first
model of that dimension in the UI.
ImprovementReal-time Engine
LCD-8482
Changing the system clock during TLcdSimulator playback no longer pauses the simulation.
Bug fixLuciadLightspeed
LCD-8483
Fix visualization of alpha channel for non 8-bit/component RGBA rasters.
Bug fixLucy (LuciadLightspeed)
LUCY-4539
The text of the mouse read-out was not centered in its component.
Bug fixLuciadLightspeed
The
ALcdMeasureProvider
instances created by a
TLcdImageModelMeasureProviderFactory
would return
in some cases the least detailed value when sample density was set to Double.NaN, instead of the most detailed
value.
Bug fixLuciadLightspeed
LCD-8463
Implemented a workaround for
JDK-8066871,
which causes
java.lang.VerifyError: Bad local variable type at run-time with code compiled at language level 1.8 on Windows.
Bug fixLuciadLightspeed
LCD-8252
3D icons were not projected correctly in all 2D projections.
Bug fixLuciadLightspeed
LCD-7937, LCD-8342
TLspComplexStrokedLineStyle
: text could be painted upside down, even when enabling the
rotateUp()
setting. This could happen when painting shape lists using a complex stroke,
or when returning multiple style targets for an object.
Bug fixLuciadLightspeed
LCD-8457
The default line label position of the Lightspeed XY grid (
TLspXYGridLayerBuilder
) had changed from right to left.
This was a recent regression.
Bug fixLuciadLightspeed
LCD-8449
TLcdGXYShapePainter#getObject
did not always return the expected object.
Bug fixLuciadLightspeed
LCD-8448
SLD color maps specified in a raster symbolizer were not always correctly applied for non-elevation data,
which could lead to invisible data.
Bug fixLuciadLightspeed
LCD-8227
Fixed possible exception when painting 3D icons or 3D meshes with textures.
Bug fixLuciadLightspeed
LCD-8446
TLcdInputStreamFactory: for very large files the created streams could sometimes not read all available bytes. This
could give errors for some decoders (ex. GeoTIFF).
Bug fixAviation Standards
LCD-8491
When decoders that implement ILcdDAFIFSubTypeFilteringDecoder had "subTypesToDecode" set, the expiration and effective dates
were previously not set to the model descriptors.
Now it is fixed and TLcdDAFIFAirspaceModelListDescriptor also implements ILcdDAFIFModelDescriptorSupport.
Bug fixAviation Standards
LCD-8472
TLcdAIXMModelDecoder.canDecode uses now the ILcdInputStreamFactory set to the decoder.
Bug fixDefense Symbology
LCD-8470
The fix provided in LCD-8416 has been enhanced to apply multiple Lightspeed views. The labels were still displayed
incorrectly in case of having multiple Lightspeed views.
2016.1.04
ImprovementLuciadLightspeed
LCD-8159
ImprovementLuciadLightspeed
LCD-8445
Vendor-specific parameters included in URLs supplied to TLcdWCSClient, TLcdWFSClient,
TLcdWMSClient or TLcdWMTSClient now take precedence above equally-named parameters in the URLs
listed in the XML capabilities. This resolves interoperability issues with servers that include
templates for vendor-specific parameters in the URLs listed in the XML capabilities.
ImprovementLuciadLightspeed
LCD-8440
Improved the robustness of TLcdInterval#equals
.
Bug fixLuciadLightspeed
LCD-4751
TLcdGML32LineString and TLcdGML31LineString instances defined in a geodetic reference were not interpolated correctly.
Bug fixDefense Symbology
LCD-8442
Fixed the NullPointerException when a symbol is selected in the Military Symbology samples.
2016.1.03
ImprovementLuciadLightspeed
LCD-8012
ImprovementLucy (LuciadLightspeed)
LCD-8173
TLcyAPSAddon
can now handle the new TLcdAircraftPerformanceSettings
property "Procedure Turn Radius".
ImprovementLuciadLightspeed
LCD-8154
It is now possible for the line labels of the xy and georef grids in a Lightspeed view to:
- define an offset from the view edge
- define an offset from the grid line
- always paint them horizontally
ImprovementLuciadLightspeed
LCD-8419
GML decoding: the GML-based decoders now cache parsed model references.
ImprovementLuciadLightspeed
LCD-8417
TLcdGeoPackageModelEncoder can now encode models with an ALcdImage domain object or the domain object
is an ILcdDataObject whose type contains a TLcdHasGeometryAnnotation with an ALcdImage property.
ImprovementOGC Server
LCD-7391
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES
in CTR mode) to encode log entries.
ImprovementWeather & Environment Standards
LCD-7102
TLcdNetCDFModelDecoder now implements ILcdInputStreamFactoryCapable which lets you to provide input stream factories
to the decoder. For example, you can now decode NetCDF data served from an OGC WCS web service by providing the
input stream created by a WCS Client to the TLcdNetCDFModelDecoder.
ImprovementWeather & Environment Standards
LCD-7702
Added a new exception message for unsupported input files which have zero length axes.
ImprovementWeather & Environment Standards
LCD-7662
Improved wind data detection logic therefore more NetCDF files can be visualized with wind barbs.
ImprovementAviation Standards
LCD-8296
Added the Event extension schema for AIXM 5.1 resources to the AIXM5 optional module. The following namespace can now
be used without a reference to their schema location: "http://www.aixm.aero/schema/5.1/event"
Bug fixLucy (LuciadLightspeed)
TLcy(Lsp)PrintAddOn
: the classification and modifiable header text in
the print preview dialog were chopped off in some look and feels. This has been fixed.
Bug fixLuciadLightspeed
LCD-8230
When a point close to the edge of the visible area of a projection was styled with a 3D icon, an exception was thrown
when the 3D icon itself crossed the boundary in a 3D view.
Bug fixLuciadLightspeed
LCD-8436
Spatial queries are now inclusive of their bounds. Points that lie directly on the bounds are now returned as well.
Bug fixLuciadLightspeed
LCD-8552
Fusion Client no longer has a hard dependency on the Geometry component.
This caused problem with Maven when using Fusion Client without Geometry.
Note that you only need the optional Geometry component when you query tile store metadata using a spatial filter.
Bug fixLuciadLightspeed
LCD-8426
TLcdDMEDModelDecoder: the minLevel parameter was not taken into account for the ALcdImage's created by the decoder.
Bug fixLuciadLightspeed
LCD-7902
SLD icon rotation and opacity customization was not supported for world-sized SVG icons.
Bug fixLuciadLightspeed
LCD-6849
Encoding an SLD Feature Type Style with inline graphics content produced an incorrect encoding of the Base64
representation of the included graphics.
Bug fixLuciadLightspeed
LCD-8263
SLD label decluttering did not work properly in case of a custom label painter; only one label location was tried.
Bug fixLuciadLightspeed
LCD-8420
Possible RejectedExecutionException when resizing a TLspOffscreenView. This was a recent regression.
Bug fixOGC Server
LCD-8423
The OGC server sample's HTML front-end was not properly populated with sample requests in servlet containers
other than the included Jetty server.
Bug fixAviation Standards
LCD-7946
A not thread safe use of DecimalFormat that was causing Route segments visualization artifacts is now fixed.
Bug fixDefense Standards
LCD-8183
The NITF orthorectifying decoder is now configured as a service, so it can be used from the main GXY and Lightspeed decoders.
The dedicated orthorectification sample has been removed.
To perform orthorectification, first decode some elevation data and then your NITF data.
Both have to be decoded using the orthorectifying decoder.
Bug fixDefense Symbology
LCD-8439
TLcdEditableMS2525bObject#canReversePointOrder() and TLcdEditableAPP6AObject#canReversePointOrder() were returning
False for symbols which can have maximum 2 points. Therefore it was impossible to revert the point order of such
symbols(e.g. Task - Fix). This is fixed that #canReversePointOrder() now returns True for symbols whose minimum point
is 2 and maximum point is either 2 or bigger than 2.
Bug fixDefense Symbology
LCD-8434
The GXY sample was throwing a NPE when starting because of the misconfiguration of the tool bar.
Bug fixDefense Symbology
LCD-8414
Military symbology stylers was not using the customly provided edit targets. Now the provided an ALspStyleTargetProvider
instance's edit target is used via the getEditTargetsSFCT method as it was already done for the style target via the
getStyleTargetSFCT method.
2016.1.02
ImprovementLucy (LuciadLightspeed)
LUCY-4486
TLcy(Lsp)PrintAddOn
: the print preview dialog now allows to add a classification banner
at the top of the page as well as a header text which is modifiable through the UI.
New constants have been added to the print add-on and the different factory classes.
New properties have been added to the configuration file as well.
ImprovementLuciadLightspeed
LCD-8408
The TLspIconStyle.Builder#icon() method now throws a clear exception when a null icon is set. This should never
happen. When you don't want to paint an icon, avoid passing a TLspIconStyle to the ALspStyleCollector.
ImprovementLucy (LuciadLightspeed)
LCD-7732
The Maven deployment script has been updated to package and deploy Lucy's resources. This eliminates the need to copy them
manually.
ImprovementLuciadLightspeed
LCD-7735
Maven deployment shell files have been added. They are configured to call deploy.xml with the included Ant distribution.
The script itself has been updated to use the user's Maven cache as the default repository for deployment.
ImprovementLuciadLightspeed
LCD-7896
The Maven deployment script has been modified to skip artifacts that can't be deployed for some reason.
It will try to deploy the remaining artifacts and report on those that failed upon completion.
ImprovementLuciadLightspeed
The Apache Ant distribution shipped with LuciadLightspeed has been updated to version 1.9.7.
The Ivy library has been updated to version 2.4.0 and Ant-Contrib 1.0b3 is now included.
ImprovementLuciadLightspeed
LCD-7915
The XML implementation no longer depends on the StAX-utils library. Consequently,
this library has been removed from the list of 3rd party library dependencies shipped
with the product.
ImprovementLucy (LuciadLightspeed)
LUCY-4528
In some Linux configurations, the resolution of Lucy's frame icon would be lower than expected.
ImprovementLucy (LuciadLightspeed)
LCD-7977
You can now flip the orientation of military symbology graphics by right clicking on an arrow or line and selecting
the "Flip orientation" action on the context menu.
ImprovementLuciadLightspeed
LCD-8271
Clarified some documentation in ALspEditor.
ImprovementLucy (LuciadLightspeed)
LUCY-4516
AFrontend
: a dialog will now be shown when a license error occurs during startup,
instead of just closing Lucy.
This is done by installing the exception handler in the AFrontend.startup
method
before triggering any other Luciad classes.
ImprovementLucy (LuciadLightspeed)
LUCY-4522
TLcyFusionClientAddOn
: the configuration file now allows to specify a list
of URLs which will be presented to the user in the UI when connecting to a Fusion server.
ImprovementLuciadLightspeed
LCD-8090
TLspZoomController, TLspRotateController and TLspPanController's cursors can now be customized.
ImprovementGoogle Earth Enterprise
TLcdGEEModelDecoder now supports the decoding of PYR files. If no PYR files are available, the decoder
will try to decode bundle files.
ImprovementTerrain Analysis Engine
LCD-8116
Slightly improved performance of the Lightspeed distance over terrain sample.
ImprovementTerrain Analysis Engine
LCD-8255
The GXY and Lightspeed visibility samples now recompute the visibility when the shapes are edited.
ImprovementDefense Symbology
LCD-7977
It is now possible to revert the point order of arrows and lines via the two new methods which have been introduced
on TLcdEditableMS2525bObject and TLcdEditableAPP6AObject;
- boolean canReversePointOrder(): Returns true if the point order of this object can be reversed.
- void reversePointOrder(): Reverses the point order of this object.
All graphics, which are line or arrow based, have reversible point orders. Therefore the user can redirect an arrow
or change the orientation of a weather graphic (e.g. Upper Cold Front) with a single click. The single click
functionality is also added into the context menu in the Military Symbology samples.
Bug fixLuciadLightspeed
LCD-5860
Bug fixLucy (LuciadLightspeed)
LUCY-4535
Bug fixLuciadLightspeed
LCD-8400
Bug fixLuciadLightspeed
LCD-8392
Resolved a possible deadlock situation during initialization of samples.common.MouseCursorFactory
.
Bug fixLuciadLightspeed
LCD-6604
TLcd2DBoundsIndexedModel.elements().nextElement()
now throws NoSuchElementException
when there are no more elements.
This is according to the Enumeration.nextElement()
contract.
Bug fixLuciadLightspeed
LCD-8098
The protected fLon and fLat fields in TLcdLonLatPoint are deprecated.
Do not use these fields directly, instead use move2D() and getLon() and getLat().
Bug fixLuciadLightspeed
LCD-8391
Bug fixLuciadLightspeed
LCD-8389
Bug fixLucy (LuciadLightspeed)
LCD-8297
The military symbol hierarchy customizer was not updating the edited symbol.
Bug fixLuciadLightspeed
LCD-8269
The WCS client did not correctly interpret elevation values in case of WCS coverages with elevation data
and in case it was configured to use multiple levels of detail (see TLcdWCSProxy#setRasterCount).
This caused a broken visualization and incorrect elevation value readouts.
Bug fixLuciadLightspeed
LCD-8272
The copy constructor of TLcdWMSCapabilities did not copy the registered formats for the WMS SLD profile requests
GetLegendGraphic and DescribeLayer.
Bug fixLuciadLightspeed
LCD-8278
Fixed a rare endless loop when using the MGRS grid in 3D. This problem could block a single task executor thread.
Bug fixLuciadLightspeed
LCD-8181
Fixed a possible memory leak when using a layer with labels enabled.
Bug fixLuciadLightspeed
LCD-8268
Bug fixLuciadLightspeed
LCD-8246
The installation instructions for the hardware key for Linux have been updated for modern
distributions. Specifically, the udev rules were updated to work for recent Linux versions.
Bug fixOGC Server
LCD-8307
The OGC server sample's ANT build script now replaces '+' characters in jar names with '-',
to overcome a deployment compatibility issue with Oracle WebLogic.
Bug fixOGC Server
LCD-8272
The copy constructor of TLcdWMSCapabilities did not copy the registered formats for the WMS SLD profile requests
GetLegendGraphic and DescribeLayer.
Bug fixWeather & Environment Standards
LCD-8273
The deprecated TLcdNetCDFFilteredModel#setFilterParameter method was not snapping the given interval to the closest
possible interval value as it was doing it on v2015.1
Bug fixAviation Standards
LCD-8131
The decoding speed of data with several xlinks has been improved.
Bug fixDefense Standards
LCD-8377
Some NITF files that use a camera position that is tilted towards the horizon couldn't be visualized.
Bug fixDefense Symbology
LCD-8416
Fixed a threading issue when using military symbols in a Lightspeed view. This bug could cause an incorrect label
to be shown when using multiple symbology layers.
Bug fixDefense Symbology
LCD-8399
TLcdAPP6EchelonNode#canApplyOn(ILcdAPP6ACoded aObject) was returning wrong results for APP-6C Air and Sea symbols.
Bug fixDefense Symbology
LCD-8261
Editing MS2525b objects via TLcdMS2525bObjectCustomizer was causing an exception.
2016.1
ImprovementLuciadLightspeed
LCD-7952
The memory consumed by a WCS model has been reduced significantly. This is especially
noticeable when a large number of levels of detail and tiles are used(see
TLcdWCSProxy#setRasterCount, TLcdWCSProxy#setTileColumnCount and TLcdWCSProxy#setTileRowCount).
ImprovementLuciadLightspeed
LCD-8161
The common view coordinate that can be added to an MGRS layer in a GXY or Lightspeed view has been improved.
It now displays a String that can be added in front of the visible labels to form a full MGRS String. See
TLcdMGRSGridOverlayLabelBuilder#COMMON_VIEW_COORDINATE and TLspMGRSGridOverlayLabelBuilder#COMMON_VIEW_COORDINATE.
The same improvement was added for georef grid layers. See TLspGeorefGridOverlayLabelBuilder#COMMON_VIEW_COORDINATE.
ImprovementLuciadLightspeed
LCD-8213
The WCS client now automatically recognizes the GeoTIFF format 'GeoTIFFFLOAT32'.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
LCD-8198
The map centric sample class PreviewerOnMapCustomizerFactory was adapted to call revalidate() where needed. Please
refer to the Lightspeed release notes for this same issue identifier for more information.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
LUCY-4460
The status bar in Lucy can now show progress for multiple tasks which are running in parallel.
This new functionality has also been integrated in the sample front-ends (like the map centric
version of Lucy).
If you are using a custom front-end and you want to add the same behavior, you can use the
samples.lucy.gui.status.ShowProgressAction
.
If you have copied (and modified) one of our sample front-ends and you want to apply the same
changes, you can search for the usages of that class.
That will reveal all affected sample files.
ImprovementLucy (LuciadLightspeed)
Creating a Lightspeed map (or a 3D GL map) will now only open the application pane when the map is ready
to be displayed.
Status events are used to notify the user that the map is being created, just like what is done for all other
background processes.
Previous versions of Lucy created the application pane immediately and showed a loading icon until the map
was ready.
ImprovementLuciadLightspeed
ALspGLResource now has a default implementation for the destroy(ILcdGLDrawable) method. When extensions of this
class call super.destroy, error checking is added to make sure no destroyed GL resources are used during painting.
If they are, an exception is thrown. This avoids possible VM crashes.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn
now makes it possible to enable GetFeatureInfo requests for WMS layers.
This is possible by:
- adjusting queryable property in the add-on's config file.
- using the check box in the layer customizer panel.
ImprovementLuciadLightspeed
It is now possible to enable GetFeatureInfo requests for a WMS layer at the client side, even though the
capabilities advertise that GetFeatureInfo requests are possible. See
TLcdWMSStyledNamedLayerWrapper#setQueryable(boolean)
TLcdSLDNamedLayer#setQueryable(boolean)
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-7903
ImprovementLucy (LuciadLightspeed)
LUCY-4166
TLcyLspMapAddOn
has a new property
TLcyLspMapAddOn.scaleIcon.scaleAtCenterOfMap
indicating whether or not the scale indicator icon should take the map position into account.
ImprovementLuciadLightspeed
TLspFusionVectorLayerBuilder
will now use GeoSym styling for both bodies and labels when
visualizing a VPF coverage. Previously, the GeoSym styling was only used for the body.
ImprovementLucy (LuciadLightspeed)
The list of used connections and files is now shared between all the UI elements.
For example connecting to a WMS server using the "File | Connect to" action will now
add that WMS server URL to the list of URLs in the "Map | Data | WMS" UI.
Each place where those connections and files are displayed now contains an action to manage
the list of stored connections.
As a result, the actions to clear the list of recently opened workspaces and recently opened files
have been replaced by an action to manage the stored connections.
In case you use a custom config file for the TLcyRecentFilesAddOn
or the
TLcyWorkspaceAddon
to insert the actions in a different location,
note that the following changes have been made to the ids.
You will have to apply the same changes to your custom config files.
TLcyRecentFilesAddOn
: the action with id TLcyRecentFilesAddOn.clearRecentFilesAction
has been replaced
by an action with id TLcyRecentFilesAddOn.manageRecentFilesAction
.
The group of the action has also been replaced from ClearFilesGroup
to ManageFilesGroup
.
TLcyWorkspaceAddon
: the action with id TLcyWorkspaceAddon.clearRecentWorkspacesAction
has been replaced
by an action with id TLcyWorkspaceAddon.manageRecentWorkspacesAction
.
The group of the action has also been replaced from ClearGroup
to ManageGroup
.
ImprovementLucy (LuciadLightspeed)
LUCY-4143
Drag-and-dropping a file which contains spaces in its name or path would result in "%20" URL escape characters
in the Lucy UI (under Linux).
ImprovementLuciadLightspeed
LCD-8171
The TLsp2DPointListEditor no longer consumes mouse-wheel events in its creation handle.
ImprovementLuciadLightspeed
LCD-5629
It is now possible to fit on the actual location of WMTS data, if this location is defined in the WMTS
capabilities. In the past, the data's tile pyramid bounding box was used, which typically corresponded
to world bounds.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddon#loadWorkspace
: an API equivalent for the "Open workspace" action from the UI has been added.
ImprovementLuciadLightspeed
LCD-7508
Fusion now initializes faster by performing some set-up work in the background.
ImprovementLuciadLightspeed
The WMS client now prefers CRS:84 above EPSG:4326, if the application's view
reference is not supported by the server and if the server supports CRS:84.
This avoids potential axis ordering issues with EPSG:4326.
ImprovementLuciadLightspeed
TLcdDataModelDescriptor
: the constructor now allows to specify the model element types and
model types as a collection instead of as a set. As it is strongly recommended to specify the model element types,
the other constructors have been deprecated.
ImprovementLucy (LuciadLightspeed)
The Lucy docking front-end now also works with BlackLimeLookAndFeel, the dark look and feel with lime accents. Refer
to TLcyLookAndFeelAddOn for instructions on how to use it.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
When using TLspAWTView, vsync is now enabled when it is not explicitly disabled using the vendor
specific GPU settings.
ImprovementLuciadLightspeed
LCD-8066
TLspComplexStrokedLineStyle
now has a modulation color. Via this modulation
color it is also possible to change the opacity of the stroked line.
ImprovementLuciadLightspeed
The sample package samples.lightspeed.timeview
contains a ready-to-use time slider component
which has a Lightspeed view. You can add layers to it with data that has time information.
See TimeSlider
javadoc for more details.
ImprovementLuciadLightspeed
LCD-5122
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
Several improvements have been made to the API which make it easier to integrate your own
(editable) data format to Lucy.
All this new API is used in the new Lucy Fundamentals sample.
-
The default layer properties panel for GXY layers which is used when the data format itself does not specify a layer
properties panel can now handle asynchronous layers as well.
ALcyDefaultLayerSelectionTransferHandler
has been added to the API, facilitating the
implementation of a ALcyLayerSelectionTransferHandler
instance.
ALcyFileFormat.createModelEncoderFileTypeDescriptors
: in case your format creates exactly one model
encoder and decoder, the method will now return the file type descriptor configured in the configuration file.
ALcyLspCreateControllerModel.getPaintRepresentation
: there is now a default implementation
for this method available.
ImprovementLucy (LuciadLightspeed)
LUCY-4422
The Lucy Best Practice guide has been replaced by a new guide: the Lucy Fundamentals guide.
This guide is an introduction to the Lucy application framework and introduces a number
of key Lucy concepts using the following 3 new samples:
-
The fundamentals sample (package
samples.lucy.fundamentals
) illustrates how to
add static, editable and real time data formats to a Lightspeed view in Lucy.
-
The package
samples.lucy.applicationpane
shows how you can add extra UI to Lucy.
-
The package
samples.lucy.gxy.waypoints
illustrates how you can add an editable
format to a GXY view in Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyVPFFormatAddOn
and
TLcyLspVPFFormatAddOn
have been added to support decoding and visualizing VPF data.
These add-ons depend on the LuciadLightspeed VPF optional package and are only compatible with
Lucy using Lightspeed views.
ImprovementLucy (LuciadLightspeed)
TLcyLspWMSClientAddOn
: the layer properties panel now allows to switched between
tiled retrieval of the data, or requesting a single image. Typical use-cases of requesting a single image from
the WMS server are when working with vector data or when the WMS server adds a watermark to the images it serves.
ImprovementLucy (LuciadLightspeed)
TLcyStatusMessageBar
: the status messages are now automatically removed from
the UI after some time has passed.
The message bar now also supports multiple tasks running in parallel (see LUCY-4460 release note as well).
When multiple tasks are running in parallel, the message bar will indicate this instead of
only showing the last received message.
ImprovementLuciadLightspeed
LCD-7855
TLcdStatusEvent
now has new factory methods to make it easier to report progress and messages.
In addition, messages can now include a severity.
ImprovementLuciadLightspeed
LCD-2904
TLspViewNavigationUtil can now perform animated center operations.
ImprovementLucy (LuciadLightspeed)
LUCY-3706
Center actions for Lightspeed views are now animated.
ImprovementLucy (LuciadLightspeed)
LUCY-4441
TLcyErrorLogAddOn
has been introduced. This is the official version of the
ErrorLogAddOn
, which was sample code in the previous releases.
The sample code is no longer available.
This new add-on allows the user to open a dialog to show all logged warning and error messages.
The add-on will also send a status event to Lucy when new warnings or errors are logged.
This will attract the attention of the user, minimizing the chance that the user overlooks a
non-fatal error/warning.
The sample ErrorLogAddOn
was included in the map centric version of Lucy.
Any workspace saved with the map centric version of Lucy which included that add-on will now
show a warning on start-up. Resaving the workspace will fix the warning.
ImprovementLuciadLightspeed
TLcdGXYShapePainter
now allows to set the selection mode and edit mode separately, see setSelectionMode(int) and
setEditMode(int). This for example allows the painter to paint an outline for the selected paint mode, while
painting a fill for the regular paint mode.
ImprovementLuciadLightspeed
ALcdWMSProxy now has a utility method that allows to retrieve all WMS layers. It is also possible to retrieve
only visible and/or only queryable WMS layers. See ALcdWMSProxy#getNamedLayer(boolean, boolean).
ImprovementLuciadLightspeed
LCD-8042
TLspLabelPainter now doesn't depend on ALspLabelTextProviderStyle instances to override and implement the
equals and hashCode methods anymore. Not doing so resulted in hard to find problems with labels.
ImprovementLuciadLightspeed
LCD-8041
ImprovementLucy (LuciadLightspeed)
TLcyCompositeAndFilter
: a new constructor has been added which accepts
an array of filters to populate the composite filter with.
ImprovementLucy (LuciadLightspeed)
TLcyLspWMSClientAddOn
: the layer properties panel now allows to choose between
tiled and single-image requests. Requesting a single image for the whole view typically provides better
visual quality when the underlying data is vector data.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
LCD-3271
Additional API was added to retrieve the exact parameters needed for a GetFeatureInfo request for a given point
in view coordinates. The result can be used as input for the ALcdWMSProxy#createFeatureInfoInputStream() method. See:
- TLcdGXYTiledWMSProxyPainter#getFeatureInfoContext
- TLcdWMSProxyGXYPainter#getFeatureInfoContext
- TLspWMSGetFeatureInfoContextQuery
ImprovementLuciadLightspeed
GetFeatureInfo request now also work for SLD layers (TLcdSLDNamedLayer) when using
ALcdWMSProxy#createFeatureInfoInputStream().
ImprovementLuciadLightspeed
Luciad now supports Mac OS X. The minimum requirements to run Luciad based software on a Mac are:
- Mac OS X 10.9 or later
- Intel 64-bit CPU
- JDK 1.8 or later
ImprovementLucy (LuciadLightspeed)
The URL chooser UI element used in e.g. the File | Connect to action and the Map | Data | WxS actions
now offers auto-completion and filtering.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
TLcyGeoJsonAddOn
: the UI to adjust the styling of the GXY layers has been
simplified, and placed on one tab. The UI is now in sync with the UI of the other vector formats
like e.g. MSSQL, WFS, PostGIS, ... .
ImprovementLucy (LuciadLightspeed)
LUCY-4465
The MSSQL, OracleLocator and Spatialite vector formats now allow to alter the styling through the
layer properties panel for GXY layers. This was already the case for their Lightspeed counterparts.
ImprovementLucy (LuciadLightspeed)
TLcyWCSClientAddOn
and
TLcyWFSClientAddOn
received various usability
improvements:
- The styling of the layer can now be adjusted through the layer properties panel.
- The model bounds options (use view bounds, load all data or use area of interest) now work more
intuitively. When choosing view bounds or area of interest (AOI) bounds,
the model bounds follow the current view or AOI bounds automatically.
For example, when using view bounds and panning around, new data will be loaded each time you pan.
- In case of WCS, the UI to connect with a data source has been simplified: the UI to configure the
tile set has been removed. An ideal configuration is now calculated automatically.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientGetFeatureInfoAddOn
and
TLcyLspWMSClientGetFeatureInfoAddOn
were added. When using the select
controller on GXY or Lightspeed maps, WMS layers now perform GetFeatureInfo requests when clicking on the map.
The GetFeatureInfo responses are visualized on the map using a dedicated layer. It is possible to customize
the (painting) behavior by creating a custom format. The GetFeatureInfo request behavior can be altered in the
cfg files, see lucy/wmsclient/getfeatureinfo/TLcyWMSClientGetFeatureInfoAddOn.cfg.
ImprovementLuciadLightspeed
The wms.client.gxy, wms.client.ecdis.gxy and the wms.client.lightspeed samples now demonstrate
how to visualize GetFeatureInfo responses on the map. This is done using the
WMSGetFeatureInfoMouseListener class. This class uses a WMSGetFeatureInfoResponseDecoder to
convert a response to an ILcdDataObject, which is added to the map.
ImprovementLuciadLightspeed
TLcdOGCPropertyName has received a new convenience constructor that accepts a Java QName.
ImprovementLuciadLightspeed
LCD-7949, LCD-7306
To improve the event handling of TLcdWFSProxyModel, three existing methods have been reintroduced with an additional
argument to specify an event type (ILcdFireEventMode):
- setFilter(TLcdOGCFilter, int)
- setCachingModel(int, int)
- invalidate(int)
This enables users to explicitly trigger an event while invoking these methods, so that any listeners
can be notified of changes to the model. A typical use case is to trigger a repaint when calling one of these methods.
ImprovementLuciadLightspeed
LCD-7959
TLcdWCSProxyModelDescriptor now uses the coverage's label as display name, because it is intended as a
human-readable name for the coverage. If not available, the coverage's name is used, similar to the past.
ImprovementLuciadLightspeed
LCD-7957
TLcdWFSProxyModelDescriptor now uses the feature type's title as display name, because it is intended as a
human-readable name for the feature type. If not available, the feature type's name is used, similar to the past.
ImprovementLuciadLightspeed
TLcdDimensionAxis.TIME_AXIS
: a constant has been added representing a time axis,
which is convenient when you are creating your own time-dependent models.
ImprovementLucy (LuciadLightspeed)
The "cmd" key definition has been added to the "acceleratorKey" property in the configuration files in Lucy. If you
have a menu shortcut defined as ".acceleratorKey = cmd F", Lucy will interpret it as CTRL+F on Windows and Linux
platforms, COMMAND+F on Mac OS X. If you want to use CTRL on all platforms then you should define the shortcut as
"ctrl F". Consult the Lucy developer guide for more information.
ImprovementLuciadLightspeed
LCD-3204
ALspEditable3DMesh can now contain texture coordinates. This allows you to provide the texture coordinates
in a custom TLspShapeDiscretizer by overriding TLspShapeDiscretizer#discretizeSFCT().
ImprovementLuciadLightspeed
LCD-7611
TLcdWFSProxyModelDescriptor now provides information about the possible data types in the model.
This information is accessible through the regular ILcdDataModelDescriptor
methods getModelTypes() and getModelElementTypes().
ImprovementLuciadLightspeed
LCD-7917
ImprovementLuciadLightspeed
LCD-7918
Vendor-specific parameters included in URLs supplied to TLcdWCSClient, TLcdWFSClient,
TLcdWMSClient or TLcdWMTSClient are now automatically used in all requests sent to the server.
This supports use cases such as services requiring authentication through a proprietary token parameter.
ImprovementLucy (LuciadLightspeed)
LUCY-3709
The dialog to connect to an OGC (WMS, WFS, WCS, WMTS) or LuciadFusion service will now close
when pressing escape.
ImprovementLuciadLightspeed
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
The labeling for GML data on a GXY map has been improved: when labeling polylines, the label will now follow the polyline.
When labeling polygons, the label will be placed inside the polygon.
ImprovementLucy (LuciadLightspeed)
The different ASTERIX add-ons now support ASTERIX category 10 (Transmission of Monosensor
Surface Movement Data - version 1.1) data.
ImprovementLucy (LuciadLightspeed)
LUCY-4463
TLcyDrawingAddOn
: It is now easier to import SHP files as drawing files. The open button on
the drawing tool bar
(docking front-end) and the 'Data|Import as drawing' action (map centric front-end) now allow to choose all known
files right away (such as .shp and .drawing), without first having to choose the file type.
ImprovementLucy (LuciadLightspeed)
TLcyPostGISDecoderAddOn
has been added to support reading of vectorial data from PostGIS databases. The add-on
depends on
the LuciadLightspeed PostgreSQL PostGIS optional package. This new format is also natively supported in Lightspeed
views.
ImprovementLuciadLightspeed
LCD-5125
ImprovementLucy (LuciadLightspeed)
TLcyCombinedMapManager.findMapComponent
a new utility method is available to find the
map component of a certain view.
ImprovementLucy (LuciadLightspeed)
TLcyMain.main
: a new convenience main method has been added which makes it easier
to programmatically append additional arguments to the main method.
This can for example be used to start with a custom add-ons file.
The same was done for all sample front-ends.
ImprovementLuciadLightspeed
LCD-7502
TLspLabelPainter now supports the z-order configured in TLspTextStyle, TLspIconStyle and TLspPinLineStyle
for labels. This gives control over the painting order for labels. For performance reasons, it is advised
not to use many different z-orders.
ImprovementLucy (LuciadLightspeed)
TLcyActionBarUtil
now respects the 'shortDescription' property of sub-menu's, using it as the tool tip. Refer to
resources/samples/frontend/mapcentric/map_centric_frontend.cfg for an example.
ImprovementLuciadLightspeed
ImprovementLucy (LuciadLightspeed)
TLcyActionBarUtil
now prints a warning when you configure an action, but do not insert it into any action bar,
which is likely not what was intended.
ImprovementLucy (LuciadLightspeed)
LUCY-2687
TLcyWorkspaceAddon
: the term "default workspace" has been replaced by
"(user defined)startup workspace" to make the distinction with the fallback workspace more clear.
The class javadoc of the add-on has been rewritten as well to improve the explanation of these two
concepts.
ImprovementDatabase Connectors
The PostGIS decoder and encoder can now handle 3D points, lines and polygons. To specify the
dimensions of the geometry for a new table you can use the "dimensions" property in the .pgs
properties file.
ImprovementOGC Server
LCD-8136
It is now possible to customize GetFeatureInfo request handling to support querying for all features
interacting with a given pixel bounds (e.g., provided through an optional parameter). This use case is supported
by the existing ALcdWMSCommandDispatcher#performSelectionAt and its sensitivity parameter - which was not correctly
taken into account in the past.
ImprovementReal-time Engine
The "Track Simulator" sample was adapted to use a time slider based on a Lightspeed non-georeferenced view.
See TimeSlider
javadoc in the samples.lightspeed.timeview
package for more details.
ImprovementAviation Standards
LCD-8100
It is now possible to calculate procedures with a holding turn radius smaller than the radius used
for the other turns with the new property in TLcdAircraftPerformanceSettings called Procedure turn radius.
ImprovementDefense Standards
LCD-7430
TLspVPFGeoSymStyler now has the option to set an opacity.
ImprovementDefense Standards
TLcdVPFModelDecoder now supports the use of the Database Header Table (DHT) file as
an entry point for decoding. In this case, the decoder produces an ILcdModelTreeNode
whose structure reflects that of the VPF database.
ImprovementDefense Standards
Lightspeed views now provide full support for GeoSym styling. The new class
TLspVPFLayerBuilder facilitates the creation of layers for VPF data and can be used
to choose between full and simplified GeoSym symbology.
ImprovementRadar Connectors
The Data Model Viewer sample has a better UI now.
ImprovementRadar Connectors
ImprovementTiling Engine
Google Earth Enterprise image repositories can now be used to create a non-tiled repository and serve the imagery
through WMS. More information on how to decode Google Earth Enterprise image repositories can be found in the
javadoc of
TLcdGEEModelDecoder
.
ImprovementTiling Engine
LuciadFusion now supports fusion of vector data retrieved from an PostgreSQL PostGIS database.
Bug fixLucy (LuciadLightspeed)
LUCY-4519
During the introduction of the "rightToolBar" on the GXY, GL and Lightspeed map components, the
default layout of the north container of the map components was changed to a BorderLayout.
This meant it was no longer possible to add an arbitrary number of components to that north container.
This unintended layout change has been reverted.
Bug fixLuciadLightspeed
LCD-8249, LCD-8030
Fixed a possible deadlock that could occur when using a synchronous layer (TLspLayer#setSynchronous(true) or
TLspShapeLayerBuilder#synchronous(true)) with labels.
Bug fixLuciadLightspeed
The launcher (start.jar) now explicitly sets java.library.path
to empty unless it's defined in a .vmoptions file or JVM_ARGS.
This prevents platform-dependent default values from causing issues with native library loading.
Bug fixLuciadLightspeed
LCD-8205
The sample class SLDFeatureTypeStyleStore now differentiates between measurement data (e.g., containing elevation
data) and multi-spectral data to improve the selection of suitable SLDs in the SLD samples.
Bug fixLucy (LuciadLightspeed)
LCD-8226
Fixed the bug that it was not possible to add a military symbol to the favorites bar if it was already empty.
Bug fixLucy (LuciadLightspeed)
ALcyActionBar
: the auto hide setting would not work in all scenarios when the
action bar contained components. The separators between different groups were not always turned invisible
either when a group contained only invisible components.
Bug fixLuciadLightspeed
LCD-8224
Fixed a rare ConcurrentModificationException when using TLspShapePainter.
Bug fixLucy (LuciadLightspeed)
LUCY-4470
The EDT could be blocked during label placement when enabling labels for 'slow' layers, like WFS layers.
Bug fixLuciadLightspeed
LCD-8188
Bug fixLuciadLightspeed
Fixed possible native crash that was caused by the usage of already destroyed resources.
Bug fixLucy (LuciadLightspeed)
LUCY-4514
TLcyPreviewAddOn: when the date was changed during replaying, the add-on could fire two property change events, with
the same old and new date values, for a single change. It now fires a single event.
Bug fixLucy (LuciadLightspeed)
LUCY-4093
TLcyRecentFilesAddOn
: it was not possible to re-connect to a URL (for example a
Fusion or WMS server) through the "Recent files" menu items.
This would always result in a dialog stating that the file did not exist.
Bug fixLucy (LuciadLightspeed)
LCD-8108
TLcyLVDBMilitaryAddOn: some shapes always got an extra point in the top-left of the map. This is now fixed.
Bug fixLuciadLightspeed
LCD-8147
In some cases, an asynchronously painted
ILcdGXYLayer
could throw an
IllegalMonitorStateException
.
Bug fixLuciadLightspeed
BlackLimeLookAndFeel
now supports JSliders that have their inverted property set to true.
Bug fixLuciadLightspeed
LCD-7279
TLcdSLDFeatureTypeStyleDecoder: fixed the decoding from an XML document with a 1.1.0 StyledLayerDescriptor.
Bug fixLuciadLightspeed
LCD-8138
Fixed a rare OutOfMemoryError when using an MGRS grid in a 3D Lightspeed view. This exception could occur when
moving close to the terrain and tilting the camera.
Bug fixLuciadLightspeed
LCD-8238
The default styler on raster layer did not allow customizing the color map for models with measurement data.
Bug fixLuciadLightspeed
When a Json file contains properties with an array as value, TLcdGeoJsonModelDecoder modelled that collection
using a collection property with a type that extends from TLcdCoreDataTypes.DATA_OBJECT_TYPE, even when the
values in that collection are no ILcdDataObjects. It now uses a type that extends from
TLcdCoreDataTypes_OBJECT_TYPE instead. The same fix was applied for map properties.
Bug fixLuciadLightspeed
LCD-8085
TLspViewNavigationUtil's center methods now take the terrain into account.
Bug fixLuciadLightspeed
LCD-8052
The result of TLcdGXYIconPainter#boundsSFCT is now a tighter fit around the actual icon.
Bug fixLuciadLightspeed
LCD-7948
TLcdWFSProxyModel
: doing multiple calls to the
elements
or
applyOnInteract2DBounds
methods
will now always return the same domain object instances when the domain object represents the same object on the
server.
This is needed to be able to select the domain objects on a Lightspeed view, or to activate labeling.
Bug fixLuciadLightspeed
The WMTS client sometimes still showed error tiles in case of a tile not found (HTTP 404) response.
Bug fixLucy (LuciadLightspeed)
SearchAddOn
: the JXSearchField
used in the UI threw IllegalArgumentExceptions
when running on OS X using the Aqua look and feel.
This has been fixed in the SearchFieldFactory
sample class.
This factory now returns JTextField
, configured as search field, when the Aqua look and feel
is used.
Note that the IllegalArgumentException will still be thrown when switching at runtime to the Aqua look and feel.
If you want to support this scenario, you will have to adjust the SearchFieldFactory
to
never return a JXSearchField
on OS X.
Bug fixLucy (LuciadLightspeed)
LUCY-4477
TLcyLspMapAddOn
: the workspace codec for the map component no longer tries to restore the
active controller. Certain controllers require user input on activation (like the porthole controller which asks you
to select the layers on which to operate), and that user input dialog would interfere with the workspace loading
mechanism.
Bug fixLuciadLightspeed
LCD-6636
TLspShapeDiscretizer now correctly triangulates ILcdPolygons that are vertical
(i.e. exactly perpendicular to the ellipsoid).
Bug fixLuciadLightspeed
LCD-4290
TLcdSHPModelDecoder
: The TLcdDataModel generated for empty SHP files was incorrect. Now a TLcdDataModel
is generated based on the properties defined in the DBF file, if available.
Bug fixOGC Server
LCD-8057
The WMS server didn't always respect the painting order when doing a GetFeatureInfo request. This could lead to
responses of objects that are painted underneath another object.
Bug fixOGC Server
LCD-8036
The WMS server didn't always respect max feature count parameter of a GetFeatureInfo request.
Bug fixReal-time Engine
ALcdTimeIndexedSimulatorModel: removeTracks now releases write locks on its
track model before firing the model events. This is required for multithreaded
applications, as documented in the threading chapter in the LuciadLightspeed
developer's guide.
Bug fixReal-time Engine
LCD-8168
ALcdTimeIndexedSimulatorModel: no longer throws a NullPointerException when you
initialize it with an empty list of tracks, and then add tracks using
addTracks
Bug fixAviation Standards
LCD-8215
Avoid Null Pointer Exceptions when visualizing Airspaces as extruded shapes in a 3D Lightspeed view.
Bug fixDefense Symbology
LCD-8243
Setting offset of a symbol in a Lightspeed view was done by holding the CTRL (CMD in Mac Os) key and moving the
mouse. This has been changed as now, you should drag the mouse instead of only moving it.
Bug fixDefense Symbology
LCD-8163
A single icon's labels were being displayed when they were added to a declutter group. This has been fixed
that when the icon's labels are not overlapping another labels, all the labels of the icon are visible.
Bug fixDefense Symbology
LCD-8182
APP6C, Mountain sector modifier is now displayed for Land Units.
Bug fixDefense Symbology
LCD-8191
APP6C Land Installation symbols are now displayed with Headquarters/Task Force/Dummy icons if set.
Bug fixRadar Connectors
LCD-8217
TLcdASTERIXModelDecoder
: decodeSource now closes all created input streams, not only
the input stream to read the last source.
Upgrade considerationLuciadLightspeed
LCD-8198
The overlay panel of Lightspeed views, which typically contains the navigation controls or a scale icon,
can now avoid full redraws in a number of scenarios. This makes it behave subtly faster, resulting in somewhat
higher frame rates depending on the screen resolution and exact set-up. It may uncover bugs in client code that
previously remained unnoticed. Should you experience a partially updating overlay, check out the documentation
in ILspAWTView.getOverlayComponent. Most notably, samples classes HaloLabel, TouchInformationPanelController and
PreviewerOnMapCustomizerFactory (Lucy) had to be adjusted.
Upgrade considerationLuciadLightspeed
Packaging for the sqlitej native library has changed. Instead of a single statically linked object, the library now dynamically
links to sqlite3.
Apart from there now being two native libraries, you should not be affected in any way by this change.
Upgrade considerationLuciadLightspeed
Upgrade considerationLucy (LuciadLightspeed)
TLcyStatusMessageBar
no longer extends from
JLabel
.
It now extends
JPanel
. It also received a new constructor which takes the
Lucy back-end as parameter.
Upgrade considerationLuciadLightspeed
LCD-8048, LCD-8054
TLspFrustum was made immutable to avoid potential concurrency issues. In order to do this, some of the methods were
changed:
- The
computeFromModelViewProjectionMatrix()
method was replaced with the factory
method createFromModelViewProjectionMatrix()
.
- The
computeFromViewRectangle()
method was replaced with the factory method
createFromViewRectangle()
.
- The return type of the getCorners() method was changed from
ArrayList<TLcdXYZPoint>
to List<ILcdPoint>
. It now also returns an immutable List of points.
Upgrade considerationLuciadLightspeed
Model references that contain metadata (
ILcdExtendedModelReference
) are now only considered equal if they have the
same axis ordering. This means for example that from now on "urn:ogc:def:crs:OGC:1.3:CRS84" (which is a lon-lat
reference), and "urn:ogc:def:crs:EPSG::4326" (which is a lat-lon reference) are now considered different.
The references in this example can be parsed using TLcdOGCModelReferenceParser.
Upgrade considerationLuciadLightspeed
LCD-5225
The vertex array renderer accessible using
ILspView.getViewServices().getVertexArrayRenderer()
no longer uses the standard
gl_Color attribute.
If you have written a custom painter that uses this vertex array renderer together with custom shader programs,
you need to update your vertex programs to no longer use
gl_Color, but use following
construct:
//declare custom attribute and uniforms
attribute vec4 aLspColor;
uniform vec4 uLspColor;
uniform bool uUseAttribute;
// ...
void main() {
// ...
vec4 colorToUse = uUseAttribute ? aLspColor : uLspColor;
// ...
}
Any calls to
ILcdGL.glColor4f (or equivalent) should be replaced with setting the
uLspColor uniform on the shader. For instance:
int[] currentProgramRet = new int[1];
gl.glGetIntegerv(ILcdGL.GL_CURRENT_PROGRAM, currentProgramRet);
int currentProgram = currentProgramRet[0];
if (currentProgram > 0) {
int uLspColor = gl.glGetUniformLocation(currentProgram, "uLspColor");
if (uLspColor > 0) {
gl.glUniform4f(uLspColor, fColor[0], fColor[1], fColor[2], fColor[3]);
}
}
Upgrade considerationLuciadLightspeed
It is now possible to pass query context parameters to the ALcdWMSProxy#createImageInputStream and
ALcdWMSProxy#createFeatureInfoInputStream method directly. See TLcdWMSGetMapContext and TLcdWMSGetFeatureInfoContext.
For GetFeatureInfo requests, this allows to specify which feature info format to use, and which layers
should be queried, without the need to modify the ALcdWMSProxy object. This provides a better way to do
getFeatureInfo request calls in a thread-safe manner.
The ALcdWMSProxy#createImageInputStream and ALcdWMSProxy#createFeatureInfoInputStream method are abstract,
which means that custom implementations of this class will show a compile error. For wrappers, this can easily be
resolved by delegating to the wrapped ALcdWMSProxy. For custom implementations, these new methods will need to
be implemented. ALcdWMSProxy#createImageInputStream should pose no problems since no extra parameters were
introduced. The implementation of the new ALcdWMSProxy#createFeatureInfoInputStream method will need to take
the new arguments (i.e. the contents TLcdWMSGetFeatureInfoParameters) into account.
Upgrade considerationLuciadLightspeed
TLcdGeoJsonModelEncoder and the GML model encoders now format geodetic WGS84 lon-lat references with EPSG as
authority as "CRS84" by default. This new behavior can be reverted, see
TLcdOGCModelReferenceFormatter#setFormatEPSGLonLatWGS84AsEPSG4326() for more information.
Upgrade considerationLuciadLightspeed
The lcd_wms_client_earth.jar file was removed. This also means that a Maven artifact was removed. Dependencies
on lcd_wms_client_earth.jar should be removed and replaced by a dependency on lcd_wms_client.jar.
Upgrade considerationLuciadLightspeed
LCD-7986, LCD-5592
ILspTexturedStyle now supports the use of ALsp2DTextureObject. To support this it now has
a new getTextureObject method and the textureObject method was added to ILspTexturedStyle.Builder.
This new functionality allows to use an OpenGL texture directly with an ILspTexturedStyle.
Upgrade considerationLucy (LuciadLightspeed)
The JIDE third party library has been upgraded from version 2.10.6 to version 3.6.13, as the
old version of the library was not compatible with the OS X operating system.
The behavior of the JIDE library changed slightly between those two versions: the calculation of the
initial size of the dockable frames can no longer handle the sequence of first creating the
dockable frame and adding it to the docking manager, and afterwards populating the
dockable frame.
To restore the old behavior, the DockableFrameAppPaneFactory
and
DockableFrameAppPane
sample classes have been modified.
The dockable frame will now only be registered to the docking manager once it contains content
instead of immediately.
More details on this can be found in the class javadoc of the DockableFrameAppPane
sample class.
Normally this change should only affect customers which are using their own JIDE-based front-end and
who started from our sample classes.
We recommend to those customers to update their copies of those sample classes to the latest version.
Upgrade considerationLucy (LuciadLightspeed)
Handling of WCS data on a GXY map has been improved:
- The styling of the data can be altered through the layer properties panel.
This is done by letting the
TLcyWCSClientAddOn
extend from
ALcyFormatAddOn
and plugging in the necessary
services.
As a result, the
TLcyWCSClientAddOn#createGXYLayerFactory
method has been removed. Instead of overriding this method to alter
the created layers, you now need to override the
TLcyWCSClientAddOn#createBaseFormat
method and decorate the layer factory.
@Override
protected ALcyFormat createBaseFormat() {
return new ALcyFormatWrapper( super.createBaseFormat() ){
@Override
protected ILcdGXYLayerFactory createGXYLayerFactory(){
final ILcdGXYLayerFactory delegate = super.createGXYLayerFactory();
return new ILcdGXYLayerFactory(){
@Override
public ILcdGXYLayer createGXYLayer(ILcdModel aModel){
ILcdGXYLayer layer = delegate.createGXYLayer( aModel );
if (layer != null){
//do your modifications here
}
return layer;
}
}
}
}
}
Upgrade considerationLucy (LuciadLightspeed)
Handling of WFS data on a GXY map has been improved:
- The data can now be labeled.
- The styling of the data can be altered through the layer properties panel.
This is done by letting the
TLcyWFSClientAddOn
extend from
ALcyFormatAddOn
and plugging in the necessary
services.
As a result, the
TLcyWFSClientAddOn#createGXYLayerFactory
method has been removed. Instead of overriding this method to alter
the created layers, you now need to override the
TLcyWFSClientAddOn#createBaseFormat
method and decorate the layer factory.
@Override
protected ALcyFormat createBaseFormat() {
return new ALcyFormatWrapper( super.createBaseFormat() ){
@Override
protected ILcdGXYLayerFactory createGXYLayerFactory(){
final ILcdGXYLayerFactory delegate = super.createGXYLayerFactory();
return new ILcdGXYLayerFactory(){
@Override
public ILcdGXYLayer createGXYLayer(ILcdModel aModel){
ILcdGXYLayer layer = delegate.createGXYLayer( aModel );
if (layer != null){
//do your modifications here
}
return layer;
}
}
}
}
}
Upgrade considerationLuciadLightspeed
LCD-7395
The JOGL, JOCL, and GlueGen libraries have been updated to version 2.3.2+2-lcd. This is the same as the
official 2.3.2 version of JOGL, with two exception. The first is a change for the Mac OS X platform that
fixes following JOGL issues:
- 1277: GLCanvas content draws in wrong position when canvas moves after JFrame containing it is setVisible(true) on EDT
- 1299: warning when using JOGL on Mac OS X El Capitan
- 1306: Medium-weight tooltips are painted behind the GLCanvas
- 1307: GLCanvas is always drawn on top when using a JTabbedPane
The second is a fix for a memory leak that occurs when creating two OpenGL drawables that
perform GL context sharing, and then destroying one. The other could previously not be
garbage collected in this case.
Upgrade considerationLuciadLightspeed
LCD-6476
GML decoding: the GML decoders now exclusively rely on the model reference axis metadata as provided
by their reference parsers. This may impact the parsing of coordinates using the "EPSG:4326" model reference.
In particular, if you have previously customized a GML decoder with a
TLcdEPSGReferenceParser
and you relied on OGC's legacy lon-lat interpretation of the "EPSG:4326" string instead of
EPSG's official lat-lon interpretation,
you should use
TLcdOGCModelReferenceParser
instead and enable the lon-lat interpretation by calling
setParseUnprefixedEPSG4326AsLonLat(true)
.
2016.0
2016.0.13
ImprovementLuciadLightspeed
LCD-8134
TLcdWMTSClient could throw a NullPointerException in case of an unresolvable REST URL template.
ImprovementLuciadLightspeed
LCD-8149
TLspViewNavigationUtil#centerOnModelBounds
now also works for model references that are not instances of
ILcdGeoReference
.
Note that, for this case to work, the model reference has to equal the view's reference.
ImprovementLuciadLightspeed
LCD-8146, LCD-8104
The WMTS client no longer shows tile decoding issues in the tiles themselves. This has been replaced by
warning log statements.
ImprovementLuciadLightspeed
LCD-8137
The XML decoders no longer fail on empty double and float elements.
ImprovementDefense Symbology
LCD-8101
Added ISO 3166 Alpha-2 coded flag visuals. The PNG files for the flags can be found under classpath "images/countryflags/iso3166/".
Bug fixLuciadLightspeed
LCD-8167
Fixed a performance bottleneck when visualizing shapes in an
ILcdGXYView
with a constantly changing world reference.
Bug fixLucy (LuciadLightspeed)
LCD-8155
The favorites bar in Military Symbology add on was not keeping SIDC properties of a
favorited symbol in certain cases.
Bug fixLuciadLightspeed
LCD-8156
GML encoding: fixed an issue when encoding WFS models whose domain objects contain multi-curve geometries.
Bug fixLuciadLightspeed
LCD-8143
TLcdEllipsoid#geodesicPointSFCT
did not always return the point at the shortest distance
at a fraction between two points on one of the poles. As a result lines on the poles could be incorrectly
visualized in a 2D projection.
Bug fixLuciadLightspeed
LCD-8141
TLcdResizeOp
did not handle palette indexed color images correctly when down-scaling the image a lot.
Bug fixLuciadLightspeed
LCD-8130
A regression in recent patches caused incorrect results related to height / value provision and
raster-as-icon visualization, in case of source image data with a SinglePixelPackagedSampleModel.
Bug fixDefense Symbology
LCD-8002
Fixed the overlapping of hierarchy and question mark icons in symbols with Pending or Exercise Pending affiliations,
for APP6A and MS2525b standards. Now if an APP6A or MS2525b symbol has a Pending or Exercise Pending affiliation,
only the question mark is displayed as a hierarchy icon.
2016.0.12
ImprovementDefense Symbology
LCD-7623
Removed the background coloring of affiliation customizer combo box in the samples.
Bug fixLuciadLightspeed
LCD-8119
TLcdMedianOp: the median operator did not work on images with 2 or 3 bands.
Bug fixOGC Server
LCD-8130
A regression in recent patches caused incorrect values in images generated by the WCS,
in case of source image data with a SinglePixelPackagedSampleModel.
Bug fixTiling Engine
LCD-8130
A regression in recent patches caused incorrect results related to RASTER fusion,
in case of source image data with a SinglePixelPackagedSampleModel.
Bug fixTiling Engine
LF-1004
Fusion is now more robust against WMTS services that use a data format that is not a supported MIME type.
2016.0.11
ImprovementLucy (LuciadLightspeed)
LUCY-4503
TLcySearchAddOn
: the search result layer will be made visible if needed when selecting and fitting on
a new search result. In case you have your own local copy of the search add-on based on the sample code, the affected
class is the
AbstractLocationSearchService
class.
ImprovementLucy (LuciadLightspeed)
LUCY-4499
TLcyGenericMapUtil
: this class can now deal with domain objects
which are not shapes, but expose a shape on their data model. This ensures that the table view
allows to fit on such domain objects.
ImprovementLucy (LuciadLightspeed)
TLcyLspVectorFormat
now uses ALcdShape.fromDomainObject to retrieve the shape.
As such, it now supports domain objects which aren't a shape extension but have a shape exposed on their data model.
ImprovementOGC Server
LCD-8087
A launcher script was added for the OGC server sample (OGCServer.sh/bat
).
Using this script, it is now possible to run the server on a headless machine.
ImprovementOGC Server
TLcdWFSGetFeatureRequestHandler now doesn't log errors anymore when a feature can't be encoded. The stack traces
can still be obtained by enabling debug logging for the "com.luciad.ogc.wfs" package.
ImprovementReal-time Engine
LCD-8000
A new "afterglow color" property was introduced in TLspRadarVideoStyle. This color
is applied to radar blips that were not confirmed by the most recent pass of the
radar but which are still visible due to afterglow. This allows the user to
visually distinguish current blips from stale ones even when using long afterglow
durations.
ImprovementDefense Symbology
LCD-8016
Improved the performance of panning, zooming in/out to a view with many symbols.
Bug fixLucy (LuciadLightspeed)
LUCY-4496
ALcyActionBar.setProperties
: the showActionName
and
smallIcon
properties for a menu where not respected when running Lucy in another language.
Bug fixLuciadLightspeed
LCD-8031
The WMTS client threw an IndexOutOfBoundsException in case it didn't found any non-empty tiles.
Bug fixLuciadLightspeed
LCD-8078
Platform detection for PowerPC and Mac OS X 32-bit has been removed. Native libraries for these platforms can no longer be
loaded.
You should not be affected by this change, as these platforms have never been officially supported.
Bug fixOGC Server
LCD-8079
The samples.ogc.wfs.client sample now uses a default MAXFEATURES value of 1000 in all GetFeature requests,
to avoid overloading a server with too large data requests.
Bug fixOGC Server
LCD-8063
The OGC WCS server's GetCapabilities response no longer contains null Strings. If an optional value is not available
(e.g., a coverage description), an empty String is used.
Bug fixDefense Symbology
LCD-8071
NVG 1.5 corridors used as tactical graphics are now visualized with their correct width.
Bug fixDefense Symbology
LCD-8064
Fixed the visual of Special C2 Headquarters Component symbol with a movement direction arrow.
Bug fixDefense Symbology
LCD-8065
Symbol movement direction arrow head was excluded from icon bounds.
2016.0.10
Bug fixLuciadLightspeed
LCD-8044
Fixed NPE when visualizing a non-tiled WMS layer and moving the view outside the model bounds.
Bug fixLuciadLightspeed
LCD-7241
Balloon sample: showing the balloon for the moving point resulted in flickering.
Bug fixLuciadLightspeed
LCD-8033
WMS models did not support time and elevation dimensions if they weren't defined with their official
names TIME and ELEVATION with upper case letters. This has been made more flexible, by supporting
dimension names TIME, ELEVATION, DEPTH and ALTITUDE - regardless of the letter case.
Bug fixLuciadLightspeed
LCD-8025
Fixed a layer selection problem when using a string translator in the visual inspection sample controls.
This also affected LuciadLightspeed based products with visual inspection controllers.
Bug fixLuciadLightspeed
LCD-8028
Layer tree tooltips were no longer displayed in the samples and most LuciadLightspeed based applications.
Bug fixLuciadLightspeed
LCD-7991
Fixed a problem with using TLspCreateController.nextStep() in conjunction with military symbology.
Bug fixLuciadLightspeed
LCD-8026, LCD-7176
TLcdWKTReferenceParser and TLcdWKTReferenceFormatter can now handle mercator projections with a true scale latitude
(mercator variant B).
Bug fixAviation Standards
LCD-8039
Airspace Associations are now correctly visualized in 3D Lightspeed views as extruded shapes.
2016.0.09
Bug fixLucy (LuciadLightspeed)
LUCY-4495
TreeTableDataObjectModel
would throw a ClassCastException when the domain object
had a byte[] property (or any other primitive array type property).
This has been fixed by making the TreeTableDataObjectModel#isNotEmptyNorNull
method more robust.
Bug fixLuciadLightspeed
LCD-7999
TLspIconStyle: Icons painted in view coordinates would not be visible if the icon style was configured
with ElevationMode.ON_TERRAIN.
Bug fixTiling Engine
LF-1000
Fixed a bug in fusion support for VPF datasets without scale information.
Such datasets have a zero or negative scale denominator, which was not taken into account.
Note that for such datasets LuciadFusion will auto-detect a scale based on the extent of the data (see TLfnFormat.getScaleDenominator).
You may need to manually adapt the Compilation Scale of your assets.
2016.0.08
ImprovementLuciadLightspeed
LCD-8004
It is now possible to calculate the closest geodesic distance to a rhumbline segment, see
TLcdEllipsoidRhumblineUtil#closestPointOnRhumblineGeodesic
and
TLcdSphereRhumblineUtil#closestPointOnRhumblineGeodesic
.
ImprovementLuciadLightspeed
LCD-7992
The product documentation isn't opened automatically anymore when launching start.jar.
ImprovementLuciadLightspeed
LCD-7989
The sample service in start.jar now uses a different port for each Luciad product. This allows to run samples from
different products simultaneously without having to reconfigure ports first.
ImprovementOGC Server
LCD-7998
The servlet class TLcdWMSServlet has been extended with a protected factory method
createCommandDispatcherFactory(ServletConfig), to allow customization of the command dispatcher factory instance.
Bug fixLuciadLightspeed
LCD-8007
TLcdClusteringTransformer can now handle original models where all points are on the same longitude. It
threw OutOfMemoryErrors before.
Bug fixLucy (LuciadLightspeed)
LUCY-4482
TLcyS57DecoderAddOn: loading a second Ecdis data file on a GXY view would revert all changes made to the application-wide
Ecdis style settings.
Bug fixLuciadLightspeed
LCD-8009
BlackLimeLookAndFeel
(used by for example Lucy Map Centric) now uses the special Noto font only for Latin locales,
falling back to the default Java fonts otherwise.
Bug fixLuciadLightspeed
LCD-8001
TLcdWMSClient did not always detect support for GetLegendGraphic and DescribeLayer requests in the
WMS capabilities.
Bug fixLuciadLightspeed
LUCY-4487
TLcdEarthGXYRasterPainter and TLcdGXYImagePainter: when printing a map with these painters, the resulting
printout could be blurry.
Bug fixLuciadLightspeed
LCD-6878
TLspIconStyle: Icons could appear completely white when dynamically changing the size of the icon.
Bug fixLuciadLightspeed
LCD-7993
Fixed the 'Semantics do not describe a single color' error that could sometimes occur when visualizing elevation
coverages with encoded as image/tiff.
Bug fixLuciadLightspeed
LCD-7982
The WCS model generated a NullPointerException when used in an ILspLayer on a Lightspeed view.
Bug fixLuciadLightspeed
LCD-7868
TLcdCone3DMesh#getPrimitive would return a primitive with incorrect vertex indices when TLcdCone3DMesh#getVertexSFCT
was not called once first.
Bug fixLuciadLightspeed
LCD-7647
TLcdGeoTIFFModelEncoder: it was not possible to encode raster data represented in a grid reference with a projection
of the type TLcdAlbersEqualAreaConic.
Bug fixDefense Symbology
LCD-7958
The speed leader is now taken into account when calculating symbol icon bounds.
Bug fixTiling Engine
LF-981
Fixed a bug affecting the fusion of vector data in lon-lat coordinates when "force linear interpolation" is on.
This bug could cause some complex polygons to fail with "Inner ring cannot be determined to be inside an outer
ring".
2016.0.07
ImprovementLuciadLightspeed
The WMS client samples 'samples.wms.client.gxy.MainApplet' and 'samples.wms.client.lightspeed.MainPanel' now
automatically show a time and elevation slider map widget in case these dimensions are discovered in one of the
selected WMS layers.
ImprovementLuciadLightspeed
LCD-7626
TLspSetControllerAction can now use 'null' as controller to set on the view.
ImprovementLucy (LuciadLightspeed)
LUCY-4472
The military symbology add-ons now store and restore their favorite symbols between different
Lucy sessions.
ImprovementAviation Standards
LCD-7509
Improved visualization of route segments in 3D views. They are now rendered as 3D corridors, whose dimensions
are determined based on the lowerLimit, upperLimit, widthLeft and widthRight properties of the route segment.
Bug fixLuciadLightspeed
LCD-7887
Fixed an issue where TLspRulerController#setLabelStyler(TLspPaintState, ILspStyler) would set the passed styler for
all paintstates, instead of just the one that has been passed.
Bug fixLuciadLightspeed
LCD-7976
Fixed an issue in
TLcd2DBoundsIndexedModel
: it could not store domain objects which had an ALcdImage in their data type marked with TLcdHasGeometryAnnotation.
Bug fixLuciadLightspeed
LCD-7974
Fixed some threading problems in TLspEditController and TLspCreateController.
Bug fixLuciadLightspeed
LCD-7963
TLcdDTEDDirectoryModelDecoder: fixed case issue when auto-detecting bounds.
Bug fixLuciadLightspeed
LCD-7967
TLcdCompositeOp: fixed rounding error when compositing images. This could make further operations such as
TLcdBinaryOp difficult to use.
Bug fixLuciadLightspeed
LCD-7910
Fixed flickering when zooming in very closely on the terrain in 3D.
Bug fixLucy (LuciadLightspeed)
LUCY-4459
Loading data from certain OGC servers could result in an internal error ("Duplicate key ... found while decoding").
Bug fixLuciadLightspeed
LCD-7956
Fixed sporadic flickering when using non-tiled WMS visualization in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-7966
Fixed a JDBC driver leak when using "alwaysCloseConnection" for database models.
The driver was registered each time a connection was opened, instead of once.
Bug fixLuciadLightspeed
LCD-7955
Fixed a rare ArrayIndexOutOfBoundsException when printing labels with a halo on a Lightspeed map with
high quality settings.
Bug fixLuciadLightspeed
LCD-7942, LCD-4089
SLD files containing inline Base64 image content defined in an external graphic were not always properly decoded.
Bug fixLuciadLightspeed
LCD-7317
Lighting would change when center of view falls off the ellipsoid into the horizon when tilting the view.
Bug fixLuciadLightspeed
LCD-7489
The icon for Lightspeed's default controller is now the same as the icon for the general controller created
by the sample ControllerFactory.
Bug fixLuciadLightspeed
LCD-4553
TLspComplexStrokedLineStyle: Complex strokes were applied once to all shapes together in an ILcdShapeList.
The same issue would appear when using an ALspStyleTargetProvider which creates multiple geometries.
This resulted in unexpected results with decorations. For example an arrow decoration at the start would only show
up on the first shape of the ILcdShapeList instead of at the start of each sub-shape.
Bug fixDatabase Connectors
LCD-7966
Fixed a JDBC driver leak when using "alwaysCloseConnection" for database models.
The driver was registered each time a connection was opened, instead of once.
Bug fixDefense Standards
LCD-7645
Padding data in tiles near the image edge is now correctly skipped over.
Bug fixDefense Symbology
LCD-7975
Fixed the NullPointerException when trying to paint an APP6 object without a style.
Bug fixRadar Connectors
LCD-7876
TLcdASTERIXDecoder.canDecode and retrieveFormat are now more correct in that they no longer accept files ending in
'asterix', but only those ending in '.asterix'. Similar for pcap, ast and astfin.
Bug fixTiling Engine
LF-260
Fixed a bug affecting the fusion of vector data, which could cause some features to fail with "Intersections do not
end in end tile".
2016.0.06
ImprovementLuciadLightspeed
LCD-3767
The fusion.client.lightspeed sample now fits on new layers when they are added.
Bug fixLuciadLightspeed
LCD-7947
Made the sample FusionCatalogModelDecoder robust against unsupported coverages.
Unsupported coverages are now gracefully skipped with a warning rather than thrown upon, such that the 'good'
coverages can still be loaded and displayed in for example the lightspeed.decoder sample.
Bug fixTiling Engine
LF-983
LuciadFusion engine did not fuse CADRG data at the right level when using multiple assets.
Bug fixTiling Engine
LF-984
LuciadFusion engine did not correctly handle coverages of type RASTER with assets that use a different palette
color. Such coverages will now automatically convert the data to RGBA.
Bug fixTiling Engine
LF-856
Fixed a bug affecting the fusion of vector data, which could cause some features that cross the 180th meridian to
fail with "No corresponding builder for edge link" or "java.lang.ArrayIndexOutOfBoundsException: -1".
2016.0.05
ImprovementLuciadLightspeed
LCD-7900
TLcdWMSClient no longer logs a stacktrace when passing an invalid URL.
ImprovementWeather & Environment Standards
LCD-7450
Added support for product definition template 15.
Bug fixLucy (LuciadLightspeed)
LUCY-4478
The file type combo box of the File|Open dialog no longer shows the 'All terrain files' group. Those formats are
now part of the 'All Raster Files' group instead.
Bug fixLuciadLightspeed
LCD-7939
TLcdColorConvertOp: fixed error when converting 16-bit RGB to 8-bit RGBA.
Bug fixLuciadLightspeed
LCD-7938
Fixed a bug in the WMTS client which could cause read operations to fail with a "Stream closed" exception.
This was a recent regression.
2016.0.04
ImprovementLucy (LuciadLightspeed)
The circular progress bar in Lucy Map Centric now renders a grey circle on its background. Doing so, you get better
feedback if progress is slow, and otherwise not yet visible.
ImprovementLuciadLightspeed
LCD-7870
To improve the interoperability with 3rd party OGC WMS servers, WMS GetMap requests no longer include a
background color parameter in case of a transparent image request.
ImprovementLuciadLightspeed
LCD-7861
When normal coordinates are missing in a Collada file, a mesh without normals will now be produced.
Previously it was not possible to visualize a Collada model with missing normals.
ImprovementLuciadLightspeed
LCD-7851
The native library loader will now prefer loading from java.library.path if it's set.
ImprovementLuciadLightspeed
TLcdMedianOp: new image operator that computes the median value in a small area around each pixel.
ImprovementLuciadLightspeed
LCD-7655, LCD-7596, LCD-5939
TLspRasterLayer: the view is now updated even more gracefully when changing the model or styling. Structural changes
to simple images (e.g. ALcdBasicImage or ALcdMultilevelImage) are now also handled without flickering. This includes
for example changes to data resolution, bounds, and reference.
ImprovementLuciadLightspeed
LCD-7250
It is now possible to remove overlay labels from a TLcdMGRSGridLayer instance, see
TLcdMGRSGridLayer#removeOverlayLabel.
ImprovementLucy (LuciadLightspeed)
The Lucy Map Centric front-end now shows on-boarding help when users start the application for the first time. It
helps users to get quickly started. Please refer to OnBoardingHelpAddOn for more information.
ImprovementOGC Server
LCD-7750
The WCS service has been extended with a convenience parameter in the deployment descriptor
(build/ogc/resources/WEB-INF/web.xml) to easily enable / disable GeoTIFF tiling. Although tiling is preferred
in terms of performance, disabling it can be required to support 3rd party WCS clients that do not support tiled
GeoTIFFs.
Bug fixLuciadLightspeed
LCD-7912
When using the TLspPortholeController or TLspSwipeController artifacts could appear in the view on some devices.
Bug fixLuciadLightspeed
LCD-7895
Marked below libraries as non-public for Maven deployment:
- com.sun.media:clibwrapper_jiio
- com.sun.media:jai_codec
- com.sun.media:jai_imageio
- javax.media:jai
- javax.media:jai_core
- javax.media.jai:mlibwrapper_jai
- org.jogamp.jogl:jogl-all-main
- org.jogamp.jocl:jocl-main
- org.jogamp.gluegen:gluegen-rt-main
Bug fixLucy (LuciadLightspeed)
LUCY-4462
Closing Lucy Map Centric when running in full screen now properly exits the JVM, just like
exiting Lucy Map Centric in regular view does.
Bug fixLucy (LuciadLightspeed)
LUCY-4457
Bug fixLuciadLightspeed
LCD-7907
Fixed an issue where TLspAWTEventFilterBuilder would create a right mouse button filter instead of a
middle mouse button filter when calling TLspAWTEventFilterBuilder#middleMouseButton(). This issue was not present
the new TLcdAWTEventFilterBuilder, it is a regression introduced by LCD-7159.
Bug fixLucy (LuciadLightspeed)
LUCY-4471
Print preview: the quality options can now be translated.
Bug fixLuciadLightspeed
LCD-7885
Fixed an encoding issue which caused the service console to disconnect on Windows.
Bug fixLucy (LuciadLightspeed)
LUCY-4464
When right clicking on the map the pop-up menu would sometimes appear at the wrong location.
Bug fixLuciadLightspeed
LCD-7874
The WMS, WMTS and WFS clients could fail to connect to the server. This was a recent regression.
Bug fixLuciadLightspeed
LCD-7865
Algorithms extending from ALcdGXYDiscretePlacementsLabelingAlgorithm didn't consistently order labels. This could
lead to unstable labels in some cases.
Bug fixLuciadLightspeed
LCD-7862
TLspBalloonManager: in some cases, the balloon anchor of a line or polygon was not retrieved.
Bug fixLuciadLightspeed
LCD-7850
When using TLcdXYGridLayer or TLspXYGridLayerBuilder in combination with a world reference with a unit of measure
different than 1, the intervals specified in the XY grid style were sometimes incorrectly interpreted. This could
lead to a grid that it too sparse or dense.
Bug fixLuciadLightspeed
LCD-7599
ALspController: A NullPointerException could occur when switching between 2D and 3D whilst
also switching controllers in a view listener.
Bug fixLuciadLightspeed
LCD-7859
Evaluating XPaths that included traversing a list only worked if the domain object representing the list was of
type java.util.List. This has been extended with support for any java.util.Collection implementation.
Bug fixLuciadLightspeed
LCD-7854
TLcdImageIcon: creating and using instances in multiple threads could sometimes result in loading the wrong icon.
Bug fixLuciadLightspeed
LCD-7852
ALcdBalloonManager no longer modifies the background color of the balloon content.
Bug fixLuciadLightspeed
LCD-7840
Solved a specific reference parsing problem that could affect TLcyCompositeModelReferenceParser.
Bug fixLuciadLightspeed
LCD-7495
Fixed error when using band-select on some multi-band images.
Bug fixLucy (LuciadLightspeed)
LCD-7250
Changing the MGRS grid style properties on a Lucy GXY map caused the overlay label to be added multiple times.
This could lead to painting artifacts for the overlay label.
Bug fixDefense Symbology
LCD-7889
The name conflict bug in countries and codes for MS2525c has been fixed. The countries which has a comma(,)
in their names in ISO 3166-1 standard, were mapping to the same code. For example,
"Congo, the Democratic Republic of the" and "Congo" was mapping to the same name as "Congo".
Bug fixDefense Symbology
LCD-7873
Icons for the following symbols are fixed for APP6A:
- Fixed Wing/Special Operations Forces (SOF)
- 1.X.2.1.1.18
- Rotary Wing/Special Operations Forces (SOF)
- 1.X.2.1.2.11
Icons for the following symbols are fixed for APP6A and APP6B:
- Land Attack Missile
- 1.X.2.2.1.4
- Way Point
- 2.X.2.5.2.10
Bug fixDefense Symbology
LCD-7639
MS2525C is now using ISO 3166-1 instead of FIPS Pub 10 for country codes.
2016.0.02
ImprovementTiling Engine
LF-870
Fusion of WMTS: improved the performance when fusing a WMTS layer using a clipping shape.
Bug fixDefense Symbology
LCD-7592
Uncertain affiliated symbols such as Assumed Friend, Suspect, Pending are displayed with a black and white dotted
outline for APP6C.
Bug fixDefense Symbology
LCD-7592
Uncertain affiliated symbols such as Assumed Friend, Suspect, Pending are displayed with a black and white dotted
outline for MS2525C and APP6B.
Bug fixTiling Engine
LF-968
Fusion is now more robust against WMTS services that return empty tiles instead of 404 "Tile not found" and WMTS
services that advertize much more tile matrices (levels) than they actually have tiles for.
Bug fixTiling Engine
LF-867
Fixed a bug when fusing a WMTS layer into a coverage with a reduced bounding box, which caused all of the source
data to be squashed inside the reduced bounding box rather than being clipped to it.
Upgrade considerationDefense Symbology
LCD-7640
ILcdApp6AStyle and ILcdMS2525bStyle introduce 2 new methods:
- setOffsetEditingEnabled(boolean aOffsetEditingEnabled): sets if the offset of the icon symbol is editable
via CTRL+Drag operation.
- getOffsetEditingEnabled(): returns true if the offset of the icon symbol is editable via CTRL+Drag
operation.
The newly introduced methods can be invoked from TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle instances.
2016.0.01
ImprovementLuciadLightspeed
LCD-7748
Native libraries are now cached to $XDG_CACHE_HOME on Linux, in accordance with the XDG Base Directory specification.
If the variable is not set, $HOME/.cache will be used.
ImprovementLuciadLightspeed
LCD-7754
The WMTS model decoder now automatically detects empty tiles and empty tile matrix sets.
-
Detection of empty tiles works around WMTS services that use an empty tile image instead of a 404 when a tile is
not found.
-
Detection of empty tile matrices (levels) works around WMTS services that advertize more tile matrices than they
actually have tiles for.
ImprovementLuciadLightspeed
LCD-7253
TLcdWKTReferenceParser is now more flexible when parsing projection names wrt casing and separator character.
Also more aliases are supported now.
ImprovementLuciadLightspeed
LCD-5516, LCD-7746
TLspRasterLayer: the view is now updated more gracefully when changing the model or styling. Changes that do not
affect the structure of the data (e.g. bounds, reference, tile grid, ...) are handled without flickering. Previously
this could still occur for quad-tree structured data like LuciadFusion, Bing Maps or some WMTS servers. In practice
this means that the usual image processing and time-based data updates are handled without flickering.
ImprovementLuciadLightspeed
LCD-6626
ILspImageProjectionLayer: model changes are now handled more gracefully
ImprovementLuciadLightspeed
LCD-6149
The ILcdModelDescriptor of decoded Wavefront Object (obj) models now returns the file name without extension
as the display name. Previously it always returned the same value (Wavefront OBJ).
ImprovementAdvanced Raster Connectors
LCD-7696
The GDAL decoder now also decodes overview data, if available.
Bug fixLuciadLightspeed
LCD-7822
Fixed rare NullPointerException in ALspCreateHandle during creation.
Bug fixLuciadLightspeed
LCD-7815
When using a Lightspeed view, the default labeling algorithms weren't determined correctly when using domain
objects that are an ILcdDataObject with a TLcdHasGeometryAnnotation. Also path based algorithms didn't work
in that case.
Bug fixLucy (LuciadLightspeed)
LUCY-4450
The LayerUtil
sample class first did a check on ILcdLayer.isEditable
,
and afterwards on ILcdLayer.isEditableSupported
. This order is incorrect, and has been
reversed so that first the editable supported setting is verified.
Bug fixLuciadLightspeed
LCD-7762
TLspComplexStrokedLineStyle: 3D lines with non zero altitude values would sometimes be visualized with artifacts
in a 2D view.
Bug fixLuciadLightspeed
LCD-7663
The TLcdSHPModelEncoder incorrectly limited the length of numeric fields to 13 characters. This has now been changed
to 18 characters.
Bug fixLuciadLightspeed
LCD-7745
The BBox spatial filter was not supported on objects of type ILcdBounded while not being of the type ILcdShape or
ILcdShapeList.
Bug fixLuciadLightspeed
LCD-7553
When using horizontal grid labels, some labels would be detached from their grid line.
Bug fixLuciadLightspeed
LCD-7674
TLspFillStyle: When using the TextureCoordinatesMode#OBJECT_RELATIVE mode and a ALspStyleTargetProvider to generate
geometry for a domain object, the texture would be applied incorrectly.
Bug fixLuciadLightspeed
LCD-7653
TLspRasterLayer: terrain could appear blurry under some angles. The issue appeared most frequently when positioning
the camera very close to the terrain, looking at the horizon and using a low resolution view.
Bug fixLuciadLightspeed
LCD-7668
TLspRasterLayer: fixed issue when visualizing color image with a no-data value.
Bug fixLuciadLightspeed
LCD-7671
Fixed a number of bugs in the synchronization between multiple Tile Store instances on the same directory.
Bug fixLucy (LuciadLightspeed)
LUCY-4431
Table view: having the table view open for a layer with an icon, and switching to a layer without an icon
would result in a table view showing the label of the new layer but the icon of the old layer.
This has been fixed. Switching to the table view of a layer without icon now shows a table view without
icon.
Bug fixLuciadLightspeed
LCD-7658
TLspIconStyle.Builder#useOrientation(true) didn't work for non-georeferenced (cartesian) views, rsulting in a
ClassCastException.
Bug fixLuciadLightspeed
LCD-7657
Fixed rare shader compilation errors when zooming in on objects that are styled with TLspComplexStrokedLineStyle.
Bug fixLuciadLightspeed
The transformations configured on a ILspTexturedStyle (e.g. translate) were not always applied. This
would occur when a custom styler is used in which a ILspTexturedStyle is created with different transformation
parameters.
Bug fixLuciadLightspeed
LCD-7362
Fixed a memory leak that could occur when visualizing 3D models. When the layer containing the 3D model was removed
not all allocated memory was released properly.
Bug fixLuciadLightspeed
LCD-7631
TLspFillStyle : texture rotation was ignored when the texture coordinates mode was set to
TextureCoordinateMode#VIEW_SCALED.
Bug fixOGC Server
LCD-7816
The OGC server sample was initialized with an incorrect classpath, leading to a conflict between
Luciad libraries residing in the lib and in the distrib/ogc folder.
Bug fixOGC Server
LCD-7816
The OGC server sample was initialized with an incorrect classpath, leading to potential conflicts between
Luciad libraries residing in the lib and in the distrib/ogc folder.
Bug fixDefense Symbology
LCD-7121
TLcdNVGModelDescriptor.getModelElementTypes() returns now the data types set of the possible model elements.
Upgrade considerationDefense Symbology
LCD-7756, LCD-7656
ILcdApp6AStyle and ILcdMS2525bStyle introduce 4 new methods:
- setAnchorSymbol(ILcdIcon aSymbol): sets an anchor icon to the symbol icons. If set to null,
no anchors will be painted.
- getAnchorSymbol(): returns the current anchor icon.
- setSelectionRectangleWidth(int aWidth): sets the width of the selection rectangle of an
icon symbol in pixels.
- getSelectionRectangleWidth(): returns the width of the selection rectangle in pixels.
The newly introduced methods can be invoked from TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle instances.
2016.0
ImprovementLuciadLightspeed
LCD-7650
All
TLfnTileStoreProvider
instances using the same
ALfnEnvironment
now use
shared
ALfnTileStore
instances.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ALcyActiveSettable
: the
getDisplayName
and
setDisplayName
methods have been deprecated in favor of the existing
getName
and
setName
methods.
This is similar to what was done on the
ALcdAction
class in a previous release.
ImprovementLucy (LuciadLightspeed)
LUCY-4430
When the selection synchronization between the table view and the layer is active, the
table will now only alter the selection in the view when the user modified the selection
in the table (by clicking, with the arrow buttons or by using the table view API).
When the table view alters its own selection due to a model change in the table view model,
the table view will not alter the selection on the map.
As a result of this enhancement:
- Opening a table view will no longer adjust the selection on the map.
- Changing a model for which the table view is open will no longer clear the selection of the other layers
in the view.
In case you use a local copy of the table view sample code, the affected sample classes are the
EditableTable
and
TFitCenterSelectionActiveSettableSupport
classes.
ImprovementLucy (LuciadLightspeed)
LUCY-4432
Table view: the table view now checks whether all model changes happen on the EDT, and throws a clear exception
when this is not the case (seeLuciadModelWrapper.assertOnEDT
).
This is not a new limitation. In prior versions where this check was not done making changes on a background thread
would result in other exceptions like for example an ArrayIndexOutOfBoundsException.
The benefit of this check is that the error message clearly describes what the problem is, and how to fix it.
ImprovementLuciadLightspeed
The product documentation has been restyled.
- StartHere.html
was removed. The documentation home page is now at docs/index.html.
-
A new launcher application was added: start.jar. Samples can be started from within the launcher or the product
documentation. For an optimal experience, it is recommended to keep the launcher running while browsing the documentation.
You can run start.jar directly by double-clicking or executing
java -jar start.jar
from a console.
More information about the command-line interface is available by running java -jar start.jar --help
.
-
Individual shell scripts to launch samples have been removed; all samples can be started via the launcher.
ImprovementLuciadLightspeed
LCD-5542
Native libraries used by LuciadLightspeed are now packaged in jar files. This removes the need to set
java.library.path
when running LuciadLightspeed-based software. The relevant jars must simply be present on the classpath. The libraries are
packaged per platform,
so you can safely remove native jars for other platforms.
ImprovementLuciadLightspeed
LCD-7584
LuciadLightspeed now supports deployment to a Maven repository. POM files for all artifacts, both Luciad and 3rd-party,
as well as an Ant script to deploy them are provided in the build/maven directory of the installation.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-7210
ALspInteractiveLabelProvider now has an updateInteractiveLabel() method. This method can be used to modify a Swing
label while it is interactive. It will also make sure that ALspSwingLabelStyler and TLspInteractiveLabelsController
are notified of any changes to the interactive label. The updateInteractiveLabel() is called automatically by
ALspSwingLabelStyler when a model change was fired for the domain object of the interactive label.
ImprovementLucy (LuciadLightspeed)
A new sample illustrating how to integrate clustering into Lucy is available (see the samples.lucy.clustering
package).
ImprovementLucy (LuciadLightspeed)
TLcyLspFormatTool
now allows to specify the priority which should be used when
plugging in the different instances.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
TLcdGXYImagePainter#create(ILcdModel) was added. This method creates a painter provider that configures a
GXY painter with the defaults for painting raster data. This includes color, elevation and measurement
(e.g. weather) data.
ImprovementLuciadLightspeed
TLcdSLDFeatureTypeStylePainter now uses anti-aliasing by default when painting labels. This removed
the need to wrap the painter when using it as a label painter.
ImprovementLucy (LuciadLightspeed)
The default colors and icons for unstyled Lightspeed vector formats (SHP, GML, MSSQL, GeoJson, SpatiaLite ,
ArcSDE, Oracle Locator) has been improved. This was done by altering the default style file for those
formats.
You can revert to the old styling by replacing those style files with the style files from
an old release.
ImprovementLuciadLightspeed
It is now possible to introduce clustering to help reduce the clutter when there are many objects in a view.
You can make use of a transforming model with a TLcdClusteringTransformer to aggregate model elements that are close
together into a cluster.
For more information, please refer to the LuciadLightspeed Developer's Guide chapter "Clustering".
ImprovementLuciadLightspeed
LCD-7131
It is now much easier to work with domain objects that do not implement ILcdShape themselves, but rather expose
it as an ILcdDataObject property. Refer to TLcdHasGeometryAnnotation and the fundamentals samples for more information.
ImprovementLuciadLightspeed
It is now possible to create a tileable ILcdIcon based on a TLcdGXYHatchedFillStyle. See
TLcdGXYHatchedFillStyle#asIcon().
ImprovementLuciadLightspeed
LCD-7488
TLcdDimensionInterval now explicitly allows null as min and max values to indicate it is unbounded at one or both
ends.
This is useful when modeling an interval that spans all possible values, especially for Comparable types such as
String or Date that don't have a MIN_VALUE or MAX_VALUE.
ImprovementLucy (LuciadLightspeed)
TLcy(Lsp)MapAddOn: it is no longer necessary to specify the path to the navigation control images in the
configuration file. When this property is not present, a good default will be chosen.
ImprovementLuciadLightspeed
TLcdGXYNavigationControlsFactory
: class now contains factory methods where it is
no longer necessary to specify the image path. Images from the release will be used in that case.
ImprovementLucy (LuciadLightspeed)
There are various buttons that show a pop-up menu, such as the 'Draw' and 'Edit' buttons in the drawing bar,
or the 'Data' and 'Edit' buttons in Lucy Map Centric. These now simulate menu-bar like behavior in that they
show their pop-up on mouse over if a sibling pop-up was already open.
ImprovementLucy (LuciadLightspeed)
LUCY-4414
Drawing: the actions to change the style will now only be enabled when a drawing object is selected
on the map (allows to change the style of the selected object) or when nothing is selected on the map
(allows to change the default drawing style settings).
Those actions will no longer be enabled when non-drawing data is selected on the map.
ImprovementLuciadLightspeed
LCD-7434
The TLcdGeoJsonModelEncoder can now encode domain objects that are not an ILcdShape, but which do implement
ILcdDataObject and the data type has a TLcdHasGeometryAnnotation. The geometry property in this case
must be one of the supported shapes.
ImprovementLuciadLightspeed
LCD-7133
It is now possible to use textured line and fill colors when using TLspComplexStrokedLineStyle. To support
this, new lineTexture and fillTexture methods were added to the stroke builders in ALspComplexStroke.
This is demonstrated in the lightspeed.style.strokedline sample, in the Airspace layer.
ImprovementLuciadLightspeed
LCD-7471
It is now possible to customize the angle threshold that is used to determine if strokes are omitted at a corner
or wrapped around it. See TLspComplexStrokedLineStyle.Builder#shapeAngleThreshold.
ImprovementLucy (LuciadLightspeed)
The action to change the name of the map has been moved from the Edit menu to the Map menu,
and is now called "Change name..." instead of "Map Properties...". The affected
configuration files are map_addon.cfg
,
TLcyGLMapAddOn.cfg
and TLcyLspMapAddOn_CommonMapComponent.cfg
.
ImprovementLuciadLightspeed
LCD-7275, LCD-4106
ALspCreateControllerModel now contains dedicated overridable protected functions that allow you to define
the minimum and maximum pointcount for a pointlist during creation.
ImprovementLuciadLightspeed
SLD styling now takes into account the optional channel selection property of an SLD raster symbolizer,
both in GXY and Lightspeed views. This enables users to select the raster channels (bands) of multi-spectral
data to be used for Red / Green / Blue or Grayscale rendering. The GXY and Lightspeed SLD samples show this
new capability by means of a Las Vegas multi-spectral raster.
ImprovementLuciadLightspeed
LCD-7446
TLcdRotatingIcon has a mode to automatically rotate itself. This now also works when used in a CellRenderer, for
example in a JTree.
ImprovementLuciadLightspeed
TLspViewBuilder#resolutionScale allows rendering an AWT view at a lower resolution than the view's host component.
This is useful for devices with modest resources but high-resolution displays, such as tablets.
ImprovementLuciadLightspeed
LCD-7276
Added ability for TLspCreateController to go to the next step in creation, without explicitly finishing or
committing the creation of the shape. This allows you to perform changes to your newly created shape (such as due to a UI
event), without interrupting the creation process.
ImprovementLucy (LuciadLightspeed)
The
LspSymbologyFormatBar
and
GXYSymbologyFormatBar
sample classes, used in the military symbol add-ons, now
create an action which shows the symbol search UI and the favorite symbol buttons in a pop-up.
This action is used in the map centric version of Lucy, and hidden in the regular Lucy.
This can be changed in the configuration file of the military symbol add-ons.
ImprovementLucy (LuciadLightspeed)
Lucy Map Centric has been restyled. It received a new look-and-feel, new icons and
the layout has been changed.
For this, some new sample add-ons have been introduced to replace some of the previous
sample add-ons:
BlackLimeLookAndFeelAddOn
: this add-on loads the new look-and-feel. It replaces the
NimbusLookAndFeelAddOn and the TouchLookAndFeelAddOn.
SideBarFormatBarAddOn
: this add-on shows all the format bars in the side-bar.
It replaces the TabbedFormatBarAddOn.
MapCentricStatusAddOn
: the status bar has been removed in the restyling.
This add-on shows the messages which used to appear in the status bar in a notifcation on
the map.
ImprovementLucy (LuciadLightspeed)
TLcyLspRasterFormat#createLayerMeasureProviderFactory()
method now creates a measure provider factory which can handle models with an
ILcdImageModelDescriptor
.
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
ImprovementLucy (LuciadLightspeed)
LUCY-4401
ErrorLogAddOn
: the ErrorDialog class would only print the stacktrace of the Throwable, and
not
of the Throwable#getCause. By adjusting the samples.common.gui.ErrorDialog#stackTraceToString
method, the dialog now prints out the stack trace of Throwable causing the error as well.
ImprovementLucy (LuciadLightspeed)
LUCY-4301
Lucy.sh/Lucy.bat now uses an increased heap size on 64 bit systems (1.5GB). On 32bit systems,
the same heap size as in prior versions is used (750MB).
You can override the default settings by altering the
resources/vmoptions/com/luciad/lucy/TLcyMain.vmoptions
file on a 32 bit system or the
resources/vmoptions/com/luciad/lucy/TLcyMain64.vmoptions
on a 64 bit system.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: the size of the icon of the icon chooser button is now chosen automatically, based
on the size of the other icons in the toolbar and the orientation of the toolbar.
ImprovementLuciadLightspeed
The GL resource cache for Lightspeed views now has better default behavior regarding its maximum size.
For most practical purposes, the size no longer needs to be specified. See TLspViewBuilder.glResourceCacheSize
for more information.
ImprovementLuciadLightspeed
TLspViewPaintingHints offers a way to ensure peak performance or quality,
taking into account the currently installed GPU.
ImprovementLuciadLightspeed
LCD-7354
The multidimensional API now includes an interface ILcdMultiDimensionalModel
for filtering dimensional data.
It is typically implemented by dimensional models such as NetCDF, LuciadFusion raster and NVG models.
Even when models implement the interface, implementations may still indicate that particular instances do
not
support dimensional filtering by returning the empty filter
TLcdDimensionFilter.EMPTY_FILTER upon
ILcdMultiDimensionalModel.getDimensionFilter().
The new multidimensional API replaces some legacy, format-specific APIs which have been deprecated.
Examples of such APIs are get/setDate on ASTERIX and NVG models.
A notable difference with these legacy APIs is that the multidimensional models must no longer do any snapping of
elements to filters.
In case no elements pass a filter, the result
must
be empty.
Snapping can now be applied to any model, using TLcdDimensionFilter#createSnappingFilter.
The following enhancements were also done in this context:
-
TLcdDimensionInterval.Relation and relationTo have been removed
and replaced with TLcdDimensionInterval.overlaps.
-
TLcdDimensionInterval now documents the use of null as min or max to indicate that it is unbounded at one or
both ends.
The methods TLcdDimensionInterval.union, overlaps and compareTo know how to deal with unbounded intervals.
ImprovementLucy (LuciadLightspeed)
LUCY-4397
TLcyXMLAddOnLoader
: when overwriting the configuration file of an add-on, the order
as it was defined in the original addons.xml file will be respected.
For example, the TLcyAIXM5AddOn and TLcyLspAIXM5FormatAddOn both use "data_producer"
as priority. However, the TLcyLspAIXM5FormatAddOn entry is located below the TLcyAIXM5AddOn entry
because the TLcyLspAIXM5FormatAddOn requires that the TLcyAIXM5AddOn is plugged in first.
If you want to adjust the config file of the TLcyAIXM5AddOn, you would include the original
addons.xml file using the <include> tag, and copy the entry of the TLcyAIXM5AddOn add-on
with adjusted configuration file. In previous versions, this would cause the TLcyAIXM5AddOn
to be loaded after the TLcyLspAIXM5FormatAddOn unless you altered the priority of your entry
of the TLcyAIXM5AddOn.
This enhancement ensures that the above scenario works without having to alter priorities.
ImprovementLucy (LuciadLightspeed)
LUCY-4394
TLcyLang.getString
now scans all registered resource bundles, instead of only using the default resource bundle.
This allows applications to register additional resource bundles, and as such keep their own translations
separate from the Lucy default translations. Refer to the reference documentation of TLcyLang for more information.
ImprovementLucy (LuciadLightspeed)
A new sample shows how to add a data format to Lucy that only contains programmatically generated data, instead
of data that is loaded using a model decoder. Please refer to
samples/lucy/format/generated
for more information.
ImprovementLucy (LuciadLightspeed)
Oculus Rift sample:
The sample shows how an Oculus Rift view can be integrated into a Lucy application. It adds an action
that will create an Oculus Rift view and adds a camera constraint to it, so that the camera will follow the
selected object. A second action allows to open an Oculus view with a movement controller.
ImprovementLucy (LuciadLightspeed)
All map components (GXY, GL and Lightspeed) now have two tool bars. The regular tool bar with ID
"toolBar"
,
and a new tool bar located at the right side of the regular tool bar. The ID for this new tool bar is
"rightToolBar"
.
This new tool bar can be used for actions and active settables which should visually be right-aligned in the
tool bar of the map. For example the "switch to full screen" active settable is added to this new tool bar.
The
samples.lucy.gxy.custommapui.MapComponentFactory
class has been adjusted to use this new functionality.
Previously it used Swing code to align the scale component at the right side.
Now it inserts the scale component in the right toolbar instead.
ImprovementLuciadLightspeed
LCD-7345
ALcdWeakSelectionListener, ALcdWeakLayeredListener, and ALcdWeakPropertyChangeListener can now also be used
on ILcdLayerTreeNode as hierarchy listeners.
ImprovementLuciadLightspeed
LCD-7344
The new class TLcdDeleteSelectionAction allows removing selected objects with undo-redo support.
ImprovementLucy (LuciadLightspeed)
LUCY-3078
ALcyActionBar
: it is now possible to specify an icon for a (sub)menu through the API or
through
configuration.
Consult the documentation of
ALcyActionBar#setProperties
and the Lucy developer guide.
To clarify that the preferred way of configuring the action bar is using the new setProperties method,
we deprecated the get/setGroupDescriptorComparator and get/setActionBarItemComparator methods.
ImprovementLuciadLightspeed
TLcdIconFactory has been added to the API, which is a class containing factory methods for ILcdIcon instances.
This class allows to create icons for a string identifier, and introduces the concept of "themes": depending on the
theme, the returned icon for a certain identifier will be different.
Consult the class javadoc for more information.
TLcdIconFactory is the preferred way to create icons based on the resources in the release. Therefore
we deprecated the TLcdGUIIcon and TLcdShapeIcon classes in favor of the TLcdIconfactory class.
ImprovementLucy (LuciadLightspeed)
The
smallIcon
and
smallSelectedIcon
properties in the configuration files now support all the
identifiers which are accepted by the TLcdIconFactory#create method.
ImprovementLucy (LuciadLightspeed)
The active settable to show the map component in full screen mode has been moved from the menu bar
to the map tool bar. Reverting to the old situation can be achieved by overriding the values of the following
settings in the configuration files:
-
GXY maps (config file map_addon.cfg):
# Re-insert the action in the menu bar
TLcyMapAddOn.fullScreenActiveSettable.menuBar.insert = true
# Remove the action from the tool bar
TLcyMapAddOn.fullScreenActiveSettable.toolBar.insert = false
-
GL maps (config file TLcyGLMapAddOn.cfg):
# Re-insert the action in the menu bar
TLcyGLMapAddOn.fullScreenActiveSettable.menuBar.insert = true
# Remove the action from the tool bar
TLcyGLMapAddOn.fullScreenActiveSettable.toolBar.insert = false
-
Lightspeed maps (config file TLcyLspMapAddOn_CommonMapComponent.cfg):
# Re-insert the action in the menu bar
TLcyLspMapAddOn.fullScreenActiveSettable.menuBar.insert = true
# Remove the action from the tool bar
TLcyLspMapAddOn.fullScreenActiveSettable.toolBar.insert = false
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
TLspPortholeController visually compares two layer sets by exposing one set of layers through a porthole in the other set.
The porthole is a rectangular region that follows the mouse.
You can customize this controller or use it programmatically. The controller is available in the decoder sample.
ImprovementLucy (LuciadLightspeed)
TLcyToolBar#getComponent always returned a JToolBar, but this was not visible in the API.
The return type of that method has been adjusted from the general Component to the more specific
JToolBar.
ImprovementLucy (LuciadLightspeed)
The JSpinner which allowed to adjust the altitude exaggeration factor on a GL and a Lightspeed map
is replaced by a JSlider.
ImprovementLucy (LuciadLightspeed)
The default colors of drawing and PIM have been changed. The affected configuration files are TLcyDrawingAddOn.cfg,
properties
TLcyDrawingAddOn.defaultStyle.stroke
andTLcyDrawingAddOn.defaultStyle.fill
.
For PIM thelineStyle.color
,textStyle.color
,
wayPointPainter.defaultColor
and
iconStyle.symbol.borderColor
were changed in the
*.sty files in resources/lucy/pim.
ImprovementLuciadLightspeed
LCD-3901
TLcdRangeSlider now supports Nimbus Look and Feel.
ImprovementLuciadLightspeed
CSVModelDecoder is a customizable model decoder for point data in CSV files, available as sample code.
ImprovementLuciadLightspeed
LCD-7266
TLcdGXYAsynchronousLayerWrapper now logs a warning if it wraps an unsupported layer.
ImprovementLuciadLightspeed
LCD-7264
Improved TLcdGXYCompositeController robustness when a delegate terminates the controller.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn / TLcyLspDrawingAddOn: new actions have been introduced, which replace the
components to alter the style (line dash, arrows, line size, icon style). The benefit of using
actions compared to components is that the actions can be configured into any action bar.
As a result, the constants representing the ID of those components in ALcyDrawingToolBarFactory have been
deprecated,
and new constants have been added for the new actions.
In the TLcyDrawing_AddOn_ToolBarFactory.cfg, the insertion of the components have been disabled, and
new config settings have been added for the newly introduced actions.
Reverting to the old situation can be achieved by overriding the values of the following
settings in the TLcyDrawingAddOn_ToolBarFactory.cfg configuration file:
TLcyDrawingAddOn.fillColorMenu.drawingToolBar.insert = true
TLcyDrawingAddOn.changeFillColorAction.drawingToolBar.insert = false
TLcyDrawingAddOn.pointStyleMenu.drawingToolBar.insert = true
TLcyDrawingAddOn.changeIconStyleAction.drawingToolBar.insert = false
TLcyDrawingAddOn.arrowStyleMenu.drawingToolBar.insert = true
TLcyDrawingAddOn.changeArrowStyleAction.drawingToolBar.insert = false
TLcyDrawingAddOn.lineStyleMenu.drawingToolBar.insert = true
TLcyDrawingAddOn.changeLineStyleAction.drawingToolBar.insert = false
TLcyDrawingAddOn.lineSizeMenu.drawingToolBar.insert = true
TLcyDrawingAddOn.changeLineSizeAction.drawingToolBar.insert = false
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn / TLcyLspDrawingAddOn: it is now possible to configure the orientation of the
format bar (horizontal or vertical). See the
TLcyDrawingAddOn.toolBar.orientation
property in TLcyDrawingAddOn_ToolBarFactory.cfg .
In order to support this property, the
ALcyDrawingToolBarFactory#createEmptyToolBar()
method got deprecated in favor of the new
ALcyDrawingToolBarFactory#createEmptyToolBar( ALcyProperties )
method.
In case you overrode the
createEmptyToolBar()
method to alter the
orientation of the tool bar, this customization will be overridden.
The orientation is now set in the
createEmptyToolBar( ALcyProperties )
method based on the contents of the configuration file.
If you want to alter the orientation, you have to adjust the configuration file or override the
createEmptyToolBar( ALcyProperties )
method instead.
ImprovementLucy (LuciadLightspeed)
TLcyGridAddOn
can now create a cartesian (XY) grid using the new TLcdXYGridLayer.
ImprovementLuciadLightspeed
A 3D arc band shape was introduced; ILcd3DArcBand. This shape represents a
subvolume of a sphere. It extends from a minimum radius to a maximum radius from the center point.
It is further delimited by a start angle and an arc angle in the horizontal plane
and a pitch start angle and a pitch arc angle in the vertical plane.
It has two implementations; TLcdLonLatHeight3DArcBand and TLcdXYZ3DArcBand.
This shape can only be visualized in a Lightspeed view.
ImprovementLuciadLightspeed
Support was added for cartesian (XY) grid. They can be displayed in
- a GXY view using TLcdXYGridLayer. This is demonstrated in the gxy.grid sample.
- a Lightspeed view with the new TLspXYGridLayerBuilder. This is demonstrated in the lightspeed.grid
sample.
Cartesian grids are useful in combination with grid references, but can also be used for non-georeferenced
views.
ImprovementLucy (LuciadLightspeed)
LUCY-4371
The addons.xml file now allows to exclude an add-on which was included by using the <include> tag.
Check the class javadoc of the TLcyXMLAddOnLoader and the "Upgrading your Lucy development project" chapter in the
Lucy developer guide for more information.
ImprovementLucy (LuciadLightspeed)
ImprovementLuciadLightspeed
LCD-7137
ALcdModel now has support to debug missing or wrong locks. Please refer to its class comment for instructions on how
to enable it.
ImprovementLuciadLightspeed
LCD-7159
TLcdGXYPanController, TLcdGXYSelectController2 and TLcdGXYEditController2 now have a new method: setAWTFilter.
This allows specifying the mouse events they should respond to.
You can easily create such filters using the new TLcdAWTEventFilterBuilder class. Lightspeed users can also use that
class instead of TLspAWTEventFilterBuilder, which has been deprecated.
ImprovementLuciadLightspeed
The printing samples now show how to add a compass icon to the printout.
ImprovementLuciadLightspeed
LCD-7659
TLcdLonLatPointFormat has been made more flexible and can now parse more commonly used seconds symbols.
For example coordinates as they are found on the Wikipedia website can now be parsed by the TLcdLonLatPointFormat.
ImprovementLuciadLightspeed
ALspSwingLabelStyler now has the protected shouldInvalidateLabel method. This method can be used to improve
performance for dynamic models when model changes occur that are not relevant for the swing labels.
ImprovementLucy (LuciadLightspeed)
TLcyLspMapComponentFactory: the controllers created in the createController method now inherit their
navigation capabilities from the PAN(_TOUCH)_CONTROLLER. The main benefit is that the navigation
capabilities of all controllers are consistent.
ImprovementLuciadLightspeed
LCD-7044
TLspFixedOnPathLabelLocationProvider was added. This labeling algorithm tries to find a label location at a specific
location on a curve. Unlike TLspOnPathLabelingAlgorithm, it doesn't try to keep the label within the view bounds,
making it more efficient.
ImprovementLucy (LuciadLightspeed)
LCD-6366
The Lightspeed map component now includes the swipe and flicker controllers. These controllers can be used
to visually compare similar data layers. You can enable these controllers via the 'Controls' submenu, which you can
find under the 'Map' menu (see lucy/lspmap/TLcyLspMapAddOn_MapComponent.cfg).
ImprovementLucy (LuciadLightspeed)
LUCY-4348
The layer control will now show an error icon next to the layer name when an exception interrupts the painting of
that
layer. The icon is clickable, and will show an error dialog containing a description of the error and the stack
trace.
ImprovementLuciadLightspeed
LCD-7046
TLspFixedInPathLabelLocationProvider was added. This labeling algorithm tries to find a label location inside a shape.
Unlike TLspInPathLabelingAlgorithm, it doesn't try to keep the label within the view bounds, making it more
efficient.
ImprovementLuciadLightspeed
LCD-7040
TLspLabelPainter now supports html formatted label strings. When an ALspTextProviderStyle returns such a
String, TLspLabelPainter now automatically formats and paints this String using HTML.
ImprovementLuciadLightspeed
LCD-6385
It is now possible to use ALspSwingLabelStyler to paint swing labels in offscreen views (or other views that
don't extend from ALspAWTView). Note that ALspSwingLabelStyler still uses the AWT thread to paint these labels.
This means that if an offscreen view is painted on a background thread, it may still need to wait until the AWT
thread has finished painting the Swing labels before they become visible.
ImprovementLuciadLightspeed
LCD-4104
TLspLabelPainter now avoids taking a read-lock on the model if it's not strictly needed.
ImprovementLuciadLightspeed
LCD-5935
TLspLabelPainter now takes the TLspIconStyle#getModulationColor() into account.
ImprovementLucy (LuciadLightspeed)
LUCY-1951
Drawing add-on: The constructive geometry operations can now also be performed on TLcdLonLatBuffer,
TLcdLonLatHeightBuffer, TLcdXYGeoBuffer,
TLcdLonLatGeoBuffer and TLcdLonLatHeightVariableGeoBuffer.
ImprovementLuciadLightspeed
LCD-4814
TLcdGXYSelectControllerModel2 now also allows selecting objects while pressing the CTRL key. This also means
that it is now possible to immediately reshape objects (e.g. add/remove points) without having to select them
first. In order to revert this change, you can override the TLcdGXYSelectControllerModel2#selectHowMode
method, and return SELECT_HOW_NO_CHANGE if the CTRL key is pressed.
ImprovementLuciadLightspeed
LCD-7014
The samples now report rendering exceptions in the layer tree. Refer to LayerPaintExceptionDialogAction
for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-4267
Opening raster data will now show status information in the status bar, similar to what is shown for vector data.
ImprovementLucy (LuciadLightspeed)
LUCY-4325
Introduction of the
TLcyActionBarMediatorBuilder
class: this class is an alternative for the
existing
TLcyActionBarUtil#mediate
methods. This new class improves the readability of the existing
methods by using a builder pattern, and adds a few more options.
For example, you can now obtain debug information for an action bar which is only
mediated in one direction, or to show the debug information when your action bar is mediated with multiple
action bars.
To emphasize that the new
TLcyActionBarMediatorBuilder
class is the preferred way
to mediate between action bars, the mediate methods in the
TLcyActionBarUtil
class
have been deprecated.
ImprovementLucy (LuciadLightspeed)
TLcySearchAddOn
: This new add-on adds search support to Lucy.
It searches through the data loaded on your map, allows to search for coordinates and uses a webservice
(http://www.geonames.org)
to look up placenames.
The source code of this add-on is available as well. Consult the class javadoc of the TLcySearchAddOn to
find out how you can access and customize the source code.
ImprovementLuciadLightspeed
The sample class structure has been simplified. All Swing samples now extend SamplePanel.
ImprovementLuciadLightspeed
LCD-6831
The
TLcdGeoJsonModelDecoder
can now be configured with a data type that contains properties of type: LONG_TYPE,
FLOAT_TYPE, DOUBLE_TYPE.
ImprovementLucy (LuciadLightspeed)
LUCY-4326
The vector painting accuracy on GXY maps has been improved for the SHP, GML, CGM, SVG, and MIF formats.
ImprovementLucy (LuciadLightspeed)
Drawing add-on: the 3D polyline controller in the drawing bar has been replaced by a 2D polyline controller.
The 3D polyline is still available, but has been moved to the "Shapes" submenu.
ImprovementLucy (LuciadLightspeed)
The table view has been adjusted to be able to deal with
ALcdTransformingModel
instances (for example a clustered model).
For such a model, the table view will show the data of the original model.
This enhancement caused changes throughout the whole table view code base.
All those changes can be found by consulting the usages of the new methods of the
IExtendedTableModel
interface
(
getOriginalModel()
,
getTransformedModel()
,
originalToTransformed(Object)
and
transformedToOriginal(Object)
).
ImprovementAdvanced GIS Engine
LCD-4882
Constructive geometry operations now support TLcdLonLatBuffer, TLcdLonLatHeightBuffer, TLcdXYGeoBuffer,
TLcdLonLatGeoBuffer and TLcdLonLatHeightVariableGeoBuffer.
ImprovementAdvanced Raster Connectors
The GDAL Industry Specific Component adds support for decoding raster formats using the GDAL decoder and visualizing
them in a Lightspeed or in a GXY view.
This includes the formats:
- Arc/INFO Binary Grid (.adf)
- Azavea Raster Grid (.arg)
- BSB Nautical Chart Format (.kap)
- VTP Binary Terrain Format (.bt)
- New Labelled USGS DOQ (.doq)
- Arc/Info Export E00 GRID
- NOAA .gtx vertical datum shift
- HF2/HFZ heightfield raster (.hf2, .hfz)
- Erdas Imagine (.img)
- Erdas 7.x .LAN and .GIS
- SRTM HGT Format (.hgt, .DEM)
- GXF - Grid eXchange File (.gxf)
- SGI Image Format (.bw, .rgb, .rgba, .sgi)
- Snow Data Assimilation System (.hdr)
- GDAL Virtual (.vrt)
The formats for which Luciad offers its own decoder are excluded (locked) by default.
You can unlock those as well using the system property "com.luciad.format.gdal.unlockAllFormats".
This will unlock the formats:
- Arc/Info ASCII Grid
- ADRG/ARC Digitilized Raster Graphics (.gen/.thf)
- Microsoft Windows Device Independent Bitmap (.bmp)
- Spot DIMAP (metadata.dim)
- Military Elevation Data (.dt0, .dt1, .dt2)
- ECRG Table Of Contents (TOC.xml)
- ESRI .hdr Labelled
- ERMapper (.ers)
- TIFF / BigTIFF / GeoTIFF (.tif)
- JPEG JFIF (.jpg)
- KMLSUPEROVERLAY
- NITF (.ntf, .nsf, .gn?, .hr?, .ja?, .jg?, .jn?, .lf?, .on?, .tl?, .tp?, etc.)
- Raster Product Format/RPF (CADRG, CIB)
- Standard Raster Product (ASRP/USRP)
- USGS ASCII DEM / CDED (.dem)
For more details, see:
- The GDAL Developer's Guide
- TLcdGDALModelDecoder to decode ERDAS Imagine files.
ImprovementOGC Server
LCD-7594
The WMS server now properly supports GetFeatureInfo handling for raster data (ALcdImage, ILcdRaster,
ILcdMultilevelRaster). The location on the raster data and the corresponding values are automatically
determined. Implementations of ILcdWMSGetFeatureInfoRequestEncoder receive the result by means of
an ILcdDataObject containing the values.
ImprovementOGC Server
LCD-6799
A set of security improvements have been implemented:
- Removed the dependency on the legacy JGenerator 2.2 library,
- Improved the sanitization of response content to be more robust against CRLF injections and
cross-site scripting attempts.
ImprovementOGC Server
LCD-5929
The OGC WMS web service previously available in build/wms (containing the build script) and distrib/ogc/LuciadLightspeedWMS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
ImprovementOGC Server
LCD-5929
The OGC WFS web service previously available in build/wfs (containing the build script) and distrib/ogc/LuciadLightspeedWFS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
ImprovementTerrain Analysis Engine
LCD-6229
Added sample code for various TEA components using a Lightspeed view. The following samples now have a Lightspeed equivalent:
- Contours
- Distance Over Terrain
- Extreme Points
- Visibility
ImprovementWeather & Environment Standards
It is now possible to decode one or more specific NetCDF variables out of a source file using a file:// URI with
query parameters.
This can be used to reduce load time when you only need a specific subset of variables out of a NetCDF source file
that has many variables.
For example, given the source file:///dir/netcdf.nc?variable=U&variable=V, the decoder
decodes only the U and V components of wind, regardless of any other variables which may be present in the source
file.
ImprovementRadar Connectors
LCD-7613
TLcdASTERIXLiveDecoder has been improved to be more robust against out of order ASTERIX category 240 records.
The first records received are now buffered and sorted to make sure the radar visualization is initialized with the
correct parameters.
ImprovementRadar Connectors
LCD-7067
The decode.asterix.lightspeed.trackdisplay
sample was added. This sample demonstrates how a track display,
based on ASTERIX track data, can be displayed.
ImprovementRadar Connectors
ImprovementTiling Engine
LuciadFusion is extended with support for the ECRG raster format.
ImprovementTiling Engine
LF-427
LuciadFusion now automatically detects the levels to produce from source data in all cases.
This replaces the user-specified setting "levels to produce" or "produce all levels" on the coverage metadata, which
is ignored in all cases.
This benefits multileveled source data in particular, which now automatically detects the multiple levels in the
source data and produces the tiles at the corresponding levels of the coverage's tile pyramid accordingly.
This affects formats such as ECRG, CADRG, USRP and NITF.
ImprovementTiling Engine
LF-874
Now each asset of a coverage can have its own input SLD file instead of one SLD file per coverage as before.
ImprovementTiling Engine
LuciadFusion is extended with a new asset and coverage type RASTER, which allows preservation of all the source
data's multi-dimensional and multi-band information.
This can be used to fuse NetCDF data whilst preserving the multi-dimensional nature of the source data.
This allows clients to treat fused NetCDF data as if it were regular NetCDF data, using the imaging API.
Such fusion models
only support the imaging API, they no longer support the raster (tile set) API.
The new RASTER data type thus replaces the legacy data types IMAGE, ELEVATION and MULTIVALUED.
The tile format for RASTER coverages is "image/tiff".
Every possible combination of possible values for every dimension will be stored as a separate page of a
multi-page TIFF file.
The RASTER data type can also be used to preserve the multi-band nature of source data.
'Preservation of multi-dimensional and multi-band nature' does not imply 'preservation of source
resolution without any resampling'.
Even when preserving multi-dimensional and multi-band nature, fusion may yet resample the source data using
bilinear interpolation and warping to fit the source raster into the raster defined by the coverage's bounds,
layout and tile resolution.
Fusing coverages as RASTER is thus a lot more powerful than fusing coverages as IMAGE, ELEVATION or MULTIVALUED.
There could however be reasons to not use RASTER:
-
When you want to offer the coverage as WMTS, you need to use IMAGE.
RASTER coverages do not support WMTS.
-
Preserving the multi-dimensional samples is overhead if you don't need them.
When you're only interested in a single 'default' combination of dimensional values, and you want to save
bandwidth, you're probably better off using IMAGE.
-
RASTER coverages don't have a compact format for elevation.
If you want to use the compact format for elevation to preserve bandwidth, you should use ELEVATION.
-
When you're fusing GRIB data, you'll still have to use MULTIVALUED.
GRIB source data cannot be fused as raster, because the source format does not support the imaging API.
There is no other good reason to still use MULTIVALUED.
The model structure for a decoded raster coverage is this:
- The model has a TLfnRasterTileStoreModelDescriptor, which is also an
ILcdImageModelDescriptor.
- If the model has multi-dimensional information, it is also an
ILcdMultiDimensionalModel.
- Even if it doesn't have any multi-dimensional information, the model is still
ILcdMultiDimensionalModel, but it has null for filter parameters.
- The model adheres to the imaging API.
You can get the current image usingALcdImage.fromDomainObject(modelElement).
- The ALcdImage instances themselves are immutable, so when you update the dimensional
filter, the reference will be updated with a new instance.
ImprovementTiling Engine
LuciadFusion is extended with support for all raster formats that can be decoded using the GDAL decoder.
ImprovementTiling Engine
LuciadFusion is extended with support for multi-dimensional NetCDF data, which can be fused to a raster or image
coverage.
The format ID is defined by
ALfnFormat.NETCDF_FORMAT_ID.
Fusing NetCDF data to a raster coverage preserves the multi-dimensional and multi-band nature of the source data.
The dimensional information of the source data can be accessed using
RasterAssetPart.getDimensions() and
RasterAssetPart.Builder.dimensions().
You can restrict the dimensional information to a subset of the source data's using
TLfnRasterCoverageMetadata.getDimensions() and
TLfnRasterCoverageMetadata.Builder.dimensions().
Fusing NetCDF data to an image coverage renders RGB images from the multi-dimensional source data, and requires a
dimensional filter of the same sort that you would use when visualizing the multi-dimensional data.
You can define a dimensional filter, consisting of a specific combination of a single dimensional value for each
dimension, using
TLfnRasterCoverageMetadata.getDimensions() and
TLfnRasterCoverageMetadata.Builder.dimensions().
Bug fixLuciadLightspeed
LCD-7647
The WCS client can now handle coverages of which the reference is expressing using OGC WKT in the WCS DescribeCoverage
response.
Bug fixLuciadLightspeed
LCD-7111
Models decoded via the TLcdSHPModelDecoder did not have a default ILcdModelEncoder.
Bug fixLucy (LuciadLightspeed)
LUCY-4437
The dialog shown by "File | Connect to" could end up on the wrong screen in a multi screen environment in
combination with triggering it from a window other than the main window. This for example happens when the action
is configured on a map tool bar and that map is detached in a floating window.
Bug fixLucy (LuciadLightspeed)
LUCY-4435
TLcyPreviewAddOn: clicking on the time slider of the previewer whilst it was running could cause the time to jump
repeatedly back and forth between two time values. This behavior only occurred on Windows, for certain look and
feels.
Bug fixLuciadLightspeed
LCD-7601, LCD-3493
ILcdBounds with a width equal to 360 degrees were visualized incorrectly, bot in a 2D and 3D view. In a 3D view
ILcdBounds with an edge on one of the poles would be visualized as it's inverse if it crossed the date line.
Bug fixLuciadLightspeed
LCD-7635
TLspRasterLayer: fixed issue when toggling layer visibility while the data is not painted.
Bug fixLucy (LuciadLightspeed)
LUCY-4433
Table view: the Lightspeed table view would not show the visibility checkboxes the first time
the table view was opened for a layer on which a TLcyCompositeFilter was set. This was not a problem
for the table view of a GXY or GL layer.
The Lightspeed code has been made consistent with GXY and GL. In case you use a local copy of the table view sample
code,
the affected sample classes are theGXYTableViewLogic
,
GLTableViewLogic
,
LspTableViewLogic
and
TableViewFilterUtil
classes.
Bug fixLuciadLightspeed
LCD-7625
TLcdGXYImagePainter did not support painting >8-bit RGB data with warping.
Bug fixLuciadLightspeed
LCD-7630
Fixed an issue in the WFS model class (TLcdWFSProxyModel) that prevented it from finding a default geometry
property name in case of a DescribeFeatureType response XML Schema with complex types that do not all
have explicit content (e.g., that contain a link instead).
Bug fixLucy (LuciadLightspeed)
LCD-7616
Fixed an issue with the visiblity module of the Terrain Analysis addon. Visibility to and from
polylines is now more accurate.
Bug fixLuciadLightspeed
LCD-7470
When using TLspComplexStrokedLineStyle for a closed shape, the start and end of the strokes line could have
artifacts.
Bug fixLucy (LuciadLightspeed)
LUCY-4410
TLcyLspSetControllerActiveSettable: an icon set on the active settable using the setIcon method
was not used when adding the active settable to an action bar.
Bug fixLucy (LuciadLightspeed)
LUCY-4402
TLcyDefaultDecodersAddOn
the GML decoder does not show a "Select XSD Schema" input dialog anymore
if it can not decode an xml input.
Bug fixLucy (LuciadLightspeed)
LUCY-4403
TLcyLspMS2525bAddOn
/
TLcyLspAPP6AAddOn
: overwriting the properties of
the format bar
in the configuration file had no effect. The format bar would always use the properties
of the GXY format bar instead of the ones specified in the configuration file.
Bug fixLuciadLightspeed
LCD-7375
TLcdLayerTree did not respect the font size, as defined by the look and feel, when using Lightspeed views. As a
result, large fonts in the layer tree could appear cut off.
Bug fixLuciadLightspeed
LCD-7333
TLcdSimpleLogger did not log its warnings to the standard error stream.
Bug fixLuciadLightspeed
LCD-7296
TLspViewXYZWorldTransformation3D's height and width getters were not in sync with the respective property changes.
Bug fixLucy (LuciadLightspeed)
LUCY-4381
TLcyAlwaysFitJToolBar
now automatically updates itself if an invisible button is added and made visible
afterwards.
Bug fixLuciadLightspeed
LCD-7140
Fixed a threading violation in the internal code of TLspCreateController and TLspEditController.
Bug fixLucy (LuciadLightspeed)
LUCY-4175
TLcyFileWorkspaceCodec#encodePath
could not convert file URI's to relative paths. As a result,
drag-and-dropping a file under Linux would result in a workspace with absolute paths instead of relative paths.
Bug fixLucy (LuciadLightspeed)
LUCY-4179
TLcyPIMTrackAddOn
: changing the segment type from GreatCircle to Rhumbline (or vice versa)
through the Object
Properties UI
no longer throws a ClassCastException when performed on a Lightspeed view.
Bug fixLucy (LuciadLightspeed)
LUCY-4338
Using the ctrl-zoom controller on a Lightspeed map to jump from one scale level to another sometimes
needed two scrolls instead of one.
Bug fixLuciadLightspeed
LCD-6560
TLcdGXYBoundsPainter: the isTouched and getCursor implementations are now symmetric with the discretization.
Bug fixLuciadLightspeed
LCD-6175
Small performance improvements for the TLcdStereoGraphic, TLcdGeneralPerspective and TLcdVerticalPerspective
projections.
Bug fixLuciadLightspeed
LCD-2245, LCD-3526, LCD-3966
Several fixes were performed for ILcdProjection implementations. These fixes mostly make the projections
more consistent when transforming from/to lon lat. Several edge cases have been fixed.
Bug fixLuciadLightspeed
LCD-6939
Fixed an issue preventing the correct decoding of XML files containing a union of unions.
Bug fixOGC Server
Closing the OutputStream object in a custom implementation of ILcdWMSFeatureInfoRequestEncoder or
ILcdGXYViewEncoder resulted in a duplication of the result. This bug has been fixed.
Bug fixDefense Symbology
LCD-7040
NVG text object using html are now correctly painted in offscreen view.
Bug fixInfrastructure Standards
LCD-7503
TLcdDGNMicroStationModelDecoder is now deprecated.
You can use TLcdDGNModelDecoder instead, which also supports DGN V8 files.
Bug fixRadar Connectors
LCD-7604
Fixed memory leak in radar layer. The memory leak occurred when the visualization of the radar was reset.
Bug fixTiling Engine
LF-912
A bug was fixed which could cause replication of updated coverages between two file system Tile Stores to fail with
"The resource with id ... has been modified between ...".
Upgrade considerationLucy (LuciadLightspeed)
LCD-7444
ArcSDE has been discontinued by Esri as of ArcGIS 10.3.
We refer to the release notes of the ArcSDE component for more information.
As a result, theTLcyArcSDEDecoderAddOn
,
TLcyLspArcSDERasterFormatAddOn
and
TLcyLspArcSDEVectorFormatAddOn
have been deprecated and removed by default from the
addons.xml files.
The addons are still available in the release though. If you need them in your application, you can plug them back
in
by adding the following lines to your addons.xml file:
<addon>
<priority>data_producer</priority>
<name>ArcSDE Format</name>
<class>com.luciad.lucy.addons.arcsde.TLcyArcSDEDecoderAddOn</class>
<configFile>lucy/arcsde/TLcyArcSDEDecoderAddOn.cfg</configFile>
<luciadMapOptions>ArcSDE</luciadMapOptions>
</addon>
<addon>
<priority>data_producer</priority>
<name>Lightspeed ArcSDE Raster format</name>
<class>com.luciad.lucy.addons.arcsde.lightspeed.raster.TLcyLspArcSDERasterFormatAddOn</class>
<configFile>lucy/arcsde/lightspeed/raster/TLcyLspArcSDERasterFormatAddOn.cfg</configFile>
<luciadMapOptions>Lightspeed, ArcSDE</luciadMapOptions></addon>
<addon>
<priority>data_producer</priority>
<name>Lightspeed ArcSDE Vector format</name>
<class>com.luciad.lucy.addons.arcsde.lightspeed.vector.TLcyLspArcSDEVectorFormatAddOn</class>
<configFile>lucy/arcsde/lightspeed/vector/TLcyLspArcSDEVectorFormatAddOn.cfg</configFile>
<luciadMapOptions>Lightspeed, ArcSDE</luciadMapOptions>
</addon>
Note that if you try to restore an old workspace which was created with a Lucy where those add-ons were plugged
in,
you will get warnings about missing codecs (even if the workspace does not contain any ArcSDE data).
If you do not use ArcSDE data, you can correct the workspace by simply re-saving it.
If you do use ArcSDE data, you will have to re-add those addons as described above.
Upgrade considerationLuciadLightspeed
The following methods/classes in ALcdProjection were removed:
- ALcdProjection.bisectInterval class
- findBisectLonIntervals()
- findBisectLatIntervals()
- bisectLonInterval()
- bisectLatInterval()
These were not meant to be used or extended.
Upgrade considerationLuciadLightspeed
To enable the integration of the Luciad imaging API and its TLcdGXYImagePainter for SLD raster styling in
GXY views, the dependency on ILcdRasterPainter has been removed from the API. More specifically:
- ILcdSLDRasterPainterConfigurator and its implementation TLcdRasterPainterConfigurator
have been removed.
- The factory method TLcdSLDSymbolizerPainterFactory#createRasterPainterConfigurator
has been removed.
- The javadoc of the factory method TLcdSLDSymbolizerPainterFactory#createRasterPainterProvider
no longer requires an ILcdRasterPainter as return type. Any painter provider capable of rendering
rasters is sufficient.
This only impacts users that manually interacted with ILcd/TLcdRasterPainterConfigurator. If this is the case,
raster painter customization should be moved to TLcdSLDSymbolizerPainterFactory#createRasterPainterProvider.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPreviewerAddOn can now automatically filter any model which implements the
ILcdMultiDimensionalModel
interface. Therefore
TLcyNetCDFRealtimeAddOn
and
TLcyNVGRealtimeAddOn
are not needed anymore
and removed.
Previously saved workspaces which includes time based NetCDF or NVG data will not be affected
by this change and can be safely loaded to Lucy. If you are using an add on configuration which still includes
TLcyNetCDFRealtimeAddOn
and/or
TLcyNVGRealtimeAddOn
, you will see severe log messages on the console
which states that those add ons could not be found. In such case please remove those two add on entries
from your add on configuration.
Upgrade considerationLuciadLightspeed
TLfnTileStoreModelDescriptor no longer implements
ILcdEarthModelDescriptor.
TLfnRasterTileStoreModelDescriptor no longer implements
ILcdImageModelDescriptor, rather the concrete internal implementation classes do, but only when
applicable:
- ILcdImageModelDescriptor if the model follows the imaging API.
This is the case when the coverage type is RASTER.
- ILcdEarthModelDescriptor if the model follows the tile set API.
This is the case when the coverage type is MULTIVALUED and in some cases also when it is
ELEVATION.
-
Both if the model is a hybrid following both these APIs.
This is the case when the coverage type is IMAGE and in in most cases also when it is
ELEVATION.
This means that
TLfnRasterTileStoreModelDescriptor cannot be assigned to any of the
aforementioned interfaces without a cast.
Model descriptors of specific models will still implement these interfaces, so you can fix any compile errors by
doing a type check on the model descriptor before casting.
Upgrade considerationLuciadLightspeed
LCD-7352
The names of some classes and methods of the multi-dimensional API have changed.
You may need to fix compile errors accordingly.
- ILcdDimension replaces ILcdDimensionAxisValues.
- TLcdDimension replaces TLcdDimensionAxisValues.
- ILcdMultiDimensional.getDimensions() replaces ILcdMultiDimensional.getDimensionAxisValues().
- ILcdDimension.getValues()
now returns a bounded and sorted
List
containing
no duplicates instead of an impractical unboundedIterable.
Upgrade considerationLuciadLightspeed
LCD-7055
The signature of the ALspLabelLocationProvider methods was modified to take an ILspLabelingAlgorithm.LabelContext
and an ILspView as method parameter instead of a TLspContext. This makes it possible for implementations of
ALspLabelLocationProvider to retrieve context information such as the elevation mode, or the previous
label location.
Implementations of ALspLabelLocationProvider will now generate a compile error that can be resolved by
modifying the signature accordingly. If TLspContext was used, it can now be retrieved using the following
line of code:
TLspContext aContext = aLabelContext.getContext(aLabel.getLayer(), aView);
Upgrade considerationDatabase Connectors
LCD-6798
The Oracle Spatial-Relational decoder has been removed (com.luciad.format.oracle.spatialRelational.TLcdOracleModelDecoder).
It corresponds to the Oracle Relational Model, which has long been deprecated and is no longer supported by Oracle.
Oracle has removed support for Spatial Relational as of 9i, released in 2001. 8i support ended in 2006.
New applications should use the com.luciad.format.oracle.spatial package, which offers
support for the new Oracle Object-Relational Model.
Upgrade considerationOGC Server
To enable WCS request parameter access when customizing request-related operations (data decoding,
data encoding), a few API changes have been introduced:
- A new class TLcdWCSRequestContext has been introduced to access request context parameters such
as the original HTTP request and the requested coverage(s).
- The signature of the method ILcdWCSModelEncoderFactory#createModelEncoder(ILcdModel,
ILcdOutputStreamFactory, String) has been changed into ILcdWCSModelEncoderFactory#createModelEncoder(ILcdModel,
ILcdOutputStreamFactory, String, TLcdWCSRequestContext).
- The signature of the methods in ILcdCoverageOfferingList have been changed by
means of the introduction of an extra argument of type TLcdWCSRequestContext.
- The methods ILcdCoverageOfferingList#getCoverageOffering(int, TLcdWCSRequestContext) and
ILcdCoverageOfferingList#getCoverageOffering(String, TLcdWCSRequestContext) can now throw
an IOException.
The change will impact WCS implementations that implement ILcdWCSModelEncoderFactory and/or
ILcdCoverageOfferingList. Affected implementations can simply update the signature ignore the new
TLcdWCSRequestContext parameter.
Upgrade considerationOGC Server
LCD-7413
The Java Servlet dependency has been upgraded from version 2.5 to 3.0. Consequently,
an application server or servlet container with support for Java Servlet 3.0 or
higher is now required for deployment of the server - for instance, Tomcat 7 or higher.
The impact of this is expected to be low since Java Servlet 3.0 is widely adopted
by application server and servlet container products for over 6 years.
The servlet container delivered with the Luciad products, Jetty 8, already supports Servlet 3.0
Upgrade considerationOGC Server
Default Adobe Flash output support in the WMS server has been removed. The API class that supported this,
TLcdGXYViewSWFEncoder, and the corresponding dependency on JGenerator 2.2 (jgen-2.2.jar and log4j-1.2.15.jar)
have therefore been removed from the product.
If you did not explicitly use Adobe Flash output, this will cause no impact other than a potential build script
update (because of the removed libraries). If you did use Adobe Flash output and prefer to keep its support in
the Luciad WMS, you can request the source code of TLcdGXYViewSWFEncoder, the JGenerator 2.2 library and
integration instructions by sending a mail to support@luciad.com.
Upgrade considerationDefense Symbology
LCD-7335
Two new methods have been added to ILcdAPP6AStyle and ILcdMS2525bStyle classes which let you set and get border
width of the icon symbols.
- void setSymbolBorderWidth(int aWidth): Sets the border width of the icon symbols.
- int getSymbolBorderWidth(): Gets the border width of the icon symbols.
Upgrade considerationDefense Symbology
LCD-7376
Several arrow symbols in the military symbologies were painted in the wrong direction. The direction of those icons
is now corrected by default.
Disabling the fix
If you want to disable this fix and keep the old behavior, you can set the
com.luciad.symbology.arrowsymbols.PAINT_LEGACY
jvm property to
true.
Affected symbols
APP6a / APP6b
Name |
Code(SIDC) |
Hierarchy Code |
Counterattack (CATK) |
G*T*GK----***** |
2.X.1.1.7 |
Counterattack by Fire |
GFC*MOLAF-***** |
2.X.1.1.7.1 |
Axis of Advance - Friendly Aviation |
GFC*MOLAF-***** |
2.X.2.1.5.2.1.1 |
Axis of Advance - Friendly Airborne |
GFC*MOLAA-***** |
2.X.2.1.5.2.1.2 |
Axis of Advance - Friendly Attack Helicopter |
GFC*MOLAH-***** |
2.X.2.1.5.2.1.3 |
Axis of Advance - Friendly Ground Axis Of Supporting Attack |
GFC*MOLAS-***** |
2.X.2.1.5.2.1.4 |
Axis of Advance - Friendly Ground Axis Of Main Attack |
GFC*MOLAM-***** |
2.X.2.1.5.2.1.5 |
Axis of Advance - Enemy Confirmed |
GHC*MOLAE-***** |
2.X.2.1.5.2.1.7 |
Axis of Advance - Enemy Templated |
GHC*MOLAT-***** |
2.X.2.1.5.2.1.8 |
Direction Of Attack - Friendly Direction Of Supporting Attack |
GFC*MOLDS-***** |
2.X.2.1.5.2.2.7 |
Direction Of Attack - Friendly Direction Of Main Attack |
GFC*MOLDM-***** |
2.X.2.1.5.2.2.8 |
APP6c
Name |
Code(SIDC) |
Counterattack (CATK) |
10002500003214000000 |
Counterattack by Fire |
10002500003215000000 |
Airborne/Aviation Axis of Advance Aviation |
10002500001513000000 |
Main Attack/Decisive |
10002500001514000000 |
Supporting Attack/Shaping |
10002500001515000000 |
Supporting Attack/Shaping - Feint |
10002500001515010000 |
Advance to Contact |
10002500003201000000 |
Mission Tasks/Verbs - Attack |
10002500003204000000 |
MS2525b / MS2525c
Name |
Code(SIDC) |
Hierarchy Code |
Counterattack (CATK) |
G*T*K-----****X |
2.X.1.7 |
Counterattack by Fire |
G*T*KF----****X |
2.X.1.7.1 |
Axis of Advance - Aviation |
G*G*OLAV------X |
2.X.2.5.2.1.1 |
Axis of Advance - Airborne |
G*G*OLAA------X |
2.X.2.5.2.1.2 |
Axis of Advance - Attack, Rotary Wing |
G*G*OLAR------X |
2.X.2.5.2.1.3 |
Axis of Advance - Main Attack |
G*G*OLAGM-----X |
2.X.2.5.2.1.4.1 |
Axis of Advance - Supporting Attack |
G*G*OLAGS-----X |
2.X.2.5.2.1.4.2 |
Axis of Advance For Feint |
G*G*PA--------X |
2.X.2.3.2 |
Upgrade considerationTiling Engine
LCD-7444
ArcSDE has been discontinued by Esri as of ArcGIS 10.3.
See these links for more information:
- http://downloads2.esri.com/support/TechArticles/W34229_DEPRECATION_PLAN_FOR_ARCGIS_10_4_and_10_3_1__082015.pdf
- http://blogs.esri.com/esri/supportcenter/2015/02/11/where-is-the-install-for-arcsde-10-3/
Therefore the ARC_SDE_VECTOR_FORMAT_ID
and ARC_SDE_RASTER_FORMAT_ID
constants
in ALfnFormat
have been deprecated.
As an alternative to the ArcSDE connector, LuciadLightspeed offers direct connectors for the spatial database
back-ends supported by ArcSDE/ArcGIS: SQL Server, Oracle Spatial, DB2, Informix, PostGIS or SAP Hana.
You can also use any of the OGC services (WMS, WFS, WCS).
Contact Luciad Support for more information on how to obtain and use these connectors.
2015.1
2015.1.29
ImprovementLuciadLightspeed
LCD-7606
Reduced editor warning "Editor did not produce any handles for geometries to be edited." to a debug logger statement.
This message does not necessarily indicate a problem. It could simply mean that the shape should not be edited.
Bug fixDefense Symbology
LCD-7615
The anchor dot point of a symbol icon with an altitude value other than 0, is now draped if there is no terrain.
2015.1.28
ImprovementLuciadLightspeed
LCD-7546
TLsp3DIconStyle: it is now possible to configure a modulation color.
ImprovementLuciadLightspeed
LCD-7590
It is now possible to disable the effect where labels would fade when nearing the horizon in 3D views,
see TLspLabelPainter#setDistanceBasedFading(boolean).
ImprovementLuciadLightspeed
LCD-7587
The WCS model factory TLcdWCSProxyModelFactory has been extended with two new methods that enable users to submit
a custom set of ALcdWCSCoverageDecoder instances. This can be used to support custom coverage decoding;
for instance, to support exchange formats other than GeoTIFF (default).
ImprovementLuciadLightspeed
LCD-7612
The WMTS client has been made more flexible against WMTS XML capabilities that are not fully compliant
against the OGC OWS Common 1.1 XML Schema used by WMTS. More specifically, a correct order of XML elements
is now no longer required.
ImprovementRadar Connectors
LCD-7568
The radar visualization will now be reset when the data source identifier of the received ASTERIX category 240
record is different compared to the previously received record.
Bug fixLucy (LuciadLightspeed)
LUCY-4427, LUCY-4428
The enhancement to the (GXY and LSP) print add-on (LUCY-4423) caused ClassCastExceptions
when defining a print area of changing the options in the print preview dialog.
These exceptions have been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4426
The fix for LUCY-4069 introduced a regression in the table view for dynamic models.
When the table view was open and the underlying ILcdModel changed, selection synchronization
between the table view and the layer would no longer work. The same problem is present for
the auto-center and auto-fit options.
This regression is now fixed. In case you use a local copy of the table view sample code,
the affected sample classes are theEditableTable
,
TableViewCustomizerPanel
andTFitCenterSelectionActiveSettableSupport
.
Bug fixLuciadLightspeed
TLspLayer#query: Using TLspPaintedObjectsQuery with viewBounds null could return more objects than actually painted.
Bug fixLuciadLightspeed
LCD-7240
The image height and measurement providers now support interpolation across tile boundaries.
Bug fixLucy (LuciadLightspeed)
The tote add-ons are now plugged in with priority
data_producer
to ensure that it is available before the TLcyModelCustomizerAddOn is plugged in. This ensures that
the enabled state of the action to show the table view is correct on start-up.
Bug fixOGC Server
Invoking the method TLcdWMSRequestContext#getRequest() could result in a NullPointerException.
Bug fixDefense Standards
LCD-7608
Fixed an issue which caused certain BCI models to be rendered with the wrong pixel density.
2015.1.27
ImprovementLuciadLightspeed
LCD-7580
TLcdWFSProxyModel now optimizes the use of a bounds filter (see TLcdWFSProxyModel#setFilter), by intersecting
the configured bounds with the bounds requested by the layer (e.g., when the data is being visualized).
In the past, both bounds conditions were submitted to the server, which could lead to a suboptimal server
handling performance.
ImprovementLuciadLightspeed
LCD-7575
The WCS client has been made more scalable to access high-resolution coverages. To support this use case,
TLcdWCSProxy has been optimized in terms of memory consumption and performance; this is especially noticeable
when a large number of levels of detail and tiles are used (see TLcdWCSProxy#setRasterCount,
TLcdWCSProxy#setTileColumnCount and TLcdWCSProxy#setTileRowCount).
ImprovementLucy (LuciadLightspeed)
LUCY-4423
TLcyPrintAddOn
andTLcyLspPrintAddOn
: it is now possible to add
extra properties to the configuration file, and these properties will be passed to the print preview factory
and printable component factory.
A typical use-case where you would want to introduce extra properties is if you want to extend the UI of the
print preview panel.
Previously, you could already add extra properties throught the API, but this was not straightforward.
To facilitate this, the
TLcyPrintAddOn#createDefaultProperties
and
TLcyLspPrintAddOn#createDefaultProperties
methods have been introduced.
Consult the javadoc of those methods for more information.
Bug fixLuciadLightspeed
LCD-7578
The WCS model TLcdWCSProxyModel could cause a deadlock in case of an unresponsive server.
Bug fixLuciadLightspeed
LCD-7576
ILcdText containing an empty line would cause an exception during discretization.
Bug fixLuciadLightspeed
LCD-7523
TLcdColorMapCustomizer: resolved some usability issues with the "set levels" action.
Bug fixLucy (LuciadLightspeed)
The TLcyLspLayerCustomizerAddOn is now plugged in with priority
data_producer
to ensure that it is available before the TLcyLspMapAddOn is plugged in. This ensures that
the enabled state of the action to show the layer properties is correct on start-up.
Bug fixLuciadLightspeed
LCD-7574
The WCS client used an incorrect resolution for the coverages to be retrieved in case it was configured
to use multiple levels of detail (see TLcdWCSProxy#setRasterCount). This could cause invisible coverages
at lower levels of detail and reduced overall performance.
Bug fixAdvanced GIS Engine
LCD-7319
TLcdCartesianAdvancedBinaryTopology could return incorrect results if one of the input shapes had bounds with a
point on the dateline.
Bug fixDefense Symbology
LCD-7577
Fixed a race condition bug when creating APP-6C symbols. Now you can create APP6c symbols concurrently.
Bug fixRadar Connectors
LCD-7565
TLcdASTERIXLiveDecoder is now more robust against missing ASTERIX category 240 records. If records were missing
at the start of the stream, this could result in incorrect visualization of the radar feed.
2015.1.26
ImprovementLuciadLightspeed
LCD-7445
The lightspeed.imaging.multispectral sample now has the option to normalize the bands of an image. You can enable or
disable this operation in the band select panel.
ImprovementLucy (LuciadLightspeed)
LUCY-4421
TLcyMapEditUnitAddOn
: it is now possible to show all the angle values in Lucy
using the angular mil representation (see TLcdAngleUnit#MIL).
Those new options are available in the UI under Edit | Angle Format | Mil .
If you do not want those new options, you can remove them by adding the following lines
to map_units.cfg:
TLcyMapEditUnitAddOn.azimuth_formats.MIL.menuBar.insert=false
TLcyMapEditUnitAddOn.azimuth_formats.MILx.menuBar.insert=false
TLcyMapEditUnitAddOn.azimuth_formats.MILxx.menuBar.insert=false
TLcyMapEditUnitAddOn.azimuth_formats.MILxxx.menuBar.insert=false
ImprovementLuciadLightspeed
LCD-7497
TLsp3DIconStyle: It is now possible to configure the opacity of a 3D icon via the style.
ImprovementLuciadLightspeed
LCD-6659
TLcdGeoTIFFModelDecoder now supports the GDAL_NODATA tag. The value is exposed on the ALcdImage's semantics and
automatically used to map particular values to transparent when visualizing the data.
ImprovementOGC Server
LCD-7557
The content type of a WCS GetCoverage response containing GeoTIFF data is now
always set to the mime type 'image/tiff'; this is the most common mime type to
represent TIFF-based data.
ImprovementOGC Server
LCD-7505
It is now possible to change the base URL of the listed requests in the GetCapabilities response,
which can be useful to support a setup with a reverse proxy. To support this, the interface
ILcdWMSOnlineResourceResolver has been extended with a new type
'CAPABILITIES_REQUEST_BASE_URL', which will be used to retrieve the base URL.
Bug fixLuciadLightspeed
LCD-7535
TLcdSHPModelEncoder would in some cases produce an invalid SHP file when the exported model contained ILcdShapeList
elements with different shape types. Note that in such case only the first element of each ILcdShapeList is exported.
Bug fixLucy (LuciadLightspeed)
LUCY-4069
Table view: the previous fix for issue LUCY-4069 stored and restored the table selection when the underlying
model was changed to avoid loosing selection on the map.
However, storing and restoring the selection in the table also cleared and restored the selection on the map.
This could result in unwanted side-effects (for example a balloon that is shown would get hidden on de-selection,
and not return on re-selection.
To avoid this, the EditableTable class will now indicate when it is busy clearing and restoring the selection.
The code responsible for synchronizing the selection between table and layer can check for this, and ignore
any selection events when the table is clearing the selection.
The affected classes in this change are
EditableTable
class and
TFitCenterSelectionActiveSettableSupport
.
Bug fixLuciadLightspeed
LCD-7511
The license mechanism now reads the expiration date of the license file correctly, even in environments
with calendars that are not Gregorian.
Bug fixLuciadLightspeed
TLcdLonLatPointFormat: strings containing unknown characters before or after the separator between the longitude
and latitude part will now fail to parse.
Bug fixLuciadLightspeed
TLcdSpeedFormat, TLcdAltitudeFormat and TLcdDistanceFormat now behave the same as the NumberFormat of the JDK when
calling parseObject with a string containing only whitespace as input.
Bug fixLuciadLightspeed
LCD-7567
Fixed a bug in TLcdImageHeightProvider when interpolating {{ALcdImage}} values and at least one of the 4
contributing values is a no-data value.
Bug fixLuciadLightspeed
LCD-7566
Fixed regression that caused objects that aren't directly ILcdShape to not be editable. These types
of objects are editable again.
Bug fixLuciadLightspeed
LCD-7564
TLspOnPathLabelingAlgorithm calculated incorrect label positions in 3D when using an altitude exaggeration greater
than 1, zooming in and tilting the view.
Bug fixLuciadLightspeed
LCD-7561
TLspRasterLayer: fixed exception when using a styler to hide a domain object that was previously shown.
Bug fixLuciadLightspeed
LCD-7507
LuciadLightspeed Demo - Weather theme: Additional info is logged when it fails to load.
Bug fixLuciadLightspeed
LCD-7555
LuciadLightspeed Demo - Military Symbology theme: Fixed an issue where the balloon tooltip would move erratically
while editing certain shapes.
Bug fixLuciadLightspeed
LCD-7552
Editing 3D shapes did not work correctly after changing the view's reference.
Bug fixLuciadLightspeed
LCD-7551
TLcdVVTerrainModel: fixed a regression caused by LCD-7500 that would make the model throw an exception when using buffers.
Bug fixLuciadLightspeed
LCD-7542
The label styler could be called unnecessarily when doing a layer query using TLspPaintedObjectsTouchQuery.
Bug fixLuciadLightspeed
LCD-7537
TLcdCurvesOp mapped no-data values to the first point of the curve instead of keeping a no-data value.
Bug fixOGC Server
LCD-7562
Some bugs were fixed which affected WCS offerings of 16-bit SHORT or USHORT data.
Bug fixAviation Standards
LCD-7539
Fixed NullPointerException when painting airspaces containing upperLimit and lowerLimit properties with
null values.
Bug fixDefense Symbology
LCD-7522
The symbols below are now painted with dashed line when they have a "Planned Status" for all symbology standards.
- Bridge or Gap
- Gap
- Assault crossing area
- Attack by Fire Position
- Support by Fire Position
- Battle Position
Bug fixDefense Symbology
LCD-7572
Symbols with large offset values had large bounds which was making mouse selection of close symbols harder.
Bug fixDefense Symbology
LCD-7556
Fixed flipping bug of horizontal line segments of line tactical graphs in a GXY View. When you display a line graph
with at least one line segment which is almost horizontal (start and end points of the line segment are exactly
or almost on the same latitude), the line segment was flipping on the y-axis on certain zoom levels. Thus it was
ending up with a wrong tactical graph.
Bug fixDefense Symbology
LCD-7554
Fixed wrong label offsets for line symbols like Antitank Ditch/Complete in Ms2525b/c.
Bug fixDefense Symbology
LCD-7547
"Destroyed" and "Damaged" status indicators are now displayed for MS2525c symbols.
2015.1.25
ImprovementLuciadLightspeed
LCD-2622
TLspCreateController and TLspEditController now abort creation/editing is ALspEditor.canEdit() returns false.
ImprovementLuciadLightspeed
LCD-7451
TLsp3DPointListEditor now supports creation of 3D pointlists that already contain some initial points in them.
ImprovementLuciadLightspeed
LCD-2267
It is now possible to directly set TLspCustomizableStyle instances on TLspLonLatGridStyler. This for example
makes it possible to customize the display names of the styles.
ImprovementOGC Server
LCD-7431
Fixed spatial filtering in case no geometry property name is defined.
Bug fixLuciadLightspeed
LCD-7515
TLspRulerController: when switching the measure mode after creating a measurement, labels could disappear.
Bug fixLuciadLightspeed
LCD-7513
The height of geodetic lines with linear interpolation (ILcdCurve.INTERPOLATION_LINEAR) was not used for
visualization. As a result they were always painted at zero height.
Bug fixLuciadLightspeed
LCD-7358
The "overlap resolution" setting in TLspShapePaintingHints was not respected for model elements
that contain multiple ILcdShapes (e.g. ILcdShapeLists or the output of an ALspStyleTargetProvider).
Bug fixLuciadLightspeed
LCD-7501
In rare cases, calling ALspLabelStyleCollector#group() could produce an IllegalArgumentException.
Bug fixLuciadLightspeed
LCD-7500
TLcdVVTerrainModel: fixed an inaccuracy in the sampling of the height values.
Bug fixLuciadLightspeed
LCD-7398
Fixed artifacts when using image processing with OpenCL backend on NVidia hardware with a recent driver.
Bug fixLuciadLightspeed
LCD-7463
TLspShapePainter: fixed a bug in the touch query for icons with an ON_TERRAIN elevation mode,
which made it difficult or impossible to select draped icons under some viewing angles when no terrain was loaded
in the view.
Bug fixLuciadLightspeed
LCD-7473
Fixed an issue where TLspViewNavigationUtil#centerOnModelBounds would zoom in when
centering on large geodetic bounds in a 3D view.
Bug fixLuciadLightspeed
LCD-7472
Fixed a bug in imaging engine's resize operator: it threw an exception if the # bands was a multiple of 4.
Bug fixLuciadLightspeed
LCD-7490
TLspRasterLayer did not handle has-a-image objects correctly. See ALcdImage.fromDomainObject for details about what
this means.
Bug fixOGC Server
LCD-7506
Fixed the interpretation of the GridOffsets parameter in a WCS 1.1 GetCoverage request, which could
lead to responses with an incorrect resolution.
Bug fixDefense Symbology
LCD-7482
Boundary symbols: sometimes labels could be placed at the wrong side of the boundary when using a Lightspeed view.
2015.1.24
ImprovementTiling Engine
LF-881
The fusion of vector data into a raster coverage now uses anti-aliasing during the rasterization process,
resulting in an improved line quality.
Bug fixLuciadLightspeed
LCD-7462
The non-tiled painting of WMS data in Lightspeed views in combination with client-side warping resulted in maps
that did not cover the entire visible area.
Bug fixLuciadLightspeed
LCD-7461
TLcdKML22BalloonContentProvider now properly handles TLcdKML22PaintableGroundoverlay elements.
Bug fixLuciadLightspeed
LCD-7460
The Earth preprocessor sample did not handle processing multiple coverages to the same repository correctly.
2015.1.21
ImprovementLuciadLightspeed
LF-878
The rendering of vector coverages now uses anti-aliasing, resulting in an improved line quality.
ImprovementLuciadLightspeed
LCD-7117
Clarified javadoc in TLspPointSetHandle.
ImprovementLuciadLightspeed
LCD-7201, LCD-7394
Improved the general flexibility of the TLspPointToPointSnapper, by providing a new method that allows you to
filter, convert and add custom snap targets based on full context information, such as: domain object, geometry,
layer, paintrepresentation and view. Specific paintrepresentations that should be supported can also be configured
with the setSupportedStates() method.
Bug fixLuciadLightspeed
LCD-7439
Fixed decoding of multi-band GeoTIFF data with more than 8 bits/band.
Bug fixLuciadLightspeed
LCD-7454
Grid labels in a Lightspeed view that use a horizontal orientation (For example
TLspMGRSGridStyle.Builder#labelOrientation()) could be detached from their line when
they are located near a corner of the view. This problem was more obvious when using
a large label edge offset.
Bug fixLuciadLightspeed
LCD-7453
Deactivating or switching a view's controller in ALspController#handleAWTEventImpl now stops events
from propagating down the controller chain.
Bug fixLuciadLightspeed
LCD-7449
TLspPlotPainter didn't visualize anything when using a style target provider with a different reference than
the model reference.
Bug fixLuciadLightspeed
LCD-7438
Fixed a bug in TLcdOGCSpatialConditionFactory that caused it to throw on objects that don't have a requested
property.
An object doesn't have a requested spatial property if the object itself is not null, but ILcdPropertyRetriever
returned null.
Instead of throwing, these objects are now treated as "no match".
Bug fixLuciadLightspeed
LCD-7431
The OGC spatial filter now automatically determines the spatial property when the <BBOX> element does not
specify a <propertyName> element.
The spatial property is determined from the data type:
- If the data type has a TLcdHasGeometryAnnotation, the spatial property is defined by it.
- If not, it is the property of type ILcdShape.
-
In case there are multiple such properties, an appropriate exception report is generated.
This is consistent with the OGC Filter 1.1.0 specification which states that a <propertyName> element
is required when there are multiple spatial properties.
Bug fixLuciadLightspeed
The WMS client sample class ProxyModelFactory did not properly handle WMS servers that only advertise a single
root WMS layer.
Bug fixLuciadLightspeed
LCD-7423
Fixed potential NullPointerException in the KML styler for lightspeed views that could occur when visualizing
placemarks with malformed altitude modes.
Bug fixLucy (LuciadLightspeed)
LUCY-4404
CollapsibleSplitPane sample class did not respect the preferred size of content that was added before the split
pane was showing on screen.
Bug fixLuciadLightspeed
LCD-7321
Fixed issue where networklinks containing "onExpire" refreshmode links would not get loaded correctly unless
manually updated.
Bug fixLuciadLightspeed
LCD-7125
Ensured that the TLspPointSetHandle does not fire unnecessary FINISHED interaction state events when moving or dragging
the mouse.
2015.1.20
ImprovementLuciadLightspeed
LCD-7428
Made some changes to the WFS client for the sake of interoperability with ArcGIS WFS servers:
-
Spaces in URLs are now escaped as "%20" instead of '+'.
Both are valid according to the URI specification, but ArcGIS server can't handle '+' correctly, at least not
when it occurs as value of an outputFormat such as "text/xml;+subtype=gml/3.1.1" (escaped).
-
Recognition of output formats has been made more lenient towards casing differences: both "subType" and
"subtype" are now recognized in outputFormat parameters such as "text/xml; subType=gml/3.1.1".
-
Recognition of output formats has been made (even) more lenient towards alternative names for formats:
"text/xml; subType=gml/3.1.1/profiles/gmlsf/1.0.0/0" is now for example also recognized as GML Simple Features
Profile.
ImprovementOGC Server
The sample class WFSFeatureIDRetriever now supports retrieving the id of data objects with a
primary key annotation (TLcdPrimaryKeyAnnotation).
ImprovementWeather & Environment Standards
LCD-7412
NetCDF GXY painters are now using anti-aliasing.
Bug fixLuciadLightspeed
LCD-6738
TLcdAxisAlignedRasterReferencer, TLcdRotatedRasterReferencer and TLcdRasterReferencingUtil can now handle the case
where only 2 tie points are provided.
Bug fixLuciadLightspeed
LCD-7414
Fixed a rare and minor memory leak in TLspLabelPainter, where the view could keep a reference to one of the
domain objects, even when it is removed from its model.
Bug fixLuciadLightspeed
LCD-7410
Fixed exception when using some huge images with the OpenCL imaging engine.
2015.1.19
ImprovementLuciadLightspeed
LCD-7403
To improve the interoperability with non-compliant OGC WMS servers, the XML capabilities decoder has been made less
strict regarding the CRS and Abstract XML element positions inside a Layer XML element.
ImprovementLuciadLightspeed
LCD-7399
TLspPopupMenuSelectionCandidateHandler's behavior can now be customized by overriding
TLspPopupMenuSelectionCandidateHandler#handleMenuItemHoverChange and
TLspPopupMenuSelectionCandidateHandler#handleMenuItemSelected.
ImprovementAdvanced Raster Connectors
LCD-7373
The TLcdECWModelDecoder can now also decode images with 2 bands. The second band is only available on the ALcdImage
API. The ILcdRaster API does not support 2-band images.
ImprovementGoogle Earth Enterprise
The Google Earth Enterprise Industry Specific Component adds support for decoding Google Earth Enterprise imagery repositories
and visualizing them in a Lightspeed view or in a GXY view. For more details, see TLcdGEEModelDecoder.
Bug fixLuciadLightspeed
LCD-7386
The DTED/DMED decoders did not distinguish between 0 and unavailable accuracy. The TLcdDTEDCellDescriptor now
returns -1 for unavailable accuracy instead of 0.
Bug fixLuciadLightspeed
LCD-7396
TLcdTransformer: when transforming a set of data objects to a list, the elements were not transformed.
This prevents encoding such models to GML.
Bug fixLuciadLightspeed
LCD-7274
TLcdSHPTiler did not copy directory.ref file when creating SHP tiles.
2015.1.18
ImprovementOGC Server
LCD-7392
Improved overall security by implementing additional output neutralization measures to avoid
CRLF injection.
ImprovementOGC Server
LCD-7391
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES
in CTR mode) to encode log entries.
ImprovementOGC Server
LCD-7388
The default heap memory size of the OGC services sample has been increased from 384m to 768m, to improve
its overall performance when working with larger datasets.
ImprovementAviation Standards
LCD-7284
Terrain elevation is now taken into account when visualizing AIXM 5.1 3D airspaces in a Lightspeed view, based on
the
information provided by their upper limit and lower limit reference properties.
Bug fixLuciadLightspeed
LCD-1573
The behavior of the WCS client was not synchronous if TLcdWCSProxy#setAsynchronousUpdates was set to false.
This resulted in incomplete coverages when the WCS client was used on non-EDT threads, such as in the WMS server.
Bug fixLucy (LuciadLightspeed)
LUCY-4069
Table view: the table view would loose its selection when the underlying model was changed.
When selection synchronization with the map was active, this would mean that the selection on the map
was also lost.
This is achieved by overriding the EditableTable#tableChanged method, and storing the selection before
handling an incoming event from the table model.
After the event is handled, the selection is restored.
To be able to restore the selection, the getRowOfObject method has been added to the IExtendedTableModel
interface.
Bug fixLuciadLightspeed
LCD-7369
Geotiffs using a custom reference using a polar stereographic projection with a latitude origin different
from 90 or -90 were not displayed correctly.
Bug fixLuciadLightspeed
LCD-7363
Using an empty ILcd2DBoundsIndexedModel for a plot layer would cause exceptions. Also, if the width/height ratio
of the bounds was very large or small, the plot layer would not finish painting.
Bug fixLucy (LuciadLightspeed)
LCD-7377
TLcyPreviewAddOn: The UI was freezing for a while when loading more than one ECDIS S-57 models with time
information.
Bug fixAviation Standards
LCD-7366
TLcdProcedureGeometryCalculator can handle CI/CF used to turn back aircraft at its current position.
Bug fixAviation Standards
LCD-7356
The usage or not of internal property retrievers in TLspAISStyler to retrieve geometries like GeometryRunwayBuffer for runways
is not only determined on the model descriptor class anymore but also on the types from the model descriptor element types.
Bug fixDefense Symbology
LCD-7349
Setting symbol icon offset with Ctrl-drag now properly fires editing changed events on the layer.
2015.1.17
ImprovementLuciadLightspeed
LCD-7355
TLspBalloonManager: when calculating the balloon focus point for a model object, the manager now makes use of the
geometry provided by the object's style target provider.
ImprovementLuciadLightspeed
LCD-7348
The label alignment of the ILcdVVRenderer implementations has been improved.
ImprovementOGC Server
LCD-7158
Temporary files needed to cache large responses are now created in a safer way, i.e. using undeterministic names
and with more strict file permissions.
ImprovementOGC Server
LCD-7157
Any encountered File-based data locations in XML documents (e.g., local schema locations) read by the WCS
are now validated against invalid characters.
ImprovementDefense Symbology
LCD-7341
It is now possible to set the affiliation of a symbol with all the affiliation values defined in the standard. The
affiliation values for some symbols are limited by the symbology standards and if you want to stick to the standard
(e.g. a listing in a GUI) you can still invoke TLcdEditableAPP6AObject#getPossibleAffiliationValues() or
TLcdEditableMS2525bObject#getPossibleAffiliationValues() methods to obtain the available affiliation values for
a specific symbol.
Bug fixLuciadLightspeed
LCD-7351
Fixed an issue where clicking on the 'north arrow' on a TLspCompassNavigationControl would not rotate the view in certain
projections.
Bug fixLuciadLightspeed
LCD-7367
TLcdWeakIdentityHashMap could throw a ConcurrentModificationException in rare cases.
Bug fixLucy (LuciadLightspeed)
LUCY-4396
TLcyDrawingAddOn now better handles large and split up character data.
Bug fixLuciadLightspeed
LCD-7278
Object selection and touch queries did not take the minimum pixel size configured on a TLspIconStyle into account.
Bug fixLuciadLightspeed
LCD-7331
TLspShapePainter: fixed a bug in the touch query for icons with an ON_TERRAIN elevation mode,
which made it difficult or impossible to select draped icons under some viewing angles.
Bug fixLuciadLightspeed
LCD-7242
TLspSelectController no longer consumes mouse move events.
Bug fixLuciadLightspeed
LCD-7353
The WMTS client no longer shows error tiles in case of a tile not found (HTTP 404) responses.
Bug fixLuciadLightspeed
LCD-7300, LCD-7324
GML encoding: fixed several issues when encoding GML-dependent models whose domain objects contain multiple geometries.
Bug fixLuciadLightspeed
LCD-7343
Fixed an issue where ALcdCompassNavigationControl did not get repainted when it should.
Bug fixInfrastructure Standards
LCD-7291
Fixed various native memory leaks in TLcdDGNModelDecoder.
Bug fixMaritime Standards
LCD-7339
The sounding value for for isolated dangers was not displayed on top of the danger icon.
Bug fixMaritime Standards
LCD-7337
In some cases, S-52 symbolized line patterns were cut-off in Lightspeed views.
For example, for DWRTCL objects were missing the "DW" marker at the end was partially missing.
Bug fixMaritime Standards
LCD-7338
The S-52 visualization of TSSLPT objects with restriction now shows the restriction icon as well as the direction arrow icon.
2015.1.16
ImprovementAviation Standards
LCD-7304
An improvement has been made in the modeling of the airspace domain object (see TLcdAirspace or its data type
TLcdAISDataType#Airspace) that enables out-of-the-box, automatic encoding of the connected airspace geometry to GML
(e.g., via TLcdGML32ModelEncoder); in the past, only the individual segments were encoded.
ImprovementAviation Standards
LCD-7304
Due to a change in the modeling of the airspace domain object (TLcdAirspace), AIXM airspaces that get
exported to GML now also contain the connected airspace geometry, next to the individual segments.
ImprovementAviation Standards
LCD-7304
Due to a change in the modeling of the airspace domain object (TLcdAirspace), ARINC airspaces that get
exported to GML now also contain the connected airspace geometry, next to the individual segment points.
ImprovementDefense Symbology
LCD-7326
It is now possible to set a symbol icon offset in a 2D Lightspeed 2D View by Ctrl-drag.
ImprovementTiling Engine
LF-858
It is now possible to disable sync to disk on commit using the system property
com.luciad.fusion.engine.syncOnCommit.
The default is 'on'.
Disabling sync on commit may significantly improve fusion performance, however beware that the consistency of the
checkpoint with the tiles on disk in case of power outage is no longer guaranteed.
Bug fixLuciadLightspeed
LCD-7320
The WFS model class (TLcdWFSProxyModel) did not properly support finding a geometry property name for a feature type
if there was no link with its XML type (by means of its name and / or namespace).
Bug fixLuciadLightspeed
LCD-7316
Fixed errors when visualizing an image that uses a 32-bit signed integer for the band values.
Bug fixLucy (LuciadLightspeed)
LUCY-4387
TLcyVerticalViewAddOn: selecting an object whose model reference is not supported by the vertical view could result in an
internal error.
Bug fixLuciadLightspeed
LCD-7310
The TLcdCADRGModelDecoder could not decode files were the headers and data is not ordered normally.
Bug fixLuciadLightspeed
LCD-6701
TLcdResizeOp did not handle palette indexed color images correctly: the indices were interpolated.
Bug fixLuciadLightspeed
LCD-7293
Earth preprocessor could get confused when the time zone changes. Most commonly this happened when switching to
summer or winter time.
Bug fixLuciadLightspeed
LCD-7312
TLcdSVGIcon no longer changes the context classloader.
Bug fixAdvanced Raster Connectors
TLcdECWModelDecoder did not take the unit-of-measure into account.
Bug fixAdvanced Raster Connectors
LCD-7289
TLcdECWModelDecoder did not support some references. In particular the EPSG:28355 reference is now also supported.
Bug fixOGC Server
LCD-7297
The server no longer logs stacktraces in case of service exception reports, as this is normal behavior
for a WMS; instead, an info message is logged with the contents of the service exception message.
Bug fixReal-time Engine
LCD-7336
Continuous labeling: labels could move on top of the anchor point (e.g. a track) when clamping both the
distance and the angle of the label.
Bug fixAviation Standards
LCD-6278
When handling a CI Leg, we check the current course. If the course was NaN, we set it to the leg course.
Bug fixDefense Symbology
LCD-7325
The offset circle icon was not completely visible in a Lightspeed view in case of small non-zero offset values.
Bug fixDefense Symbology
LCD-7318
Fixed the overriding of affiliation color bug for sea mine icons in MS2525c. Now overridden affiliation color of a
sea mine icon in MS2525c is
visible on the icon frame.
Bug fixDefense Symbology
LCD-7307
Fixed the inner line width of GRAFFITI symbol.
Bug fixTiling Engine
LCD-7319, LF-865
Fixed a bug affecting the fusion of vector data, which could cause some features that rub against the 180th meridian
to fail with "No corresponding builder for edge link".
Bug fixTiling Engine
LF-848
Fixed some numerical precision bugs when fusing vector data which could cause some features to fail with "No
corresponding builder for edge link" or "Unsupported polygon: successive end/begin points".
Bug fixTiling Engine
LF-853
TLfnEngineFactory.getEngines()
would not always return all engines. This could cause the job
manager panel in the Data Connectivity Manager to show error dialogs when trying to start/pause a job.
2015.1.15
ImprovementDefense Symbology
LCD-7164
TLcdNVGModelDecoder.getDisplayName() returns NVG instead of "NVG Decoder".
Bug fixLuciadLightspeed
LCD-7292
The ILspView could slow down or even hang when implementing an ALspSwingLabelStyler by letting getComponent()
return null.
Bug fixLucy (LuciadLightspeed)
LUCY-4382
The Yes/No strings in the Projections area of the model reference customizer can now be translated.
Bug fixLuciadLightspeed
LCD-7134
Images with data in a special RGB color space were not supported.
Bug fixAviation Standards
LCD-7283
If you called the insertLegAt or removedLetAt methods of an TLcdDiscretizedLonLatGeoPath instance and then retrieve the polygon
from
the discretizator, the discretizator will take the change into account.
Bug fixAviation Standards
LCD-7267
To ease the visual recognition of restricted airspaces and to better align with common charting guidelines,
AIXM 5.1 restricted airspaces (prohibited, restricted, danger area) are now painted as follows in Lightspeed views:
- 2D: striped red border
- 3D: solid red border and fill.
Bug fixDefense Symbology
LCD-7282
Fixed mapping for Linear Target from Ms2525b original specification to Ms2525b Change 2 specification.
Bug fixDefense Symbology
LCD-7270
Fixed the position swapping bug of unique designation text modifier for boundaries. If the label is once painted
outside of
the boundary, it will always stay outside. It's the same if the label is painted in the boundary.
Bug fixDefense Symbology
LCD-7268
Short-Range Air Defense Engagement Zone label is fixed as SHORADEZ in MS2525c.
2015.1.14
ImprovementAviation Standards
LCD-7227
It is now possible to set a custom ALcdDiscretizedGeoPath to a TLcdAirspace. The ALcdDiscretizedGeoPath is used to discretize
the
airspace segments. Only instances of TLcdDiscretizedLonLatGeoPath are accepted right now.
Bug fixLuciadLightspeed
LCD-7260
An issue in the WFS model class (TLcdWFSProxyModel) prevented it from automatically finding a geometry property
for some feature types, which is needed to support spatial filters.
Bug fixTiling Engine
LF-847
Fixed a bug in the fusion of vector data, similar to LF-451, which could cause some features to fail with "No
corresponding builder for edge link" in some circumstances.
Bug fixTiling Engine
LF-842
Some bugs were fixed in the default implementation of
ILfnRasterSessionHandler
and
ILfnVectorSessionHandler.
In addition, the code has been made more robust to deal with bad implementations of these handlers:
if the handling itself throws an exception, this is now treated as a non-fatal failure.
Bug fixTiling Engine
LF-840
Worked around a bug in Oracle database models which could cause some features to fail with "Edge already added" in
some circumstances.
2015.1.13
Bug fixLuciadLightspeed
LCD-7258
The class TLcdOWSHttpTransport, used by the OGC clients to communicate with a service, could not properly
handle request parameters containing special characters with accents.
Bug fixLuciadLightspeed
LCD-7258
The class TLcdOWSHttpTransport, used by the WMTS client to communicate with a service, could not properly
handle request parameters containing special characters with accents.
Bug fixLuciadLightspeed
LCD-7257
The WMTS client could not cope with WMTS services that did not list specific request encoding constraints (KVP,
REST ...) for listed operations.
Bug fixLuciadLightspeed
LCD-7256
Fixed an issue in the lightspeed.customization.paintrepresentation sample.
Bug fixLuciadLightspeed
LCD-7231
Fixed an issue where density layers were not properly updated when used while flickering (by a TLspFlickerController).
2015.1.12
ImprovementLuciadLightspeed
LCD-7212
Added support for labeling MultiGeometry elements in a Lightspeed view. If your MultiGeometry contains
one or multiple Point elements, they will be labeled according to their KML LabelStyle.
ImprovementTerrain Analysis Engine
LCD-7238
Some minor corrections to the developer guide.
ImprovementTiling Engine
LF-830
The number of threads used by the fusion engine can now be overridden using the system property
com.luciad.fusion.engine.threadCount.
It is also still possible to override this setting programmatically using
ALinEngineEnvironment.setEngineThreadCount().
If set, the programmatic setting takes precedence over the system property.
The default number of threads isRuntime.getRuntime().availableProcessors().
Bug fixLuciadLightspeed
LCD-7247
Fixed a Lightspeed issue with retrieving selection candidates where, in rare cases, different domain objects could be treated
as equal.
The issue caused these objects to be missing from selections that should contain them.
Bug fixLuciadLightspeed
LCD-7248
WKT strings using the projection name "Rectified_Skew_Orthomorphic_Natural_Origin" can now be parsed using
TLcdWKTReferenceParser.
Bug fixLuciadLightspeed
LCD-6521
Raster layers no longer use direct memory sharing between OpenGL (rendering) and OpenCL (image processing) by
default to avoid stability issues. This can result in a slightly longer latency when using image processing. The
direct memory sharing can be enabled again by using the following JVM option:
-Dcom.luciad.view.lightspeed.opencl.allowCLGLInterOp=true.
Bug fixLuciadLightspeed
LCD-7236
Fixed issue where a status notification for a new Networklink being loaded would appear before the loaded Networklink
was fully processed. This means that when you subscribe to a TLcdKML22DynamicModel.addStatusListener(), and you get
an END_BUSY status, the downloaded KML file will be available for consumption at that instant.
Bug fixLuciadLightspeed
LCD-7234
When using continuous labeling for non-selected labels and an other labeling algorithm for selected labels,
the selected labels could be dropped.
Bug fixLuciadLightspeed
LCD-7229
lonlatheight2worldOnEllipsoidSFCT now produces more precise results for TLcdRectifiedPolynomialProjection
instances with a degree of 2 or more.
Bug fixLuciadLightspeed
LCD-7220
TLcdMGRSFormat couldn't parse MGRS Strings with a separator between the grid zone designation and the 100km
grid square designation.
Bug fixLuciadLightspeed
LCD-7219
A rare problem was fixed where TLspInteractiveLabelsController sometimes moved a new interactive label to the
incorrect location.
Bug fixLuciadLightspeed
LCD-7222
The alpha component of TLspPinLineStyle#getColor() was not taken into account. Because of this, transparent pins
were painted as opaque pin lines.
Bug fixLuciadLightspeed
LCD-7243
Fixed NPE that got triggered when removing a TLspPanController from a view.
Bug fixDefense Symbology
LCD-7235
Fixed IllegalArgumentException error for 30 digit coded APP-6C objects.
Bug fixTiling Engine
LF-837
Fixed a bug in the fusion of vector data, similar to LF-451, which could cause some features to fail with "No
corresponding builder for edge link" in some circumstances.
Bug fixTiling Engine
LF-835
Fixed a bug which caused some Geospatial PDF to be fused a level too deep in some cases.
Bug fixTiling Engine
LF-831
Fixed a bug in the fusion of vector data which could affect coverages with a bounding box that wraps around the
180th meridian.
This could cause fusion to fail with "No corresponding builder for edge link".
Bug fixTiling Engine
LF-828
Fixed a bug in the fusion of vector data which could affect features with a line segment spanning more than 180°
in the longitudinal direction.
This could cause fusion to fail with "No corresponding builder for edge link".
2015.1.11
ImprovementLuciadLightspeed
LCD-7198
It is now possible to calculate the closest point on a rhumbline for spheres. See
TLcdSphereRhumblineUtil#closestPointOnRhumbline().
ImprovementLucy (LuciadLightspeed)
Lucy map centric: the TLcyHyperlinkAddOn has been added to the map_centric_addons.xml file. This ensures that
hyperlinks
shown in a balloon will be opened in a browser when clicking on them.
ImprovementLuciadLightspeed
LCD-7185
Performance improvement when using TLspLayer#query with TLspIsTouchedQuery when the
queried object is already painted.
ImprovementWeather & Environment Standards
LCD-7177
Unknown datums are created with the name "Unknown" instead of empty string.
Bug fixLuciadLightspeed
LCD-7208
Fixed memory leak in raster layer. The issue was visible when creating layers or changing models frequently.
Bug fixLuciadLightspeed
LCD-7199
lonlatheight2worldOnEllipsoidSFCT didn't always produce correct results for TLcdRectifiedPolynomialProjection
instances with a degree of 2 or more.
Bug fixLuciadLightspeed
LCD-7183
A line with two coinciding geodetic points on the date line could cause visual artifacts in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-7196
The WMTS client no longer shows error tiles in case of a service exception report sent by the server (e.g., often
sent if a tile is missing in case of sparse data sets). Instead, the service exception report information can be
retrieved via the logs by enabling tracing.
Bug fixLuciadLightspeed
LCD-7197
The WMTS client did not support the handling of service exception reports in case compression was used by the server.
Bug fixLuciadLightspeed
LCD-7197
The WMS client did not support the handling of service exception reports in case compression was used by the server.
Bug fixLuciadLightspeed
LCD-7197
The WFS client did not support the handling of service exception reports in case compression was used by the server.
Bug fixLuciadLightspeed
LCD-7197
The WCS client did not support the handling of service exception reports in case compression was used by the server.
Bug fixLuciadLightspeed
LCD-7191
Fixed a NullPointerException that could occur when using an ILspController that returns null in its
getLayered() method.
Bug fixLuciadLightspeed
LCD-7188
Fixed a rare threading issue during label placement that occurred because the ILspView#layers() method was called
on a task executor thread.
Bug fixLuciadLightspeed
LCD-7107, LCD-7195
ALspSwingLabelStyler now clears its cache for objects that are removed from a model.
Bug fixLuciadLightspeed
LCD-7182
TLcdGXYMagnifierController: when opening the magnifier window for the first time, it could be empty.
Bug fixWeather & Environment Standards
LCD-7207
Add obfuscation exception for some NetCDF packages to the proguard configuration file.
Bug fixAviation Standards
LCD-7150
The labels that indicate the altitude of the sectors on SafeAltitudeArea features are now always
placed within the corresponding sector. Additionally, the default style for these labels has changed,
allowing a higher level of customization.
2015.1.10
Bug fixLuciadLightspeed
LCD-7167
Fixed a performance issue for tile set models such as Bing Maps and WMTS in a Lightspeed view: tiles were retrieved one at
a time instead
of multiple in parallel. Only raster layers with type BACKGROUND and a tile set that does not match the
internal tiling structure (e.g. geodetic reference, 4x2 tiles at level 0, 256x256 tiles) were affected.
Bug fixLuciadLightspeed
LCD-6988
Fixed a WMTS performance issue in Lightspeed views: tiles were retrieved one at a time instead of multiple in
parallel. Only layers with type BACKGROUND and a tile set that did not match the
internal tiling structure (e.g. geodetic reference, 4x2 tiles at level 0, 256x256 tiles) were affected.
Bug fixLuciadLightspeed
LCD-7175
Fixed a selection ordering issue for draped shapes in a 3D view without terrain.
Bug fixLuciadLightspeed
Calling ALspLayer#getCurrentViews() is now thread-safe.
Bug fixLuciadLightspeed
ALspSwingLabelStyler didn't always call componentChanged() when needed with aInvalidateOnModelChangeEvent == true.
In that case, it could for example happen that componentChanged() is called for the ALspSwingLabelStyler of
the EDITED paint representation, but no for the REGULAR paint representation.
Bug fixLuciadLightspeed
LCD-7171
Fixed a rare NullPointerException during navigation in a Lightspeed view with a grid layer.
2015.1.09
ImprovementLucy (LuciadLightspeed)
LUCY-4364
The strings in the Projections area of the model reference customizer can now be translated.
Bug fixTiling Engine
LF-451
Fixed a bug in the fusion of vector data which could cause some features to fail with "No corresponding builder for
edge link" in some circumstances.
Bug fixTiling Engine
LF-196
Fixed a synchronization bug which could occasionally cause the progress to keep on going up even after a job had
been stopped.
Bug fixTiling Engine
LF-760
A fusion job's progress now preserves the elapsed time so that it no longer resets unexpectedly.
-
The elapsed time continues after a stop/restart of a job, instead it continues from the last checkpoint,
in accordance with the progress itself.
-
The elapsed time continues after disconnecting and reconnecting the DCM to a remote fusion server.
2015.1.08
ImprovementLuciadLightspeed
LCD-7106
Improved the label alignment of the ILcdVVRenderer implementations.
ImprovementOGC Server
LCD-7146
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES)
to encode log entries.
ImprovementOGC Server
LCD-7141
Improved overall security by replacing the use of a pseudo random number generator with a
cryptographically strong random number generator.
ImprovementOGC Server
LCD-6799
Improved overall security by implementing additional output neutralization measures to avoid
CRLF injection and cross-site scripting.
Bug fixLuciadLightspeed
LCD-196
The GXY warping raster painters now paint data accurately when printing at a higher resolution than the view.
Bug fixLuciadLightspeed
LCD-7148
TLspRasterLayer did not handle changes to the image's semantics nicely: the bounds were shown for a brief moment which
appears as flickering when done frequently. It is now handled like other non-structural changes: the old data is
shown until the new data is ready.
Bug fixDefense Symbology
LCD-7143
Fixed the javadoc for width property of TLcdEditableAPP6AObject and TLcdEditableMS2525bObject.
setWidth(double)/getWidth() methods of arrow symbols, set/get the distance between the axis of the arrow
and the edge of the bounding box of the arrow.
Bug fixDefense Symbology
LCD-7129
Textual line decorations of a tactical graphic are always shown even if the layer's labels are toggled to invisible
in a GXY View.
2015.1.07
ImprovementLuciadLightspeed
LCD-7124
TLcdMGRSFormat is now more flexible with respect to the number of digits passed as input.
ImprovementOGC Server
LCD-6227
The decoder for the WMS server sample's XML configuration format,
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, has been upgraded to use the JDOM
XML framework.
ImprovementWeather & Environment Standards
LCD-7108
u and v components of WRF NetCDF files are displayed as wind barbs.
Bug fixLuciadLightspeed
LCD-4299
Geodetic lines with linear interpolation (ILcdCurve.INTERPOLATION_LINEAR), no longer show wrap-around artifacts
in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-7123
Painting labels in view-space (i.e. using a null model reference) didn't work as expected when using a style target
provider that returns null as the style target reference.
Bug fixLuciadLightspeed
LCD-7115
TLcdComponentPrintable: improved memory use and performance when printing many pages.
Bug fixLuciadLightspeed
LCD-7116
The orientation of a point was not applied correctly to icons when using a grid reference
with a TLcdGeodetic projection.
Bug fixLuciadLightspeed
LCD-7110
The combination of a TLspWorldSizedLineStyle and a TLspFillStyle would result in the incorrect visualization
of polygons. The TLspWorldSizedLineStyle was applied to all the edges of the triangles of the discretized polygon.
Bug fixLuciadLightspeed
LCD-7091
TLcdCartesian#orientation2D would throw an ArrayIndexOutOfBoundsException when passing a point list with length 1.
Bug fixDefense Symbology
LCD-7088
Fixed the ArrayIndexOutOfBoundsException error when drawing a Bounded Areas of Weather - Icing on a GXY View.
2015.1.06
ImprovementLuciadLightspeed
LCD-6125
ALspSwingLabelStyler now avoids firing style change events when they are not needed.
ImprovementOGC Server
LCD-7089
The OGC server sample now comes by default with a set of vendor-specific deployment configuration files
to ease the deployment on GlassFish, Apache Geronimo and Oracle WebLogic. The files can be found in
build/ogc/resources/WEB-INF and are also packaged together with the ready-to-use OGC server sample in distrib/.
ImprovementAviation Standards
LCD-1021
Support for daylight savings time dependent times have been added to handle properties with schedules.
A date in the included timesheet can now be set to EDLST or SDLST.
ImprovementAviation Standards
LCD-7112
Improved support for time zones when processing AIXM 5.1 messages. The generateSnapshot and updateSnapshotSFCT
methods in TLcdAIXM51MessageUtil have been overloaded and it is now possible to pass a Calendar including time zone
information instead of a Date.
Bug fixLuciadLightspeed
LCD-7054
TLspTouchNavigateController: fixed a NullPointerException when rotating around a point that is not on the terrain.
Bug fixLucy (LuciadLightspeed)
LUCY-3579
The string entries of the layer properties panel of the Lightspeed grid layers are now translated.
Bug fixLuciadLightspeed
LCD-7098
TLspEditableStyler would fire style change events for all objects (even the ones that are unaffected) when calling
the clearStyles() method.
2015.1.05
ImprovementLuciadLightspeed
LF-814
Fusion now picks up an SLD style file next to the data file by default when building a coverage using any of the
concrete subclasses of
ALfnCoverageMetadata.Builder.
This benefits the following use cases:
- The Fusion Engine automatically applies the SLD style when fusing vector as image.
- The WMS Fusion Server automatically applies the SLD style when serving coverages with asset sources in
Tile Store, including the specific case of non-tiled coverages.
- The Fusion Client automatically applies the SLD style when visualizing a vector coverage.
- The preview layer in the DCM uses the SLD style, but beware that the map layer (when opening the file as
a layer) does not.
You can of course still override the default styling with your own.
ImprovementLuciadLightspeed
LCD-2382
Developer guide was updated to include an image projection topic. A sample was also added to illustrate
image projection in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-6943
Lighting could sometimes change abruptly and incorrectly when navigating the view.
Bug fixLuciadLightspeed
LCD-7065
TLspCompassNavigationControl: optimized the performance of the fix for LCD-6989.
2015.1.04
ImprovementLuciadLightspeed
LCD-7050
TLcdSHPPolylineZ, TLcdSHPPolygonZ and TLcdSHPMultiPointZ contained in models produced by the TLcdSHPModelDecoder
are now editable.
ImprovementLucy (LuciadLightspeed)
LUCY-4350
TLcyLspSetControllerActiveSettable: when no icon is specified for the active settable, it will
now use the icon of the Lightspeed controller
ImprovementLuciadLightspeed
LCD-7045
To improve the interoperability with non-compliant OGC WMTS servers, the XML capabilities decoder no longer requires
that the LowerCorner / UpperCorner XML elements are defined in the OGC OWS 1.1 namespace.
ImprovementLucy (LuciadLightspeed)
LUCY-4354
Lightspeed raster formats: the .sty file now allows to specify the level switch factor in the style file.
ImprovementLucy (LuciadLightspeed)
LUCY-4347
TLcyWorkspaceAddon: triggering File | Save workspace... after the fallback workspace was loaded on startup
will show a file chooser asking you where to save the workspace instead of trying to overwrite the fallback
workspace. Typically, when Lucy is deployed, the fallback workspace will be present in a JAR on the classpath,
and the path to the fallback workspace will be a relative path. Overwriting that workspace inside the JAR
is not possible, hence it is better to show a file chooser and let the user choose a location to save the workspace.
ImprovementLuciadLightspeed
LCD-6877
Allow translation of undoables fired by TLspCreateController, TLspEditController, TLspRulerController
and TLspDeleteSelectionAction. This is achieved by setting a ILcdStringTranslator instance on
these objects.
ImprovementLuciadLightspeed
LCD-7033
TLcdPolynomialRasterReferencer and TLcdRationalRasterReferencer now report invalid input during the
execution of the #createRasterReference() method.
ImprovementLuciadLightspeed
LCD-6596
The EPSG resources are updated to EPSG database v8.7.
ImprovementLuciadLightspeed
LCD-7027
TLcdAxisAlignedRasterReferencer can now handle the case where all tie points are aligned horizontally or vertically.
ImprovementWeather & Environment Standards
LCD-6362, LCD-6875
Resolved several minor bugs while decoding a NetCDF file.
ImprovementAviation Standards
LCD-6158
Duplicate labels on arc angles that are shared between multiple adjacent safe altitude areas are not shown any more.
ImprovementTiling Engine
LF-811
Explained how to ignore non-fatal failures in theLuciadFusion Developer's Guide.
ImprovementTiling Engine
LF-808
When fusing vector data as raster, labels will be off by default.
ImprovementTiling Engine
LF-472
Fusion now takes the clipping shape into account to avoid the creation of empty tiles.
Also non-contiguous clipping shapes are correctly dealt with.
Bug fixLuciadLightspeed
LCD-7048
TLspLabelLocations#getLabelLocations() didn't work in some cases, for example when passing a layer to it, but
not a paint representation, or vice versa.
Bug fixLucy (LuciadLightspeed)
LUCY-4346
TLcyOracleLocatorDecoderAddOn: creating a GXY layer for a model containing only one feature would result in
exception.
Bug fixLucy (LuciadLightspeed)
LUCY-4355
Touch map centric front-end sample: the map_centric_map_addon_TouchMapComponent.cfg file specified that the
scaleIconActiveSettable
must be inserted into the "ViewGroup, ScaleIconGroup". This is corrected to "MenuGroup, ScaleIconGroup" as the
"ViewGroup"
does not exist.
Bug fixLucy (LuciadLightspeed)
LUCY-4319
Lightspeed map: the undoables generated by the controllers are now translated as well.
Bug fixLuciadLightspeed
LCD-4461
On Windows systems the selection rectangle would be drawn again on the view when maximizing the window by double
clicking the title bar.
Bug fixLuciadLightspeed
LCD-7031
TLspFusionVectorLayer now no longer loads tiles when out of scale range.
Bug fixLucy (LuciadLightspeed)
TLcyWorkspaceAddon: the list with recent workspaces was not correctly restored when restarting Lucy.
Bug fixLucy (LuciadLightspeed)
LUCY-4352
TLcyWorkspaceAddon: the default workspace set in a previous session was not respected on start-up.
Bug fixLuciadLightspeed
LCD-6708
Fix 3D (geocentric) TLspViewNavigationUtil#animatedPan.
Bug fixLuciadLightspeed
LCD-6996
Panning while the view's controller changed could raise a NullPointerException.
Bug fixLuciadLightspeed
LCD-6989
TLspCompassNavigationControl#setMagneticNorthMap was not taken into account in 3D.
2015.1.03
Bug fixLuciadLightspeed
LCD-7008
The LAS model decoder now handles files that incorrectly store color as big-endian instead of little-endian.
The decoder will detect this case, log a warning and read the color as big-endian.
Such files will now show their color instead of black.
Bug fixLuciadLightspeed
LCD-7018
Visualizing SLD files with SVG-icons that have real-world distance measurements (such as cm, mm, or in) has now been made
more robust in a Lightspeed view.
Previously, in certain edge cases, it was possible for a program to run out of memory in Lightspeed views. This bug did not
apply to the rendering of such SLD files
in GXY views.
Bug fixLuciadLightspeed
LCD-6584
In Lightspeed views, SVG-Icons which are linked as external graphics from an SLD stylesheet,
and which have a width or height specified in a unit of measure that corresponds to a real-world distance such as mm, cm,
or in, are now drawn so
that those dimensions correspond to actual distances on the map.
A practical result is that the icon's size on the screen will change as the scale of the map changes.
Bug fixTiling Engine
LF-786
Fixed a bug that could cause artifacts from less detailed levels to bleed through to more detailed levels.
This bug affected vector-as-raster coverages such as ECDIS (S-57 and S-63) coverages.
2015.1.02
ImprovementLuciadLightspeed
LCD-4879
Labels are now painted correctly when using right-to-left (e.g. Hebrew or Arabic) text with
TLspCurvedPathLabelingAlgorithm or TLcdGXYCurvedPathLabelPainter.
ImprovementLuciadLightspeed
LCD-6629
TLcdWKTReferenceParser can now recognise datums with name "D_GGRS_1987" or variants.
ImprovementLuciadLightspeed
LCD-7003
GML encoders and decoders now support
any
model reference in addition to the ones that have an
EPSG code.
Model references that can't be encoded as EPSG will be encoded as WKT, resulting in a URN like this:
urn:ogc:def:crs:WKT::<URL-encoded WKT string>
This benefits OGC services such as WMS, WMTS, WCS and WFS, which will now be able to offer models in these
references.
ImprovementLuciadLightspeed
LCD-6643
The WMS client now sends the PIXELSIZE parameter when making requests to a WMS server. If the WMS server supports
it, it can take the clients pixel size into account when determining scale ranges. The LuciadLightspeed WMS server
supports this PIXELSIZE parameter.
For more information, please consult the reference documentation of:
com.luciad.wms.client.model.ALcdWMSProxy
com.luciad.wms.client.model.TLcdWMSGetMapRequest
ImprovementLuciadLightspeed
LCD-6892
The WMS client samples 'samples.wms.client.gxy.MainApplet' and 'samples.wms.client.lightspeed.MainPanel' now
include a 'Select all' and a 'Clear all' button to easily select all available WMS layers or none at all.
ImprovementOGC Server
LCD-6643
The WMS server can now accept a PIXELSIZE parameter. This server takes this into account when evaluating scale
ranges. This way, these scale range calculations on the server can correspond to the map scale on the client.
The pixel size is defined in mm per pixel.
ImprovementAviation Standards
LCD-6852
Temporal data without time zone information are now assumed to be in UTC. This ensures more deterministic behavior
when
generating snapshots.
Bug fixLuciadLightspeed
LCD-6955
TLcdEarthAssetModelCodec did not close its input and output streams explicitly. As a result the file handle release
relied on the garbage collector.
Bug fixLucy (LuciadLightspeed)
LUCY-4349
CTRL-zoom for LuciadFusion layers now snaps to the exact scales as defined in the coverage's metadata.
Bug fixLuciadLightspeed
LCD-5760
When ECDIS is not available, the LTS client now omits coverages containing S-52 SLD styling rather than failing the
whole connection.
The client treats such 'bad' coverages as if they don't exist, while you can continue working with the 'good' ones.
Bug fixLucy (LuciadLightspeed)
LUCY-4327
Table view in map-centric Lucy: when selecting an object on the map, the same object gets selected in the table
view.
This selection was however not always visible. In certain situations, the selected row would be hidden underneath
the
table header. This has been fixed by updating the table scrolling code in the
TFitCenterSelectionActiveSettableSupport class.
Bug fixLuciadLightspeed
LCD-6930
ILspView#setAltitudeExaggeration() implementations now throw an IllegalArgumentException when the passed value
is 0 or less.
Bug fixLuciadLightspeed
LCD-7006, LF-701
Fixed a bug in the marshalling of model references when using clipping shapes.
The bug affected assets with model references that do no have an EPSG code.
Bug fixLuciadLightspeed
LCD-7004
Fixed a rendering issue for filled shapes crossing the boundaries of a TLcdGeodetic projection.
Bug fixLucy (LuciadLightspeed)
LUCY-4343
The title of the ruler application pane on a Lightspeed map will now update when the map name
of the map is changed.
Bug fixLucy (LuciadLightspeed)
LUCY-4342
It is now possible to translate the title of the ruler application pane on a Lightspeed map.
Bug fixLuciadLightspeed
LCD-6661
The evaluation of an SLD rule's scale range did not work properly with a geodetic view reference.
Bug fixLuciadLightspeed
LCD-6922
TLspLayer: resolved a rare issue where a NullPointerException could happen while painting a layer that is out of its scale
range.
Bug fixLuciadLightspeed
LCD-6598
Fixed some minor bugs in checking of parameters when building an
ALfnCoverageMetadata
or one of
its subclasses.
Bug fixLuciadLightspeed
LCD-6931
TLspRasterLayer: tile set data (ex. WMTS) was not painted at the correct level if the number of tiles at the least
detailed level was very high (ex. 100x100 tiles).
Bug fixLuciadLightspeed
LCD-6765
Anti-aliasing is now turned on when visualizing SLD circle marks. This means that the outline of the circle now looks
smoother.
Bug fixLuciadLightspeed
LCD-6663
The ALcdScaleIndicator implementations could display invalid scale indications for world references
that don't not have meter as the unit of measure.
The AScaleSupport sample class now takes this into account as well.
Bug fixLuciadLightspeed
LCD-6872
TLspRasterLayer: fixed error "Triangles per row must be a multiple of 4". Previously this could happen when painting
an image with a tile resolution that is small or not a power of 2.
Bug fixAdvanced GIS Engine
LCD-7025
Performing a constructive geometry operation with an ILcdShapeList which contained an ILcdSurface did not work.
Bug fixWeather & Environment Standards
LCD-7009
WRF NetCDF files support has been added.
Bug fixAviation Standards
LCD-7005
When handling a IF leg, TLcdProcedureGeometryCalculator will check the leg lower or the upper altitude
to determine the starting altitude. If there is no altitude set to the IF leg, it will use the Z coordinate of the
leg fix.
Bug fixAviation Standards
LCD-6959
Fixed issue with sunrise and sunset calculation for timesheets, where the calculated time would become negative
in some conditions.
Bug fixDefense Symbology
LCD-5147
The Effective Date/Time field does not become disabled anymore after editing on the symbology sample.
SymbolTextModifierDateTimeCustomizer now keeps a reference to the related modifier.
Bug fixDefense Symbology
LCD-7015
The Symbology sample now displays the same symbols for all standards.
Bug fixDefense Symbology
LCD-7016
APP6C Land Installation symbols are now counted as Ground Units. Thus movement direction for those symbols are painted as
kinked
Bug fixDefense Symbology
LCD-6236
The altitude of a Missile Engagement Zone can now be configured by setting the value of the Altitude/Depth modifier
of the symbol.
Bug fixDefense Symbology
LCD-6958
The z-order in TLspMS2525bSymbolStyle and TLspApp6ASymbolStyle is taken into account while displaying military
symbols.
Bug fixDefense Symbology
LCD-7001
Location labels are not displayed by default for Warfighting symbols.
2015.1.01
ImprovementLuciadLightspeed
LCD-6892, LCD-6948
The WMS client samples 'samples.wms.client.gxy.MainApplet', 'samples.wms.client.lightspeed.MainPanel' and
'samples.wms.client.opengl.MainApplet' will now automatically try to connect with either the LuciadLightspeed
or the LuciadFusion WMS service running on localhost. Additionally, the samples will no longer show two redundant
error dialogs in case of a WMS connection failure.
ImprovementLuciadLightspeed
LCD-6932
To improve the interoperability with non-compliant OGC WMS servers, the XML capabilities decoder has been made less
strict regarding the KeywordList XML element position and regarding the need for a Title inside a Style XML
element.
ImprovementLucy (LuciadLightspeed)
LUCY-4324
TLcyDebugAddOn: The "Debug Actions" action only works when using JUL logging. Now the
action shows a warning when it detects that another logging mechanism is used,
and explains how you can enable it manually by configuring your loggers.
ImprovementLucy (LuciadLightspeed)
LCD-6825
The GeoJSON data used in the Lucy COP sample has been moved from the GeoJSON folder to the geojson folder.
This encapsulates all GeoJSON data in the whole LuciadLightspeed product in one geojson folder, instead of
spreading it over two different folders.
The location of the GeoJSON data has been adjusted in the config files of the COP sample to match the new
folder structure. See AirPictureThemeAddOn.cfg and DefaultThemeAddOn.cfg .
ImprovementLuciadLightspeed
LCD-6742
The TLcdEllipsoidalEquidistantCylindrical projection was added. Unlike TLcdEquidistantCylindrical, this projection
uses ellipsoidal instead of a spherical approximation.
ImprovementAdvanced GIS Engine
TLcdCartesianConstructiveGeometry, TLcdEllipsoidalConstructiveGeometry and TLcdSphericalConstructiveGeometry now support
ILcdSurface if its outer and inner rings are instances of ILcdPolygon.
ImprovementReal-time Engine
LCD-6853
TLspRadarVideoLayerBuilder can now handle input data where the cell duration
is not constant across all records, provided that the longer cell durations are
an exact multiple of the shortest duration encountered in the data feed.
ImprovementDefense Standards
LCD-6938
Fixed text alignment in TLspVPFGeoSymStyler to behave similarly to GXY.
ImprovementDefense Standards
LCD-6873
The TLspVPFGeoSymStyler now has a default styling in case no GeoSym style was found for a specific VPF feature.
Previously the feature would not be rendered.
ImprovementDefense Symbology
LCD-4057
Support for offset icons has been added for Lightspeed 2D View. You can define offset values via ILcdAPP6AStyle and
ILcdMS2525bStyle.
Bug fixLuciadLightspeed
LCD-6947
EPSG code that use an oblique mercator projection could produce transformation results that are shifted. This
affected EPSG codes 3167, 3168, 5247, 29871, 29872 and 29873.
Bug fixLuciadLightspeed
LCD-6946
TLcdBILModelDecoder: the decoder did not preserve negative no-data values. This is typically used for elevation
data.
Bug fixLuciadLightspeed
LCD-4274
When setting the data model name manually by calling TLcdGeoJsonModelDecoder#setDataModelName, this value is no
longer automatically
sanitized to only include alpha numerical characters.
Bug fixLuciadLightspeed
LCD-6846
Remove casts to internal ALspRulerMeasurement implementation in ruler controller code. This allows users to add
custom ALspMeasurement objects to the ruler controller's model.
Bug fixLuciadLightspeed
LCD-6742
TLcdEPSGReferenceParser now creates a grid reference that uses ellipsoidal instead of spherical calculations
when parsing EPSG:4087.
Bug fixLucy (LuciadLightspeed)
LUCY-4322
TLcyDimensionalFilterAddOn: a NullPointerException would be thrown when plugging in this add-on if at that moment
there
was already a map available in Lucy (for example by configuring it in the TLcyLspMapAddOn.cfg config file).
Bug fixOGC Server
LCD-6944
The WCS server now generates a service exception report compatible with WCS version 1.0.0 if an 1.0.0 request is
sent specifying an unknown request name.
Bug fixOGC Server
LCD-6942
The server no longer logs exceptions that are caused by client abort actions, to avoid log poisoning.
Bug fixOGC Server
LCD-3366
When creating a default namespace from the data model name, invalid characters are now correctly escaped so that
the namespace is always a valid URI, even if the data model name isn't.
This avoids browsers to fail in those cases.
Bug fixDefense Standards
LCD-6934
Fixed a potential ClassCastException that could occur while using TLspVPFGeoSymStyler.
Bug fixDefense Symbology
LCD-6834
The custom symbology sample showed the custom symbol flags at the wrong location, depending on the viewing angle.
This undesired location shift of flags has been fixed.
Bug fixDefense Symbology
LCD-6882
Anchor point of Special C2 Headquarters Component symbol has been fixed for all standards.
Bug fixDefense Symbology
LCD-6868
Improved the visualization of anticipated linear target lines.
Bug fixTiling Engine
LF-779
GeospatialPDF: fixed a bug in the computation of the pixel density which could cause virtually infinite fusion ETA.
2015.1
ImprovementLuciadLightspeed
TLcdGXYEditController2 now also displays a preview of the object's labels during translation.
ImprovementLuciadLightspeed
The interpolation mode set to a TLcdWCSProxy can now be retrieved by invoking getInterpolationMethod().
ImprovementLucy (LuciadLightspeed)
Updated default contours colors to match the new default color map of elevation.
ImprovementLuciadLightspeed
Is it now possible to provide a custom
ALcdWCSCoverageDecoder
which decodes GetCoverage responses
according to the imaging API.
This decoder replaces the deprecated ILcdWCSCoverageTileDecoder.
ImprovementLucy (LuciadLightspeed)
LUCY-4321
The TLcyWorkspaceAddon can now be customized in such a way that it no longer saves/loads workspaces to/from file,
but from other persistent storage instead. An example would be to save/load workspaces to/from a database. See the
TLcyWorkspaceAddon#selectWorkspaceDestination and TLcyWorkspaceAddon#selectWorkspaceSource methods for more
information.
This new customization option is illustrated in the samples.lucy.workspace.ChooseFromListWorkspaceAddOn sample
class.
ImprovementLucy (LuciadLightspeed)
TLcyBlobWorkspaceCodec has been added to the API. This class is an extension of ALcyWorkspaceCodec
which only uses a single input and output stream for workspace decoding/encoding.
This makes it a good class to use if you want to save your workspace to a database
instead of to a file.
ImprovementLuciadLightspeed
TLcdWCSProxy can specify the resolution of the raster tile instead of the tile width and height.
ImprovementLucy (LuciadLightspeed)
When connecting to a WCS server, the WCS client in Lucy will use the imaging API.
The result of this change is:
-
When the input data of the WCS server is point-sampled elevation data, it will
be visualized as point-sampled elevation data in Lucy as well.
Consult the release notes of WCS for more information.
-
The layer properties panel no longer has UI to switch between synchronous and asynchronous mode,
as this setting has no effect when using the imaging API.
Note that the requests to the WCS server are still made on a background thread,
ensuring that the UI and view remain responsive, even when connected to a slow WCS server.
-
For optimal performance, the layers created by the layer factory (TLcyWCSClientAddOn#createGXYLayerFactory)
will now by default be wrapped in an asynchronous layer wrapper.
This can be disabled in the configuration file of the WCS add-on.
ImprovementLuciadLightspeed
TLcdKML22DynamicModel now implements ILcdStatusSource.
ImprovementLucy (LuciadLightspeed)
LCD-5865
The S-52 display settings customizer panel has changed. When display category 'OTHER' is selected, the user
is allowed to select the visible object classes through a tabular user interface.
Furthermore, opening a workspace checks whether that workspace contains valid S-52 display settings with regards
to object class filtering. Object class filtering will automatically be disabled for other display categories
than 'OTHER'. It can be enabled again in the S-52 display settings customizer or manually in code. This guarantees
backwards compatibility with legacy workspaces originating from older versions of Lucy.
ImprovementLucy (LuciadLightspeed)
S-57 data which has time information can be now filtered with Previewer add-on
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn now by default uses APP-6C symbology. This may cause warnings when loading workspaces
containing APP6A or APP6B data. If you prefer the previously used symbologies, you can revert this change
in the config file (resources/lucy/app6a/app6aaddon.cfg) of this add-on.
ImprovementLuciadLightspeed
The
TLcdWCSProxy
model elements of
TLcdWCSProxyModels
now support the imaging
API.
They do not extend
ALcdImage
directly, but instead they have a data property that does.
You should access the ALcdImage object using the method ALcdImage.fromDomainObject(TLcdWCSProxy).
In other words, they obey the 'has an image' paradigm rather than the 'is an image'.
ImprovementLucy (LuciadLightspeed)
It is now possible to configure a Collada dataset as 3D icon for PIM (pim_addon.cfg) and
Asterix (TLcyLspASTERIXFormatAddOn.cfg).
ImprovementLuciadLightspeed
LCD-6700
Slightly improved the rendering of filled shapes crossing the projection boundaries.
ImprovementLuciadLightspeed
TLcdKML22ModelEncoder is a model encoder to export a KML model into a kml file. Its main purpose is to save models
made programmatically. TLcdKML22ModelEncoder has several limitations :
- This model encoder doesn't export non KML models into KML files.
- This model encoder does not support kmz extension.
- This model encoder was not made for round-trips and KML models don't have a reference to this model
encoder.
- Relative network links will not be modified and this model encoder will not copy their target contents.
ImprovementLuciadLightspeed
WMS models decoded with TLcdOGCWMSProxyModelDecoder will now by default use image/png and transparency
as image exchange format settings, instead of image/jpeg with a background color.
ImprovementLuciadLightspeed
LCD-1722
Lighting for 3D icons is now also supported in a 2D view.
ImprovementLucy (LuciadLightspeed)
LUCY-4300
TLcyDrawingAddOn: the object properties panels now contain a button to fit and select the object on the map.
ImprovementLucy (LuciadLightspeed)
LUCY-4300
TreeTableViewAddOn: the customizer panel now contains a button to fit and select the object on the map.
This is done by adding a new action to the TreeTableGUIFactory (see TreeTableGUIFactory.SELECT_AND_FIT_ACTION).
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: configuration was enhanced to include 'New PIM' on the tool bar button to create a new PIM track
(see showActionName in PIM config file). The tooltip of that button was clarified as well.
ImprovementLuciadLightspeed
TLcdMGRSFormat now provides an enumeration to indicate the precision used to format MGRS or UTM/UPS strings.
The following methods have been deprecated in TLcdMGRSFormat:
-
getNumberOfDigits(), getPrecision() should be used instead.
-
setNumberOfDigits(int aNumberOfDigits), setPrecision(FormatPrecision aPrecision) should be used instead.
ImprovementLucy (LuciadLightspeed)
TLcyGenericMapUtil: a new class has been introduced containing utility methods to work with maps, independent
of the view type (GXY, Lightspeed or GL). For the moment, this class mainly contains utility methods for navigation.
ImprovementLuciadLightspeed
TLsp3DIconStyle: when using a 3D icon containing textures, the textures will now be compressed.
This reduces the amount of memory that is needed on the GPU for showing that 3D icon.
ImprovementLucy (LuciadLightspeed)
The configuration files of all map add-ons now allow to configure the thickness and color of the halo that is added
around the logo.
ImprovementLuciadLightspeed
LCD-6587
Added built-in HTTP Basic Authentication support to TLcdOWSHttpTransport: constructors have been added to supply
username and password for authentication at an OGC server.
ImprovementLucy (LuciadLightspeed)
When you load KML data in the map centric front-end, the panel displaying the KML content better adapts its size
to the actual needs.
ImprovementLuciadLightspeed
KML balloons now support dark Nimbus look and feels in that the balloon background remains white, to be sure
text is always readable.
ImprovementLuciadLightspeed
LCD-6420
TLfnTileStoreModelDecoder
has been adapted for integration with the imaging API.
It produces domain objects that extend
ALcdImageMosaic
as well as implement
ILcdEarthTileSet.
ImprovementLucy (LuciadLightspeed)
LUCY-4200, LUCY-4283
The default color map for elevation data has been adjusted. The new color map uses the same levels for
positive elevation values, but different colors. For negative elevations both the levels and the colors have
been changed to have a better distinction between the different sea-depths.
ImprovementLucy (LuciadLightspeed)
LUCY-4276
The DTED/DMED format now supports to open a DTED directory directly. This means you can now open
a DTED multi-level data structure without the need of a DMED file.
ImprovementLuciadLightspeed
Collada models referenced in KML files can now be visualized in layers build by TLspKML22LayerBuilder.
Collada is a standard for encoding 3D geometries. It is used as the format for 3D objects in KML.
The standard is an official Khronos Standard, supported by major companies such as ATI and NVIDIA.
It is also being supported in may 3D modelers and game engines and in Google Earth (through KML).
See https://www.khronos.org/collada/ for more information.
Opening a KML file containing Collada 3D objects on a Lightspeed view will show the Collada data.
An example use-case is a KML file referring to a set of Collada files representing the buildings of a city.
When opening a KML file containing a Collada model on a GXY view, only the bounds of the Collada model will be
shown.
ImprovementLucy (LuciadLightspeed)
LUCY-4286
Data created by the drawing, PIM, military symbology and TEA (GXY) add-ons is now by default embedded in the
workspace file. This means that users no longer have to select separate file names for those. If data was loaded
from an external file, a reference is always stored to it, it is never embedded. To go back to the old behavior,
search the configuration files for an option called 'saveDataInWorkspace', and set them all back to false.
ImprovementLuciadLightspeed
LuciadLightspeed can now visualize Collada models.
Collada is a standard for encoding 3D geometries. It is used as the format for 3D objects in KML.
The standard is an official Khronos Standard, supported by major companies such as ATI and NVIDIA.
It is also supported in many 3D modelers and game engines and in Google Earth (through KML).
See https://www.khronos.org/collada/ for more information.
The TLsp3DIconStyle class now offers a new method to use a Collada file as icon style.
See the TLsp3DIconStyle.Builder#icon(String) method for more information.
This is typically used to style moving objects with for example an airplane, a car or a vessel.
The TLsp3DIconStyle class javadoc contains more information on this.
LuciadLightspeed supports Collada data in KML files as well. Consult the KML release notes and
KML developer guide for more information.
ImprovementLuciadLightspeed
LCD-6474
TLcdDTEDDirectoryModelDecoder now attempts to automatically detect the bounds of the available data. You can disable
this using TLcdDTEDDirectoryModelDecoder.setAutoDetectBounds(false).
ImprovementLuciadLightspeed
LCD-6483
The default color scheme for elevation data was enhanced to have less saturated colors that are perceived more
equally. The new color scheme is available from TLcdColorModelFactory and TLcdDTEDColorModelFactory.
Should you still need the old color scheme, here is a code snippet to create it:
TLcdDTEDColorModelFactory factory = new TLcdDTEDColorModelFactory();
factory.setLevels(new double[]{-16000,-8000, -4000, -2000, -1000, 0, 0.1, 100, 200, 300, 400, 500, 600, 700, 800,
900, 1000, 1100, 1200, 1300, 1400, 2500, 3500});
factory.setColors(new Color[]{ new Color(0x000000), new Color(0x0000ff), new Color(0x00c0c0), new Color(0x80c0c0),
new Color(0xa0e0e0), new Color(0x8c96d2), new Color(0x55793d), new Color(0x679349), new Color(0x75a552), new
Color(0x84b264), new Color(0xedd283), new Color(0xf7d865), new Color(0xf2cd60), new Color(0xedb54f), new
Color(0xe7aa50), new Color(0xe59547), new Color(0xe56c35), new Color(0xc88c3d), new Color(0xac8533), new
Color(0xb48352), new Color(0x9a4e2e), new Color(0x909090), new Color(0xffffff)});
ColorModel colorModel = factory.createColorModel();
Depending on how you visualize your data, you have to set the color model to a painter or a style. See
ILcdRasterPainter.setColorModel or TLspRasterStyle for example.
ImprovementLucy (LuciadLightspeed)
LUCY-4257
TLcyObjectPropertiesComparisonAddOn: a new add-on has been introduced which offers a side-by-side view of object
properties,
making it easy to compare the properties of different objects.
ImprovementLuciadLightspeed
LCD-4550
TLcdSymbologyDateFormat now supports custom formats.
In addition, TLcdSymbologyDateFormat#parse(String) accepts strings with or without spaces,
and strings with or without seconds, regardless of the value of the isWithSeconds property.
ImprovementLuciadLightspeed
LCD-6471
TLspRasterLayerBuilder by default builds layers whose styler implements ILspCustomizableStyler.
ImprovementLuciadLightspeed
LCD-4544
Balloons created via ALcdBalloonManager can be closed by pressing ESC key.
ImprovementLucy (LuciadLightspeed)
TLcyS57RealtimeAddOn: this new add-on provides support for filtering
time-dependent s57 data with the previewer add-on.
ImprovementLucy (LuciadLightspeed)
LUCY-4263
The Lightspeed formats used the Arial font by default for their labels. This font did not support all characters.
For example Chinese characters were displayed incorrectly. Therefore, the default font has been changed to Dialog.
ImprovementLuciadLightspeed
LCD-6344
The following classes and interfaces have been added, facilitating the use of weak listeners. Consult the
javadoc of those new classes and interfaces for more information:
-
Property changes: ILcdPropertyChangeSource and ALcdWeakPropertyChangeListener
-
Model changes: ALcdWeakModelListener
-
Change events: ALcdWeakChangeListener
-
Selection changes: ALcdWeakSelectionListener
-
Layered changes: ALcdWeakLayeredListener
-
Status changes: ALcdWeakStatusListener
ImprovementLucy (LuciadLightspeed)
LUCY-4203
TLcyWMSEcdisAddOn: this add-on allows to request Ecdis data from a LuciadFusion WMS server using the
application-wide Ecdis S-52 display settings.
ImprovementLuciadLightspeed
LCD-5489
It is now possible to specify a rotation when using TLspLabelLocationProvider.
ImprovementLuciadLightspeed
LCD-6207
It is now possible to specify a different x and y offset when using TLspLabelLocationProvider.
ImprovementLucy (LuciadLightspeed)
TLcyGridAddOn can now create a unified MGRS grid using the new TLcdMGRSGridLayer. The UI entries for the old
UTM and UPS grids are now disabled by default, see gridaddon.cfg.
ImprovementLuciadLightspeed
LCD-347, LCD-376, LCD-329, LCD-392, LMAP-5850
MGRS grids can now be displayed in a GXY view with the new TLcdMGRSGridLayer.
This is demonstrated in the gxy.grid sample.
ImprovementOGC Server
LCD-1137
The sample class samples.ogc.server.Main has been updated with a -fromsource mode to easily start the
OGC sample services in an IDE, directly from the source code.
ImprovementOGC Server
LCD-6826
The WCS server now supports version 1.1.0 and 1.1.1 of the OGC WCS protocol, next to the already supported
version 1.0.0.
ImprovementOGC Server
The WCS server now supports point-sampling mode.
The appropriate sampling mode is not configurable, it is automatically chosen based on the sampling mode of the data
being served:
- Image data, such as GeoTIFF areal imagery, is typically area-sampled.
- Elevation data, such as DTED or GeoTIFF, is typically point-sampled.
When using the default GeoTIFF format, the response to a GetCoverage requests is a GeoTIFF with the appropriate tag
set to 'RasterPixelIsPoint' or 'RasterPixelIsArea'.
ImprovementOGC Server
The WCS server now supports the "bilinear" interpolation method in addition to "nearest neighbor", and advertises
this in the coverage offering.
Bilinear interpolation usually yields better results than nearest neighbor interpolation, especially when requesting
coverages in a much higher resolution than the native one (oversampling).
ImprovementTerrain Analysis Engine
LCD-6302
Added TLcdLOSOptions object. This object allows you to configure certain aspects of the result of a propagation function
for our 3 main propagation-functions: TLcdLOSRadarPropagationFunction, TLcdLOSRadarPropagationFunctionSkyInBackground
and TLcdLOSPropagationFunctionFixedHeight. The TLcdLOSOption object allows you to create LOS Coverage matrices in a
low memory mode. This mode reduces memory used by TLcdLOSCoverageFactory while calculating LOS coverages, at a slight
performance cost. TLcdLOSOption also allows you to configure the internal data format used to represent the final
LOS coverage values.
ImprovementDefense Symbology
Small enhancements for tactical graphics in GXY:
- Added the missing 'ENY' label for buffer shapes
- More symbols are using dashed strokes to represent status Planned, Anticipated and Suspect (seize,
turn...).
ImprovementDefense Symbology
LCD-6733
The NVG samples now show how to customize the style of non-military graphics.
ImprovementDefense Symbology
The NVG Industry Specific Component now supports NATO APP-6C symbols.
ImprovementDefense Symbology
TLcdAPP6ANode/TLcdMS2525bNode's names are no longer all capitals.
ImprovementDefense Symbology
Support for the military standard APP-6C has been added.
It is now possible to create and visualize TLcdEditableAPP6AObject instances using the new 20-digit SIDC codes.
TLcdAPP6ANode also exposes the new domain hierarchy.
To better cope the current and future modifier changes, TLcdEditableAPP6AObject#getPossibleSIDCModifiers() has been
introduced. The method exposes a symbol's relevant modifiers, such as the new APP-6C specific sector1 and sector2 modifiers.
ImprovementMaritime Standards
S-57 data that has time information can be now filtered using TLcdS52DisplaySettings#setDateFilterValue(Date)
ImprovementMaritime Standards
LCD-5865, LCD-6276, LCD-6269
The S-52 display settings can now be configured to enable or disable object class selection through
TLcdS52DisplaySettings#setObjectClassSelectionEnabled(boolean). More specifically, this means that the value of
TLcdS52DisplaySettings#getObjectClasses() is completely ignored in case
TLcdS52DisplaySettings#isObjectClassSelectionEnabled() yields false. This behavior mirrors the old one when the
object class property is nullified (which is also still supported regardless the value of
TLcdS52DisplaySettings#isObjectClassSelectionEnabled()). By default, object class selection is allowed.
The S52DisplaySettingsCustomizer sample has changed as well. When display category 'OTHER' is selected, the user
is allowed to select the visible object classes through a tabular user interface.
ImprovementS-63
Luciad API users can now act as ECDIS system manufacturers, and use their own hardware IDs and
manufacturer IDs. See the TLcdS63UnifiedModelDecoder#setEncryptedHardwareID javadoc
and the developer guide for more information.
Note that this functionality requires a specific Luciad license, as explained in the developer guide.
ImprovementTiling Engine
LuciadFusion now supports point-sampled elevation data.
By default, the sampling mode of the assets is preserved in the coverage, but it can be set manually as well.
Point-sampled and area-sampled assets can be mixed into either a point-sampled or area-sampled coverage.
The interpolation of values from the assets' rasters into the coverage's raster takes care of converting the values
from assets that have a different sampling mode than the coverage.
-
You can inspect the sampling mode of coverage with
TLfnRasterCoverageMetadata.getSamplingMode().
-
A coverage decoded as a LuciadFusion model offers its data as both an
ILcdEarthTileSet
and an
ALcdImageMosaic, so that it integrates with both the tile set API and the imaging API.
However, only the imaging API can accurately visualize point-sampled data.
Due to the lack of a point-sampled notion in the tile set API, the data will always be interpreted as
area-sampled, resulting in inaccuracies such as pixels which are shifted slightly out of place.
When working with point-sampled data, it is thus strongly recommended to use the imaging API.
The tile set API is only supported for backwards compatibility.
-
Point-sampled coverages have tile width and height +1 compared to their area-sampled equivalent with the same
pixel density (resolution).
Bug fixLuciadLightspeed
LCD-6784
TLcdGXYAsynchronousLayerWrapper: resolved an issue where the view would not be repainted. This could happen when
using a tiled WMS painter.
Bug fixLuciadLightspeed
LCD-6761
When TouchDarkNimbusLookAndFeel and Java 8 were used, the selection in combo boxes and lists was sometimes
indistinguishable. This is a bug in Java, but a workaround was applied. This appears most notably in the Lucy
map-centric
front-end.
Bug fixLuciadLightspeed
LCD-6184
TLsp3DMeshPainter does not do incorrect culling anymore.
Bug fixLuciadLightspeed
LCD-6706
When a ELspCreationMode is set to FREEHAND_AND_CLICK, if there is only a single
press-drag-release event chain, the creation is terminated like FREEHAND_SINGLE_SWIPE.
Bug fixLuciadLightspeed
LCD-1674
Fixed a bug in the rendering of coplanar textures used by some OpenFlight files.
Bug fixLucy (LuciadLightspeed)
LUCY-4291
AFrontEnd: the sample code has been adjusted to fix a few minor issues
-
The TLcyLucyEnvEvent for STATE_INITIALIZED is now fired when initialization is done, and not halfway through it.
-
The exit action now respects the config options specified in lucy.cfg by inserting it using
TLcyActionBarUtil#insertInConfiguredActionBars
-
The startup method was a static method, and has now been converted to a non-static one
Bug fixLuciadLightspeed
LCD-6487
ALcdObjectSelectionAction now listens for changes on its object filter.
Bug fixLucy (LuciadLightspeed)
LUCY-4256
Dockable front-end: closing Lucy when one of the application panes was floating could result in an
IllegalStateException.
Bug fixLuciadLightspeed
LCD-6466
TLcdGXYPointListPainter: in some case, artifacts could appear when selecting polylines or polygons.
Bug fixLuciadLightspeed
LCD-4021
TLcdTransverseMercator.world2lonlatOnEllipsoidSFCT could transform points outside the valid bounds to some point
inside the valid bounds. It now throws a TLcdOutOfBoundsException as expected.
Bug fixOGC Server
LCD-6640
The WCS server now respects caching headers also for XML requests.
Bug fixOGC Server
LCD-6615
The WCS server now always selects the appropriate level of detail of the source data, even when the response CRS
differs from the model reference and when no area of interest is defined.
Bug fixOGC Server
HTTP authentication errors (status code 401) thrown by an ILcdRemoteOWSModelDecoder implementation (e.g.,
to decode a remote WFS in an SLD user layer) are now correctly passed to the WMS request sender.
Bug fixAviation Standards
LCD-6854
Decoding ARINC provoked some memory leaks, these were fixed.
Bug fixDefense Symbology
LCD-7013
Installation icon of Ground Track - Installation symbols does not disappear anymore when Exercise Pending
affiliation is selected.
Bug fixDefense Symbology
Small fixes for tactical graphics in GXY:
- Some labels were not completely painted. Example: the last letter of the label was only partially visible.
- Changing the GXY view size could cause some symbols to be clipped.
Bug fixTiling Engine
LF-763
Fusing using "image/tiff" as tile format caused a memory leak in native memory, due to a native memory leak in jai.
The jai third party library has been fixed, which resolves this memory leak.
Bug fixTiling Engine
LF-755
Fixed a bug when creating assets from tree models, which affected some GRIB2 models.
Upgrade considerationLuciadLightspeed
LCD-6631
The optional RaveGeo component (com.luciad.format.ravegeo) has been removed from the standard product distribution.
This data connector was not used anymore. If you have any questions, please contact support@luciad.com.
Upgrade considerationLuciadLightspeed
LCD-6807
KML now uses apache commons compress to handle compressed KMZ content to improve compatibility with some files. This
change adds a new dependency on the commons-compress.jar file, which needs to be included in your classpath when
using the KML module.
Upgrade considerationLuciadLightspeed
Updated the version of the jai_imageio library. The new version includes fixes a
native memory leak when encoding tiffs using the deflate algorithm.
Upgrade considerationLuciadLightspeed
ILcdOpenFlightNode now extends from ILcd3DMeshNode. Any custom implementations of this interface will
have to implement this interface.
Upgrade considerationLucy (LuciadLightspeed)
The 'tileLifeTime' setting has been removed from the TLcyFusionRasterFormatAddOn configuration file. If the setting
is still present in the configuration file it will be ignored.
Upgrade considerationLuciadLightspeed
The TLspMesh3DIcon#paint() method has been made final. In case you have overwritten this method, you will get
a compile error. The behavior of this method has changed, so that any GL calls made before this method
will have no effect on the mesh rendering (e.g. by using a wrapper method).
Upgrade considerationLuciadLightspeed
LCD-6614
When using SVG based point symbolizers, the width and height of the created SVG icon is now set by width and height
of the source SVG file.
Upgrade considerationLuciadLightspeed
The LuciadFusion API was simplified to allow no more than a single coverage per model.
It is no longer possible to decode multiple coverages per model.
You may need to adjust your custom code:
-
Callers of
TLfnTileStoreModelDecoder.decode
need to be adjusted to match the method
signature. Use a single
String
instead of aString[].
-
Callers of
ALfnTileStoreModel.setCoverageIds
need to be adjusted to use
setCoverageId
instead.
-
Callers of
TLfnTileStoreModelDescriptor.getCoverageMetadatas
or
TLfnTileStoreDataSource.getCoverageMetadatas
need to be adjusted to use
getCoverageMetadata
instead.
-
Custom extensions of any of the aforementioned classes need to be adjusted to match the new method signatures.
Implementations should be adjusted to work with a single coverage ID instead of multiple ones.
There are almost no practical use cases for allowing multiple coverages per model.
In case you need it, you can still do it manually:
- Decode all the relevant coverages into their own models.
-
Get theILcdEarthTileSetCoverages from theILcdEarthTileSets of the
separate models, and combine them into a newILcdEarthTileSet.
Beware that you can only do this if their coverage structures match.
-
Put the combined
ILcdEarthTileSet
into a newILcdModel.
Upgrade considerationLuciadLightspeed
TLcdUTMUtil and TLcdUPSUtil now add leading zeros by default. These used to be stripped.
Example: 17T 630084 4833438 is now 17T 0630084 4833438 (See the extra leading 0 after the first space).
Default behavior was selected by setting numberOfDigits to -1. This is now equivalent to setting the numberOfDigits
to 7.
There is no way to restore the old behavior.
Note that TLcdMGRSFormat is only affected if FormatType.UTM_UPS was chosen and numberOfDigits was set to -1 as the
default
behavior is 7 in this case.
Upgrade considerationLuciadLightspeed
LCD-6524
ILspImageProjectionLayer now allows projecting point from the world onto the image. To support this it now has a new
unProjectPoint method which performs the inverse operation from the existing projectPoint method.
Upgrade considerationLucy (LuciadLightspeed)
ILcyLucyEnvListener: it is now clearly documented at which state transitions the listener is allowed to throw a
TLcyVetoException.
The front-ends have been adjusted to throw exceptions when a TLcyVetoException is received at an unsupported time.
Previously those exceptions were only logged, leaving Lucy in an undefined state.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-4273
All elevation data on a Lightspeed map is now styled using the same color mapping from elevation value to color.
This has the following benefits:
-
Logical behavior for the Lucy end-user as all datasets will be using the same elevation value to color mapping.
-
When loading new elevation data on the map, it will automatically be using the same elevation to color mapping
as
the already present elevation data.
-
There is a central place to adjust the color mapping for all elevation data in the UI
(see Map | Style settings... menu item).
-
There is a central place to adjust the color mapping for all elevation data in the configuration files
(see the TLcyLspStyleRepositoryAddOn.cfg file).
-
There is a central place for the API user to customize this color map. See
ALcyLspStyleRepository#setElevationColorMap.
-
When writing your own data format, you can re-use this global color mapping. See
ALcyLspStyleRepository#getElevationColorMap
and ALcyLspStyleRepository#createElevationStyler .
A consequence of this change is that the color map for elevation layers can no longer be customized through the
layer
properties panel for individual layers. You can only adjust the global elevation map through Map | Style
settings... .
New style files (*.sty) will no longer contain the color map. Loading an old style file which still contains a
color map setting
will have no effect on the global color map. The color map settings in the style file will simply be ignored.
Upgrade considerationLuciadLightspeed
LCD-6404
LuciadLightspeed no longer needs/includes the Acme library. If you need its functionality, you can download the
library
yourself, or use the JDK's ImageIO API instead.
Upgrade considerationDefense Symbology
Visualization support for speed leaders has been added for the MIL-STD 2525C and APP-6C standards.
Speed leaders are lines whose length and direction are based on an icon's speed and movement direction.
ILcdAPP6AStyle and ILcdMS2525bStyle introduce the following methods to configure speed leader properties:
- double getSpeedLeaderLengthRatio(): Returns the length ratio of the speed leader to the symbol size against the speed value
of 1m/s.
- setSpeedLeaderLengthRatio(double): Sets the length ratio of the speed leader to the symbol size against the speed value of
1m/s.
- setSpeedLeaderLength(double, ILcdISO19103Measure): Sets the length ratio of the speed leader to the symbol size against the
given measure.
Upgrade considerationDefense Symbology
LCD-6705
The style interfaces ILcdAPP6AStyle and ILcdMS2525bStyle introduce two new methods to customize vertical line
styles for symbols which have an altitude in a 3D view.
The new methods are:
- setVerticalLineEnabled(boolean): Enables/disables the vertical line for the symbols.
- isVerticalLineEnabled(): Returns whether the vertical line is enabled
Upgrade considerationDefense Symbology
LCD-639
TLcdEditableAPP6AObject#getAPP6ACode and TLcdEditableMS2525bObject#getMS2525bCode methods no longer return strings
containing null characters '\0' (instead of dashes).
To restore the original behavior, you can replace the dashes again with null characters (e.g. code.replace('\0', '-')).
Upgrade considerationDefense Symbology
The TLcdMS2525bCode2EchelonMap and TLcdMS2525bCode2AffiliationMap classes were removed.
Usages of TLcdMS2525bCode2EchelonMap can be replaced by using the following code:
String codeMask = TLcdMS2525bEchelonNode.get(ILcdMS2525bCoded aCoded).getCodeMask();
Upgrade considerationDefense Symbology
The TLcdMS2525bIcon and TLcdAPP6AIcon classes were removed. This will result in a compile error when using this
class. These errors can be resolved by using ILcdIcon instead, or down-casting to ILcdAnchoredIcon.
Upgrade considerationDefense Symbology
The TLcdDefaultMS2525bStyle#getLineProperty() and #isLine() methods were removed. It is possible to use the
ILcdMS2525bShape interface to retrieve information about the geometry of a military symbol.
This also applies to TLcdDefaultAPP6AStyle.
Upgrade considerationDefense Symbology
TLcdEditableAPP6AObject#setDefaultAPP6ACode(String) and #getDefaultAPP6ACode() are now deprecated. The following
methods can be used instead:
- TLcdEditableAPP6AObject#setDefaultAPP6ACode(String, ELcdAPP6Standard)
- TLcdEditableAPP6AObject#getDefaultAPP6ACode(ELcdAPP6Standard)
This also applies to TLcdEditableMS2525bObject.
2015.0
2015.0.12
ImprovementLuciadLightspeed
LCD-6751
TLspIconStyle now allows to define a minimum icon size in pixels for world sized icons.
ImprovementDefense Symbology
The length of the speedLabel modifier has been increased from 8 to 12
Bug fixLuciadLightspeed
LCD-6833
TLspFusionVectorLayerBuilder: a filter set on the layer using the filter() method would not be respected in all
cases.
This resulted in too many elements being painted.
Bug fixLuciadLightspeed
LCD-6832
Grid references using a mercator projection with custom latitude limits could not be formatted by
TLcdEPSGReferenceFormatter.
Bug fixLuciadLightspeed
LCD-5579, LCD-3952
Fixed incorrect scaling of non-square world sized icons when using the TLspIconStyle.
Bug fixLuciadLightspeed
LCD-6777
Fixed floating labels bug for draped lines (paths in MS2525b and NVG) on a terrain.
Bug fixLuciadLightspeed
LCD-6814
Fixed issue with the undo behavior of pointlists after their creation.
Bug fixLuciadLightspeed
LCD-5865
The ECDIS-specific WMS sample now allows filtering on object classes.
Bug fixWeather & Environment Standards
LCD-6803
Data with mercator projection is now displayed on correct coordinates. "longitude_of_projection_origin" is
taken into account while creating a mercator projection.
Bug fixDefense Standards
LCD-6797
Fixed NullPointerException that could occur when requesting the bounds of a VPF domain object.
Bug fixDefense Symbology
LCD-6811
StringIndexOutOfBoundsException in some cases when saving an NVG model.
2015.0.11
ImprovementLuciadLightspeed
LCD-6794
Support was added for EPSG:3414 and EPSG:4757.
ImprovementLucy (LuciadLightspeed)
LUCY-4310
The TLcyLspMapAddOn now allows to configure a different application pane location and title
for each map component type. Consult the TLcyLspMapAddOn.cfg file for more information.
ImprovementLuciadLightspeed
LCD-6531
Reduced the amount of temporary files created when decoding KMZ files.
ImprovementLuciadLightspeed
LCD-3595
The tiled WMS functionality in Lightspeed and GXY views can now effectively use multiple threads to request data from
the server, resulting in a significant performance increase. Previously there was at most one request to the server
at a time.
ImprovementDefense Symbology
Incorrect label alignment on military icons
ImprovementDefense Symbology
Task graphics now use a slightly larger font to painter the letters integrated in the symbol.
ImprovementMaritime Standards
LCD-6576
TLcdS57ModelDescriptor now exposes all DSID fields. The missing fields that are now available are:
- UADT: Update application date, see TLcdS57ModelDescriptor.getUpdateApplicationDate()
- COMT: Comment, see TLcdS57ModelDescriptor.getComment()
Bug fixLuciadLightspeed
LCD-6802
In case of an ALcdWMSProxy with only a configured SLD or SLD URL, it could happen that no matching map reference
was found between the client and the server.
Bug fixLuciadLightspeed
LCD-6786
A thread safety problem was fixed for TLcdGXYViewMeasureProvider. This problem could be triggered by
adding/removing a layer or by changing its visibility.
Bug fixLuciadLightspeed
LCD-6672, LCD-6785
TLspPointToPointSnapper: Fixed an issue where sometimes shapes would snap to themselves for
every single point on the map.
Bug fixLuciadLightspeed
LCD-6758
Fix title of samples.lightspeed.customization.selection sample.
Bug fixLuciadLightspeed
LCD-6499
Corrected Javadoc for TLspViewNavigationUtil.setFitMargin.
Bug fixAdvanced GIS Engine
LCD-6774
Fix a bug that caused a ClassCastException when performing an INSIDE topology check with TLcdEllipsoidalBasicBinaryTopology
or TLcdSphericalBasicBinaryTopology.
Bug fixOGC Server
LCD-6790
The server now returns valid capabilities instead of throwing a NullPointerException when no output formats are
defined.
Bug fixOGC Server
LCD-6776
The server now always deletes temporary _lmap_*.tmp files as soon as they become obsolete, to prevent cluttering the
tmp directory.
Bug fixReal-time Engine
LCD-6579
Fixed an issue with TLspRadarVideoLayerBuilder where radar feeds could exhibit
single-cell gaps in the angular direction, due to small fluctuations in the
azimuth values of the input data.
Bug fixAviation Standards
LCD-6759
Fixed ADR schema resources collision when configuring the model decoder to use a custom entity resolver for
providing
access to locally stored schema definitions. This can now be configured by using TLcdXMLEntityResolver.
Bug fixDefense Symbology
LCD-6787
The labels for the 'Minimum Safe Distance Zone' symbol were hard to read.
2015.0.10
ImprovementLuciadLightspeed
LCD-6764
The GML decoders now support decoding bounded GML features into ILcdBounded objects whose bounds are not editable.
ImprovementLuciadLightspeed
LCD-4706
The Lightspeed WMS client sample class used to perform GetFeatureInfo requests, WMSGetFeatureInfoController,
now allows to configure the amount of features to be retrieved. By default, 10 features are requested,
aligned with the GXY WMS client sample.
ImprovementDefense Symbology
The label positions of the Block, Breach, Bypass, Canalize, Clear and Penetrate shapes have been improved when
using a GXY view.
Bug fixLuciadLightspeed
LCD-6773
The builder method addInlineExternalGraphic in TLcdSLDGraphic did not produce a valid external graphic object;
the inline content was missing.
Bug fixLucy (LuciadLightspeed)
LUCY-4322
TLcyPreviewAddOn: a NullPointerException would be thrown when plugging in the preview add-on if at that moment there
was already a map available in Lucy (for example by configuring it in the TLcyLspMapAddOn.cfg config file).
This NullPointerException caused the preview add-on not to load.
Bug fixLuciadLightspeed
LCD-6762
The WMS client sample class WMSLayerList showed an inverted list of available WMS layers in the UI.
Bug fixLuciadLightspeed
LCD-6760
TLcdEllipsoidUtil#calculateCircleTangentLine() didn't use the given tolerance value. This could often lead to
no solution being found.
Bug fixLuciadLightspeed
LCD-6719
The provides created by TLcdImageModelHeightProviderFactory and TLcdImageModelMeasureProviderFactory did not fall
back to less detailed data if data was missing. As a result you could get a NaN value even though there is data
when using a model with an ALcdMultilevelImageMosaic (for example DMED).
Bug fixLucy (LuciadLightspeed)
LUCY-4317
Lucy Map Centric front-end: the recent items list in the 'Data' menu did not respect the configured item count.
It now does, by including its parent configuration file (TLcyRecentFilesAddOn.cfg).
Bug fixLuciadLightspeed
LCD-6674
Fixed drawing related problems when using a TLcdEquidistantCylindrical with a non-zero standard parallel.
Bug fixOGC Server
LCD-6756
In case of an unknown CRS, the server will indicate unknown CRS instead of null in WCS DescribeCoverage response.
Bug fixDefense Symbology
LCD-6753
Weapon/Radar Range Fans - Circular: Only the outer circle was painted.
Bug fixDefense Symbology
LCD-6746
Mil-STD 2525c: The "Fix", "Secure", "Occupy" and "Retain" symbols weren't painted using a letter anymore.
Bug fixDefense Symbology
LCD-5448
Labels are not chopped off anymore when increasing the halo of an icon in a GXY View.
2015.0.09
ImprovementAviation Standards
LCD-6645
Improved the visualization of AIXM 5.1 SafeAltitudeArea features in Lightspeed views. The features are now rendered
as filled arc
bands in 2D and 3D, together with a set of labels that express the altitude, distances and angles of the
SafeAltitudeArea's circle
sector(s).
ImprovementDefense Symbology
LCD-6707
Labels are displayed for the Emergency and Hazard icons in APP6A/B
Bug fixLucy (LuciadLightspeed)
LUCY-4313
Fixed null pointer exception when changing MS2525b symbol icon type of a PIM object.
Bug fixLuciadLightspeed
LCD-6713
TLcdLonLatHeightPolyline#getTangent2D could return an incorrect angle when called with parameter 0.0 or 1.0
Bug fixLucy (LuciadLightspeed)
LUCY-4309
When File|Open was used for the first time, the 'Open folder' panel could briefly be visible whilst it wasn't
applicable.
Bug fixLuciadLightspeed
LCD-6694
The WMS client has improved support to detect a faulty WMS service URL (e.g., a link to an HTML website),
resulting in a faster response from the API to inform the user.
Bug fixLucy (LuciadLightspeed)
LCD-6692
When the previewer is removed, the previously filtered elements from a KML layer are displayed again.
Bug fixLuciadLightspeed
LCD-6673
Fixed a WCS regression that caused the malfunction of a previously implemented improvement to rescale raster responses
from server's that do not respect the requested resolution.
Bug fixOGC Server
LCD-6722
Fixed a bug in the parsing of WMS requests with an SLD body.
Bug fixOGC Server
LCD-6667
The RectifiedGrid limits and offsetVector values in a DescribeCoverage response sometimes had unexpected signs
in case of very high resolutions.
Bug fixDefense Symbology
LCD-6690, LCD-6179
Editing the 'One-way Traffic', 'Two-way Traffic' and 'Alternating Traffic' symbols was very slow.
Bug fixDefense Symbology
LCD-6665
Fixed displacement of labels around a symbol when rotating in 3D view. With this fix, labels always
keep their relative position to the symbol.
Upgrade considerationLuciadLightspeed
LCD-6716
Updated the version of the jai_imageio library, to be able to fix a bug inf the TIFF encoder.
2015.0.08
ImprovementLuciadLightspeed
LCD-6630
ILcdModelHeightProviderFactory implementations did not choose the correct level of detail when the data was only
partially visible in the height provider's reference.
Bug fixLucy (LuciadLightspeed)
LUCY-4306
TLcyGenericMapAddOn: the selection synchronization would not work with maps which were created
before the TLcyGenericMapAddOn was plugged in.
Bug fixLuciadLightspeed
LCD-6662
Fixed an issue in decoding DATE and DATETIME columns in a GeoPackage.
Bug fixLuciadLightspeed
LCD-6650
Fixed a bug that could cause an exception when the GL_ARB_vertex_buffer_object OpenGL extension was disabled.
Bug fixLuciadLightspeed
LCD-6648
TLcdEarthGXYViewTileSet did not handle tiles that cross the 180 degree meridian correctly. As a result processing
such data with LuciadFusion would give incorrect images for these tiles.
Bug fixLuciadLightspeed
LCD-6628
Transforming bounds between geodetic and grid references is more precise when using small bounds that wrap-around
the date line, or lie partially outside the projection.
Bug fixLucy (LuciadLightspeed)
LCD-5901
Fixed another issue when obfuscating and preverifying Lucy when not all of the optional components are available.
Bug fixDatabase Connectors
LCD-6687
TLcdOracleSpatialModelDecoder kept one connection always open even if alwaysCloseConnection property was set true.
Bug fixOGC Server
LCD-6534
The validation of an OGC filter has been made less strict so that property names with "" as default namespace match any
namespace.
Bug fixWeather & Environment Standards
LCD-6656
Fixed issue; icons are not displayed in 3D with a grid reference which has a unit of measure value different than 1.
Bug fixDefense Symbology
LCD-6668
Fixed an ArrayIndexOutOfBoundsException that occurred when drawing new security symbols in NVG.
Bug fixDefense Symbology
LCD-6638
Fixed alignment of labels with a symbol which has height in 3D view.
Bug fixInfrastructure Standards
LCD-6680
TLcdDGNGXYLineStyle, TLcdDGNGXYFontStyle and TLcdDGNGXYFillStyle setupGraphics now work again if you pass null GXY context.
Bug fixTiling Engine
LF-738
Fixed a bug in the progress computation of WMTS fusion.
2015.0.07
Bug fixLuciadLightspeed
LCD-6595
TLsp2DPointListEditor: Fixed issue where creating a pointlist using ELspCreationMode.FREEHAND_SINGLE_SWIPE would remove
a point when pressing the right mouse button.
2015.0.06
ImprovementLucy (LuciadLightspeed)
LUCY-4292
TLcyBingMapsAddOn: it is now possible to load BingMaps data as background data on each map.
Consult the documentation in TLcyBingMapsAddOn.cfg for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-4302
Table view: opening the table view for a non-selectable layer would make the layer immediately selectable.
Now the layer is only set to selectable when you select something in the table, and the table view synchronizes
this selection with the layer. The change occurred in the
samples.lucy.tableview.TFitCenterSelectionActiveSettableSupport#applyTableSelectionOnLayer
method.
ImprovementLuciadLightspeed
LCD-6516
It is now possible to specify the offset (in pixels) from the grid line or view edge for MGRS labels
(TLspMGRSGridLayerBuilder), see TLspMGRSGridStyle#labelGridOffset() and TLspMGRSGridStyle#labelEdgeOffset().
ImprovementLuciadLightspeed
LCD-6520
It is now possible to use a horizontal label orientation for MGRS labels (TLspMGRSGridLayerBuilder),
see TLspMGRSGridStyle#labelOrientation().
ImprovementLucy (LuciadLightspeed)
LUCY-4297
The TLcyDebugAddOn can now show statistics about the GL resource usage, similar to what the Lightspeed
samples do.
ImprovementLuciadLightspeed
LCD-6098, LCD-3463
The license checking mechanism now supports IP- and MAC addresses of network interfaces whose name does not start
with 'eth'.
ImprovementLuciadLightspeed
LCD-6544
The XML capabilities decoder has been made less strict with respect to the LegendURL
XML element position. By definition, this element is positioned within a WMS layer style element;
however, some servers position it within a WMS layer element.
ImprovementLuciadLightspeed
LCD-6553
The XML capabilities decoder has been made less strict with respect to custom
extensions found in the WMS capabilities.
ImprovementLuciadLightspeed
LCD-6555
Added support to automatically handle server redirects in case the new URL uses a different protocol
(e.g., HTTP to HTTPS). Automated redirects within the same protocol were already supported.
ImprovementReal-time Engine
LCD-6597
TLspContinuousLabelingAlgorithm now doesn't make labels for objects closely outside the view border invisible.
ImprovementAviation Standards
LCD-6570
The transition to a FA, FC or FD leg will now try arrive on the line defined by the fix and the course of the leg instead
of just changing the course.
Bug fixLuciadLightspeed
LCD-6623
TLcdGXYImagePainter could update indefinitely for ALcdImageMosaic objects that do not implement ILcdEarthTileSet.
Bug fixLuciadLightspeed
LF-740
Some bugs were fixed when copying coverages using
TLfnTileStoreUtil.copyCoverage
and
copyCoverageTileData.
A more user-friendly method
copyCoverage(ALfnCoverage aSource, ALfnTileStore aTarget, String aNewId, ILfnProgressCallback aCallback)
was introduced to replace the deprecatedcopyCoverageTileData.
Bug fixLuciadLightspeed
LCD-6614
TLcdSVGIcon icon width and height are set from defined width and height XML properties instead of the XML element
which defines the shape.
Bug fixLuciadLightspeed
The offset (defined in pixels) passed to the TLspLonLatGridStyler#setPosition() wasn't always interpreted
correctly. For example, when specifying an offset of 4 pixels, the offset was interpreted as 8 pixels instead.
To keep the default behavior of the lon lat grid labels the same, the default offset was modified.
Bug fixLuciadLightspeed
LCD-6607
TLspMGRSLayerBuilder: part of the overlay label was clipped away when using some fonts/font sizes.
Bug fixLuciadLightspeed
LCD-6591
Added support for SLD or SLD URL configurations on ALcdWMSProxy that solely consist of user-defined layers.
Bug fixLuciadLightspeed
LCD-6588
ALcdBalloonManager: when selecting a balloon without arrow, the arrow of the previously selected balloon could still
be visible.
Bug fixLuciadLightspeed
TLcdUTMUtil: using -1 as numberOfDigits could result in invalid UTM Strings. Also, trying to parse UTM strings
with a negative coordinate now throws an exception as expected.
Bug fixLuciadLightspeed
LCD-6585
TLcdEPSGReferenceFormatter now throws IllegalArgumentException rather than ClassCastException, when formatting an
unknown reference, as stated in the javadoc.
Bug fixLuciadLightspeed
LCD-6582
Raster layers with type BACKGROUND and ALcdImage domain objects containing elevation data were not rendered
correctly.
Bug fixLuciadLightspeed
LCD-5918
In GXY views, SVG icons which are linked as external graphics from an SLD stylesheet,
and which have a width or height specified in a unit of measure that corresponds to a real-world distance such as mm, cm,
or in, are now drawn so
that those dimensions correspond to actual distances on the map.
A practical result is that the icon's size on the screen will change as the scale of the map changes.
Bug fixLuciadLightspeed
LCD-6577
ALcdBasicImage getPixelSizeX/getPixelSizeY returned an inaccurate value for point-sampled images.
Bug fixOGC Server
LCD-6503
The LRU cache used by the sample WMS server model provider class, DynamicModelProvider, could cause
a NullPointerException in case of cached raster models.
Bug fixS-63
LCD-5808
The S-63 decoder could fail with a cipher error when using JDK 1.7.0_71 or 1.8.0_25 or higher.
This is now resolved.
Bug fixTiling Engine
LF-733
Fixed a bug which could provoke a license error when an S-63 license is absent while the
lcd_ecdis_s63.jar
is present (for example in the WAR file).
Upgrade considerationAviation Standards
LCD-6624
The method copyExtraModelDescriptor from TLcdDAFIFModelDecoder was wrongly added to the public API and is now removed.
2015.0.05
ImprovementOGC Server
The OGC web service front-end now automatically detects the servlet location (protocol, host name and port),
so that this information no longer needs to be hard-coded in the JSON service description files.
Bug fixLuciadLightspeed
LCD-6565
A Spatialite, GeoPackage or LVDB model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
A Informix Geodetic model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
An MSSQL model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
An Oracle model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
A DB2 model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
An Informix Spatial model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
Bug fixDatabase Connectors
LCD-6565
A Postgis model skipped applyOnInteract2DBounds if the given bounds' width OR height were zero.
This could cause missing elements that had zero width or height but still were in the same location.
Now, it does a spatial query even when width and height are zero.
2015.0.04
ImprovementLuciadLightspeed
LCD-4728
TLspSelectController now supports rectangle selection in 3D.
ImprovementLuciadLightspeed
LCD-6539
TLcdImageBuilder now supports changing the metadata (for example bounds or reference) of an ALcdBasicImage.
ImprovementLuciadLightspeed
LCD-6315
ALcdScaleIndicator: it is now possible to change the height, width and colors of the scale indicator bar.
ImprovementAviation Standards
LCD-5949
The different DAFIF models exposes currently a model descriptor that implements the new interface ILcdDAFIFModelDescriptorSupport.
Model descriptors have now the effective and expiration date of the decoded models. These dates
come from the VERSION file that can be present next to the root of a DAFIF data set.
ImprovementAviation Standards
LCD-5948
The different models decoded by TLcdARINCDecoder exposes currently a model descriptor that implements the new interface ILcdARINCModelDescriptorSupport.
Model descriptors have now the expiration date and the cycle date of the decoded models.
Bug fixLucy (LuciadLightspeed)
LUCY-4294
Labels of ASTERIX/ASDI tracks no longer appear on top of the track icon when using a Lightspeed view.
Bug fixLuciadLightspeed
LCD-6561
TLcdDatabaseModel.applyOnInteract2DBounds now stops when the function returns false.
Bug fixLuciadLightspeed
LCD-6557
Fixed combined gestures in TLspTouchNavigateController.
Bug fixLucy (LuciadLightspeed)
LUCY-4287
Adjusting the config file to remove all items from e.g. the map toolbar will result in a map with an invisible
toolbar
(because the toolbar is empty). However, when decoding a workspace the empty toolbar would be visible.
This has been corrected. Visibility of the map action bars (status bar, tool bar and menu bar) is now determined by
the presence of items in the action bar, and no longer by the workspace.
Bug fixLucy (LuciadLightspeed)
LUCY-4282
Fusion elevation data could have a black border when visualized on a Lightspeed view instead of a transparent
border as is the case in the fusion client sample. Lucy now also shows a transparent border.
Bug fixLuciadLightspeed
LCD-6551
Improved the support for the SynthLookAndFeel.
Bug fixLuciadLightspeed
LCD-6323
Allow styling of editing handles in TLspRulerController. This is now possible by passing stylers to
TLspRulerController.setHandleStyler and TLspRulerController.setFocusHandleStyler.
Bug fixLuciadLightspeed
LCD-6547
TLcdGeoTIFFModelDecoder: fixed unintended integer division rounding down to 0.
Bug fixLuciadLightspeed
LCD-6541
Raster layer did not refresh missing tiles in an ALcdImageMosaic when the geometry is a mosaic and there is a style
or model changes that changes the geometry. As a result some tiles could be missing in the view in this case.
Bug fixAdvanced Raster Connectors
LCD-6540
The ECW decoder could not parse some UTM grid references in the southern hemisphere.
Bug fixDatabase Connectors
LCD-6561
TLcdDatabaseModel.applyOnInteract2DBounds now stops when the function returns false.
Bug fixRadar Connectors
LCD-6542
TLcdASTERIXCategory62: the "Mode 4 Age" field was decoded as 16 bits, it is now decoded as the correct 8 bits.
2015.0.03
ImprovementLuciadLightspeed
LCD-6502
Image projection layers now support TLspPaintedObjectsTouchQuery.
ImprovementLuciadLightspeed
LF-728
It is now possible to disable auto-detection of a TLfnFileSystemTileStore's .ctr file version
by setting system property "-Dcom.luciad.fusion.tilestore.autoDetectCtrVersion=false".
You should only consider this if you're sure your Tile Store was created with LuciadFusion version 2012.0 or newer.
In case of 1000s of coverages, disabling this check may significantly reduce startup time.
ImprovementLuciadLightspeed
LCD-6489
TLspPointToPointSnapper now supports having certain types of objects snap to themselves. This allows you to (for
instance) create a closed polyline during creation.
ImprovementAdvanced Raster Connectors
LCD-6490
Added support for WD and WGC (WGS-72) datums.
ImprovementReal-time Engine
Radar video layers now support antialiasing of the video feed. This reduces
"shimmering" artifacts when displaying high-frequency data while zoomed out.
Antialiasing is disabled by default, but can be configured by a quality hint
which was added to TLspRadarVideoStyle.
Bug fixLuciadLightspeed
LCD-6533
When using TLspOnPathLabelingAlgorithm in 3D for lines with height, the label orientation was unstable.
Bug fixLucy (LuciadLightspeed)
Customizer panels created by TLcyEditableAPP6AObjectCustomizerPanelFactory didn't accept domain objects
that implement ILcdEditableAPP6ACoded anymore.
Bug fixLuciadLightspeed
Fixed a bug in icon painting where icons could stop rendering correctly if their corresponding
texture was evicted from the view's GL resource cache.
Bug fixLuciadLightspeed
LCD-6493
Using TLspLonLatGridLayerBuilder or TLspMGRSGridLayerBuilder in combination with a TLcdGeodetic reference didn't
work as expected.
Bug fixLuciadLightspeed
LCD-6492
Fixed a deadlock that could sometimes occur while creating shapes with TLspCreateController.
Bug fixLuciadLightspeed
LCD-6479
When using the default labeling algorithm for closed shapes (like polygons), labels could start fading
in and out continuously.
Bug fixLuciadLightspeed
LCD-4286
TLcdEPSGReferenceFormatter could return SR-ORG codes instead of the expected EPSG code.
Bug fixLuciadLightspeed
LCD-6485
TLcdVVJPanel: cursor change events only contained the left point, not the right point.
Bug fixLuciadLightspeed
LCD-6526
Fixed an error when using a large lookup table (for example in TLcdColorConvertOp) with the OpenCL implementation of
ALcdImagingEngine.
Bug fixReal-time Engine
LCD-6482
Plot layers did not clean up all their model listeners. As a result some of the layer's memory could not be released
as long as you reference the plot model.
Bug fixReal-time Engine
LCD-5930
Plot layers did not query the stylers again after the model has changed.
2015.0.02
ImprovementLuciadLightspeed
LCD-2830
TLspCreateController, TLspTouchAndHoldActionController and TLspKeyActionController now check whether their delegation actions
are enabled (ILcdAction.isEnabled) before invoking their actionPerformed() method.
Bug fixLuciadLightspeed
LCD-6482
Plot layers did not clean up all their model listeners. As a result some of the layer's memory could not be released
as long as you reference the plot model.
Bug fixLuciadLightspeed
LCD-6403
Ruler controller no longer keeps measurements selected when creating a new one. This avoids confusion when styling measurements.
2015.0.01
ImprovementLucy (LuciadLightspeed)
LUCY-2727
Added translations for various progress messages of TEA calculations.
ImprovementLuciadLightspeed
LMAP-4763, LCD-816
Fixed problem for KML files that contain NaN or infinity. These files can now be decoded with fallback coordinates.
ImprovementLucy (LuciadLightspeed)
LUCY-4262
Viewshed calculation with unsupported shapes now logs a warning on the console, and skips the elements.
ImprovementLuciadLightspeed
LCD-2644
The default snapper in the edit and create controllers now also snaps to the centerpoint of an arcband.
ImprovementLuciadLightspeed
LCD-6240
Improved parsing of incorrectly formatted dates.
ImprovementLuciadLightspeed
A new utility method findWMSNamedLayer has been added to ALcdWMSProxy, which allows to find a WMS layer in
the WMS capabilities by name.
ImprovementLuciadLightspeed
LCD-6355
TLcdOpenAction had a threading issue where dialogs could be shown in the worker thread, rather than the event
dispatch thread.
ImprovementOGC Server
LCD-6404
The acme-1.0.jar library dependency in the WMS server has been removed.
It was used in the past by TLcdGXYViewGIFEncoder and TLcdGXYViewSWFEncoder to support GIF map generation in the WMS
when a Java version older than 1.6 was used; however, Java 1.7 is the minimum required version in v2015.
ImprovementTerrain Analysis Engine
LCD-1838
Improved default tooltips of TLcdTerrainProfileController and TLcdTerrainRulerController.
ImprovementTerrain Analysis Engine
LCD-5285
Improved the behavior of TLspLOSCalculator with respect to native memory used by OpenCL. Native memory is now
recycled instead of re-allocated for OpenCL parameters.
ImprovementTerrain Analysis Engine
LCD-6328
TLspLOSCalculator now checks for the case when the altitude provider returns NaN for the centerpoint of the LOS Coverage.
ImprovementAviation Standards
LCD-6469
For consistency, new model descriptors are added for the following DAFIF models:
- ILSDME
- Localizer
- Glide Path
- Marker
- VFR Route
- VFR Offset
- Refueling track
- Refueling Airspace
Bug fixLuciadLightspeed
LCD-6473
Fixed possible exception when setting a ColorModel that is not an IndexColorModel on a TLspRasterStyle.
Bug fixLuciadLightspeed
LCD-6470
Parsing SR-ORG codes using TLcdEPSGReferenceParser didn't work anymore.
Bug fixLuciadLightspeed
LCD-6468
TLcdGeoJsonModelDecoder#decode threw IllegalArgumentException instead of IOException when an exception occurred
during decoding.
Bug fixLucy (LuciadLightspeed)
LUCY-4275
The NVG realtime add-on was plugged in, even when the NVG jar is not on the classpath. This could for example
cause NoClassDefFoundErrors.
Bug fixLucy (LuciadLightspeed)
LUCY-4265
Ensured that the TEA addons create their height providers on the EDT thread. This fixes a problem when loading
certain workspaces containing TEA-based layers.
Bug fixLuciadLightspeed
LCD-5958
Painting labels in view-space (i.e. using a null model reference) now works as expected.
Bug fixLucy (LuciadLightspeed)
LUCY-4268
TLcyBingMapsAddOn: fixed a possible exception when using proxy authentication.
Bug fixLuciadLightspeed
LCD-6402
The WMS painters were not capable of coping with a set of requested WMS layers that did not share a common
reference.
Bug fixLuciadLightspeed
LCD-6234
Fixed issue with secure "https://" URL's linking to archived KMZ files. These are now correctly parsed as an archived
file instead of a KML file.
Bug fixLuciadLightspeed
LCD-6239
Fixed an issue that would cause certain calls to handle styling to give the geometry of the handle as the object
parameter for styling, instead of the handle itself.
Bug fixLucy (LuciadLightspeed)
LUCY-4266
TLcyDrawingAddOn: entering a bearing value of more then 180 degrees in the customizer panels would not work.
The value would simply be reverted.
Bug fixAdvanced Raster Connectors
LCD-6440
TLcdECWModelDecoder did not handle images with more than 3 bands. Such images can now be decoded correctly but only
the first 3 bands are available.
Bug fixOGC Server
LCD-6347
Fixed a NullPointerException which could happen when a custom ILcdModelEncoder implementation created and
subsequently closed more than one OutputStream using a single given ILcdOutputStreamFactory.
Bug fixReal-time Engine
Radar video layers were made more robust in their handling of missing or
out-of-order data records.
Bug fixTerrain Analysis Engine
LCD-3397
Fixed incorrect references in the Tea developer guide to point to correct samples.
Bug fixTerrain Analysis Engine
LCD-6326
Improved LOSLayerFactory.LOSModelEventMediator sample code to correctly handle model changes in the Lightspeed LOS sample.
Bug fixAviation Standards
LCD-4630
For ILcdRoute that contain one polyline only, TLcdGXYRoutePainter will set the anchor point to the middle of the polyline,
which improves the pin location for labels.
Bug fixDefense Standards
LCD-4259
TLcdNITFModelDecoder can now decode JPEG data with padding bytes.
Bug fixInfrastructure Standards
LCD-6465
Added a workaround to fix font size and position when using symbol fonts.
Bug fixInfrastructure Standards
LCD-6464
Objects painted in color 0 (white / foreground color) are now inverted to black when the view's background color is near white.
Note that TLcdDGNLevelSymbology.getColor and getFillColor now have an overloaded version that does this. Other overloaded
versions are deprecated. Make sure to use the correct versions if you manually set colors.
Bug fixInfrastructure Standards
LCD-6463
Objects painted in color 255 (background color) are now painted using the view's background color instead of black.
Bug fixRadar Connectors
LCD-6322
TLcdASTERIXLiveDecoder is now more robust against ASTERIX category 240 records that arrive out of order.
Upgrade considerationDefense Symbology
LCD-6454
Some nested classes from TLcdNVG15/20-shapes were incorrectly public and are now private.
2015.0
ImprovementLuciadLightspeed
LCD-4326
Some editors can change their creation behavior to use free-hand drawing. The affected editors are:
- TLsp2DPointListEditor
- TLspShapeEditor
- TLspSurfaceEditor
- TLspCompositeCurveEditor
- TLspGeoBufferEditor
ImprovementLucy (LuciadLightspeed)
It is now possible to add a lon-lat or MGRS grid layer to the map using TLcyLspGridAddOn.getAddGridActionForMap()
or TLcyLspMGRSGridAddOn.getAddGridActionForMap().
ImprovementLuciadLightspeed
LCD-6311
The SQLite additional component no longer depends the public domain ForkJoin jsr166y-20130109.jar, since
the ForkJoin framework is now part of Java since 1.7.
ImprovementLuciadLightspeed
An abstract wrapper class
ALfnTileStoreWrapper
was added to the API to facilitate the development
of custom
ALfnTileStore
implementations that wrap another instance.
ImprovementLuciadLightspeed
To allow user data on any resource, the hierarchy of resource classes was now completed to mimic that of their
metadata:
- ALfnResource
(new)
- ALfnTheme
(new)
- ALfnAsset
- ALfnCoverage
The user data API is primarily intended for internal use by replication.
The asynchronous APIs of the resources has been further developed to replace
ILfnFailureHandler
and its extensions with the more user-friendlyILfnCallback.
In this respect, a new extension
ILfnProgressCallback
was added for long-running asynchronous
tasks that report intermediate progress.
ImprovementLuciadLightspeed
TLcdEarthArrowIcon now doesn't paint an icon anymore when the STRENGTH_2D Parametrization is used and both
parameters are 0.
ImprovementLuciadLightspeed
On Windows systems with NVidia GPUs, Lightspeed now automatically disables the
"threaded optimization" setting in the NVidia drivers. This setting, when enabled,
has been known to cause severe performance problems for LuciadLightspeed. To prevent
Lightspeed from modifying the driver settings, set the system property
com.luciad.view.opengl.binding.retainNVIDIAThreadedOptimizationsSetting.
ImprovementLucy (LuciadLightspeed)
The ruler controller now displays the azimuth of each segment.
ImprovementLucy (LuciadLightspeed)
Improved the default GRIB raster coloring: the used colors are now less obtrusive and more consistent.
ImprovementLucy (LuciadLightspeed)
LUCY-4250
TLcyMapAddOn and TLcyLspMapAddOn now enforce a configurable minimum and maximum map scale. More information can be
found in the configuration files of the
respective add-ons.
ImprovementLucy (LuciadLightspeed)
LUCY-4238
TLcyFormatBarAddOn now has API to obtain the active settable responsible for showing/hiding the format bar.
See TLcyFormatBarAddOn#getFormatBarActiveSettableForMap for more information.
ImprovementLuciadLightspeed
TLcdGXYImageIconPainter was added. This painter makes it possible to paint ALcdImage objects as a
regular icon grid, using ILcdParameterizedIcon.
ImprovementLuciadLightspeed
An implementation of ILcdParameterizedIcon that displays numeric values was added, TLcdNumericParameterizedIcon.
ImprovementLuciadLightspeed
LCD-6202
Raster layers now also support explicit ordering for the elements in a single layer. You can configure this using
TLspRasterStyle's Z-order property.
ImprovementLuciadLightspeed
LCD-6173
The performance of TLcdAlbersEqualAreaConic was improved. The lonlatheight2worldOnEllipsoidSFCT() and
world2LonLatOnEllipsoid() methods are now 20% to 40% faster on average.
ImprovementLucy (LuciadLightspeed)
API was added to register ILcdLayerMeasureProviderFactory instances on the formats.
- ALcyFormat#createLayerMeasureProviderFactory()
- TLcyCompositeLayerMeasureProviderFactory
The same applies to the ALcyGLFormat and ALcyLspFormat classes.
ImprovementLucy (LuciadLightspeed)
The different ASTERIX add-ons now support ASTERIX category 8 data.
ImprovementLucy (LuciadLightspeed)
TLcyNVGFormatAddOn, TLcyLspNVGFormatAddOn, TLcyNVGRealtimeAddOn: these 3 new add-ons provide support
for the NVG format.
The first add-on provides support for decoding NVG data and visualizing it on a GXY maps,
the second for displaying data on a Lightspeed map,
and the third integrates time-dependent NVG 2.0 data with the previewer add-on.
ImprovementLuciadLightspeed
TLcdAdvancedMapRulerController and TLcdMapTouchRulerController now enable anti-aliasing when painting the
measurements.
ImprovementLuciadLightspeed
TLcdAdvancedMapRulerController and TLcdMapTouchRulerController can now paint a halo around measurement lines. See
the setHaloEnabled, setHaloThickness and setHaloColor methods.
ImprovementLuciadLightspeed
LCD-5465
TLspRulerController now has a setDisplayAzimuth(boolean) method that can be used to easily paint an azimuth label
for every segment of the measurement. The ruler controller also paints an arrow in the middle of every line segment
when the azimuths are displayed.
ImprovementLuciadLightspeed
LCD-5465
TLcdAdvancedMapRulerController and TLcdMapTouchRulerController now paint an arrow in the middle of every measurement
line
segment when setDisplayAzimuth(true) is called.
ImprovementLucy (LuciadLightspeed)
The number of menu items in the recent files menu increased to 10 by default. If needed, the property can be found
in lucy/recentfiles/TLcyRecentFilesAddOn.cfg.
ImprovementLuciadLightspeed
LCD-6090
The performance of the contains2D and contains3D methods for geodetic and rhumb polygons has been improved.
ImprovementLuciadLightspeed
LCD-5977
All ILcdGXYView implementations now support setting a different scale along the X and Y axes.
This allows changing the aspect ratio of a view.
ImprovementLuciadLightspeed
TLcdGeorefFormat was added. This format can be used to parse Georef strings as point and vice versa.
ImprovementLuciadLightspeed
TLspSurfaceEditor can now return a create handle for surfaces that consist of a single exterior ring.
ImprovementLuciadLightspeed
LCD-4231
Raster layers now process some additional data outside of the view. This reduces the popping effect while panning or
zooming. As a result you may experience a somewhat lower performance. You can configure the size of the border with additional
raster data on
TLspRasterLayer or TLspRasterLayerBuilder. To revert to the old behavior, for example, add
TLspRasterLayerBuilder.borderFactor(0.0) or TLspRasterLayer.setBorderFactor(0.0).
ImprovementLuciadLightspeed
LCD-5837
TLspSurfaceEditor now delegates to more specific editors when a surface consists of only one exterior ring.
This is now the case for composite curves, pointlists, arcbands, ellipses and circles.
ImprovementLuciadLightspeed
LCD-6027
Layers that become visible when you are flickering with TLspFlickerController are now painted immediately, without temporal
visual artifacts due to asynchronous tile retrieval, for example. Such artifacts could occur after panning or zooming the
map and toggling the visible layer index
with the flicker controller.
ImprovementLuciadLightspeed
LCD-6027
Layer queries now correctly consider swiped and flickered layers. This means that, for example, querying the value of a raster
in the swiped area
will not return any results anymore.
ImprovementLuciadLightspeed
LCD-6075
TLcdGXYSetControllerAction and TLspSetControllerAction now automatically update the ILcdAction#SELECTED_KEY value
based on whether their respective controllers are active or not.
This is automatically picked up by Swing components such as JToggleButton.
ImprovementLuciadLightspeed
Georef grids can now be displayed in a Lightspeed view with the new TLspGeorefGridLayerBuilder.
This is demonstrated in the grid sample.
ImprovementLucy (LuciadLightspeed)
A new add-on, TLcyLspGeorefGridAddOn, allows visualizing Georef grids on Lightspeed maps.
ImprovementLucy (LuciadLightspeed)
LUCY-4202
The native splash-screen, when specified, is no longer replaced by our own splash-screen.
Progress notifications are painted on top of the native splash-screen instead.
Note that the native splash-screen disappears as soon as a dialog is shown. If your add-on shows a dialog in the
plugInto method, you might want to use the non-native splashscreen (see lucy.cfg file).
ImprovementLuciadLightspeed
Added support for non-tiled painting of WMS data in a Lightspeed view. To enable this feature you must use the
TLspWMSLayerBuilder. You can find an example in samples.wms.client.lightspeed.WMSLayerFactory.
ImprovementLuciadLightspeed
LCD-5924
TLcdFileOutputStreamFactory now accepts local file system URI destinations, which start with file://.
ImprovementLuciadLightspeed
TLcdGXYShapePainter now has a roundness setting. This setting allows controlling the roundness factor used
to render corners of polygons or polylines.
ImprovementLuciadLightspeed
LCD-384
The new class TLcdSVGIcon allows visualizing SVG icons.
ImprovementLuciadLightspeed
LCD-4139
Raster layers with layer type interactive now support style target providers. You can find all details in the
documentation of TLspRasterLayerBuilder and TLspRasterLayer.
ImprovementLucy (LuciadLightspeed)
TLcyDimensionalFilterAddOn provides a GUI to filter multidimensional formats such as NetCDF.
ImprovementLucy (LuciadLightspeed)
TLcyNetCDFFormatAddOn, TLcyLspNetCDFFormatAddOn, TLcyNetCDFRealtimeAddOn: these 3 new add-ons provide support
for the NetCDF format.
The first add-on provides support for decoding NetCDF data and visualizing it on a 2D map,
the second for displaying NetCDF data on a 3D map,
and the third integrates time-dependent NetCDF data with the previewer add-on.
Refer to the reference documentation of TLcdNetCDFModelDecoder for more information about the supported files.
ImprovementLuciadLightspeed
The new package com.luciad.multidimensional describes multidimensional data, such as weather measurements for
different heights and/or dates.
The data modeling, data manipulation and transformation to LuciadLightspeed shapes or images is format-specific.
ImprovementLuciadLightspeed
A new data type annotation, TLcdHasGeometryAnnotation, allows specifying that an object's geometry is contained
in one or more of its properties. This annotation is mainly used to model ILcdDataObject domain objects that do
not extend from ALcdImage, see ALcdImage#fromDomainObject(). All API classes that support ALcdImage domain objects,
such as TLcdGXYImagePainter, TLspRasterLayerBuilder, and TLcdGeoTIFFModelEncoder, now support these annotated
domain objects as well.
ImprovementLuciadLightspeed
The notion of a sampling mode was added to raster coverages and assets.
ImprovementLuciadLightspeed
LCD-5823
Improved visual rendering quality of draped layers in cases where the terrain has high elevation.
ImprovementLuciadLightspeed
ALcdImage objects can now indicate whether their pixel data is of a point-sampled or
area-sampled nature, using the new ELcdImageSamplingMode enumeration. The raster format
decoders set the sampling mode correctly. It is also taken into account by
TLcdImageHeightProvider. The "Working with images" chapter in the developer's guide provides
more information.
ImprovementLuciadLightspeed
It is now possible to set a TLcdColorMap on TLspRasterStyle.
ImprovementLuciadLightspeed
ILcdLayerMeasureProviderFactory was added. This factory allows creating measure provider instances
based on a layer. The TLcdGXYImageLayerMeasureProviderFactory implementation was also added. It can handle GXY
layers that contain models with ALcdImage elements.
ImprovementLuciadLightspeed
TLspImageLayerMeasureProviderFactory was added. This layer measure provider factory can handle ILspLayer
instances that contain models with ALcdImage elements.
ImprovementLuciadLightspeed
TLspRasterWorldTouchInfo now also contains the raw raster data and the band semantics (if available).
ImprovementLuciadLightspeed
ALcdImagingEngine#getImageDataReadOnly(..) method was added. This method is potentially more efficient than
ALcdImagingEngine#getImageData(..), especially if no processing is necessary to produce the data.
ImprovementLuciadLightspeed
TLcdImageModelMeasureProviderFactory was added. This model measure provider factory makes it possible to create
an ALcdMeasureProvider for models containing elements of the ALcdImage type.
ImprovementLuciadLightspeed
TLspViewMeasureProvider now avoids calling ILcdModelMeasureProviderFactory when possible. This improves the
performance when using slow ILcdModelMeasureProviderFactory implementations or measure providers that
perform caching.
ImprovementLuciadLightspeed
LCD-5710
Assets now also have a size in bytes and a corresponding statistic.
When an asset has sources in Tile Store, its size will be non-zero.
ImprovementLucy (LuciadLightspeed)
LUCY-4164
TLcyMapEditUnitAddOn: the configuration file now allows to add your own lon lat point formats.
For convenience, the lon lat point formats have been moved to a separate configuration file which
is included from the add-on's configuration file.
Consult the TLcyMapEditUnitAddOn_LonLatPointFormats.cfg file for more information.
The changes in the configuration options might cause certain formats which were previously hidden
to re-appear in the UI. This can be resolved by replacing the
includeConfig=lucy/map/TLcyMapEditUnitAddOn_LonLatPointFormats.cfg
line in the map_units.cfg file with
includeConfig=lucy/map/TLcyMapEditUnitAddOn_LonLatPointFormats_Legacy.cfg
This restores the old behavior.
ImprovementLuciadLightspeed
LCD-4687
ALspStyleCollector#style() and ALspStyleCollector#styles() now throw an exception when a null style is passed.
This avoids an obscure NullPointerException being thrown later on in an other part of the code.
ImprovementOGC Server
LCD-1097
The JSP-based front-end delivered with the OGC web services sample has been replaced by a new JavaScript-based
front-end that gives access to the various services and example requests. This removes the JSP dependency from the
sample.
ImprovementOGC Server
LCD-1097, LCD-1103
The JSP-based front-end delivered with the OGC web services sample has been replaced by a new JavaScript-based
front-end that gives access to the various services and example requests. This removes the JSP dependency from the
sample.
ImprovementOGC Server
LCD-6176
To support transaction requests containing data defined in a custom data format, it is now possible to register
one or more data models via the constructor of TLcdWFSTransactionRequestHandler. A typical use case is the set
up of an OGC WFS-T, capable of receiving AIXM 5 data.
ImprovementWeather & Environment Standards
TLcdGRIBArrowIcon now doesn't paint an icon anymore when the "U_V" type is used and both
GRIB values are 0.
ImprovementWeather & Environment Standards
TLcdGRIBGXYPainterProvider/TLspGRIBLayerBuilder: improved the default GRIB raster coloring:
the used colors are now less obtrusive and more consistent.
ImprovementWeather & Environment Standards
The NetCDF Industry Specific Component adds support for decoding NetCDF files and visualizing them
in a Lightspeed view or in a GXY view. For more details, see:
- The NetCDF Developer's Guide
- TLcdNetCDFModelDecoder to decode NetCDF files containing rectilinear grids with
equally-spaced coordinates. The decoder follows the Climate and Forecast conventions.
- TLspNetCDFLayerBuilder to visualize NetCDF models in a Lightspeed view.
- TLcdNetCDFGXYPainterProvider to visualize NetCDF models in a GXY view.
- GXY and Lightspeed samples in the samples.decoder.netcdf package.
ImprovementAviation Standards
LCD-6148
Improved visualization of point based vertical structures in 3D views. They are now rendered as cylinders, whose
dimensions
are determined based on the vertical structures properties.
ImprovementDefense Standards
The NITF and ECRG decoders now support multiband imagery and arbitrary pixel depths.
Full support is available via the imaging API, legacy rasters are limited to best-effort
RGB or grayscale decoding.
ImprovementDefense Symbology
LCD-6294
When you create a symbol with a fix number of points, you don't have to double click to end the creation when all points
are created.
ImprovementDefense Symbology
The new NVG Industry Specific Component introduces support for decoding and encoding NVG files, and for visualizing
them
in a Lightspeed view or in a GXY view. For more details, see:
- The NVG Developer's Guide
- TLcdNVGModelDecoder to decode NVG files 1.4, 1.5 and 2.0 files.
- TLcdNVG15ModelEncoder and TLcdNVG20ModelEncoder to encode NVG 1.5 and 2.0 files.
- TLspNVGLayerBuilder to visualize NVG models in a Lightspeed view.
- TLcdNVGGXYPainterProvider to visualize NVG models in a GXY view.
- GXY and Lightspeed samples in the samples.symbology.nvg package.
ImprovementMaritime Standards
LCD-6279
The ECDIS decoders now ignore missing cell files in a catalog, issuing only a warning instead of throwing exceptions.
You can override this behavior using TLcdS57/S63UnifiedModelDecoder.setInvalidCellExceptionHandler.
ImprovementRadar Connectors
TLcdASTERIXModelDecoder can now decode ASTERIX Category 8. The category is modelled in the
TLcdASTERIXCategory8 class. ASTERIX Category 8 concerns weather data. Weather data in ASTERIX is modeled by
TLcdASTERIXWeatherPicture and TLcdASTERIXPrecipitationZone classes. TLcdASTERIXFinalModelEncoder can encode
ASTERIX Category 8.
ImprovementTiling Engine
LuciadFusion now supports replication of tile stores.
Given a target tile store, replication lets you define a source tile store to replicate data from.
The main entry point is the class
TLfnReplication.
Replication allows you to:
-
Select which coverages or updates to replicate before initiating the actual replication.
-
Define an area of interest to limit the coverage size on the replica (only for tiled raster coverages).
Tiles are filtered such that only those overlapping with the area of interest are replicated.
Replication has some interesting properties:
-
It is symmetrical, meaning that there is nothing which inherently defines a tile store to be source or
target.
Any tile store can be used as source or target at any given moment.
-
It replicates all resources: coverages, assets and themes.
Replication operates on both a resource's metadata and data, but the data is only replicated as part of a
coverage.
This means that, for asset sources in tile store, the asset sources are replicated only if the asset is part of
a coverage.
-
Resources are globally identified across tile stores based on the resource ID, which must be globally unique.
Updates are detected based on the global update sequence of a resource, which has the semantics of a 'last
modified' timestamp.
ImprovementTiling Engine
The fusion of tile set formats has been optimized: if all conditions are met, input tile data is copied raw into the
target coverage, without any overhead or image rendering. The conditions are:
- The coverage must be a raster coverage.
-
The asset must be of a tile set format.
A tile set format is a format that creates models with an ILcdTileSet as element.
By definition, the tiling structure thus must be power-of-two.
- The coverage must have exactly one asset with one asset part. For example a single WMTS layer.
- The coverage's tiling structure must match that of the asset.
-
The coverage's tile format must match the native format class of the tile set.
- The native format class
By default, a coverage will be automatically configured to meet these conditions if possible.
There are two default tile set formats:
You can of course define your own tile set format, in which case you must take the above conditions into account.
ImprovementTiling Engine
LuciadFusion now supports point-sampled elevation data.
The point-sampled nature of the source data is preserved by default.
It is possible to mix point-sampled and area-sampled source data in a point- or area-sampled coverage, in which case
the source data will be converted (interpolated) if necessary.
ImprovementTiling Engine
LuciadFusion now supports fusion of WMTS server data, which can be fused into raster coverages (rasterization).
Bug fixLuciadLightspeed
LCD-6318
TLcdGXYNewController2 does not create anything if the layer is not editable.
Bug fixLuciadLightspeed
LCD-6317
TLspCreateController doesn't create any thing if the layer is not editable.
Bug fixLucy (LuciadLightspeed)
LUCY-4246
When loading the same source file multiple times for AIXM5(1), ASDI, ASTERIX, ECDIS, DAFIF, GeoPackage or GRIB data,
the workspace could get corrupted.
Bug fixLuciadLightspeed
LCD-6053
Clarified interpretation of tileWidth/tileHeight on ILcdRaster and updated the CADRG model decoder accordingly.
Previously the last row or column of some CADRG rasters could incorrectly contain padding data.
Bug fixLuciadLightspeed
LCD-4125
The WCS proxy object TLcdWCSProxy no longer silenty discards exceptions in case no exception handler is configured.
Bug fixLucy (LuciadLightspeed)
LCD-5901
Obfuscation and preverification of Lucy now works even if none of the optional components are
available.
Bug fixLuciadLightspeed
TLcdGXYSurfacePainter: previously, when TLcdGXYRoundedPointListPainter was used as a painter for external or
internal polygonal surfaces, the first corner was not rounded.
Bug fixLuciadLightspeed
LCD-4703
Raster layers with layer type interactive now support model and style target changes without flickering in most
cases. You can find all details in the documentation of TLspRasterLayerBuilder and TLspRasterLayer.
Bug fixLuciadLightspeed
LCD-5280
Clarified TLcdLonLatBuffer and TLcdLonLatHeightBuffer width and height properties:
- Width is measured from axis to buffer edge, so the buffer has a total width of 2 * the buffer's width
property.
- Height is measured from the buffer's bottom to top, so the buffer's height property is the sum of the
height from the axis to the top and the height from the axis to the bottom.
Bug fixLuciadLightspeed
LCD-5749
TLcdGXYViewFitAction#fitGXYLayer did not take the isFitToChildren property into account.
Bug fixLuciadLightspeed
LCD-4984
Calling TLspLabelBoxStyle.Builder#fillColor() or TLspLabelBoxStyle.Builder#frameColor() now enables fill or frames
as expected.
Bug fixAdvanced GIS Engine
LCD-6058, LCD-6059
Improved performance and accuracy of the constructive geometry operators.
Bug fixDefense Symbology
The orientation of the curve of the mine cluster symbol (2.X.3.1.5.7) was fixed.
Bug fixMaritime Standards
LCD-6350
Layers for S-57 or S-63 data in a Lightspeed view used a write lock instead of a read lock on the model when updating the
view.
This could cause delays or starvation of other tasks using the view's task executor threads.
Upgrade considerationLuciadLightspeed
ALfnTileStore
now has a
putTileStoreMetadata
method which must be implemented
by all of its extensions.
The new method is called by the LuciadFusion framework in the context of replication.
Wrapper or composite extensions may delegate this method.
Upgrade considerationLuciadLightspeed
The ILcdEarthParameterizedIcon interface was removed, and replaced by ILcdParameterizedIcon. On top of the
already existing methods, this new interface also adds an anchorPointSFCT(double[], Point) method. All classes
in LuciadLightspeed that previously implemented ILcdEarthParameterizedIcon now implement ILcdParameterizedIcon.
This change may cause compile errors in the following cases:
- Direct use of the ILcdEarthParameterizedIcon interface. Can be fixed by using ILcdParameterizedIcon
instead.
- Implementations of ILcdEarthParameterizedIcon that don't extend from ALcdEarthParameterizedIcon will
need to implement the anchorPointSFCT method. Wrappers can just delegate to the delegate anchorPointSFCT method.
Other classes can use a default implementation, see javadoc of anchorPointSFCT.
Upgrade considerationLuciadLightspeed
The signature of the user data operations on
ALfnCoverage
has changed: the result of the
operation now uses a
WriteResult
or
ReadResult
rather than a
Boolean
to indicate its outcome.
Method signatures need to be updated where necessary:
- putUserData: the semantics of
true
and
false
have been
replaced with
Result.Code.PUT
and
CREATED
respectively.
- getUserData: the semantics of
true
and
false
have been
replaced with
Result.Code.FOUND
and
NOT_FOUND
respectively.
- deleteUserData: the semantics of
true
and
false
have
been replaced with
Result.Code.DELETED
and
NOT_FOUND
respectively.
Upgrade considerationLuciadLightspeed
TLcdImageFactory was replaced by TLcdImageBuilder, TLcdImageMosaicBuilder, TLcdRasterImageBuilder and
TLcdEarthImageBuilder.
The factory methods on ALcdBandColorSemantics and ALcdBandMeasurementSemantics were also replaced by
TLcdBandColorSemanticsBuilder
and TLcdBandMeasurementSemanticsBuilder.
Upgrade considerationLuciadLightspeed
LCD-4786
The XML framework API in the com.luciad.format.xml and com.format.xml.schema packages has been deprecated
in favor of the equivalent API offered by the XML binding framework (see com.luciad.format.xml.bind and com.format.xml.schema.bind).
Upgrade considerationLuciadLightspeed
The TLspRasterWorldTouchInfo#setColorValue(int, ColorModel) method was removed. The setRasterData(Raster) method
should be used instead.
Upgrade considerationLuciadLightspeed
TLcdCADRGRaster no longer extends TLcdRaster. Instead it extends ALcdImageMosaic. To maintain existing
functionality TLcdCADRGRaster now implements ILcdRaster.
Upgrade considerationLuciadLightspeed
ALcdGXYSmartController's default pan and zoom keyboard shortcuts have been simplified to the arrow keys and +/-,
to prevent interference with application-specific keyboard shortcuts.
Upgrade considerationLuciadLightspeed
The minimum Java version to run LuciadLightspeed is now Java 7.
Upgrade considerationLuciadLightspeed
LCD-5281
Fixed an issue in TLcdLonLatHeightBuffer.contains3D(): it checked if points were within [0, +height]
measured from the axis line, instead of the interval [-height/2, +height/2] around the axis line.
In addition, TLcdLonLatHeightBuffer's bounds used this interpretation, which caused the bounds to be shifted up
incorrectly by height/2.
If you use TLcdLonLatHeightBuffer.contains3D or its bounds, please verify that your application can handle this
change.
Upgrade considerationLuciadLightspeed
LCD-3516
The XSOM, Jaxen, and JDOM libraries have been updated to versions 20110809, 1.1.6, and 1.1.3, respectively.
Upgrade considerationAdvanced Raster Connectors
The TLcdGeoSPOTRaster class now requires an ILcdModelReference in its constructor.
Upgrade considerationAdvanced Raster Connectors
TLcdGeoSPOTRaster no longer extends TLcdRaster, instead it extends ALcdImageMosaic. To maintain existing
functionality TLcdGeoSPOTRaster now implements ILcdRaster.
Upgrade considerationOGC Server
LCD-5731
It is now possible to specify a content type for the response to a WFS DescribeFeatureType request by implementing
the new method
getContentType
on the interfaceILcdWFSModelSchemaEncoder.
In case you have a custom implementation of this interface, you must implement this new method.
Typical implementations will return a constant MIME type, for example"text/xml".
Upgrade considerationOGC Server
Because of the OGC web service front-end improvement (LCD-1097), there is a change in 3rd party library dependencies
for the OGC web service sample. Because this new front-end is now built using JavaScript instead of JSP,
the following JSP-related libraries have been removed:
- jspapi-2.2.jar
- javax.servlet.jsp.jstl-1.2.1.jar
- javax.servlet.jsp-2.2.2.jar
- jdt-core-3.7.1.jar
- el-api-2.2.jar
- jstl-api-1.2.jar
Instead, a JavaScript library dependency has been added to support the front-end, namely AngularJS 1.3.10.
More specifically, the following AngularJS modules have been added to build/ogc/resources/js:
- angular
- angular-route
- angular-sanitize
Users that relied on the front-end need to update their build process to take the 3rd party library change into
account.
Upgrade considerationOGC Server
LCD-6172
It is now possible to separately define output formats for GetFeature and DescribeFeatureType requests.
To this end, the new methods
ILcdWFSClientModelEncoderFactory.getSupportedSchemaOutputFormatCount and
ILcdWFSClientModelEncoderFactory.getSupportedSchemaOutputFormat
have been added, which define the supported output formats for the DescribeFeatureType request.
The existing methods
ILcdWFSClientModelEncoderFactory.getSupportedOutputFormatCount and
ILcdWFSClientModelEncoderFactory.getSupportedOutputFormat now only define
the supported output formats for the GetFeature request.
Existing, custom implementations of ILcdWFSClientModelEncoderFactory can delegate to the
default implementation available in TLcdWFSClientModelEncoderFactory.
Upgrade considerationOGC Server
LCD-5174
It is now possible to define supported output formats per feature type.
To this end, a new method
ILcdWFSFeatureType.getSupportedOutputFormats
has been added, which returns the supported output formats as an object of type
TLcdWFSOutputFormatList.
The default implementation, TLcdWFSFeatureType, has been updated accordingly
and has also received a setter for this new property.
Existing, custom implementations of ILcdWFSFeatureType can implement
the new method by returning null, indicating that the global list of output formats needs to be used;
this corresponds to the past behavior.
Upgrade considerationOGC Server
LCD-3909
It is now possible to define the content type (MIME type) of a custom outputFormat.
To this end, the return type of method
ILcdWFSClientModelEncoderFactory.createModelEncoder
has changed from
ILcdModelEncoder
to a new type
ILcdWFSModelEncoder.
You need to update your implementations accordingly:
-
If the
ILcdModelEncoder
you used to return is an instance of a class under your control,
just implement the new method getContentType.
-
If the
ILcdModelEncoder
you used to return is an instance of a class not under your control,
you can wrap it using
TLcdWFSModelEncoder
and give it a content type.
Using
null
as content type is allowed but not recommended:
it means that the GetFeature response will not have a content type, which can result in ill-defined behavior on
the client.
Upgrade considerationOGC Server
LCD-6103
To enable WMS request parameter access in the layer creation, the signature of the method
ILcdWMSGXYLayerFactory#createGXYLayer(ILcdModel, ALcdWMSLayer, String) has been changed into
#createGXYLayer(ILcdModel, ALcdWMSLayer, String, TLcdWMSRequestContext). TLcdWMSRequestContext gives access
to the original request and a number of additional request-related parameters.
The change will impact WMS implementations that use an implementation of ILcdWMSGXYLayerFactory that does not extend
from ALcdSLDWMSGXYLayerFactory. Affected implementations can simply update the signature of the createGXYLayer method
and ignore the new parameter.
Upgrade considerationTiling Engine
The jar file containing the LuciadFusion Engine is now called lcd_fusion_engine.jar. That
makes the name consistent with the jar files from other Luciad products.
2014.1
2014.1.09
Bug fixLuciadLightspeed
LCD-6263
It was previously not possible to only configure an SLD or SLD URL on ALcdWMSProxy to define the desired WMS layers;
an explicit list of styled named layers was always required.
Bug fixLuciadLightspeed
LCD-6343
TLcdGeoTIFFModelDecoder no longer fails when the image contains Exif metadata.
Bug fixLuciadLightspeed
LCD-5697
TLcdRasterModelDecoder's canDecode method now correctly indicates that directories named 'rst' cannot be decoded.
Bug fixLuciadLightspeed
LCD-5532
TLcdGeoTIFFModelEncoder now truncates the output file when overwriting an existing file.
Bug fixLuciadLightspeed
LCD-5503
TLcdDTEDDirectoryModelDecoder can now also decode directories that are not named 'dted'.
2014.1.08
ImprovementLuciadLightspeed
LCD-6319
ALcdBalloonManager no longer replaces the balloon content if the content stays the same.
ImprovementLuciadLightspeed
LCD-6198, LCD-6200
Clarified the requirements for input/output stream factories of the GeoTIFF model decoder/encoder.
ImprovementMaritime Standards
LCD-6280
TLcdS57UnifiedModel decoder will now decoder Inland ENC data (catalogs and cells), returning a model with
product type ELcdS57ProductType.IENC.
Warning: support for IENC isas-is, and is not compliant with the Inland ENC specifications.
The data is decoded as if it were regular ENC. This means the data modeling does not include any
Inland ENC specifics (object classes, attributes, ...). Also, the visualization will be based only
on the S-52 specification (no specific Inland ENC symbology).
By default, the GXY and Lightspeed samples will not display the data using the correct symbology.
However, you can manually create layers for IENC data using TLspS52LayerBuilder and
TLcdS52ProductConfiguration.getInstance(IENC).createGXYLayerFactory.
ImprovementS-63
LCD-6301
The S-63 model decoders now support validating the running system using an "S-63 Customer System ID".
See TLcdS63UnifiedModelDecoder.setS63CustomerSystemID(), TLcdS63ModelDecoder.setS63CustomerSystemID() or TLcdS63CatalogueModelDecoder.setS63CustomerSystemID().
Bug fixLuciadLightspeed
LCD-6314
Transforming bounds from a grid reference to a geodetic reference did not work well when using a (custom)
projection with a small area.
Bug fixLucy (LuciadLightspeed)
LUCY-4259
The decoded Earth models replaced the passed source name with an absolute path. As a result these could end up in
a workspace, making it less portable.
Bug fixLuciadLightspeed
LCD-6324
Reduced the amount of undoables created by shapelist-based objects. This caused certain shapes to not be correctly undone.
Bug fixLuciadLightspeed
LCD-6296
The GeoTIFF decoder failed on images with proprietary tags that have an undefined data type. Such tags are now
ignored instead.
Bug fixLucy (LuciadLightspeed)
LUCY-4258
TLcyPreviewAddOn: the preview add-on would no longer add/remove simulator models after a workspace containing an
active previewer
was restored. As a result, the previewer UI would no longer allow to interact with those layers.
Bug fixLuciadLightspeed
LCD-6316
TLspRasterLayer: raster data that needs to be transformed significantly could sometimes not be painted anymore. This
was a regression introduced with the fix for LCD-5904.
Bug fixLuciadLightspeed
LCD-1206
The default ILcdModelReferenceDecoder used by the TLcdSHPModelDecoder now implements ILcdInputStreamFactoryCapable.
This allows to configure an ILcdInputStreamFactory on both the SHP and reference decoder.
Bug fixAdvanced GIS Engine
LCD-6285
The ellipsoidal basic binary topology would throw a ClassCastException when using an
ellipse and a circular arc.
Bug fixOGC Server
LCD-6340
Fixed a bug in the interpretation of the default SRS of the bbox of a KVP request: the default SRS is now CRS:84
with lon/lat axis order.
Bug fixOGC Server
LCD-6321
Fixed a bug in the interpretation of XML-encoded GetFeature requests containing multiple typeNames: now all intended
typeNames are used rather than just the first one.
Also, when the request contains no typeNames at all, all typeNames are used rather than an
exception thrown.
This brings the behavior of XML-encoded and KVP-encoded GetFeature requests in sync with each other.
2014.1.07
ImprovementReal-time Engine
LCD-6288
TLspRadarVideoStyle now allows configuring the afterglow duration either
absolutely (as a duration in seconds) or relative to the radar's rotation speed (as a
number of full 360 degree sweeps).
Bug fixLuciadLightspeed
LCD-6309
TLcdResizeOp could cause an error in the imaging engine when the scaled resolution is not exactly an integer. This
could also cause errors when visualizing raster layers in a Lightspeed view with a high start resolution factor.
Bug fixLuciadLightspeed
LCD-3563
TLcdSHPModelEncoder no throws an IOException with a clear message that ILcdBounded model elements
with undefined ILcdBounds cannot be exported.
Bug fixLuciadLightspeed
LCD-6308
The OpenCL imaging engine did not always handle band-select on color data correctly if the number of significant
bits is less than the data type number of bits.
Bug fixLucy (LuciadLightspeed)
LUCY-4254
Always open VPF feature table files directly instead of showing a dialog with the option to open the file via
a VPF tree.
Bug fixLuciadLightspeed
LCD-5809
Fixed pixel artifacts when using image processing on Windows with NVidia hardware.
Bug fixLuciadLightspeed
LCD-6284
The linux native libraries used for decoding GeoPackage or SpatiaLite no longer depend on recent versions of GLIBC, only on
2.3.3.
Bug fixLuciadLightspeed
LCD-3218
Improved memory usage and lock contention when visualizing large LuciadFusion vector coverages.
Bug fixDatabase Connectors
LCD-6290
Updated the IBM DB2 JDBC driver to 9.5 build 3.64. The previous driver did not work with JDK 1.8.
Bug fixReal-time Engine
Fixed erroneous painting of radar video feeds when the blip afterglow time was
set to zero.
Bug fixTerrain Analysis Engine
LCD-6292
Fixed an issue that would cause the UNKNOWN color of a LOS coverage to be invisible instead of the set color. This
only applied to Lightspeed views when the LOS coverage was not draped.
Bug fixMaritime Standards
LCD-6298
TLcdS57DirectoryModelDecoder now filters files not only on .000 extension, but also on whether the cell
decoder can decode the files. This is necessary for example for S-63 cell signature files, which also have .000
extension.
Bug fixMaritime Standards
LCD-6299
Fixed issue in exception handling of invalid cells in TLcdS57DirectoryModelDecoder. It passed the original
source instead of the filename of the faulty cell.
2014.1.06
ImprovementLuciadLightspeed
LCD-6265
TLcdMIFModelReferenceParser now supports the EUREF 89 datum.
ImprovementLucy (LuciadLightspeed)
LUCY-4251
TLcyDrawingAddOn: the intersection action now supports circular arcs as well.
ImprovementLuciadLightspeed
LCD-6264
Implicitly created instances of
TLinApacheHttpTransport
are now automatically disposed when the
corresponding Tile Store is closed.
A new flag was added to the API when creating a
TLfnLTSClient
to indicate if the transport is
owned by the LTS client.
If it is, it will be disposed when the Tile Store is shut down.
You can switch the flag off if you want to reuse a transport instance across multiple LTS clients, in which case
you are responsible for disposing the transport yourself.
ImprovementAviation Standards
LCD-6283
TLcdProcedureGeometryCalculator has now different behaviors to calculate CF Legs.
The current behaviors are :
- Minimal Distance :the aircraft will use the shortest path to go onto the fix on the specified course.
- Follow Course : the aircraft will get on the specified course at an early stage. This is the behavior by default.
Bug fixLucy (LuciadLightspeed)
LUCY-4243
When a workspace containing filtered ARINC procedure data is saved and reopened, the procedure model is still
filtered.
Bug fixLucy (LuciadLightspeed)
LUCY-4252
Disabling the fill in the layer properties panel of GXY GeoPackage layers had no effect.
Bug fixLuciadLightspeed
LCD-5982
Fixed a problem in the undo behavior of certain editors, where certain undo operations would get lost. This
issue usually occured while editing multiple objects at once.
Bug fixLuciadLightspeed
LCD-6275
A TLcdGML2Box instance backed by a TLcdGML2Coordinates instance did not have the correct height and width.
Bug fixLuciadLightspeed
LCD-6274
TLcdTFWRasterModelDecoder: the model decoder always used the model reference from the first file it decoded. As a
result the second and other files an instance decoded had an incorrect model reference.
Bug fixLuciadLightspeed
LCD-6273, LCD-6266
TLspGXYLayerAdapter: improved robustness, especially when switching between 2D and 3D.
Bug fixLuciadLightspeed
LCD-6261
The GeoPackage and SpatiaLite decoders now support opening files with a Windows UNC path with forward slashes.
Bug fixLucy (LuciadLightspeed)
LUCY-4249
Fixed a potential issue with TEA layers in concurrent context.
Bug fixOGC Server
LCD-6267
The default outputFormat now correctly depends on the WFS version also for XML requests (HTTP POST).
Bug fixOGC Server
LCD-6254, LCD-6268
TLcdWFSRequestContext
now contains the correct requested feature types when passed to
ILcdWFSClientModelEncoderFactory
implementations.
Upgrade considerationLuciadLightspeed
The recently added TLcdEllipsoidCircleUtil (LCD-6235) class was removed. Its methods are now available
from the TLcdEllipsoidUtil class, see intersectionCircleCircle and calculateCircleTangentLine.
2014.1.05
ImprovementLuciadLightspeed
LCD-4000
MapInfo binary files can now be opened with the TLcdMapModelDecoder via a *.tab file.
Bug fixLuciadLightspeed
LCD-6089
When an OGC filter was included in the rule-element of a FeatureTypeStyle in an SLD file, the TLcdSLDFeatureTypeStylePainter#getCreationClickCount
method would throw an IllegalStateException when creating a new object, and when that object did not satisfy the OGC filter.
This is now no longer the case.
Bug fixLuciadLightspeed
LCD-5750
Improved robustness of raster layers in the context of the new image processing capabilities.
Bug fixLuciadLightspeed
LCD-6253
Icon selection did not properly deal with oriented points in combination with anchored icons.
Bug fixLuciadLightspeed
LCD-6249
Fixed an OpenGL state leak in TLspOpenFlightPainter.
Bug fixLuciadLightspeed
LCD-6246
The PropertyIsEqualTo OGC Filter evaluation now supports comparing a Double.NaN
property with a NaN String literal.
Bug fixLuciadLightspeed
LCD-6241
TLspCompassNavigationControl/TLcdGXYCompassNavigationControl did not point correctly to the magnetic north.
Bug fixTiling Engine
LF-678
Fixed a mismatch between asset data types and coverage data types.
Previously, the mismatch could cause data fusion to fail with "No matching coverage data model for ...".
Bug fixTiling Engine
LF-677
The creation of a raster engine for large datasets slowed down considerably. The performance of the engine creation
is now again on par with previous releases.
Bug fixTiling Engine
LF-670
The default formats MAP, MIF, Oracle Spatial, ArcSDE, GML now have anILcdSLDGXYLayerFactory.
2014.1.04
ImprovementLuciadLightspeed
LCD-6248
TLspRecenterProjectionController now also re-centers TLcdPolarStereographic projections.
Bug fixLuciadLightspeed
LCD-5686
The Earth painters honor the view's auto-update flag. This avoids issues when using such painters in an offscreen
view.
Bug fixLuciadLightspeed
LCD-6216
TLcdBandSelectOp could re-interpret color bands when it was used for re-ordering. This has been fixed. The
interpretation of what a
color is, has also been clarified in the ALcdBandColorSemantics javadoc.
Bug fixAviation Standards
LCD-6247
When a leg transition is fly over onto an arc, TLcdProcedureGeometryCalculator tries to avoid unnecessary turns.
Bug fixRadar Connectors
TLcdASTERIXLiveDecoder has been made more robust in its handling of irregularities in
category 240 data.
Bug fixRadar Connectors
LCD-6244
TLcdASTERIXLiveDecoder did not respect the mode for firing events when decoding ASTERIX category 240 data.
2014.1.03
ImprovementLuciadLightspeed
TLspMesh3DIcon now supports the use of an ILcdInputStreamFactory to load texture images.
ImprovementLuciadLightspeed
LCD-6235
TLcdEllipsoidCircleUtil was added. This class contains methods for topology calculations with circles on the
ellipsoid.
Bug fixLuciadLightspeed
LCD-6217
Fixed possible exception using the band-select operator on an image backed by data with a BandedSampleModel.
Bug fixLucy (LuciadLightspeed)
Workspaces containing a GeoPackage model tree node were not correctly restored.
Bug fixLuciadLightspeed
LCD-6213
TLcdGXYCircularArcPainter would not edit handles of arc-by-bulge instances whose bulge factor is 0.
Bug fixLuciadLightspeed
Icon visualization didn't work when using TLspRasterLayerBuilder for a model containing an
ILcdEarthMultivaluedRasterTileSetCoverage with weather data and using a
TLspParameterizedRasterIconStyle with the default spacing value of -1.
Bug fixLuciadLightspeed
LCD-6007
ALcdBalloonManager: improved the balloon layout logic. The manager now better respects the minimum, preferred and
maximum balloon size,
even after dragging it around.
Bug fixAdvanced Raster Connectors
LCD-4176
TLcdECWModelDecoder now also supports file names with non-ASCII characters.
Bug fixDefense Standards
LCD-6215
Fixed issue where the NITF decoder would try to cast multilevel rasters to
regular rasters when building an image adapter.
2014.1.02
ImprovementLuciadLightspeed
LCD-6116
TLcdMIFModelReferenceParser now supports the European 1987 (ED 87) datum.
ImprovementLuciadLightspeed
LCD-6095
Improved responsetime of animations in KML files in a lightspeed view.
ImprovementLuciadLightspeed
LCD-6105
The WMS XML capabilities decoder now supports connecting with WMS servers that define dimensions
containing both values and intervals, which is not allowed by the OGC WMS standard.
ImprovementOGC Server
LCD-5929
The OGC WCS web service previously available in build/wcs (containing the build script) and distrib/ogc/LuciadLightspeedWCS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
ImprovementAviation Standards
LCD-5722
Improved default behavior for snapshot generation in TLcdAIXM51MessageUtil when creating snapshots for features that
have a timesheet, without an explicit dayMatch parameter. This now matches any day to allow for more accurate
snapshots.
Bug fixLuciadLightspeed
LCD-6062
Lighting of 3D meshes could be wrong in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-6062
Shapes could be painted wrongly when using a TLcdAlbersEqualAreaConic projection.
Bug fixLuciadLightspeed
LCD-6112
Transparent texture pixels could turn up all black when visualizing textured meshes in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-6181
TLcdGeoTIFFModelDecoder: not all files were closed after disposing the model's elements.
Bug fixLuciadLightspeed
LCD-6167
Fixed visualization of signed 16-bit data using the TLcdWarpRasterPainter with a non-indexed color model
configured. In practice this only happens when retrieving such data through a WCS server.
Bug fixLuciadLightspeed
LCD-6169
A bug was fixed which caused the coverage size of a Tile Store to be reported incorrectly in some situations.
You were affected if both these conditions apply:
-
you have multiple
TLfnFileSystemTileStores
using a shared
ALfnEnvironment
-
you use the same coverage IDs in multiple of these Tile Stores
Bug fixLuciadLightspeed
LCD-6155
The OpenCL imaging engine did not handle non-color pixel-packed image data correctly.
Bug fixLuciadLightspeed
LCD-6154
TLcdVVJPanel triggered an ArrayIndexOutOfBoundsException when using a vertical view model with only one point.
Bug fixLuciadLightspeed
LCD-6141
The WMS painter TLcdGXYTiledWMSProxyPainter could not cope with WMS layers that define scale denominators close to 0
or to infinity.
Bug fixLuciadLightspeed
LCD-4612
The display name parameter of the constructors of TLcdCGMModelDescriptor was used as the type name.
Bug fixLuciadLightspeed
LCD-6153
Querying resources matching given metadata properties now also works for non-tiled coverages.
This fixes a java.lang.UnsupportedOperationException: Unsupported XPath axis : ATTRIBUTE.
Bug fixLuciadLightspeed
LCD-6118
The WMS painter TLcdWMSProxyGXYPainter no longer throws a NullPointerException in case of empty / unrecognized map
content sent back by the server.
Bug fixLuciadLightspeed
LCD-6107
ALcdGXYNewControllerModel2/TLcdGXYEditControllerModel2 no longer fire model change events while holding a model
write lock.
This avoids certain deadlocks.
Bug fixLuciadLightspeed
LCD-6063
When using TLcdLambertAzimuthalEqualArea with origin at one of the poles, transformations could produce
incorrect results for points near the opposite pole.
Bug fixLucy (LuciadLightspeed)
LUCY-4237, LUCY-2371
TLcyWMSClientAddOn: the Refresh button in the WMS layer properties panel did not result in an actual refresh of the
layer data offered by the WMS.
Bug fixOGC Server
LCD-6188
GetFeatureWithLock now always locks all features and no longer requires the
lockAction
parameter,
as prescribed by the WFS specification.
Bug fixOGC Server
LCD-6182
GetFeature, GetFeatureWithLock and LockFeature operations now also behave correctly when both
featureId
and
typeName
parameters are given.
Bug fixOGC Server
LCD-6168
The WCS server introduced small gaps in raster data responses in case of an elevation coverage backed by multiple
elevation rasters and in combination with a need to transform the requested data to a destination reference.
Bug fixAviation Standards
LCD-6133
When decoding a ARINC record provoke exception, the level of logging is reduced from error to warning.
Bug fixInfrastructure Standards
LCD-6163
Fixed an issue when painting text elements with empty text.
2014.1.01
ImprovementLucy (LuciadLightspeed)
LUCY-4235
TLcyLspMapAddOn: a new config option has been added which allows to specify whether Lsp maps must be created on
start-up.
See TLcyLspMapAddOn.mapTypesToCreate in TLcyLspMapAddOn.cfg for more information.
ImprovementLuciadLightspeed
LCD-6055
TLspLabelPainter now supports multiple TLspLabelBoxStyle instances to create multiple borders around a label.
ImprovementLuciadLightspeed
LCD-5992
TLspImageProjectionStyle now allows setting the opacity of the projected image.
ImprovementLucy (LuciadLightspeed)
LUCY-4233
MapCentricFrontEndMain: now includes the TLcyConnectionAddOn to allow connecting to secure servers, such
as for example WMS. The accompanying menu item was added to a new edit drop-down on the tool bar. The ASTERIX
settings are now also accessible from that same drop-down. Affected files are (touch_)map_centric_addons.xml,
map_centric_frontend.cfg and two new config files map_centric_asterixdecoderaddon.cfg and
map_centric_TLcyNetworkConnectionAddOn.cfg.
ImprovementLuciadLightspeed
TLcdGeorefUtil can now handle 3 or 4 decimals. This makes it possible do define grid squares with a 0.001 minute or
0.0001 minute precision.
ImprovementAviation Standards
LCD-5182
TLcdARINCLocalizerGlideSlopeHandler will not add a glide path to an ILS during decoding if the ILS category indicates
that there is no glide path or if the glide path does not have a valid latitude and longitude.
Bug fixLuciadLightspeed
TLcdGeorefUtil#lonLat2Georef returned an incorrect georef string when passing a latitude of exactly
90 degrees.
Bug fixLuciadLightspeed
LCD-6102
A number of model decoders created ALcdImageMosaic's with an inaccurate value for the pixelSizeY property. As a
result the TLcdGXYImagePainter and the raster layers in a Lightspeed view could select a suboptimal level. The
affected formats are WMTS, BingMaps, GeoPackage, LVDB and GeoSpatialPDF.
Bug fixLuciadLightspeed
TLcdGeorefUtil#lonLat2Georef now throws an IllegalArgumentException when the given latitude lies outside the
[-90, 90] degrees range instead of returning an incorrect georef String.
Bug fixLuciadLightspeed
TLspShapeDiscretizer: possible discretization artifacts when discretizing an ILcdSurface composed of non-polygon
rings.
Bug fixLuciadLightspeed
TLcdCompositeCurve#computePointSFCT could return an incorrect point when its length is 0.
Bug fixLuciadLightspeed
LCD-6083
TLspZoomByRectangleController and fit actions now retain the aspect ratio of 2D Lightspeed views.
Bug fixLuciadLightspeed
LCD-5972
Fixed a bug that caused TLcdGeoTIFFModelDecoder to throw an exception when the level count was set on the decoder.
Bug fixLuciadLightspeed
LCD-6078
When transforming a point to/from a topocentric reference with a geoid geodetic datum, the result point had an
incorrect height.
Bug fixLuciadLightspeed
LCD-5274
TLcdGXYTextPainter has a new option "setFitTextInArea", off by default.
With this option enabled, the text painter will stretch the displayed text to fit the area defined by the
ILcdText object: character width x text length by character height x number of lines.
Bug fixLuciadLightspeed
LCD-6008
Touch queries (e.g. when selecting an object) on objects with a TLspIconStyle now correctly
consider the orientation of the icon.
Bug fixLuciadLightspeed
LCD-6016
Fixed a performance bottleneck in the painting of TLsp3DIconStyles.
Bug fixLuciadLightspeed
LCD-5284
TLspRasterLayer: fixed the default styling for multi-valued Earth layers with layer type interactive
Bug fixLuciadLightspeed
LCD-5993
TLcdGeorefUtil now uses truncating to determine the minute square coordinates instead of rounding.
Bug fixOGC Server
LCD-6096
The WFS server now correctly excludes the 'Lock', 'Insert', 'Delete' and 'Update' operations from the capabilities
when locking and/or transactions are disabled.
Bug fixDefense Standards
LCD-6091
The ECRG model decoder always estimated the raster pixel density based on the first tile,
even if that tile was empty. The first non-empty tile is now used.
Bug fixInfrastructure Standards
LCD-832
DGN text elements are now displayed to fit into the area defined by the text object.
The TLcdDGNText2D elements are now also always center aligned, so their position corresponds
better to MicroStation.
Bug fixRadar Connectors
Fixed the thread safety of the ASTERIX models. Some operations were not thread-safe since version 2014.1.
2014.1
ImprovementLuciadLightspeed
TLcdImageHeightProvider now checks that the height value is in a valid range, similar to TLcdRasterHeightProvider.
The range can be configured using the new constructors or using the keys in ALcdRasterModelHeightProviderFactory
when using a TLcdImageHeightProviderFactory. The default range is [-12000,10000].
ImprovementLuciadLightspeed
You can now visually compare multiple layer sets by swiping or flickering using
TLspSwipeController and TLspFlickerController. Swiping is done by dragging a swipe line
horizontally or vertically, hiding the right/bottom part of the first layer set and the
left/top part of the other layer set. Flickering is done by (quickly) clicking the mouse button and toggling
visibility of two or more layer sets. You can customize these controllers or use them to implement actions that swipe or flicker
programmatically. These visual change detection tools work with any layer or painter, in 2D and 3D.
As an illustration, you can enable the swipe or flicker controller from the lightspeed.imaging.multispectral sample.
ImprovementAdvanced GIS Engine
LCD-5997
Improved the performance of the union operator when computing the union of many shapes with one
of the ILcdConstructiveGeometry implementations.
ImprovementAdvanced Raster Connectors
LCD-3329, LCD-5426, LCD-5876
Reduced memory usage and improved rendering speed of Geospatial PDF models.
ImprovementReal-time Engine
The new package com.luciad.realtime.lightspeed.radarvideo provides support for the
visualization of radar video feeds, e.g. from ASTERIX category 240 data. The
main API entry point is TLspRadarVideoLayerBuilder. The package
samples.decoder.asterix.lightspeed.radarvideo demonstrates the new functionality.
ImprovementRadar Connectors
ASTERIX category 240 radar video is now supported by TLcdASTERIXLiveDecoder. More information on how to
visualize category 240 radar video can be found in the developer guide in the section 'Decoding category 240 radar
video'. The 'Visualization of ASTERIX cat 240 radar video' sample illustrates how to visualize the
radar video data.
ImprovementTiling Engine
Fusion of Geospatial PDF benefits from the upgrade to IcePDF 5.1.1 in its dependencies:
-
Handling of Geospatial PDF files with a suboptimal internal tiling structure is now more robust.
This fixes OutOfMemoryErrors which could happen when fusing some of these files.
-
Improved rendering of Geospatial PDF input data results in better looking fused coverages.
Bug fixLuciadLightspeed
LCD-6004
Improved performance for density painting when using many different point styles.
Bug fixLuciadLightspeed
LCD-6002
Fixed possible exception when there are model changes on a non-paint thread. The regression was introduced in the
fix for LCD-5158.
Bug fixLuciadLightspeed
LCD-5910
Navigation with the mouse in a 3D grid reference did not work correctly in the absence of 3D terrain.
Bug fixLuciadLightspeed
LCD-5985
TLcdEarthGXYRasterPainter: fixed possible infinite loop when using incremental visualization (enabled by default)
and there is a lot of memory pressure. As a result the you may get higher memory use when there are a lot of Earth
tile sets in a GXY view. You can get the old behavior by invoking
TLcdEarthGXYRasterPainter.releaseHardReferencedCache after each paint.
Bug fixAdvanced Raster Connectors
Geospatial PDFs containing multiple map frames are now displayed correctly in the decoder sample.
Bug fixTiling Engine
LF-660
Removed a broken link to the Earth Developer's Guide.
The Earth Developer's Guide has been merged into the LuciadLightspeed Developer's Guide.
Upgrade considerationLuciadLightspeed
LuciadLightspeed no longer includes ProGuard. It used to be included to demonstrate various deployment
scenarios. Those samples are still available, but you now have to download ProGuard separately from its
website. The downloaded proguard.jar should be
placed in the build/proguard directory.
Upgrade considerationLuciadLightspeed
LCD-5422
Two constructors have been removed from com.luciad.wms.sld.model.ALcdSLDLayer.
- ALcdSLDLayer()
- ALcdSLDLayer(String aName, ALcdSLDLayerStyle[] aSLDLayerStyles, TLcdSLDLayerFeatureConstraints aLayerFeatureConstraints)
These constructors threw IllegalArgumentExceptions. They were also semantically incorrect in that they allowed the construction
of an SLD-layer without having to specify its DataType.
Upgrade considerationLuciadLightspeed
ALcdImage now uses an ILcdModelReference instead of ILcdGeoReference. Therefore, ALcdImage#getGeoreference()
is replaced with ALcdImage#getImageReference() and it now returns an ILcdModelReference. This allows the use of
non-geo-referenced images.
Upgrade considerationAdvanced Raster Connectors
When decoding a Geospatial PDF containing multiple map frames, the returned model no longer has an instance of
TLcdGeospatialPDFModelDescriptor as model descriptor. Instead a TLcdModelDescriptor instance is used with
TLcdGeospatialPDFModelDescriptor.TYPE_NAME as type name property.
Upgrade considerationAdvanced Raster Connectors
Updated icePDF to version 5.1.1. Note that the icePDF license has changed from the Mozilla Public License v1.1 to
the Apache Software License v2.0.
Upgrade considerationOGC Server
LCD-5946, LCD-4201
To enable WMS request parameter access in the data backend, the signature of the method
ILcdModelProvider#getModel(String) and its extension ALcdMultiDimensionalModelProvider#getModel(String)
have been changed into #getModel(String, ALcdRequestContext). ALcdRequestContext is a new class giving
access to the original request; in the WMS, this class is implemented by TLcdWMSRequestContext, which
adds a number of additional request-related parameters.
The change will impact WMS implementations that use a custom implementation of ILcdModelProvider or
ALcdMultiDimensionalModelProvider. Affected implementations can simply update the signature of the getModel method
and ignore the new parameter.
Upgrade considerationOGC Server
LCD-5946
To enable WFS request parameter access in the data backend, the signature of the method
ILcdOGCModelProvider#getModel(String) has been changed into
ILcdOGCModelProvider#getModel(String, ALcdRequestContext). ALcdRequestContext is a new class giving
access to the original request; in the WFS, this class is implemented by TLcdWFSRequestContext, which
adds a number of additional request-related parameters.
The change will impact WFS implementations that use a custom implementation of ILcdOGCModelProvider.
Affected implementations can simply update the signature of the getModel method and ignore the new parameter.
2014.0
2014.0.17
ImprovementLucy (LuciadLightspeed)
LCD-5852
The TLcyMagneticNorthAddOn now supports dates in the period 2005-2020.
ImprovementLuciadLightspeed
LCD-5852
The magnetic north data files for WMM and IGRF have been updated to cover the period 2005-2020.
ImprovementLuciadLightspeed
LCD-5980
TLfnTileStoreModelDecoder: added constructor check for null ALfnTileStoreProvider and improved javadoc on the
semantics of passing a TLfnClientFactory which is null.
ImprovementOGC Server
LCD-5994
The WCS server now supports the reprojection of requested data via the RESPONSE_CRS request parameter.
Bug fixLuciadLightspeed
LCD-5987
Corrected case where the color bands of certain TIFF images were swapped causing incorrect rendering.
Bug fixLucy (LuciadLightspeed)
The map centric front-end no longer shows tool tips for the buttons in the status bar to work around a Swing
quirk where it annoyingly puts the tool tip where you want to click. Affected files are ErrorLogAddOn.cfg and
MapCentricModelCustomizerAddOn.cfg.
Bug fixLuciadLightspeed
LCD-5981
Correctly decode GeoTIFF images that use a geographic coordinate system encoded as a projected coordinate system.
Bug fixLuciadLightspeed
Corrected tile coordinates and gpkg_tile_matrix metadata when exporting a cropped version of tile data set.
Bug fixDatabase Connectors
LCD-6000
The PostGIS decoder now detects data extents using ST_EXTENT instead of ST_ESTIMATED_EXTENT.
You can override this using the "bounds" property in the .pgs properties file.
Bug fixDatabase Connectors
LCD-5983
The PostGIS models had wrong bounds for GEOGRAPHY data on some servers, because
ST_ESTIMATED_EXTENT produces unreliable extents.
Now, GEOGRAPHY data always has world bounds. You can still specify more specific extents
using the "bounds" property in the .pgs properties file.
Bug fixDatabase Connectors
LCD-5976
The PostGIS decoder now handles tables in non-public schemas properly.
In the .pgs properties file you can set "table = MYSCHEMA.MYTABLE".
Bug fixOGC Server
LCD-5988
It is now possible to set up a WMS with 0 layers, which can be useful for dynamic services that receive their
content at runtime. Previously, this configuration resulted in an Exception when requesting the capabilities.
Upgrade considerationLuciadLightspeed
Updated the version of the jai_imageio library, to be able to fix issue LCD-5987.
2014.0.15
ImprovementLuciadLightspeed
LCD-5967
ALcdImage painting: improved default mapping to gray-scale for non-color data.
Bug fixLuciadLightspeed
LCD-5974
Fixed artifacts when using a BufferedImage with padding as data for an OpenGL texture.
Bug fixLuciadLightspeed
LCD-5975
Reduce memory usage of TLcdBufferedTile and TLcdConcurrentBuffer.
Bug fixLuciadLightspeed
LCD-5962
In some cases, TLcdServiceLoader could trigger a comparison exception.
2014.0.14
Bug fixLuciadLightspeed
LCD-5960
Possible NullPointerExceptions in TLspLabelPainter when switching projections.
Bug fixLuciadLightspeed
LCD-5961
TLsp2DImageTextureObject: equality is now identity-based. This for example solves problems when putting such objects
in the ILspGLResourceCache.
Bug fixLucy (LuciadLightspeed)
LUCY-4232
TLcyPreviewAddOn#getDateFormat and TLcyPreviewAddOn#setDateFormat are now deprecated.
Lucy has an application-wide available format to control how dates are presented to the user
(ILcyLucyEnv#setDefaultDateTimeFormat) which should be used instead.
Bug fixAdvanced GIS Engine
LCD-5915
The line intersection methods from TLcdEllipsoidalBasicBinaryTopology and TLcdSphericalBasicBinaryTopology could sometimes
return the wrong result
when computing the intersection between rhumb polylines and polygons on the one hand, and circles, ellipses,
buffers, arc bands, on the other hand. This has been fixed.
2014.0.13
ImprovementLuciadLightspeed
LCD-5952
TLspRulerController can now also paint non-draped lines when using a custom line styler.
ImprovementLuciadLightspeed
LCD-5931
It is now possible to change the TLspRulerController's labeling algorithm by wrapping the TLspRulerLabelStyler's style
collector.
ImprovementLuciadLightspeed
LCD-5936
TLspRulerController now allows configuring a line and label styler for different paint states.
This can be useful when the measurements layer is used by another controller.
ImprovementOGC Server
LCD-5943
Improved the exception reporting in case of a missing 'service' parameter in the request.
Bug fixLuciadLightspeed
LCD-5769
Raster layer query sometimes did return a touched point when querying at the boundary between tiles.
Bug fixLuciadLightspeed
LCD-4266
TLcdInputStreamFactory did not handle percent-encoded URIs correctly.
Bug fixLuciadLightspeed
LCD-5904
TLspRasterLayer: rasters whose model reference flips the image upside-down were not painted. In practice this could
happen in some cases when using an ILcdRasterReferencer to construct the model reference.
Bug fixLuciadLightspeed
LCD-5930
Plot layers did not query the stylers again after the model has changed.
Bug fixLucy (LuciadLightspeed)
LCD-5909, LUCY-4099
TLcyLspASTERIXFormatAddOn: if the ASTERIX track data does not contain heading information, a fallback heading will
be
calculated by looking at the previous and next points in the trajectory. This is identical to how the track data is
painted in GXY views.
Bug fixLucy (LuciadLightspeed)
LUCY-4227
addons_data.xml: TLcyLASAddOn and TLcyLspLASFormatAddOn did not specify the LIDAR option in their dependencies.
This would cause them to load and fail when the LIDAR package was not purchased.
Bug fixAdvanced Raster Connectors
LCD-5937
The ECW decoder did not support some of the newer ECW references (for example ETRS89).
Bug fixDatabase Connectors
LCD-5942
The MSSQL decoder didn't use the correct spatial column name when trying to detect the SRID if none was specified.
Bug fixDefense Symbology
LCD-5926
Fixed exception when painting some APP6 or MS2525 symbols using a custom circle or arc band geometry.
Bug fixDefense Symbology
LCD-5917
TLcdEditableAPP6AObject and TLcdEditableMS2525bObject did not initialize the symbology standard property correctly
when the provided object was not an instance of one of those classes.
Bug fixMaritime Standards
LCD-5916
Fixed an issue when loading certain S-57 cells with updates.
In some cases, the CATLIT attribute of LIGHTS objects was not a parseable number.
This caused errors while painting the data.
Bug fixRadar Connectors
LCD-5909
TLcdASTERIXCategory21: the 'Track Angle' property of the 'Airborne Ground Vector' of a track is now used as the
orientation of the TLcdASTERIXTrack.
2014.0.12
ImprovementLuciadLightspeed
LCD-5891
TLcdVVWithControllersJPanel now exposes all its controllers.
Bug fixLuciadLightspeed
LCD-5906
Fixed a bug that could cause TLcdGXYImagePainter to display the color bands
of an ALcdImageMosaic in the wrong order.
Bug fixLuciadLightspeed
LCD-5902
TLcdGXYAsynchronousLayerWrapper: in some cases, getGXYPainter or getGXYEditor would return an instance whose object
was not the one configured by the painter provider or editor provider.
Bug fixLuciadLightspeed
TLcdGXYLabelingPathProvider did not return paths for ILcdGeoBuffer objects.
Bug fixLuciadLightspeed
LCD-5892
The mapped tie points returned by TLcdProjectiveRasterReferencer and TLcdRationalRasterReferencer contained flipped
y coordinates. This could for example cause TLcdResidualErrorCheckingRasterReferencer to calculate in incorrect
error value.
Bug fixLuciadLightspeed
LCD-5889
Input streams created by TLcdWMMMagneticNorthMap are now properly closed.
Bug fixLuciadLightspeed
LCD-5888
Fixed exception when decoding multilevel data with the TLcdRasterModelDecoder.
Bug fixLuciadLightspeed
LCD-5884
TLcdVVJPanel: when trying to drag points of non-editable models, the panel would still try to edit the model in some
cases.
Bug fixRadar Connectors
LCD-5898
TLcdASTERIXLiveDecoder no longer deadlocks if the input stream passed to decodeBlockSFCT is a
PipedInputStream with a limited buffer size.
2014.0.11
ImprovementLuciadLightspeed
LCD-5791
Improved the editing state listener of a layer when multiple objects are being edited by the TLspEditController. It
now throws less events. The events that are no longer thrown were redundant.
ImprovementLuciadLightspeed
LCD-5859
TLspRulerController now also works in non-georeferenced views, provided that its measure mode is Cartesian.
ImprovementLuciadLightspeed
LCD-5856
The compass navigation control now also works in non-georeferenced views.
ImprovementMaritime Standards
LCD-5865
The ECDIS decoder sample now allows filtering on object classes, for all S-57 product types (currently ENC and AML).
The relevant changes are in S52DisplaySettingsCustomizer.
Bug fixLuciadLightspeed
LCD-5886
TLspRasterLayer: raster layer query did not return correct results in some cases while panning the view.
Bug fixLucy (LuciadLightspeed)
LUCY-4152
The ILcyLucyEnv#getDefaultAzimuthFormat() returned a Format which would format azimuths in the
range [-180, 180] degrees instead of [0, 360 degrees]. For example formatting an azimuth of
270 degrees would result in a returned String of "-90" instead of "270".
Bug fixLucy (LuciadLightspeed)
LUCY-4226
The bundled deploy script now automatically supports applications that have a custom main file.
Deploying the LuciadFusion DCM now also takes jars like luciad_fusion_manager.jar as input jar
(instead of as library jar).
Bug fixLucy (LuciadLightspeed)
LUCY-4224
Adding the same action (or active settable) to multiple action bars could prevent either one from being
garbage collected if the other was still alive.
Bug fixLuciadLightspeed
LCD-5870
A memory leak in TLcdGXYInteractiveLabelsController was fixed. This memory leak occurred when dereferencing a view
with a TLcdGXYInteractiveLabelsController as controller.
Bug fixLuciadLightspeed
LCD-5863
Fixed exception when creating an ALcdBasicImage from a RenderedImage that uses a 32-bit integer for each band.
Bug fixDatabase Connectors
LCD-5861
TLcdHanaModelDescriptor can now handle table names with a colon (:) character.
In the data type name, the colon will be replaced by an underscore (_) character.
Bug fixOGC Server
LCD-5885
Due to a regression, the WCS server did no longer accept "Image" and "Engineering" as CRS in a request,
making it impossible to serve non-georeferenced content.
Bug fixDefense Standards
LCD-5842
The ECRG model decoder required the root EPF directory to be part of the frame paths
in TOC.xml. This is not required anymore, but still accepted.
2014.0.10
Bug fixLucy (LuciadLightspeed)
LUCY-4223
The mouse coordinate read-out would throw a NullPointerException in 3D when the view was tilted and the mouse
cursor came over the horizon.
Bug fixLuciadLightspeed
Calling TLcdGXYViewMeasureProvider#setRetrieveTopMostMeasures(false) did not have any effect.
Bug fixLuciadLightspeed
LCD-5661
Lightspeed views now detect when they are enlarged beyond the viewport
size limits of the underlying OpenGL implementation. If this is the
case, rather than allowing errors to propagate, the view will log a
one-off warning, and will simply not repaint itself.
Bug fixDefense Symbology
Fixed exception when painting some APP6 symbols with custom geometry.
2014.0.09
Bug fixLuciadLightspeed
LCD-5840
TLspLabelPainter painted labels at the incorrect height in 3D when using a TLspViewDisplacementStyle and disabling
the terrain layer.
Bug fixLuciadLightspeed
LCD-5839
TLcdImageModelHeightProviderFactory: the factory did not accept models that contain objects implementing ALcdImage
but one of the legacy interface (e.g. ILcdRaster or ILcdMultilevelRaster).
Bug fixLuciadLightspeed
LCD-5838
TLspTouchCreateController logged unnecessary warnings when using multiple fingers.
Bug fixLucy (LuciadLightspeed)
LUCY-4219
TLcyLspVectorFormat: the default icon for the created layers could cause painting problems (for example when
painted in the layer control) under JDK8 with certain fill patterns. This issue is most likely caused by a bug in
the JDK. A workaround
has been implemented to avoid creating such problematic icons under JDK8.
Bug fixLuciadLightspeed
LCD-5398
Screenshots of a Lightspeed view taken using the getImage() method now properly
respect the transparency of the view's background color.
Bug fixLuciadLightspeed
LCD-5830
ALfnCoverageMetadata.Builder: fixed a NullPointerException when adding assets without asset parts to a coverage.
Bug fixLuciadLightspeed
LCD-5416
In some cases, visualization of a TLcdXYArc was wrong after editing its start point.
Bug fixLucy (LuciadLightspeed)
LUCY-4213
Using "File|Connect to" with an ArcSDE url didn't work on Lightspeed maps, only for GXY maps.
It now works for both.
Bug fixWeather & Environment Standards
LCD-5831
Prevent the decoder from marking GRIB bulletins with WMO headers as corrupt
when bulletin support is turned off. The decoder will now correctly decode
the first message in non-bulletin mode.
Bug fixWeather & Environment Standards
LCD-5828
Fixed decoding of GRIB bulletins containing custom message headers.
The decoder will now look for recognizable patterns and otherwise ignore
the header instead of assuming a fixed format.
2014.0.08
ImprovementLuciadLightspeed
LCD-5286
TLcdLonLatHeightBuffer now handles buffers with zero width or height properly.
Bug fixLuciadLightspeed
LCD-5827
TLcdEPSGReferenceParser#parseProjection() returned projections with incorrect parameter values. This problem
could also cause some geotiff files to be painted at an incorrect location. This was a regression since the
2014.0 release.
Bug fixLuciadLightspeed
LCD-5825
Fixed possible exceptions when using path-based labeling algorithms like TLspOnPathLabelingAlgorithm or
TLspCurvedPathLabelingAlgorithm.
Bug fixLuciadLightspeed
LCD-5761
Plot layers (created by TLspPlotLayerBuilder) now check for misusage of the ALspStyleCollector in a styler.
In particular, you can expect an error if you forget to call submit() or objects().
Bug fixLuciadLightspeed
LCD-5821
The create handle of a TLsp2DPointListEditor now takes into account existing point list geometry. It will
start creation from the last point, instead of assuming that the point-list is uninitialized.
Bug fixLuciadLightspeed
LCD-5519
ALcdImagingEngine: fixed possible race condition that could cause an imaging engine to get stuck when disposing of it.
Bug fixLuciadLightspeed
LCD-5780
TLspRasterLayer: fixed performance regression when painting some raster data in a Lightspeed view.
Bug fixTerrain Analysis Engine
LCD-5818
The dispose method of TLspLOSCalculator now also destroys the OpenCL context it is attached to (if any).
Bug fixDefense Symbology
LCD-5829
The width of military symbols with an ILcdGeoBuffer as custom geometry was not correct.
Bug fixInfrastructure Standards
LCD-5797
The DGN native libraries now depends on glibc 2.11 instead of 2.14.
Bug fixInfrastructure Standards
LCD-832
Text 3D elements didn't take font into account.
Bug fixMaritime Standards
LCD-5376
TLcdS57SoundingPoint objects now have height (Z) zero.
Before, they had the sounding value as height, indicating a position in the air above the sea.
If you need to get the sea depth, use getSoundingValue() instead of getZ().
Bug fixS-63
LCD-5808, LCD-10166
The S-63 decoder could fail with a cipher error when using JDK 1.7.0_71 or 1.8.0_25 or higher.
This is now resolved.
Bug fixS-63
LCD-5796
Manually configured S-63 permits are now correctly excluded from the ISO-19139 metadata.
Upgrade considerationLuciadLightspeed
LCD-5790
On some systems with NVidia GPUs, the "threaded optimization" setting in
the NVidia Control Panel can cause serious performance problems with
Lightspeed views when set to "auto" or "on". If you experience severely
reduced performance, please switch this setting to "off" (it can be found
under "Manage 3D settings"). Note that the view will log a warning to this
effect if it detects abnormally low repaint rates. The warning can be
suppressed, if desired, by adding the system property
-Dcom.luciad.view.lightspeed.threadedOptimizationWarning=false to your
JVM command line.
2014.0.07
ImprovementLuciadLightspeed
LCD-5743
TLcdWMTSModelDecoder supports decoding of tile matrix sets with dimensions larger than 360x180 degrees.
ImprovementLuciadLightspeed
LCD-5813
You can now continue creation for a pointlist that already exists by using the TLspCreateController
with an existing pointlist in the "create" method of its model. This allows you to append points at the
end of the pointlist.
ImprovementLuciadLightspeed
LCD-5794
TLcdNoBoundsException now contains a getSharedInstance() method which can be used to reduce the overhead of
creating new exceptions by using a shared exception instance. This is useful in performance sensitive code.
The drawback of this is that the shared exceptions do not contain a reliable stack trace.
In order to allow creating exceptions with a reliable stack trace for debugging purposes, the setStackTraceOn()
method was added. When enabled, new exceptions are created for every call to the getSharedInstance() method. This
can have a severe performance impact, so the setStackTraceOn() method should not be used in production code.
ImprovementLuciadLightspeed
LCD-5792
It is now possible to append a TLspTouchAndHoldActionController to a TLspTouchSelectEditController.
ImprovementLuciadLightspeed
LCD-4788
A TLcdKML22DynamicModel with a NetworkLink can now be manually updated or reloaded, using the
TLcdKML22DynamicModel.updateNetworkLink(). This allows you to retry loading NetworkLinks that failed in the past,
or NetworkLinks that use "NEVER" as View Refresh Mode.
Bug fixLuciadLightspeed
LCD-5703
Fixed issue with caching of documents in TLcdKML22DocumentProvider. The viewFormat parameter was only cached on the
values of the parameters given to the server during a request. The viewFormat itself has also been added as a key
to ensure that viewFormat elements without parameters can still be distinguished from eachother.
Bug fixLuciadLightspeed
LCD-5803
TLcdCompositeModelDecoder now falls back to other model decoders when decoding a source name or data source fails.
In case there are no model decoders left to fall back to, the first failure is thrown unaltered.
The fallback considers both IOException and RuntimeException as decoding failures.
Bug fixLuciadLightspeed
LCD-5798
TLcdGXYLspAsynchronousPaintQueueManager did not properly dispose its resources when running on unsupported hardware.
Bug fixLuciadLightspeed
LCD-5776
Fixed a deadlock that could occur in some cases when using a Lightspeed view, for example when changing the
world reference, or when adding multiple layers to the view.
Bug fixLuciadLightspeed
LCD-5783
TLspSwingView would often not fill the entire painting area after resizing the view.
Bug fixLuciadLightspeed
LCD-5775
Resizing a TLspSwingView could raise an IndexOutOfBoundsException.
Bug fixLuciadLightspeed
LCD-5789
TLspTouchSelectEditController painted the next controller in the chain multiple times.
Bug fixLuciadLightspeed
ALcdImagingEngine: fixed possible exception when using color or index lookup operator.
Bug fixAviation Standards
LCD-5801
TLcdDAFIFLoader doesn't throw a cast exception anymore during the decoding of a DAFIFT file when a decoder config file isn't
provided.
Bug fixDefense Symbology
LCD-5806
Editing of large T-shaped symbols (for example TASK - BLOCK) did not keep the length of the lines constant.
Bug fixS-63
LCD-5795
The auto-detected permit files are now also correctly included in the S-63 metadata when using the ENC_ROOT
directory as source name.
2014.0.06
ImprovementOGC Server
LCD-5766
Thh WFS server now advertises Operations also at the level of FeatureTypeList in its capabilities.
This improves interoperability with third-party clients such as geoserver.
Bug fixLuciadLightspeed
LCD-5517
TLcdResizeOp: down scaling an image did not handle no-data pixels correctly on some systems.
Bug fixLuciadLightspeed
LCD-5772
No label text was painted when using a TLspIconStyle and an ALspLabelTextProviderStyle, without specifying
a TLspTextStyle.
Bug fixLuciadLightspeed
LCD-5770
TLcdTTFIcon did not paints its content within its advertised bounds.
Bug fixLuciadLightspeed
LCD-5700
Fixed a NullPointerException being thrown when trying to visualize an unstyled mesh in a Lightspeed view. An unstyled mesh
is an ILcd3DMesh implementation that does
not implement ILcdStyled3DMesh.
Bug fixLuciadLightspeed
LCD-5706
TLspClickActionController could trigger exceptions when clicking multiple mouse buttons rapidly in succession.
Bug fixOGC Server
LCD-5765
The WFS server now uses the correct casing for the "outputFormat" parameter name in the capabilities, according to.
the WFS specification.
This improves interoperability with third-party clients such as geoserver.
2014.0.05
ImprovementTerrain Analysis Engine
LCD-5469
Improved performance of ellipsoidal LOS calculations when using TLcdLOSCoverageFactory, by caching certain values
needed to calculate the ILcdLOSCoverageMatrix.
ImprovementTerrain Analysis Engine
LCD-5468
The javadoc for ILcdLOSPropagationFunction now clarifies that it the LOS Propagation function itself does
not calculate or modify the associatedPointX and associatedPointY of its created ILcdLOSCoverageMatrix instances.
This allows certain performance optimizations to be applied to certain LOS coverages in the same area.
ImprovementAviation Standards
LCD-5738
Added the ADR extension schema resources to the AIXM5 optional module. The following namespaces can now
be used without a reference to their schema location: "http://www.aixm.aero/schema/5.1/extensions/ADR",
"http://www.aixm.aero/schema/5.1/extensions/EUR/ADR" and
"http://www.aixm.aero/schema/5.1/extensions/EUR/ADR/message"
Bug fixLuciadLightspeed
LCD-5763
TLspRasterLayer: fixed possible exception when the model changes.
Bug fixAdvanced Raster Connectors
LCD-5740
Resolved issue where visibility of PDF layers was not initialized to the correct default value.
Bug fixAdvanced Raster Connectors
LCD-5739
Resolved issue where a NullPointerException was thrown when decoding certain PDF files that did not contain
optional metadata.
2014.0.04
ImprovementLucy (LuciadLightspeed)
LUCY-4208
TLcyModelReferenceAddOn: a utility method to show the model reference chooser has been added to the API.
See TLcyModelReferenceAddOn#showModelReferenceChooser for more information.
ImprovementAviation Standards
LCD-5128
Improved styler performance for lightspeed views when viewing AIXM 5.1 for certain srs-codes.
ImprovementRadar Connectors
TLcdASTERIXModelDecoder: *.ast
files are now recognized as raw ASTERIX files.
Bug fixLuciadLightspeed
LCD-5234
In certain edge cases, synchronization issues could arise when calling ALcdSLDFeatureTypeStylePainter#createFeatureTypeStylePainter
from multiple threads. This would result in IndexOutOfBoundsExceptions. This has now been resolved.
Bug fixLuciadLightspeed
LCD-5737
A Lightspeed view enabled application would not start on a server using VirtualGL due to OpenGL ES not being supported by
VirtualGL.
This has been fixed by disabling OpenGL ES probing by default. To re-enable OpenGL ES support, use -Djogl.enable.opengles.
The Lightspeed view does not require OpenGL ES support to be available.
Bug fixLucy (LuciadLightspeed)
LUCY-4212
Cancelling the loading of a file by clicking on the red cross in the status bar next to the progress indicator would
show an exception message, although nothing went wrong. The exception message is no longer shown in this case.
Bug fixLuciadLightspeed
LCD-5753
When using a label styler that calls ALspLabelStyleCollector#submit() multiple times in one style() call,
the labels could be styled incorrectly.
Bug fixLucy (LuciadLightspeed)
LUCY-4085
The generic object properties panel provided by (TLcy)TreeTableViewAddOn now calculates better preferred sizes,
based on the actual content. As a result, the map-centric front-end will automatically adapt the size of the panel,
which is overlayed on the map.
Bug fixLuciadLightspeed
LCD-5747
TLspRasterLayer: the painter did not apply the color model correctly on GeoTIFF elevation data
Bug fixLuciadLightspeed
LCD-5398
TLspOffscreenView.getImage() now properly supports views with a transparent background color.
Bug fixLuciadLightspeed
LCD-5741
TLsp2DImageTextureObject would not bind the texture in the first call of the bind method
after updating the texture's image.
Bug fixLuciadLightspeed
LCD-5736
TLcdIndexLookupOp: fixed several precision issues in the index lookup operator.
Bug fixLuciadLightspeed
LCD-5726
TLspRasterLayer: rasters where the last sub-tile row or column was 1 pixel were not painted correctly.
Bug fixOGC Server
LCD-5729
The Content-Type (MIME type) of the response to a DescribeFeatureType request now correctly matches one the output
formats advertised in the Capabilities.
More specifically, for output format "application/gml+xml; version=3.2" the Content-Type of the response is now
"application/gml+xml; version=3.2" instead of "text/plain".
Bug fixDefense Symbology
LCD-5696
MIL-STD 2525 STATIC DEPICTION minefield fill was not correct when using multiple such objects with the same
mine type and different affiliation in a layer.
Bug fixRadar Connectors
LCD-5493
TLcdASTERIXModelDecoder: files whose extension is not recognized are now treated as raw ASTERIX files again.
This behaviour was mistakenly changed in the 2013.1 release.
Bug fixRadar Connectors
LCD-5682
TLcdASTERIXCategory21: records with the same ID were sometimes not linked to together in the same trajectory. For
model decoding, this could result in multiple trajectories for a single ID. For live decoding, this could lead to
tracks being removed from the model and then immediately added back again. This is now fixed.
Bug fixRadar Connectors
Fixed a problem with retrieving collections through the ILcdDataObject interface.
Some could have a incorrect first element.
2014.0.03
ImprovementLuciadLightspeed
LCD-5719
Reduced stuttering when visualizing elevation data.
ImprovementLucy (LuciadLightspeed)
LUCY-4190
AFrontEnd: the iconImageFileName property from lucy.cfg is now respected as well.
ImprovementLuciadLightspeed
LCD-5709
Empty userdata directories are now automatically deleted when their last entry is deleted.
This reduces clutter from empty directories.
Bug fixLuciadLightspeed
LCD-5672
Possible IndexOutOfBoundsException when using curved path labels.
Bug fixAviation Standards
LCD-5676
In the case of DF as first leg after the IF, the geometry calculation leg will calculate a course
if there is no initial course set instead of producing a error line.
Bug fixAviation Standards
LCD-5716
In some cases, ICAO navaid labels could be cut off at the bottom.
2014.0.02
Bug fixLuciadLightspeed
LCD-5704
Curved labels did not get updated properly when their text was changed. This resulted in old labels not being
removed, flickering and possible exceptions.
Bug fixLuciadLightspeed
LCD-5476
When using SLD on a Lightspeed view, the raster symbolizer did not respect the SLD rule's scale range in
case of a too high pixel density.
Bug fixOGC Server
LCD-5495
The GeoTIFFModelEncoder now correctly deals with sparse rasters.
This fixes for example the visualization of incomplete LuciadFusion coverages when using WCS.
Bug fixAviation Standards
LCD-5705
TLspAIXMStyler: when using multiple stylers in different threads, the stylers could sometimes block.
2014.0.01
ImprovementLuciadLightspeed
LCD-5674
It is now possible to disable optional industry-specific components (VPF, ECDIS, Geometry) by removing their jars
from the classpath, even if they are included in the license.
A message will be logged to inform you of this event.
ImprovementLucy (LuciadLightspeed)
LUCY-4017
Added *.TFT, *.AFT, *.PFT, *.LFT as supported file types of VPF.
ImprovementLuciadLightspeed
Improved the robustness and error reporting when decoding XML documents with incorrect values.
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v8.5.
ImprovementLuciadLightspeed
LCD-4897
TLcdExtrudedShape now implements ILcdInvalidateable. It now also invalidates its cache when it is modified.
ImprovementLucy (LuciadLightspeed)
LUCY-4171
When using File | Save As, the native format is now selected by default.
ImprovementLucy (LuciadLightspeed)
LUCY-4190
AFrontEnd: all splash-screen related settings from the lucy.cfg file are now respected in the sample front-ends.
ImprovementLuciadLightspeed
LCD-5158
TLspRasterLayer: background raster layers in an empty layer tree node can still be merged.
ImprovementLuciadLightspeed
LCD-5397
When using an ILspView, it is now possible to configure the position of the labels of the lon lat grid relative to
the view, see TLspLonLatGridStyler#setLabelPosition().
ImprovementTerrain Analysis Engine
LCD-5480
TLspLosCoverageStyle now supports setting a color for invisible areas. This color is by default transparent.
The OpenCL Line-Of-Sight computation now correctly outputs ILcdLineOfSightCoverage.LOS_INVISIBLE_VALUE
for areas that are invisible. TLspLOSCoveragePainter now correctly visualizes these areas with the invisible
color set on the styler.
ImprovementDefense Symbology
LCD-5454
MIL-STD 2525 minefields objects are now filled with the type of mines depicted in the 'TypeLabel' text modifier.
Previously they were always filled with an unspecified mine. More details can be found in the documentation of the
ILcdMS2525bCoded class.
ImprovementMaritime Standards
LCD-5492
Added based support for "bENC" data (bathymetric ENC).
The data is decoded and visualized as if it were ENC data, so it has product type "ENC".
Bug fixLucy (LuciadLightspeed)
LUCY-4205
TLcyLspMapAddOn/TLcyToteAddOn: improved fitting and centering on domain objects.
Bug fixLuciadLightspeed
LCD-5694
Fixed encoding of TLcdISO19103Measure values with the TLcdGeoJsonModelEncoder.
Bug fixLuciadLightspeed
LCD-5665
After changing an ILcdGXYAsynchronousLayerWrapper's paint queue, the layers from the old paint queue could
temporarily become invisible.
Bug fixLuciadLightspeed
LCD-5521
TLspRasterLayer: the painter did not paint elevation data when using an TLspImageProcessingStyle instead of
the ColorModel on TLspRasterStyle.
Bug fixLuciadLightspeed
LCD-5598
TLcdEarthGXYViewTileSet: the tile set did not support geodetic references with a datum different from WGS84 as
reference for the tile grid.
Bug fixLuciadLightspeed
LCD-5538
When using curved path labels (TLspCurvedPathLabelingAlgorithm), TLcdLabelPainter could throw an
IllegalStateException in rare cases during printing.
Bug fixLuciadLightspeed
LCD-4860
TLcdEPSGReferenceParser returned an incorrect reference for the codes 32600 and 32700 instead of no reference
at all.
Bug fixLuciadLightspeed
LCD-5498
When using the default labeling algorithm for closed shapes (for example polylines), labels could stay at the
original location when editing an object. Now the label position is recalculated using the modified geometry.
Bug fixLuciadLightspeed
LCD-4876
When using an ILspView, the default labeling algorithm used for arc bands placed arc band labels at
ILcdArcBand#getCenter() instead of inside the arc band area.
Bug fixLuciadLightspeed
LCD-4899
Labels using TLspOnPathLabelingAlgorithm or TLspCurvedPathLabelingAlgorithm could move away from their line when
zooming in.
Bug fixLuciadLightspeed
LCD-4897
TLspExtrudedShapeEditor now invalidates the extruded shape whenever its base class is modified. This for example
fixes the problem where the label location is incorrect after moving an extruded shape.
Bug fixLuciadLightspeed
LCD-5490
ILspImageProjectionLayer did not paint the projected image in the absence of a background terrain layer. This has been fixed.
Bug fixLuciadLightspeed
LCD-5491, LCD-4818
When using a lon lat grid in a lightspeed view, it was possible that a different amount of grid lines was painted
when zooming in or zooming out to the same scale. This can now occur less often.
Bug fixLuciadLightspeed
LCD-4432
TLcdVVTerrainModel: the z-value of the point returned by TLcdVVTerrainModel#getPoint() was not updated correctly
after calling TLcdVVTerrainModel#setPointZ() with 'isLastInRow' false.
Bug fixLucy (LuciadLightspeed)
LCD-5363
TLcyMapAddOn: in some cases, setting the layer reference to a view could result in an internal error.
Bug fixLuciadLightspeed
LCD-5483
In very rare cases, labels could be painted in a different color than specified.
Bug fixLuciadLightspeed
LCD-5293
TLcdVVJPanel now informs its cursor change listeners at the appropriate moment.
Bug fixLuciadLightspeed
LCD-5092
TLspZoomController: the scale level snapping behavior did not work in some projections.
Bug fixLuciadLightspeed
LCD-5152
When using TLspComplexStrokedLineStyle, and using two regular strokes, the second stroke would not replace the
first stroke when dropped in some cases.
Bug fixLuciadLightspeed
LCD-5151
When using TLspComplexStrokedLineStyle, and using two regular strokes, part of the second stroke could be painted
when it shouldn't.
Bug fixLuciadLightspeed
LCD-5240
Logging for TLspComplexStrokedLineStyle could only be enabled by referring to a non-public class. It is now possible
to adjust the log level for complex strokes using 'com.luciad.view.lightspeed.style.TLspComplexStrokedLineStyle'.
Bug fixLuciadLightspeed
LCD-5362
When using a lon lat grid in an ILspView, the -180 degrees meridian could disappear in some cases, for example when
using a world reference with a rectangular projection like Mercator.
Bug fixLuciadLightspeed
LCD-5471
Incorrect discretization when discretizing a rhumb line that lies on the pole, and crosses the date line. This for
example causes parts of the lon lat grid to disappear in some cases when using a world reference that for example
uses the equidistant cylindrical projection.
Bug fixLuciadLightspeed
LCD-5378
When using an ILspView using grid reference and a TLspViewXYZWorldTransformation3D, the lon lat grid could disappear
and not re-appear after moving the view away from the world.
Bug fixLuciadLightspeed
LCD-5396
In some cases lon lat grid labels could flip all the time.
Bug fixLuciadLightspeed
Fixed performance bottleneck in TLspEditController when selecting many (10000+) objects.
Bug fixReal-time Engine
LCD-5500
ALcdTimeIndexedSimulatorModel: now indexes the times of the tracks correctly when they are further than
25 days apart in begin- or end-time.
Bug fixTerrain Analysis Engine
LCD-5480
The OpenCL Line-Of-Sight computation could in some cases return the wrong result for invisible areas. This has been fixed.
Bug fixWeather & Environment Standards
LCD-4375
Fixed column being wrongly discarded with wraparound tiles,
resulting in an out of bounds exception.
Bug fixDefense Standards
LCD-5488
Fixed rendering of GeoSym icons that had incorrectly filled ovals.
Bug fixInfrastructure Standards
LCD-5484
The DGN decoder failed on files that contained multilines with a single point.
Bug fixInfrastructure Standards
LCD-5485
Errors that occur when decode an individual element are now propagated as IOException from the decode() method.
Previously, they were ignored.
Bug fixMaritime Standards
LCD-4956
The exception handler and ignore invalid cells flag are now taken into account for SENC caching as well.
Bug fixMaritime Standards
LCD-5343
Fixed issues with error handling for individual cells: TLcdS57CatalogueModelDecoder.setInvalidCellExceptionHandler and setIgnoreInvalidCells
now work as a documented.
- If the invalid cell exception handler swallows the exception, the cell is ignored and decoding of other
cells continues.
- If the invalid cell exception handler re-throws the exception and ignore invalid cells is set, the cell
is ignored and decoding of other cells continues.
- If the invalid cell exception handler re-throws the exception and ignore invalid cells is not set,
decoding is interrupted and the exception is passed to the caller. This is the default.
See class javadoc section "Error handling" of TLcdS57CatalogueModelDecoder for more details.
2014.0
ImprovementLuciadLightspeed
From now on, patch releases of LuciadLightspeed will be binary compatible with their respective Major.Minor
version.
For instance, version 2014.0.01 will be binary compatible with version 2014.0. It will not necessarily be binary
compatible
with version 2014.1 or 2015.0.
There may be occasional exceptions. These will be documented in the release notes.
The appendix 'Compatibility of LuciadLightspeed version' in the developer's guide has more information.
ImprovementLuciadLightspeed
LCD-5445
TLcdWKTReferenceParser can now parse references containing a geodetic datum named "Hungarian 1972".
ImprovementLucy (LuciadLightspeed)
TLcyDynamicLonLatGridLayer.ILcyGridDeltaCalculator has been removed from the API, as well as the corresponding
getter and setter on TLcyDynamicLonLatGridLayer. This class and interface were always marked as "do not use".
If you are affected by this change, remove any usages of the TLcyDynamicLonLatGridLayer class as it might
change again in further releases, or even be completely removed.
ImprovementLuciadLightspeed
TLcdWMTSModelDecoder now supports decoding of non-quadtree tile matrix sets. Decoded non-quadtree layers
will have domain objects which are extensions of ALcdMultilevelImageMosaic. These objects can
directly be visualized in an ILcdGXYView (by creating a layer with a TLcdGXYImagePainter) and in an ILspView
(by using TLspRasterLayerBuilder to create a layer).
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: Drawing a composite curve in a Lightspeed view is now more intuitive. Selecting a new sub-curve
will replace the current sub-curve, and replace it with the newly selected sub-curve.
ImprovementLuciadLightspeed
LCD-5419
Calling ALspCreateHandle.previous() will now allow the create handle to go back all the way to its initial state. If
there are no more previous handles, the currently active handle is also removed from the queue, allowing the handle
to start again from scratch.
ImprovementLucy (LuciadLightspeed)
LUCY-4124
The KML AddOn now automatically opens its KML content panel when a KML file is opened.
ImprovementLucy (LuciadLightspeed)
TLcySplashScreenMediator: it is now possible to show a progress bar and/or text on the splash screen.
ImprovementLucy (LuciadLightspeed)
3D maps: it is now possible to specify the focusSpotIcon for the pan action in
TLcyLspMapAddOn_CommonMapComponent.cfg.
ImprovementLucy (LuciadLightspeed)
Table view: the table view will now trigger data loading of a model on a background thread,
before attempting to show the model data in the UI.
This allows to work with lazy-loaded models without blocking the UI thread.
ImprovementLuciadLightspeed
TLspViewNavigationUtil: improved fitting on 3D bounds in a geocentric reference.
ImprovementLucy (LuciadLightspeed)
LUCY-4178, LUCY-3725
UI improvements have been made to the layer properties panel:
-
When an action is disabled in the panel, the corresponding label is now disabled as well.
-
Clicking the label next to a checkbox is now equivalent to clicking the checkbox itself.
ImprovementLuciadLightspeed
LCD-4162
The TLspEditController now listens to styler changes of the objects it is editing. It will re-generate the handles
if the geometry has changed due to styler changes. This change means it is now possible to have objects change
geometry due to level-of-detail, while you are editing them, and the editing handles will also update.
ImprovementLucy (LuciadLightspeed)
LUCY-4182
The table view will now include properties representing an ILcdPoint as well.
ImprovementLucy (LuciadLightspeed)
LUCY-790
The panel for decoding ARINC has now a "Select All" toggle to select/deselect all types at one time. The layout is
also modified.
ImprovementLucy (LuciadLightspeed)
LUCY-790
The panel for decoding AIXM 3/4 snapshots has now a "Select All" toggle to select/deselect all types at one time.
ImprovementLuciadLightspeed
LCD-5156
Support was added for the SWEN08_RH2000 and SWEN08_RH70 geoid geodetic datums. See
TLcdGeoidGeodeticDatumFactory#SWEN08_RH2000
and TLcdGeoidGeodeticDatumFactory#SWEN08_RH70.
ImprovementLuciadLightspeed
LCD-5318
The TLcdGeoJsonModelEncoder#canExport method no longer checks if all elements of the model can be
encoded. This method is often used by clients to perform a quick verification. Before this change,
this check could take an excessively long time to complete for large models. Now, the check only verifies
if the first element can be encoded.
ImprovementLuciadLightspeed
TLspDensityLayerBuilder now also accepts TLspIconStyle, TLspFillStyle, TLspLineStyle,
and TLspWorldSizedLineStyle, next to the ALspDensityStyle instances. This allows for more advanced density visualization,
by using
custom icons with TLspIconStyle for example.
ImprovementLuciadLightspeed
The JOGL, JOCL, and GlueGen libraries have been updated to version 2.1.5.
ImprovementLuciadLightspeed
The TLcdBingMapsModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementLuciadLightspeed
A number of model decoders have been adapted for integration with the new imaging API. They now produce domain
objects that extend ALcdImage (in addition to still implementing ILcdRaster or ILcdMultilevelRaster).
The affected decoders are:
- TLcdArcInfoASCIIGridModelDecoder
- TLcdDEMModelDecoder
- TLcdDMEDModelDecoder
- TLcdDTEDModelDecoder
- TLcdETOPOModelDecoder
- TLcdGeoTIFFModelDecoder
- TLcdJAIRasterModelDecoder
- TLcdRasterModelDecoder
- TLcdTABRasterModelDecoder
Please refer to the class javadoc, com.luciad.imaging package javadoc, and to the developer's guide for more
information.
ImprovementLuciadLightspeed
The TLcdLRDBModelDecoder and TLcdGeoPackageModelDecoder have been adapted for integration with the new imaging API.
They now produces domain objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage,
ALcdImageMosaic or ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementLuciadLightspeed
The TLcdWMTSModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder has been adapted to retain all bands and the original pixel accuracy. This allows the
decoder to be used to work with multi-spectral, hyper-spectral, and high dynamic range imagery and measurement data
(12 bit, 16 bit, 32 bit, and so on).
Accessing the decoded data is done through the new ALcdMultilevelImage and ALcdBasicImage API. Also please refer to
the class javadoc,
com.luciad.imaging package javadoc and to the developer's guide for more
information on working with multi-band and HDR imagery.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelEncoder has been adapted to allow encoding of multi-band and HDR imagery. It now also accepts
ALcdBasicImage and ALcdMultilevelImage objects, next to ILcdRaster and ILcdMultilevelRaster objects. It can hence
be used to encode multi-spectral or HDR imagery and measurement data. This data can also be the result of an applied
image filter graph. Please also refer to the class javadoc, com.luciad.imaging package javadoc and to the
developer's guide for more
information.
ImprovementLuciadLightspeed
LCD-4763
Improved composite curve creation in Lightspeed. Setting a new curve-type will delete the current
curve, and create the new one in its place.
ImprovementLucy (LuciadLightspeed)
LUCY-4165
It is now possible to load certain data directories using the file chooser. When navigating to a directory
that is recognised as a data directory, a button appears at the right side of the file chooser. This makes
it for example possible to load un-preprocessed DAFIF data. Lucy file choosers are now also 30% larger to
increase ease of use and to provide space for the extra button.
ImprovementLucy (LuciadLightspeed)
Support for saving circles, ellipses, circular arcs and elliptical arcs
to GeoPackage and LVDB has been added.
ImprovementLuciadLightspeed
Support for saving ILcdCircle, ILcdEllipse, ILcdCircleBy3Points and ILcdArc to GeoPackage and
LVDB has been added.
ImprovementLuciadLightspeed
The vertical view now allows retrieving the main profile index of the point located to the
left of the cursor.
ImprovementLuciadLightspeed
ALfnCoverageMetadata.Builder now uses auto-defaults for its properties based on the asset metadata,
if this asset metadata is available to the builder.
This means that it is no longer required to set all the required properties on the builder.
You can set only those properties that you want to set explicitly,
and all the others will be set to defaults based on the asset metadata.
The asset metadata can be made available to the builder in one of two ways:
-
By passing an ILfnResourceResolver when constructing the builder.
There are two implementations of this interface:
- ALfnTileStore: resolves resources from a Tile Store.
- TLfnCollectionResourceMetadataResolver: resolves resources from a collection.
- By passing the asset metadata themselves to the builder using
ALfnCoverageMetadata.Builder.addAssetInfo(ALfnAssetMetadata, String).
Examples of auto-defaults (non-exhaustive list):
-
A coverage's default ID is a UUID.
This actually applies to assets too: you no longer need to set an ID on the ALfnAssetMetadata.Builder.
-
A coverage's default geographic reference is the common geographic reference of the assets.
If the assets have no common geographic reference, the default geodetic reference WGS 84 is used (EPSG:4326).
- A coverage's default bounding box is the union of the asset's bounding boxes.
- A vector coverage's default data model is a superset of the asset's data models.
If the asset metadata is not available to the builder, the auto-defaults will use constant defaults such as
geodetic reference and world bounds.
The auto-defaults are active as long as you're updating a builder, but once you've built a coverage metadata the
knowledge of whether a property value is an auto-default is lost.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn: decoding and visualization of MORA data is now supported.
The Colors configuration files are modified consequently.
ImprovementLuciadLightspeed
Support was added for a new tile format "image/tiff" for elevation and multivalued coverages.
ImprovementLucy (LuciadLightspeed)
A new DAFIF addon (com.luciad.lucy.addons.dafif2.TLcyDAFIFFormatAddOn) was added. The main benefits of this new
addon are:
- It can open un-processed DAFIF data as well as processed (.toc) data.
- It is possible to load multiple DAFIF data sets at the same time.
- The data is lazy-loaded.
DAFIF data can now also be painted using hardware acceleration in Lightspeed views, using
com.luciad.lucy.addons.dafif2.lightspeed.TLcyLspDAFIFFormatAddOn. This addon is compatible with the new
DAFIF addon (com.luciad.lucy.addons.dafif2.TLcyDAFIFFormatAddOn).
ImprovementLuciadLightspeed
LCD-3261, LCD-4303, LCD-4603
The navigation controllers now navigate around and toward the object that is touched by the mouse. This allows
for convenient navigation around tall or airborne objects, such as air tracks.
ImprovementLuciadLightspeed
When using a Lightspeed view, the default selection style for text and text labels now uses an orange color with a
black halo instead of an orange color with the regular halo color. This improves the legibility of the text in cases
where a light regular halo color is used.
ImprovementLuciadLightspeed
The package com.luciad.imaging introduces a new API to perform various image
processing operations on raster data. The package defines a new representation
for image data (ALcdImage), which supports multi-band and HDR imagery. It also
provides a number of operators, such as band select or convolution, which can be
applied to images. In GXY views, images can be visualized using the new
TLcdGXYImagePainter. In Lightspeed views, TLspRasterLayerBuilder supports the new
image types and the new TLspImageFilterStyle can be used to perform image processing
on raster layers in a view. Please refer to the package javadoc and to the developer's
guide for more information.
ImprovementLuciadLightspeed
LCD-5118
The Feature Type Style decoder, TLcdSLDFeatureTypeStyleDecoder, now also supports decoding a Feature Type Style
from XML documents that have a Styled Layer Descriptor, Named Layer, User Layer, or User Style as top level element.
ImprovementLucy (LuciadLightspeed)
TLcyLspFusionVectorAddOn and TLyFusionVectorAddOn will now use SLD-based styling for layer visualization when
the Fusion vector coverage contains SLD information.
ImprovementLuciadLightspeed
LCD-3578
The creation of a layer for Fusion vector data has been simplified.
The classes which are available in the API have been extended to support more use cases by default:
TLfnGXYVectorLayer: used to visualize Fusion vector data in GXY views
-
When the vector coverage for which the layer is created contains SLD feature type styles,
the visualization will automatically use those feature type styles for styling (bodies and labels).
-
When the vector coverage for which the layer is created contains VPF data,
the visualization will automatically use GeoSym styling.
-
When the vector coverage defines OGC filters, the filters will be respected during the visualization.
-
The layer contains by default a label painter based on the ILcdDataModel of the coverage.
Consult the javadoc of TLfnGXYVectorLayer for more information.
TLspFusionVectorLayerBuilder: used to visualize Fusion vector data in Lightspeed views
-
When the vector coverage for which the layer is created contains SLD feature type styles,
those feature type styles define the styling which will be used during the visualization.
-
When the vector coverage for which the layer is created contains VPF data,
the visualization will automatically use GeoSym styling.
-
When the vector coverage defines OGC filters, the filters will be respected during the visualization.
-
A label styler is added by default.
Consult the javadoc of TLspFusionVectorLayerBuilder for more information.
ImprovementLucy (LuciadLightspeed)
LCD-5148
TLcyAIXMAddOn: decoding and visualization of obstacle data is now supported.
The Colors configuration files are modified consequently.
ImprovementLuciadLightspeed
LCD-4282
TLcdScaleFormat now parses plain values as "1 : value" (for example, "25,000" is interpreted as "1:25,000").
It also accepts common decadic multiple suffixes (for example "1 : 25K").
ImprovementLucy (LuciadLightspeed)
The following formats are now natively supported in Lightspeed views:
- AIXM (TLcyLspAIXMFormatAddOn)
- ARINC (TLcyLspARINCFormatAddOn)
- DAFIF (TLcyLspDAFIFFormatAddOn)
The color menu items for AIS modules are not available anymore on 3D maps. The styling of AIS layers
in 3D views can be customized by adjusting the 'TLcyLspXxxAddOn.sldLocation' property in the add-on's config
files.
ImprovementLuciadLightspeed
LCD-5047
ALspAWTView now has a getImage() method, analogous to the one that already existed
in TLspOffscreenView, to retrieve a screenshot of the view.
ImprovementLucy (LuciadLightspeed)
The action bars of the map now allow to configure global actions into them. For example adding the following
line to the TLcyLspMapAddOn.cfg file
TLcyLspMapAddOn.createMapAction.default.toolBar.item=New Map
will add the global action to create a new map to the tool bar of each map.
ImprovementLucy (LuciadLightspeed)
TLcyActionBarUtil: a new utility method has been added (#setupAsConfiguredActionBar) which facilitates the creation
of a configured action bar.
ImprovementLucy (LuciadLightspeed)
TLcyActionBarUtil: added a findAction and findActiveSettable utility method which can be used to find an
action or active settable in an ILcyActionBar. Consult the javadoc of those methods for more information.
ImprovementLuciadLightspeed
Added support for PNG in TLcdTFWRasterModelDecoder.
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v8.4. At the same time, a few EPSG code parsing problems were fixed:
- Some geocentric references were parsed as geodetic references
- The datum transformation parameters were improved
ImprovementLuciadLightspeed
LCD-4980
SLD in Lightspeed views now support the perpendicularOffset property for LineSymbolizers that contain dashed patterns.
ImprovementLuciadLightspeed
ILcdGXYView#setNumberOfCachedBackgroundLayers: this method will now throw a clear exception when
passing a negative number, or a number higher than the number of layers in the view, instead of
possibly resulting in a rather meaningless exception later on (e.g. an ArrayIndexOutOfBoundsException).
ImprovementLucy (LuciadLightspeed)
LUCY-4105
TLcyMapEditUnitAddOn: for the point formats which contain the axis the format variants without
whitespace have been hidden, and the variants containing whitespace have been made visible by default.
You can re-activate the old formats in the map_units.cfg file.
ImprovementLuciadLightspeed
A new, high-performance plot visualization layer was added. It can handle large static point datasets.
See the developer's guide or TLspPlotLayerBuilder javadoc for details.
The "lightspeed.plots" sample demonstrates this.
This functionality used to be in the Realtime component and was moved to Lightspeed. The functionality and API
are the same.
ImprovementLuciadLightspeed
The new LIDAR component introduces support to decode LAS files and visualize the point clouds
efficiently in a Lightspeed view. For more details, see:
- The LIDAR Developer's Guide
- The javadoc of TLcdLASModelDecoder on how to decode .las files
- The javadoc of TLspLIDARLayerBuilder on how to visualize such data
ImprovementLuciadLightspeed
Performance improvements for TLspLabelPainter when querying label information and preparing for painting.
ImprovementLuciadLightspeed
ILcdExpressions created using TLcdExpressionFactory.attribute() now implement equals() and hashCode().
ImprovementLuciadLightspeed
TLcdCompositeModelDecoder now implements ILcdDataSourceModelDecoder as well.
ImprovementLucy (LuciadLightspeed)
Lucy can now decode and visualize LASer data on a Lightspeed view. This functionality is provided by
TLcyLASAddOn and TLcyLspLASFormatAddOn.
ImprovementLuciadLightspeed
LCD-4152
TLcd2DBoundsIndexedModel can now accept an initial bounds that has zero width or height, instead of failing.
Keep in mind that for optimal performance, the initial bounds ideally encompass all elements in the model.
If this is not possible, it is better not to provide an initial bounds, and use the empty constructor.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder and TLcdGeoTIFFModelEncoder now support TIFF images encoded with the
BigTIFF variant. The decoder handles both regular GeoTIFF and BigTIFF transparently. The
encoder has a new setEncodeBigTIFF() method, which allows the user to choose the encoding format.
The encoder.raster.geotiff sample now also has a BigTIFF output option.
ImprovementLuciadLightspeed
LCD-4385
A new sample (lightspeed.datamodel) now shows the data model of any supported data file.
ImprovementLuciadLightspeed
LCD-3081
TLspLabelPainter now supports painting non-ASCII characters when using curved path labels.
ImprovementLuciadLightspeed
LCD-4503
TLspViewBuilder now uses a long instead of an int to specify the size of the view's
OpenGL resource cache. This allows caches of more than 2 GB to be used on GPUs that
have sufficient memory for this.
ImprovementLuciadLightspeed
LCD-215, LMAP-5389
TLcdGXYViewFitAction: improved results when fitting on non-bounded models with bounded elements.
ImprovementLuciadLightspeed
LCD-3625, LCD-4671
TLspLabelEditor now respects the world offset and world rotation offset of the original
label. This means that for example path labels stay anchored to their path after
moving them.
ImprovementLuciadLightspeed
LCD-3610
TLspLabelPainter now tries to call the styler as little as possible by passing multiple
objects to it. This improves the performance when using a styler that has a large overhead
per style call.
ImprovementLuciadLightspeed
LCD-237, LMAP-4859
The DynamicLonLatGridLayer sample class shows how to dynamically refine a lon lat grid.
ImprovementLuciadLightspeed
LCD-4402
TLcdEarthGXYRasterPainter now uses a startResolutionFactor of 100 by default instead of infinity.
As a result the bounds of the raster may be painted instead of the tiles when zoomed out a lot.
This avoids excessive memory usage when visualizing many tile sets or when a tile set has a very
large number of tiles at the least detailed level. The latter can for example happen
unexpectedly when using an external tile service. You can revert to the old behavior by calling
startResolutionFactor(Double.POSITIVE_INFINITY).
ImprovementLuciadLightspeed
LCD-4051
Added ILcdCurve support for TLcdXYZLine, TLcdXYFloatLine, TLcdLonLatHeightLine.
ImprovementLuciadLightspeed
LCD-3569
You can now use TLcdLockUtil together with the Java 1.7 try-with-resources idiom.
This means that you no longer have to unlock explicitly in a finally block.
Example:
try (TLcdLockUtil.Lock lock = TLcdLockUtil.readLock(model)) {
Enumeration enumeration = model.elements();
}
ImprovementLuciadLightspeed
LCD-3974
TLcdDefaultModelModelTransformation, TLcdDefaultModelXYWorldTransformation and
TLcdDefaultModelXYZWorldTransformation now have a convenience constructor that takes the
source and destination reference as arguments.
ImprovementLuciadLightspeed
LCD-244, LCD-4583
TLcdGXYMultiFontLabelPainter now extends from TLcdGXYStampLabelPainter. Because of this,
it now supports:
- label editing
- label halo and pin halo
- interactive labels
- labels of labels
- ...
A bug that caused overly narrow spacing between 2 lines of label text, and left a gap at the bottom of the label,
was fixed as well.
ImprovementLucy (LuciadLightspeed)
LCD-4284
MGRS strings that are displayed in Lucy now contain an extra space in between the grid zone
designation and the 100km squares. This change affects the MGRS point format and the grid
coordinate add-on.
ImprovementLuciadLightspeed
LCD-4284
TLcdUtmMGRSUtil, TLcdUpsMGRSUtil and TLcdMGRSFormat now make it possible to add a separator
between the zone designation and the 100km squares designation. See the setZoneSeparator() method.
ImprovementLuciadLightspeed
LCD-3752
TLcdTransformedHeightProvider is now faster when no height can be found.
ImprovementAdvanced Raster Connectors
The TLcdDIMAPModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementAdvanced Raster Connectors
The TLcdECWModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementAdvanced Raster Connectors
The TLcdGeospatialPDFModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementAdvanced Raster Connectors
The TLcdGeoSPOTModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementAdvanced Raster Connectors
The TLcdSwissDHMMatrixModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementDatabase Connectors
Added support for decoding and encoding data from/to a SAP HANA database.
- See samples.hana.lightspeed.MainPanel for an extended sample.
- See package com.luciad.format.hana for supporting API classes.
WARNING: this API is beta: the API may be modified or removed in subsequent releases.
ImprovementOGC Server
LCD-5146
The Jetty servlet container delivered with the OGC Web Server Suite to deploy and run the sample OGC services
(see samples.ogc.server.Main) has been upgraded from version 6.1.21 to 8.1.15.
ImprovementOGC Server
LCD-4836
An appropriate HTTP status code is now set on the response in case of a service exception report:
4xx for client request errors, 5xx for server errors.
ImprovementOGC Server
LCD-4473
It is now possible to configure a "Last-Modified" date on a WCS coverage (TLcdCoverageOffering).
This information is used to fill in the "Last-Modified" date HTTP header on the response of a
GetCoverage and DescribeCoverage request and to support conditional HTTP requests.
ImprovementOGC Server
LCD-4473
It is now possible to configure a "Last-Modified" date on a WMS layer (ALcdWMSLayer).
This information is used to fill in the "Last-Modified" date HTTP header on the response of a
GetMap and GetFeatureInfo request and to support conditional HTTP requests.
ImprovementOGC Server
LCD-4472
It is now possible to configure an expiry date on a WCS coverage (TLcdCoverageOffering).
This information is used to fill in the "Expires" HTTP header on the response of a GetCoverage
and DescribeCoverage request.
ImprovementAviation Standards
LCD-5229
More local horizontal datum codes are recognized during the decoding of DAFIF files. All horizontal datum codes
are now supported, except for "IND", "LCF", "SOA" and "SGS".
ImprovementAviation Standards
ARINC MORA data is now decoded and visualized.
The data type is TLcdARINCDataTypes#MORA, which extends from the new AreaMinimumAltitude type in AIS.
See TLcdARINCMORAHandler for details on the decoding.
It is visualized in Lightspeed and GXY layers using labels that denote thousands and hundreds for feet.
See TLspAISStyler and TLcdARINCLayerConfiguration for details on how to customize styling.
ImprovementAviation Standards
You can now model area-based minimum safety altitudes in AIS.
This can be used to model any area-, cell- or quadrangle-based minimum safety altitudes, such as:
MORA (Minimum Off-Route Altitude), ORTCA (Off-Route Terrain Clearance Altitude),
MEF (Maximum Elevation Figure), AMA (Area Minimum Altitude).
The interpretation of the altitudes is not defined in AIS. For example, it is not specified if obstacles are
included, and how much margin is added.
See ILcdAreaMinimumAltitude, TLcdAISDataTypes#AreaMinimumAltitude or the AIS Developer's Guide for details.
It is visualized in Lightspeed and GXY layers using labels that denote thousands and hundreds for feet.
See TLspAISStyler for details on how to customize styling.
ImprovementAviation Standards
LCD-5148
Support has been added to decode obstacle data. A new object handler has been added for this,
TLcdAIXMObstacleHandler. It is registered by default on the main AIXM model decoder, TLcdAIXMModelDecoder.
A dedicated model descriptor and a convenience class listing all decoded obstacle properties can be found
in the com.luciad.format.aixm.model.obstacle package.
ImprovementAviation Standards
The TLcdAIXMModelDecoder now has all available object handlers registered by default.
This means you can use it to decode everything, without additional configuration.
You can still register your own handlers. In this case, the default handlers are ignored.
ImprovementAviation Standards
There now is a convenience TLcdARINCModelDecoder that decodes every object type without additional configuration.
You can still use the existing TLcdARINCDecoder for full control.
ImprovementAviation Standards
There now is a convenience TLcdDAFIFModelDecoder that decodes every object type without additional configuration.
It can decode:
- A DAFIF file, for example FILE0
- A DAFIFT file, for example ARPT/ARPT.TXT
- A directory containing DAFIF or DAFIFT files
- A .toc file pointing to DAFIF or DAFIFT files
- A .toc file in a directory with subdirectories containing DAFIF or DAFIFT files
The TLcdDAFIFModelDecoder produces lazy-loading models, so the actual data is only loaded when accessed,
for example by the view or layer.
You can still use the existing TLcdDAFIF...Decoder classes for full control.
ImprovementAviation Standards
You can now visualize AIS data with ICAO styling natively in a Lightspeed view.
Please refer to TLspAISStyler, the AIS Developer's Guide or the "ais.lightspeed" sample for more details.
ImprovementAviation Standards
You can now visualize AIXM data with ICAO styling natively in a Lightspeed view.
Please refer to TLspAIXMLayerBuilder or the AIXM Developer's Guide for more details.
ImprovementAviation Standards
You can now visualize ARINC data with ICAO styling natively in a Lightspeed view.
Please refer to TLspARINCLayerBuilder or the ARINC Developer's Guide for more details.
ImprovementAviation Standards
Improved navaid labels in a similar way as done for LCD-4467: The background now has a greater margin to
improve readability.
ImprovementDefense Standards
The TLcdBCIRasterModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementDefense Standards
The TLcdECRGModelDecoder and TLcdNITFModelDecoder have been adapted for integration with the new imaging API. They
now produces domain objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage,
ALcdImageMosaic or ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementDefense Standards
The TLcdUSRPModelDecoder has been adapted for integration with the new imaging API. It now produces domain
objects that also implement one of the new interfaces: ALcdImage, ALcdMultilevelImage, ALcdImageMosaic or
ALcdMultilevelImageMosaic.
Please refer to the class javadoc, com.luciad.imaging package javadoc and to the developer's guide for more
information.
ImprovementDefense Symbology
LCD-5413, LCD-5415
TLcdEditableAPP6AObject#getPossibleTextModifiers and TLcdEditableMS2525bObject#getPossibleTextModifiers:
the possible text modifiers of various symbols have been extended.
Most importantly, all symbols now include the unique designation text modifier.
ImprovementDefense Symbology
LCD-5039
Added more context when displaying names of military symbols to make it easier to identify them.
ImprovementS-63
The TLcdS63UnifiedModelDecoder, TLcdS63CatalogueModelDecoder and TLcdS63ModelDecoder now automatically
pick up basic/meta permit files which are located next to the source file. This avoids the need to
configure those permits on the model decoder itself.
The sample class S63ModelDecoder was removed: it configured the sample permit, and was annotated
with @LcdService so that the sample data could be loaded with the service-loader-based model decoder.
Since the TLcdS63UnifiedModelDecoder now automatically picks up the permit, this is not necessary anymore.
TLcdS63UnifiedModelDecoder is now annotated with @LcdService instead.
ImprovementTiling Engine
LuciadFusion now supports fusion of floating point elevation values.
There are some limitations:
-
The input format needs to support floating point elevation values as well.
GeoTIFF is currently the only format that supports this.
-
The new elevation tile format "image/tiff" provides optimal support for floating point values and is the new
default.
Old clients will not be able to visualize coverages with this new tile format.
For backwards compatibility, you need to explicitly set "image/png" as tile format on the coverage.
-
The old "image/png" tile format also provides limited support for decimal values by scaling them.
The drawback is that the precision is unpredictable because the scaling depends on the max./min. values which
are different in each tile.
-
It may be beneficial to use "image/tiff" even if the input format does not support floating point elevation
values:
fusion interpolates the values, in which case it makes sense to preserve their floating point nature even if the
input values themselves are not floating point.
-
The "image/tiff" tile format can also be used for multivalued data.
Even though there is currently no input format that supports floating point multivalued data, it may still be
beneficial to use this new tile format to preserve floating point values:
fusion interpolates the values, in which case it makes sense to preserve their floating point nature even if the
input values themselves are not floating point.
ImprovementTiling Engine
The filtering of vector data during the fusion process can now use SLD.
Consult the developer guide, user guide and javadoc of TLfnVectorCoverageMetadata for more information.
ImprovementTiling Engine
Fusion now supports S-63, the encrypted low-level data format of ECDIS.
ImprovementTiling Engine
Fusion now supports S-57 updates as additional detail, both for tiled and non-tiled coverages.
Given an existing S-57 base which was fused into a coverage, you can create a new asset for the S-57 update and add
it to that coverage.
Bug fixLuciadLightspeed
LCD-4359
TLspTouchNavigateController did not work correctly when trying to rotate tilted geocentric views.
Bug fixLuciadLightspeed
LCD-5283
TLcdDTEDModelDecoder incorrectly accepted folders in its canDecodeSource method.
Bug fixLuciadLightspeed
LCD-5455
TLspTouchAndHoldActionController: improved touch and hold detection robustness.
Bug fixLuciadLightspeed
LCD-5418
Improved the networklink update behavior to avoid deadlocks. Model update notifications are now thrown outside
of any model locks, so that model listeners can take read-locks on the model safely. This fix also improves
networklink updating performance slightly by reducing the size executed code that locks the kml model.
Bug fixLuciadLightspeed
LCD-5444
To avoid "Timer already cancelled" problems, each Networklink now has its own timer for scheduling updates.
Bug fixLucy (LuciadLightspeed)
LUCY-4192
TLcyVerticalViewAddOn: LUCY-2660 caused the "set height" textfield not to take altitude format changes into account
anymore.
Bug fixLuciadLightspeed
LCD-5443
For some GeoPackage files, 'TEXT' table columns were mapped to the core 'Character' data type instead of 'String'.
This could happen when using Java 1.8.
Bug fixLucy (LuciadLightspeed)
LUCY-4191
TLcyLspDrawingAddOn: when creating a drawing shape with touch based input, the extra on-map buttons would sometimes
remain permanently on the map.
Bug fixLucy (LuciadLightspeed)
3D maps: when not specifying the focusSpotIcon property in TLcyLspMapAddOn_CommonMapComponent.cfg, the
default icon is now used instead of no icon at all.
Bug fixLuciadLightspeed
LCD-3789
TLspViewXYZWorldTransformation3D.getScale() now returns a value that does not depend on the current reference
point (see getReferencePoint()). This fixes a few scale-related issues:
- The scale icon showed incorrect values when linking the camera to for example a track
- When using level-of-detail based on the scale, the incorrect detail level was chosen in some
cases.
- The scale was not always updated immediately during navigation.
- The shape discretization was too fine-grained in some cases.
Bug fixLuciadLightspeed
LCD-551
Fixed an issue preventing decoding of non-qualified XML elements.
Bug fixLuciadLightspeed
TLcdGXYMultiFontLabelPainter now throws a property change event when calling the setConsiderPinForBounds()
method.
Bug fixLuciadLightspeed
LCD-5328
The TLcdSLDFeatureTypeStyle#insertRuleAt now correctly shifts rules towards the back of list of
rules instead of replacing the rule at that index. For example, if two rules are inserted at position 0,
the one that was added first will now be shifted to position 1. Before, the one added first
would be replaced with the one added second.
Bug fixLuciadLightspeed
Fixed artifacts when painting a text label in combination with a semi-transparent halo color or fill color
(TLspLabelBoxStyle.Builder#fillColor).
Bug fixLucy (LuciadLightspeed)
The object customizer for ARINC or AIXM 3/4 procedures, routes or aerodromes would use the regular object
customizer when the DAFIF addon is not included in the addons.xml file.
Bug fixLuciadLightspeed
LCD-5089
The Lightspeed SLD styler, TLspSLDStyler, used the scale at the center of the map to evaluate rules. This
has been changed and it now uses the scale at the center of the projection. This scale is constant over the whole
view.
The previous behavior would result in unexpected behavior when e.g. using SLD in combination with tiled WMS requests.
Part of a feature could be visible on one tile, but hidden on the other tile as the scale varied between those two
tiles.
This is avoided by using the scale at the center of the projection which does not depend on the current view
location.
Bug fixLuciadLightspeed
LCD-5175
Fixed an issue in plot layers that caused objects to disappear.
This happened sometimes when selecting, de-selecting and re-selecting objects.
Bug fixLuciadLightspeed
LCD-5031
Leading line breaks are now preserved when parsing literal content from SLD documents.
Bug fixLucy (LuciadLightspeed)
LUCY-4144
Fixed issue in PIM Format that would cause it to always display a 3D model of a plane, even if pim_addon.cfg was
configured to display a 2D png image. This fix is only relevant for Lightspeed views.
Bug fixLuciadLightspeed
LCD-4830
Some polar stereographic projections were incorrectly mapped to a stereographic projection when
TLcdWKTReferenceParser was used.
Bug fixLuciadLightspeed
LCD-4654
Moving the mouse over a TLspAWTView no longer schedules label placements.
Bug fixLuciadLightspeed
LCD-4051
TLcdLonLatFloatPolygon and TLcdLonLatFloatPolyline getLength2D() returned a value in degrees
instead of meters.
Bug fixLuciadLightspeed
LCD-4051
TLcdLonLatPolyline and TLcdLonLatLine's getTangent2D() method now returns correct results for parameters 1 and 0.
Bug fixLuciadLightspeed
LCD-3717
Improved the precision when transforming bounds to a grid reference in some cases.
Bug fixLuciadLightspeed
LCD-2689, LCD-3456
Lon lat polygons or polylines no longer return bounds that are smaller than expected.
Bug fixAviation Standards
TLcdARINCEnrouteAirwayHandler could throw a NPE when no DME/TACAN/VOR/NDB model is set.
Bug fixAviation Standards
TLcdARINCHoldingHandler.setRunwayModel() would throw a NPE when calling it with a null reference.
Bug fixDefense Standards
LCD-5126
Improved detection of wrapping coordinates. The decoder sometimes produced
stretched images by falsely assuming that the coordinates wrapped around the
date line.
Bug fixDefense Symbology
LCD-5358
Corrected specification misspellings of "ordnance" and "maintenance".
Bug fixDefense Symbology
LCD-5070
Fixed some minor affiliation issues with TLcdEditableAPP6AObject and TLcdEditableMS2525bObject.
Bug fixInfrastructure Standards
LCD-5470
The DGN decoder sometimes assigned wrong priorities to elements or holes within cells, causing paint ordering issues.
Additionally, the TLcdDGNGXYPainterProvider and TLcdDGNCellGXYPainter now have the "paint unfilled holes" option
enabled by default to make sure holes are always painted.
Upgrade considerationLuciadLightspeed
LCD-5377
You can now register an ILcdViewInvalidationListener to TLspAWTView, TLspSwingView, and TLspOffscreenView.
To enable this, two new methods were added to ILspView:
- addViewInvalidationListener
- removeViewInvalidationListener
View invalidation listeners can be used to get notified whenever the view has been invalidated.
Upgrade considerationLuciadLightspeed
The ILspLabelStyler interface was removed. This interface served no purpose, and using it could lead to incorrectly
working code. Instead of using ILspLabelStyler, ALspLabelStyler can still be used without changes, or ILspStyler
can be used directly by casting the style collector passed in the style() method to ALspLabelStyleCollector. For
more information on label styling and examples, see ILspStyler or ALspLabelStyleCollector class doc.
Upgrade considerationLuciadLightspeed
LCD-4768
To prevent incorrect usage, TLcdModelXYWorldTransformation and TLcdModelXYZWorldTransformation were
deprecated and replaced by the TLcdIdentityModelXYWorldTransformation and TLcdIdentityModelXYZWorldTransformation
classes.
Upgrade considerationLuciadLightspeed
The TLcdWMTSLayer.hasCompatibleTileStructure method has been removed. The updated decoder now supports all tile
structures. Previously it only supported quad tree tile structures. You can use the new isTileStructureQuadTree
method to query if a TLcdWMTSLayer has a quad-tree tile structure. In other words this new method behaves exactly
like hasCompatibleTileStructure did in older versions.
Upgrade considerationLucy (LuciadLightspeed)
The JGoodies Forms lib is upgraded from version 1.3.0 to the latest 1.8.0 version.
Upgrade considerationLucy (LuciadLightspeed)
By default, the addons.xml and addons_gxy.xml files include the new DAFIF add-on
(com.luciad.lucy.addons.dafif2.TLcyDAFIFFormatAddOn)
instead of the previous DAFIF add-on (com.luciad.lucy.addons.dafif.TLcyDAFIFAddOn). This means that by default
workspaces
that were written using the old DAFIF add-on can not be loaded anymore. In that case the following warning messages
will be logged:WARNING: Could not decode reference[%x] because codec for
uid[com.luciad.lucy.addons.dafif.TLcyDAFIFAddOn.XxxCodec]
was not available.. In order to load these old workspaces again, it is possible to switch back to the old
addon by including it again in the addons.xml file.
Upgrade considerationLuciadLightspeed
LCD-5089
TLspScaleIndicator: the scale indicator now uses the scale at the center of the projection by default
instead of the scale at the center of the map.
Consult the javadoc of TLspScaleIndicator#setScaleAtCenterOfMap for more information.
Upgrade considerationLuciadLightspeed
LCD-5089
TLcdGXYScaleIndicator: the scale indicator now uses the scale at the center of the projection by default
instead of the scale at the center of the map.
Consult the javadoc of TLcdGXYScaleIndicator#setScaleAtCenterOfMap for more information.
Upgrade considerationLuciadLightspeed
LCD-5133
The TLcdGXYCompositeViewLabelPlacer#getGroupID(...) method now also takes a view as argument. Code extending from
this method can be fixed by adding an ILcdGXYView parameter to the method signature.
Upgrade considerationLuciadLightspeed
TLcdWeakIdentityHashMap no longer extends AbstractMap. This should not affect the use of this class.
Upgrade considerationLucy (LuciadLightspeed)
TLcyLookAndFeelAddOn: the Alloy and Kunststoff look-and-feels have been removed as they are no longer maintained
by their authors, and may cause issues as of Java 1.6.
In case you were using any of those look-and-feels, Lucy will revert to a default look and feel.
Upgrade considerationLuciadLightspeed
LCD-3634
TLpsFusionVectorLayerBuilder: you can now set any ILspStyler on the builder,
without triggering tile loading of the most detailed level.
Prior to this release, you had to make sure that the ILspStyler which was set used a TLspFusionGeometryProvider.
If this was forgotten, you would probably trigger the loading of the most detailed tiles,
even when visualizing tiles at a less detailed level.
The TLpsFusionVectorLayerBuilder will now automatically ensure that the ILspStyler works with the correct
geometries.
Consult the class javadoc of TLpsFusionVectorLayerBuilder for more information.
This improvement has two consequences:
-
The ILspStyler which is returned by the ILspInteractivePaintableLayer#getStyler method of the created layer will
no longer be the styler which was set on the builder.
-
If your ILspStyler uses an ALspStyleTargetProvider, this style target provider will no longer receive the
domain objects as it was previously the case.
It will receive the geometries specific to a tile instead.
Consult the class javadoc of TLpsFusionVectorLayerBuilder for more information.
Upgrade considerationLuciadLightspeed
With the introduction of support for non-quadtree tile matrix sets,
it is no longer guaranteed that WMTS models (created via TLcdWMTSModelDecoder)
contain an ILcdEarthTileSet domain object. If a layer's tile structure is not a quadtree,
the created domain object (via TLcdWMTSModelDecoder) is an extension of ALcdMultilevelImageMosaic.
In this case you can no longer explicitly cast the domain object to an ILcdEarthTileSet as before.
If the tile structure is a quadtree, the created domain object can be casted to both
ILcdEarthTileSet and ALcdMultilevelImageMosaic.
Upgrade considerationLuciadLightspeed
For version 2014.0, all LuciadMap customers with the appropriate maintenance contract are upgraded to
LuciadLightspeed LM. This is the same product as LuciadLightspeed, but with the
hardware-accelerated components disabled. With LuciadLightspeed LM, you
cannot instantiate any ILspView implementation, nor use any functionality that uses such a view.
LuciadMap customers upgrading from LuciadMap 2012 or 2013 to LuciadLightspeed LM can find the
release notes that are relevant to them
here.
LuciadLightspeed LM is only available for customers who bought LuciadMap in the past.
Upgrade considerationLuciadLightspeed
The lookup table classes used for color filtering have been migrated to the new image processing API. As a consequence
the following classes have been renamed:
- com.luciad.view.lightspeed.style.imagefilter.ALspColorLookupTable to com.luciad.imaging.operator.util.ALcdColorLookupTable
- com.luciad.view.lightspeed.style.imagefilter.TLspColorLookupTable to com.luciad.imaging.operator.util.TLcdColorLookupTable
- com.luciad.view.lightspeed.style.imagefilter.TLspComponentColorLookupTable to com.luciad.imaging.operator.util.TLcdComponentColorLookupTable
- com.luciad.view.lightspeed.style.imagefilter.TLspLookupTable to com.luciad.imaging.operator.util.TLcdLookupTable
The TLspColorLookupTableFilterStyle is still available but you are strongly advised to use the more general TLspImageFilterStyle
instead.
You can easily convert the lookup table style to an equivalent image filter by chaining TLcdColorLookup operators.
Upgrade considerationLuciadLightspeed
AssetParts now always belong to a parent asset metadata, to which they now have a reference.
They can no longer be created as stand-alone instances.
The constructors of RasterAssetPart and VectorAssetPart have been removed.
As a result, users of any of these constructors will get compile errors which can be fixed by using either
AssetPart.Builders or one of the methods addAssetPart or setAssetPart on TLfnRasterAssetMetadata.Builder or
TLfnVectorAssetMetadata.Builder.
The AssetPart.Builders can be created using the method ALfnAssetMetadata.Builder.newAssetPart().
When the asset metadata is built, its asset parts will have a reference to it.
There are convenience methods TLfnRaster/VectorAssetMetadata.Builder.addAssetPart and setAssetPart,
with which you can immediately add an asset part with its relevant parameters without the need to create a
builder.
ALfnAssetMetadata.Builder.getAssetParts has been replaced with ALfnAssetMetadata.Builder.getAssetPartBuilders.
This method allows you to inspect the properties of the asset parts being built, without the need to build the
asset metadata just yet.
Upgrade considerationOGC Server
LCD-4200
The capabilities class ALcdWMSCapabilities and its default implementation TLcdWMSCapabilities
now implement ILcdCloneable, providing a public clone() method to create a copy of an instance.
Additionally, TLcdWMSCapabilities now has a copy constructor that allows to create a new
TLcdWMSCapabilities instance based on a given ALcdWMSCapabilities instance.
Custom implementations of ALcdWMSCapabilities or extensions of TLcdWMSCapabilities are recommended to
override the clone() method and implement proper behavior for the custom implementation / extension - i.e.,
take into account potential custom properties or delegate in case of a wrapper implementation.
Upgrade considerationReal-time Engine
TLspPlotLayerBuilder is now available in the Lightspeed module.
Please replace usages of classes in com.luciad.realtime.lightspeed.plots
with equivalent classes in com.luciad.view.lightspeed.layer.plots.
The plots sample is also available in the Lightspeed module as "lightspeed.plots".
Upgrade considerationTiling Engine
ILfnResourceMetadataResolver: the signature of the method getResourceMetadata has changed.
- It now declares to throw IOException and TLfnServiceException.
- It returns a generic type argument allowing the user to omit a cast.
These changes make the method signature compatible with the same method on ALfnTileStore,
so that ALfnTileStore can now implement ILfnResourceMetadataResolver.
Decorator implementations of ILfnResourceMetadataResolver will need to throw on these exceptions.
Callers of this method will need to be adjusted to deal with the exceptions.
A typical handling will be to ignore or to log the exceptions and treat them the same way as if the call would have
returned null.
Upgrade considerationTiling Engine
V2013.1 Tile Stores which already contain coverages with asset sources in Tile Store are not compatible with
V2014.0.
Opening them will succeed, but the asset sources in Tile Store will appear absent.
When upgrading a server from V2013.1 to V2014.0, you need to re-fuse those coverages with asset sources in Tile
Store.
Any lingering files will not be removed from the server.
2013.1
2013.1.48
Bug fixLuciadLightspeed
LCD-5425
TLspRasterLayer: fixed a potential NPE when looking to a raster at a very low angle.
Bug fixLuciadLightspeed
LCD-5423
Calling dipose on a TLcdKML22RenderableModel will now cancel pending tasks (such as networklink updates)
more thoroughly.
Bug fixLuciadLightspeed
LCD-5392
The 3-parameter constructor of TLcdSLDNamedLayer no longer throws an IllegalArgumentException when all three arguments
are indeed valid.
Bug fixLuciadLightspeed
LCD-5417
Added support for the TLcdSimpleRectangular projection in TLcdWKTReferenceFormatter. This projection is encoded
in the same way as TLcdEquidistantCylindrical to ensure compatibility with other systems.
Bug fixLuciadLightspeed
LCD-5209
Added a workaround for an Intel OpenGL driver bug that could lead to out-of-memory exceptions when frequently resizing a window
containing a Lightspeed view.
Bug fixAviation Standards
LCD-5099
The TLcdAIXMDefaultLayerFactory constructors had ambiguous javadoc concerning the usage of the properties parameter.
It is more clear now that the constructors use the properties parameter to configure general layer properties
and styling properties as well.
2013.1.47
ImprovementLuciadLightspeed
LCD-5403, LCD-5404, LCD-4933
We have improved the way Networklinks are handled in KML. This is a general performance improvement for all
Networklink-based KML files, especially the so called "super-overlays". (KML files where networklinks refer
to a multi-level node of small GroundOverlays). This improvement also makes sure that Networklinks that
become invisible, cancel their pending updates.
ImprovementLuciadLightspeed
The model content tree sample code is now less prone to keeping hard references to KML resources, meaning that
its resources are cleaned up better after KML layers are no longer in the view.
ImprovementLuciadLightspeed
LCD-5377
You can now register an ILcdViewInvalidationListener to TLspAWTView, TLspSwingView, and TLspOffscreenView.
Invalidation listeners can be used to get notified of view invalidation events.
Bug fixLuciadLightspeed
LCD-5409
Possible NPE when ending interaction with an interactive label (TLspInteractiveLabelsController) and throwing model
changes at the same time.
Bug fixLuciadLightspeed
LCD-5402
Fixed NullPointerException that could occur on models without a region filter.
Bug fixLuciadLightspeed
LCD-5401
Fixed NullPointerException that could occur when trying to fit on a model node without any elements.
Bug fixLuciadLightspeed
LCD-5400
Fixed NullPointerException in a lightspeed view for KML that would occur when loading a Networklink was loaded
"onRegion", but without a level-of-detail element. These regions are now active by default.
Bug fixLucy (LuciadLightspeed)
LUCY-4189
Fixed a potential memory leak in the Lucy KML AddOn, where the KML model content tree panel could potentially
keep a reference to certain KML-resources, even after the KML model had been removed from the view.
Bug fixLucy (LuciadLightspeed)
LUCY-4188
Fixed an issue in the KML addon that would prevent networklinks from working after several KML files
were opened.
Bug fixLuciadLightspeed
LCD-5375
TLspSelectController could delegate 2 mouse pressed events to the next controller in the chain when dragging the
mouse.
Bug fixAviation Standards
LCD-5336
TLcdDiscretizedLonLatGeoPath and TLcdDiscretizedLonLatOpenGeoPath no longer fail in case of incomplete GeoPath segments of
type ARC_BY_EDGE; instead, a log entry is written to indicate the incomplete data.
This primarily affects airspace creation and decoding, which relies on the GeoPath functionality
2013.1.46
Bug fixLucy (LuciadLightspeed)
LUCY-4187
ILcyLucyEnv#getDefaultDurationFormat would not accept valid ILcdISO19103Measure instances.
The format now accepts all instances which are valid according to the documentation of the
ILcyLucyEnv#getDefaultDurationFormat javadoc.
Bug fixLuciadLightspeed
LF-626
When opening a TLfnFileSystemTileStore, bad resources are now skipped rather than failed upon.
Bug fixLuciadLightspeed
LCD-5389
Fixed NullPointerException that could occur when not setting a TLcdKML22Parameters object on a TLcdKML22DynamicModel,
and using it in dynamic context for view-based data retrieval.
Bug fixLuciadLightspeed
LCD-5387
Resolved problem that caused Networklink to stop functioning after double clicking on a node in the model content
tree that did not contain an AbstractView element.
Bug fixLucy (LuciadLightspeed)
LUCY-4186
TLcySelectionEditorAddOn: since the introduction of LUCY-3698, the title of the application pane would
respect the ILcyCustomizerPanel.NAME value of the shown ILcyCustomizerPanel.
The application pane did not respect that value when it was initially shown, but only on selection changes.
This has been fixed.
Bug fixLuciadLightspeed
LCD-5381
TLfnFileSystemTileStore now keeps a strong reference to the ALfnEnvironment.
This fixes a bug causing RejectedExecutionExceptions when the environment is garbage collected and finalized while
it was still being used by the Tile Store.
Bug fixLuciadLightspeed
LCD-5354
TLcdGML31Vector/TLcdGML31DirectPosition/TLcdGML32DirectPosition inconsistently handled
coordinates of model references with inverted axes.
Bug fixOGC Server
LCD-5384
Fixed a bug in the deploy_wcs script so that it now correctly includes the license.
2013.1.45
ImprovementLuciadLightspeed
LCD-5366
TLcdGXYCirclePainter/TLcdGXYEllipsePainter: improved the visualization of some cartesian-like circles.
ImprovementLuciadLightspeed
LCD-5121
Improved decoding of coordinates elements where 2D and 3D coordinates are mixed in a single coordinate string.
ImprovementLuciadLightspeed
LCD-5356
The WMS client now better copes with WMS servers that do not respect the version negotiation process.
In case of issues when requesting capabilities in version 1.3.0 (e.g., a service exception report
encoded as XML or as image), the client will automatically switch to 1.1.1.
ImprovementLuciadLightspeed
LCD-5353
TLspCreateController now only clears the existing selection when the object to create is committed.
ImprovementTiling Engine
LF-623
Added support for fusion of multivalued coverages with odd tile dimensions.
Bug fixLuciadLightspeed
LCD-5364
Fixed a ClassCastException when accessing a TLcdGML2Box backed by a list of TLcdGML2Coord instances.
Bug fixLuciadLightspeed
LCD-5192
In some cases, grid labels would temporarily disappear.
Bug fixLuciadLightspeed
LCD-5259
ALspSwingLabelStyler now throws a style change event when ALspInteractiveLabelProvider throws an interactive
labels change event. This means that for example the label frame (TLspLabelBoxStyle) is now correctly updated
when the size of the interactive label changes.
Bug fixLuciadLightspeed
LCD-5360
Fixed issue in sample code of "DataModelTreeModel" class. The functionality of
this class has been changed to make sure that infinite recursions due to complex
super-types are avoided.
Bug fixLuciadLightspeed
LCD-5325
Fixed the internal auto-detection mechanism to determine the correct axis order for
the EPSG:4326 (WGS 84) reference in case of a WMS 1.3.0 server; it did not work correctly yet
for parent layers that did not advertise EPSG:4326 BoundingBox information.
Bug fixLuciadLightspeed
LCD-5355
Selection of labels with a parent label did not work correctly when using a TLspViewDisplacementStyle.
Bug fixLuciadLightspeed
LCD-5249
When using a TLspViewDisplacementStyle for labels, the pins did not follow the labels correctly when tilting
the view.
Bug fixLuciadLightspeed
LCD-5086
When painting labels with a semi-transparent halo color using the convolution halo algorithm, artifacts
could be visible in some cases.
Bug fixLucy (LuciadLightspeed)
LUCY-4183
The mouse location read-out text was left aligned in its parent component. In previous releases it was
center aligned. The center alignment is restored, allowing to e.g. add a rectangular box around the read-out.
Bug fixLuciadLightspeed
LCD-5091
When using SLD on a Lightspeed view, the opacity of the fill and halo colors of the text symbolizer was not
taken into account.
Bug fixAviation Standards
LCD-5369
Due to a regression introduced by fix LCD-5269, the transition towards a CF leg sometimes produce unexpected
trajectory turns.
2013.1.44
ImprovementLuciadLightspeed
LCD-5226
It is now possible to place lon lat grid labels to the right or above the grid line (and also to the left or below).
See TLspLonLatGridStyler.Position#RIGHT (and Position#LEFT).
ImprovementAviation Standards
The robustness of 3D airspace visualization has been improved.
ImprovementDefense Symbology
LCD-5340
Made the stipple pattern for "WO-DHCB-----A--": Coastal Hydrography - Beach, more apparent to be more compliant
with the MS2525b specification.
Bug fixLuciadLightspeed
TLspPanController: fixed a possible NPE when terminating the controller during a pan.
Bug fixLuciadLightspeed
LCD-5342
Fixed NullPointerException when using the TLspLonLatHeightBufferEditor for creating non TLcdLonLatHeightBuffer instances.
Bug fixLucy (LuciadLightspeed)
Since the introduction of the TLcyCompositeModelReferenceParser (see LUCY-4153),
Lucy could no longer load data of all WFS servers. Some of these servers used a model reference
which was not recognized by Lucy, resulting in a ParseException or NullPointerException.
This has been fixed.
Bug fixLuciadLightspeed
LCD-5335
Subtract constant from projection number of MapInfo files if necessary.
Bug fixLuciadLightspeed
LCD-5329
Fixed issue with balloon positioning in a 3D Lightspeed view with altitude exaggeration.
Bug fixLuciadLightspeed
LCD-5255
TLcdSLDFeatureTypeStyle no longer throws an IndexOutOfBoundsException when calling #insertRuleAt
with an index of 0. Previously, that exception would be thrown when its ruleCount was 0.
Bug fixLuciadLightspeed
LCD-5327
Prevented an IllegalArgumentException when you have a polyline (or other pointlist) with a TLspIconStyle in your model
with 0 points.
Bug fixDefense Symbology
LCD-5339
The "Coastal Hydrography - Beach" symbol in MS2525b now correctly contains a stipple pattern fill for lightspeed
views.
2013.1.43
ImprovementLuciadLightspeed
LCD-5319
TLcdGXYViewBufferedImage#setPaintExecutorService now allows combining asynchronous painting and labeling
without having to rely on the Event Dispatch Thread (EDT).
ImprovementTiling Engine
LF-391
Fusion no longer copies files smaller than 250 MiB to the system's temporary folder before fusing them.
This eliminates cluttering of the temporary folder with
luciad_fusion_staging*
folders.
Bug fixLuciadLightspeed
LCD-5308
The sample class CachingResourceMetadataResolver now correctly treats a capacity of -1 as unlimited capacity.
Bug fixLuciadLightspeed
LCD-5303
TLcdArcInfoASCIIGridModelDecoder did not decode files with leading spaces in the header lines or first non-header
line correctly. This has been fixed.
Bug fixLuciadLightspeed
LCD-5304
TLcdVVJPanel no longer shows a resize cursor if the model is not editable.
Bug fixAviation Standards
LCD-5314
The course, turn direction and distance/duration parameters of a PI were not correctly interpreted
and applied according to the ARINC 424 procedure specification.
2013.1.42
Bug fixLuciadLightspeed
LCD-5306
Fix array index out of bounds exception when encoding to LRDB.
Bug fixLuciadLightspeed
LCD-5311
Fixed problem for KML in Lightspeed views where an href to an icon would be an empty string.
2013.1.41
ImprovementLuciadLightspeed
LCD-5299
Lightspeed KML no longer creates linestyles if the line width is defined as 0. This is a performance optimization.
ImprovementLuciadLightspeed
LCD-5298
Removed the unused sample class BlockingQueryHandler.
Use QueryHandler instead.
ImprovementLuciadLightspeed
LCD-5220
The WMTS client has been made more flexible to support WMTS servers that provide XML capabilities that are not fully
compliant against the OGC WMTS 1.0 XML Schema. More specifically, a correct order of XML elements is now no longer
required.
ImprovementLuciadLightspeed
LCD-5278
TLspBalloonManager did not paint its arrow correctly in a TLspSwingView.
ImprovementLuciadLightspeed
LCD-5272
ALcdBalloonManager now updates the balloon content if the current balloon descriptor changes.
2013.1.40
ImprovementLuciadLightspeed
LCD-5207
TLcdCADRGDirectoryModelDecoder used to significantly slow down code that uses
the services mechanism to decode files. It is not registered as an ILcdModelDecoder service anymore.
ImprovementOGC Server
LCD-5169
The longitude range of the WGS 84 bounds advertised in the WMS capabilities are now always normalized to fit into
the [-180, 180] range. Although not required by the WMS standard, it improves this interoperability with 3rd
party WMS clients.
ImprovementTerrain Analysis Engine
LCD-5228
TLcdVisibilityStatus now has a toString() method for convenience.
ImprovementAviation Standards
LCD-5271
The TLcdAltitudeReference#toString() method now returns a short, well-known abbreviation for each of
the listed references, for easy reuse inside a label.
Bug fixLuciadLightspeed
LCD-5277
The sqlite3_run.sh scripts referred to the wrong binary executable name.
Bug fixLuciadLightspeed
LCD-5256
TLspShapeDiscretizer now ignores shapes that contain NaN values as one of their coordinates.
Bug fixLuciadLightspeed
LCD-5248
When using a TLspLabelBoxStyle in combination with interactive labels (TLspInteractiveLabelsController), the
frame position was incorrect.
Bug fixLuciadLightspeed
LCD-5250
TLspInteractiveLabelsController sometimes updated the interactive label component on a thread other than
the Event Dispatch thread.
Bug fixLuciadLightspeed
LCD-5208, LCD-5239
TLspComplexStrokedLineStyle: small performance improvement when using the same style for more than one object.
A computationally expensive initialization is no longer performed more than once for objects moving in
and out of the view.
Bug fixLuciadLightspeed
LCD-5236
When transforming from geodetic to grid, the resulting bounds were too small in some cases when the geodetic
bounds cross the date line.
Bug fixLuciadLightspeed
LCD-5227
TLfnTileStoreModelDecoder now throws an appropriate IOException when a coverage has an unsupported tile format,
or when a coverage is not found.
Bug fixAviation Standards
LCD-5269
The transition towards a CF, PI or PT leg did not always respect the leg's turn direction.
Bug fixAviation Standards
LCD-4846
Fixed problem that would occur when opening AIXM 5.0 files with Java JDK 8.
Bug fixMaritime Standards
LCD-5276
Fixed a bug which could cause a NullPointerException when painting deleted cells.
Bug fixMaritime Standards
LCD-5233
In some cases, a few depth areas were not decoded from the cells.
2013.1.39
Bug fixLuciadLightspeed
LCD-5214
TLcdGXYIconPainter#edit would try to snap icons when simply clicking on them.
Bug fixTiling Engine
LF-586
When aligning a coverage's raster to a single input asset's raster to preserve the exact input values,
there was a bug due to which this scheme not always worked as expected.
As a result, the exact input values were not always preserved and the coverage's disk usage was 4x bigger than
necessary.
This bug has now been fixed.
Bug fixTiling Engine
LF-585
Fixed a bug in the computation of the optimal scale denominator corresponding to a vector coverage's levels.
2013.1.37
ImprovementLucy (LuciadLightspeed)
LUCY-4162
TLcyBingMapsAddOn: using the Map| Data | Bing Maps... menu entries will now replace the previously added
Bing Maps layer instead of adding a new layer.
ImprovementLucy (LuciadLightspeed)
LUCY-2660
TLcyVerticalViewAddOn: the items in the vertical view toolbar can now be customized. For more information, refer
to the configuration file.
ImprovementLuciadLightspeed
LCD-5176
TLspPanController now has a slightly smoother pan behavior.
ImprovementAviation Standards
LCD-5180
Support has been added to create SLD styles that filter on AIXM 5 feature ID in a generic manner.
ImprovementAviation Standards
LCD-5162
Improved styling of inactive airspaces for AIXM 5.0 in Lightspeed views. Also made sure that
inactive airspaces are now styled as red in AIXM 5.1 for Lightspeed views.
Bug fixLuciadLightspeed
LCD-4953
Fixed an issue that caused problems with Networklinks linking directly to GroundOverlay elements.
Bug fixLuciadLightspeed
LCD-5183
Fixed an internal exception with creation of polylines in a Lightspeed view when pressing the backspace
key to go back a step.
Bug fixLuciadLightspeed
LCD-5172
Fixed incorrect orientation of icons when using TLspIconStyle and painting in view coordinates.
Bug fixLucy (LuciadLightspeed)
LUCY-4159
Fixed a bug which caused ConcurrentModificationException when removing all connection settings ("Edit|Connection
Settings..." and then "Remove all").
Bug fixReal-time Engine
LCD-5175
Fixed an issue in plot layers that caused objects to disappear.
This happened sometimes when selecting, de-selecting and re-selecting objects.
2013.1.35
ImprovementAviation Standards
LCD-5154
The procedure leg transition between a procedure turn (PI or PT leg) and a course to a fix (CF leg)
has been improved; the transition now maintains the parallellism of the procedure turn while intercepting
with the next course.
ImprovementAviation Standards
LCD-5137
The AIXM procedure handler (TLcdAIXMProcedureHandler) now decodes the Runway, FATO and TLOF direction
designators that can be associated with a procedure. These designators can be access via the corresponding
data properties introduced in TLcdAIXMProcedureDataProperties.
Bug fixLuciadLightspeed
LCD-5159
When using a Text Symbolizer using point label placement, the 'AnchorPointY' value was incorrectly interpreted
when used in a Lightspeed view. For example, when using an anchor point of (0.5, 0.5), the label was not centered
on the point object.
Bug fixLuciadLightspeed
LCD-4988
TLspComplexStrokedLineStyle: using ALspComplexStroke#wave() with a relative length (WaveBuilder#lengthRelative())
produced incorrectly shaped waves.
Bug fixLuciadLightspeed
LCD-5149
TLcdGXYBoundsPainter: fixed a regression caused by the fix in LCD-4711.
Bug fixLuciadLightspeed
LCD-5145
Round-trip transformations using a grid reference with a TLcdRPCProjection did not always produce consistent
results. In particular, TLcdRPCProjection.world2lonlatOnSphereSFCT() did not take the height into account.
Bug fixLuciadLightspeed
LCD-5144
Encoding and decoding a grid reference using TLcdRPCProjection did not work correctly.
2013.1.34
Bug fixLuciadLightspeed
Fixed a bug that prevented TLspOffscreenView from doing GL context sharing with an
external ILcdGLDrawable.
Bug fixLuciadLightspeed
LCD-5103
Fixed a bug in the handling of TLsp3DIconStyles with transparency.
Bug fixLuciadLightspeed
ALcdAnimationManager now uses a daemon thread for its timing logic.
Bug fixLuciadLightspeed
LCD-5129
The label placement performance was bad when using TLspOnPathLabelingAlgorithm, TLspInPathLabelingAlgorithm or
TLspCurvedPathLabelingAlgorithm on a non-culled layer, and when using a world reference with a projection that
doesn't cover the entire world.
Bug fixAviation Standards
LCD-5135
Procedure leg transitions passing a fix did not always properly followed the configured fix overfly type;
if a fly by was configured, a fly over was used in case of large course changes (> 120 degrees).
2013.1.32
ImprovementLucy (LuciadLightspeed)
LUCY-4153
It is now possible to register ILcdModelReferenceParser instances on the Lucy back-end.
Those parsers will be picked up by all relevant formats (currently GML, AIXM5, AIXM5.1 and WFS).
To facilitate using them the TLcyCompositeModelReferenceParser class has been introduced.
Bug fixLuciadLightspeed
LCD-5100
The GeoPackage decoder can now handle empty files and files with empty tables.
Bug fixLuciadLightspeed
LCD-5123
Cloning of ILcdDataObjects with a property that has collection type MAP failed.
This is now resolved.
Bug fixInfrastructure Standards
LCD-5090
The DGN decoder sometimes assigned wrong priorities to cells, causing paint ordering issues.
2013.1.31
ImprovementLuciadLightspeed
LCD-4968
ALcdScaleIndicator now allows customizing the distance shown in the scale indicator.
ImprovementLuciadLightspeed
TLcdDistanceFormat now allows setting a minimum and maximum fraction digit count.
ImprovementLuciadLightspeed
LCD-5022
TLspLonLatGridStyler now allows its labels to be oriented horizontally instead of following the orientation
of the grid lines. This can be configured using TLspLonLatGridStyler#setOrientation().
ImprovementLuciadLightspeed
LCD-5037
TLcdGXYZoomWheelController now supports snapping to zoom levels provided by the data by holding the control key.
ImprovementAviation Standards
LCD-5052
An improvement has been made in the modeling of the ATS route domain object (see TLcdATSRoute or its data type
TLcdAISDataType#ATSRoute) that enables out-of-the-box, automatic encoding of the connected route geometry to GML
(e.g., via TLcdGML32ModelEncoder); in the past, only the individual route points were encoded.
ImprovementAviation Standards
LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), AIXM route data that
gets exported to GML now also contains the connected route geometry, next to the individual route points.
ImprovementAviation Standards
LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), ARINC route data that
gets exported to GML now also contains the connected route geometry, next to the individual route points.
ImprovementAviation Standards
LCD-5052
Due to an improvement in the modeling of the ATS route domain object (TLcdATSRoute), DAFIF(T) route data that
gets exported to GML now also contains the connected route geometry, next to the individual route points.
Bug fixLuciadLightspeed
LCD-5116
TLcdWKTReferenceParser would throw a ParseException when parsing a WKT string using 'Stereographic_North_Pole'
as projection.
Bug fixLuciadLightspeed
LCD-4718
In some cases, large icons that were down-scaled in the style could not be selected.
Bug fixLuciadLightspeed
LCD-5109
Resolved issue where decoding gzipped data files could result in decoding errors.
Bug fixLucy (LuciadLightspeed)
LUCY-4152
TLcyDrawingAddOn: the bearings in the object properties panel were displayed with values in the [-180,180] degrees
interval. They are now again displayed in the [0,360] degrees interval.
Bug fixLucy (LuciadLightspeed)
LUCY-4151
The lon-lat point format for the menu entry "NDDMMSS.sss / EDDDMMSS.sss" lacked the spaces and slash between
the longitude and latitude.
Bug fixLuciadLightspeed
LCD-2280
The labels of a lon-lat grid are now at the edge of the view as much as possible, even when changing the projection center.
Bug fixLuciadLightspeed
LCD-5098
TLcdGXYLspAsynchronousLayerWrapper: in some cases, the ILcdGXYLayer was not visible if Lightspeed rendering
was not supported.
Bug fixLuciadLightspeed
LCD-5078
Improved handling of large files in TLcdDEMModelDecoder.
Bug fixLuciadLightspeed
The OSGi bundles created by the make_osgi_bundles script now always follow the JAR specification to the letter.
More specifically, the META-INF/ and META-INF/MANIFEST.MF will now be the first zip-entries in the jar file.
Some OSGi runtimes, such as Apache Karaf, require this.
Bug fixLuciadLightspeed
LCD-5115
TLcdGeoTIFFModelDecoder no longer decodes some pixels incorrectly.
Bug fixAviation Standards
LCD-5104
The DAFIF RefuelingTrackPoint type has a data property Navaid Type which has now values of type String in place
of type TLcdNavaidType.
Bug fixAviation Standards
LCD-5105
The ORTCA painted shape is now a closed shape.
Bug fixDefense Symbology
LCD-5094
TLcdAPP6ANode#isFolderOnly returned an incorrect value for the APP6B "SOF AVIATION" and "BOTTOM RETURN/NOMBO" nodes.
Bug fixDefense Symbology
LCD-5093
TLcdAPP6aEchelonNode and TLcdMS2525bEchelonNode: improved the consistency of the possible echelon values.
2013.1.30
Bug fixLuciadLightspeed
LCD-5080
TLspRasterLayer: data in a cartesian reference could disappear when panning near the 180 degree meridian in a 3D
view.
Bug fixLuciadLightspeed
LCD-5079
Fixed an issue with adding new points to a pointlist in a view with a non-georeferenced world reference, and
editing it with a TLsp2DPointListEditor.
2013.1.29
ImprovementLuciadLightspeed
LCD-5068
When printing a GXY view, selection is now also printed.
Bug fixLuciadLightspeed
LCD-5069
Creating an ellipsoid with parameters different than the WGS 1984 parameters, and not explicitly specifying a
name, could still result in an ellipsoid with the WGS 1984 name. This could cause problems when formatting a
geo reference using this ellipsoid, and re-parsing the result.
Bug fixLuciadLightspeed
LCD-5057
The SHP decoder now correctly decodes files containing non-closed polygons.
Bug fixLuciadLightspeed
LCD-4963
WKT parser now ignores the unsupported EXTENSION block instead of failing to decode the string.
2013.1.28
ImprovementOGC Server
The EPSG code 2056 is now supported by default.
ImprovementMaritime Standards
LCD-5066
In some cases, an error occurred in lightspeed S-52 layers when doing model changes.
It is now safe to do model updates when the layer is visible.
Bug fixLuciadLightspeed
LCD-5064
In some cases, data using TLcdObliqueMercator was incorrectly oriented. This was for example the case when
displaying data that uses EPSG reference code 2056.
Bug fixDefense Symbology
LCD-5067
TLcdAPP6ANode and TLcdMS2525bNode equals did not return a correct result for folder nodes.
Bug fixDefense Symbology
LCD-5065
TLcdAPP6ANode#applyOn and TLcdMS2525bNode#applyOn would unnecessarily reset some symbol modifiers.
Bug fixTiling Engine
LF-572
Fixed a bug in remote fusion causing occasional warnings "Non-empty staging directory detected in finalize()".
2013.1.27
ImprovementReal-time Engine
LCD-4997
The realtime.lightspeed.clusterLabeling was added. This sample is the Lightspeed version of the GXY
clusterLabeling sample which shows how label clusters can be decluttered dynamically.
ImprovementMaritime Standards
LCD-5004
You can now specify a custom ILcdS52Symbology on TLspS52LayerBuilder.
If necessary, you can also specify a custom TLcdS57ProductConfiguration or TLcdS52ProductConfiguration.
Bug fixLuciadLightspeed
LCD-5062
Labels depending on other labels in a different paint representation were often not updated correctly
during label editing.
Bug fixLuciadLightspeed
LCD-5059
TLspEditController.getMultiObjectHandles() could incorrectly return multi-object handles, even when none
were needed. Also, TLspMultiObjectTranslationHandle now correctly handles custom paint representations which are
used to paint labels.
Bug fixLuciadLightspeed
LCD-5049
Improved handling of DTED data sets where file names use mixed upper and lower casing in
TLcdDMEDModelDecoder and TLcdDTEDDirectoryModelDecoder.
Bug fixDefense Symbology
LCD-5050
TLcdAPP6ANode: removed trailing white space from some APP6B symbol names.
Bug fixTiling Engine
LF-569
Fixed a number of bugs when cancelling the Futures of remote engines created by TLfnLFSEngineFactory.
2013.1.26
ImprovementLucy (LuciadLightspeed)
LUCY-4125
TLcyCompositeModelDecoder / TLcyCompositeModelEncoder: when asking these classes to export/decode to/from a
certain
file, the model decoder/encoder with a matching ALcyFileTypeDescriptor will now be considered first. As a result,
the following code snippet now works as expected
ILcdModelEncoder encoder = new TLcyCompositeModelEncoder( lucyEnv );
encoder.export( drawingModel, "/tmp/drawingfile.drawing" );
Before this improvement, it was possible that the GML encoder would be used to save the drawing model. Now,
the drawing encoder will be used as the associated file type descriptor accepts the "drawingfile.drawing"
destination name.
ImprovementLucy (LuciadLightspeed)
LUCY-4089
It is now possible to specify a LuciadFusion coverage as background in Lucy.
You can do so by using a URI of the form http://hostname:8081/LuciadFusion/lts?COVERAGE_ID=background-coverage-id as
backgroundDataFileName property in map_addon.cfg.
ImprovementLuciadLightspeed
LCD-4951
The XML binding framework now supports anonymous list item types.
ImprovementTerrain Analysis Engine
LCD-5034
When using OpenCL (such as for Terrain Analysis Line-Of-Sight), the Lightspeed backend now gives priority to
devices that support double precision and are GPU's (in that order). This change ensures that the best
device is chosen for the job, while maintaining optimal precision and performance.
Bug fixLuciadLightspeed
LCD-5041
Some EPSG grid references using an oblique Mercator projection (for example EPSG:2056) incorrectly transformed
points.
Bug fixLucy (LuciadLightspeed)
Printing a GXY view was done on a background thread, possibly causing threading issues. Printing is now done on
the event dispatch thread. As a side effect, cancelling printing is now disabled.
Bug fixLucy (LuciadLightspeed)
LUCY-4145
COP sample: in the mission control theme, pressing escape during the creation of an annotation would throw
exceptions.
Bug fixLucy (LuciadLightspeed)
LUCY-4146
COP sample: in the mission control theme, deleted annotations would re-appear after navigating or switching themes.
This was caused by an implementation of equals/hashCode which was not suited for domain objects.
Bug fixLuciadLightspeed
TLcdWKTReferenceParser could return model references containing an incorrect ellipsoid when the
'inverse flattening' value in the WKT string is 0.
Bug fixReal-time Engine
LCD-5043
In rare cases, TLspContinuousLabelingAlgorithm could throw a NPE when using sticky
labels (see ALspLabelLocation#setSticky(boolean)).
Bug fixDefense Standards
LCD-5038
NSIF/NITF images defined in UPS north or south are now decoded correctly.
Bug fixDefense Symbology
LCD-5048
Military symbol icons could sometimes disappear for a moment when their content changes.
Bug fixDefense Symbology
LCD-5046
Military symbology icon labels could flicker when there was a change (ex. model change, style change, selection
change, ...).
2013.1.25
ImprovementLuciadLightspeed
TLcdISO19115Code now has an additional 'type' property, which is required to support for
XML-Java-XML roundtripping of ISO metadata.
Bug fixLuciadLightspeed
LCD-5013
Polylines were drawn as filled polygons in GeoJson decoder sample.
Bug fixLuciadLightspeed
LCD-5023
Fixed possible exception when opening a GeoPackage file in a Lightspeed view.
Bug fixLuciadLightspeed
LCD-5021
Fixed an overflow bug in TLcdSHPTiler so that now SHP files larger than 1 GiB can also be tiled.
Bug fixLucy (LuciadLightspeed)
LUCY-4106
TLcyLspDrawingAddOn: in some cases, an exception could occur when trying to create a shape after cancelling creation
of a similar shape.
Bug fixLuciadLightspeed
If one ILspController would set another controller on the view in its startInteraction method,
its layers would not be correctly unregistered.
Bug fixLuciadLightspeed
LCD-4480
The XML decoding and encoding in TLcdISO19139MetadataDecoder and TLcdISO19139MetadataEncoder have
been improved: full roundtripping from XML to Java and back to XML is now possible without
information loss.
Bug fixTiling Engine
LCD-5021
Fixed an overflow bug which caused SHP files larger than 1 GiB to be fused incorrectly.
2013.1.24
ImprovementLuciadLightspeed
LCD-4842
Improved flexibility of decoding of coordinates. If the coordinates can not be parsed, the shape will resort to a
default location, to allow the rest of the file to be decoded.
ImprovementLuciadLightspeed
ILcdGLDrawableFactory now includes a new method createExternalGLDrawable(), which allows
creating an ILcdGLDrawable that is associated with an externally supplied OpenGL context.
Combined with OpenGL context sharing, this feature unlocks various integration scenarios
between Lightspeed views and, for instance, native windowing toolkits.
ImprovementLuciadLightspeed
LCD-4985
TLspNavigationControlsBuilder now has a new method #compassAndPanNavigationControl to create a compass and pan
navigation control that are combined in 2D mode.
ImprovementLuciadLightspeed
LCD-4928
Improved flexibility when dealing with namespace problems with commonly used schemas in kml:
missing namespace declaration for common prefixes and unavailable remote schemas. This includes robustness when
dealing with atom, xsi and gx.
ImprovementTiling Engine
LF-568
Fusion's SHP format now allows setting the character set on the model decoder.
To set the character set, one must
ImprovementTiling Engine
LCD-4949
LuciadFusion environments created by ALfnEnvironment.newInstance(), ALfnClientEnvironment.newInstance() or
ALfnEngineEnvironment.newInstance() are now automatically closed in finalize().
This helps to avoid resource leaks.
Because there is no guarantee when the finalizer will be called, it is still recommended to close them explicitly.
Bug fixLuciadLightspeed
LCD-4967
ALcdBalloonManager now picks up balloon content changes better.
Bug fixLucy (LuciadLightspeed)
LUCY-4132
Due to a threading issue, a NullPointerException could occur in the mouse location component when moving your mouse
over the map.
This exception could happen on each type of map.
Bug fixLuciadLightspeed
LCD-5014
Fixed a bug which could cause the Tile Store to become inconsistent when frequently adding/removing a coverage with
the same ID.
Bug fixLuciadLightspeed
LCD-5012
The shape painter could paint certain ILcdText objects incorrectly scaled and outside the ILcdText bounds.
Bug fixLuciadLightspeed
LCD-4843
Fixed issue with rotated icons in a GXY view. Rotation now happens in the painter instead of the icon. This
implies that retrieving an icon from the KML icon provider no longer rotates the icon.
Bug fixLuciadLightspeed
LCD-5005
When parsing an invalid String, TLcdUTMUtil/TLcdUPSUtil could throw a StringIndexOutOfBoundsException instead of a
ParseException when no coordinate separator is used.
Bug fixLuciadLightspeed
LCD-4999
TLcdMercator.loadProperties() and TLcdMercator.writePropertiesSFCT did not take the true scale latitude
into account.
Bug fixLuciadLightspeed
LCD-4996
Prevented a NullPointerException when using certain Look and Feel implementations.
Bug fixLuciadLightspeed
LCD-4990
Fixed a NullPointerException when accessing TLcdGMLApplicationModelDecoder#canDecodeSource.
Bug fixLucy (LuciadLightspeed)
ALcyApplicationPaneTool: unplugging the tool will now remove the active settable from all action bars in which
it was inserted. Previously, the active settable was only removed from the main Lucy menu bar.
Bug fixLuciadLightspeed
LCD-4971
The TLcdSHPModelDecoder parsed floating point numbers as Float, which sometimes resulted in precision loss.
The decoder can now be configured with setParseFloatAsDouble to use Double instead, thereby decreasing the precision
loss.
Bug fixReal-time Engine
LCD-4991
Plot layers could in some cases fail to initialize their data structure when they were not in a view.
Bug fixAviation Standards
LCD-4993
Fixed issue with label-painting. In some instances the identifier would get mistaken for the type. This is now corrected.
Bug fixMaritime Standards
LCD-4975
The S-57 model decoders can now load AML V3 data.
The V2 data modeling and visualization is used.
Bug fixTiling Engine
LF-325
A bug was fixed when cancelling the fusion engine which caused Future.cancel() to return an unreliable value.
More specifically, it could cause Future.cancel() to return 'false' when it should have been 'true'.
2013.1.23
ImprovementLuciadLightspeed
GML decoding speed has been considerably improved for certain geodetic models.
ImprovementLuciadLightspeed
LCD-4745
Decoding a model of a coverage from a Tile Store has now become a lot easier:
- Create a TLfnTileStoreModelDecoder instance using the default constructor.
It uses default internal resources.
- Decode an ALfnTileStore using tileStoreModelDecoder.canDecodeTileStore(sourceName) and
decodeTileStore(sourceName).
- Get the Tile Store's list of coverage IDs using tileStore.getCoverageIDs().
- Decode an ALfnTileStoreModel for any coverage using tileStoreModelDecoder.decode(tileStore,
coverageId).
ImprovementLuciadLightspeed
LCD-4949
LuciadFusion environments created by ALfnEnvironment.newInstance() and ALfnClientEnvironment.newInstance() are now
automatically closed in finalize().
This helps to avoid resource leaks.
Because there is no guarantee when the finalizer will be called, it is still recommended to close them explicitly.
ImprovementLuciadLightspeed
LCD-4872
TLcdVVTerrainModel: considerably improved the efficiency when working with very large pointlists.
ImprovementAviation Standards
LCD-4467
Improved airspace labels. The background now has a greater margin to improve readability.
ImprovementDefense Symbology
LCD-4927
The label frame color and padding between the label text and the label frame can now be configured on
ILcdAPP6AStyle/ILcdMS2525bStyle.
Bug fixLuciadLightspeed
In some cases, an ArrayIndexOutOfBoundsException could be thrown when trying to access a GML point with an
empty position.
Bug fixLucy (LuciadLightspeed)
LUCY-4090
TLcyLayerControlAddOn: fixed a memory leak. Closing the layer control would retain a reference to all map components
which are available at the time of closing the layer control. Only when the layer control was re-opened, those
references
were removed.
Bug fixLucy (LuciadLightspeed)
LUCY-4090
TLcyGridAddOn: fixed a memory leak. Each time a new map was created, several new grid layers are created. References
to those grid layers were kept, even when the map component was disposed again.
Bug fixLuciadLightspeed
LCD-4972
Fixed artifacts that could occur when painting a tile set in a 3D view. The issue only occurred with layers whose
type is set to interactive and some a grid reference as model reference that does not cover the earth's surface
completely.
Bug fixLuciadLightspeed
LCD-4978
The equals() and hashcode() methods of TLcdMercator and TLcdPseudoMercator did not produce correct results when
modifying certain parameters.
Bug fixLuciadLightspeed
LCD-4976
Fixed an error in the implementation of TLspOffscreenView#resize().
Bug fixLuciadLightspeed
LCD-4071
GML model decoding now better supports a mismatch between srsDimension and srsName.
Bug fixLuciadLightspeed
LCD-4817
Some parts of the grid could disappear right of the date line. This problem was caused by the fix for LCD-3529.
Bug fixDefense Symbology
LCD-4959
The text in military symbol labels with a frame was sometimes not positioned correctly w.r.t. the frame. As a result
labels could be hard to read when the frame was enabled.
Bug fixDefense Symbology
LCD-4926
The anchor point for the icon of the Marine Life symbol in APP-6A/B and MIL-STD 2525b/c was not correct;
it was set to the right of the icon instead of to the left.
2013.1.22
ImprovementLucy (LuciadLightspeed)
MapCentricFrontendMain: its configuration file (samples/frontend/mapcentric/map_centric_frontend.cfg) now has two
new options. One to define the accelerator key for showing/hiding the menu bar, and another one to either
automatically collapse or shrink the on-map panels if there isn't enough space.
Bug fixLuciadLightspeed
LCD-4947
TLspComplexStrokedLineStyle was not applied correctly to vertical edges, for example edges of extruded shapes.
Bug fixS-63
LCD-4962
Warnings are now logged 30 days in advance of S-63 cell expiry date instead of 20 days in advance.
2013.1.21
ImprovementLucy (LuciadLightspeed)
LUCY-4110
TLcyLspFormatTool will now log warnings when the ALcyLspFormat which is plugged
in
accepts models and/or layers from other formats. Plugging in such a format might cause
unwanted behavior or exceptions in the application, which are hard to trace to the incorrect format.
As of V2014.0, those warnings are replaced by exceptions.
ImprovementLucy (LuciadLightspeed)
LUCY-4110
TLcyFormatTool and TLcyGLFormatTool will now log warnings when the ALcyFormat/ALcyGLFormat which is plugged
in
accepts models and/or layers from other formats. Plugging in such a format might cause
unwanted behavior or exceptions in the application, which are hard to trace to the incorrect format.
As of V2014.0, those warnings are replaced by exceptions.
ImprovementLucy (LuciadLightspeed)
LUCY-4076
The message in the Bing credentials dialog has been improved: it no longer contains technical terms, and contains
a pointer to the documentation where extra information can be found.
ImprovementLuciadLightspeed
LCD-4917
TLfnTileStoreModelDecoder can now decode tile-store.xml files as well.
The file chooser of the fusion client samples now include tile-store.xml files by default.
Bug fixLucy (LuciadLightspeed)
LUCY-4119
Loading BingMaps data on a TLcyGLMapComponent would not show the BingMaps copyright information and icon. This
has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4102
TLcyConnectionAddOn: closing Lucy could result in an IllegalStateException when the Edit | Connection Settings
dialog
was opened earlier. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4100
The File | Recent Files option would not work for data which was drag-and-dropped on Lucy earlier. A message
would be displayed that the file did not exist. This is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4111
Fixed nullpointer that would occur when loading a workspace containing viewsheds with auto-update on.
Bug fixLuciadLightspeed
LCD-4937
TLspViewNavigationUtil: fixed an issue when fitting on geodetic bounds crossing the date line.
Bug fixLucy (LuciadLightspeed)
LUCY-4103
Loading a workspace containing realtime layers could result in an ArrayIndexOutOfBoundsException. This has
been resolved.
Bug fixLuciadLightspeed
LCD-4934
The tolerance for scale denominators used when verifying if a tile matrix set is a strict power-of-two pyramid was
increased.
This was necessary to accept some ArcGIS tile matrix sets that have scale denominators that are conceptually always
divided by two, but have relatively large rounding errors.
Bug fixLuciadLightspeed
LCD-4874
The TLcdMIFModelEncoder drops features which are not a primitive type. The header was not correctly adjusted,
resulting in a corrupt file. The header is now correctly adjusted when features are dropped.
Bug fixLuciadLightspeed
LCD-1171
Fixed incorrect encoding of TLcdMIFRegion in TLcdMIFModelEncoder
Bug fixOGC Server
LCD-4841
The calculation of the "Expires" HTTP header did not take into account the children
of the requested layers.
2013.1.20
ImprovementLucy (LuciadLightspeed)
LUCY-4105
TLcyMapEditUnitAddOn: the following extra point formats have been added.
- N DD°MM'SS" E DDD°MM'SS": for example N 54°24'50" E 018°40'58"
- N DD°MM'SSss" E DDD°MM'SSss": for example N 54°24'49.72" E 018°40'58.07"
- DD°MM'SS" N DDD°MM'SS" E: for example 54°24'50" N 018°40'58" E
- DD°MM'SS" N DDD°MM'SSss" E: for example N 54°24'49.72" N 018°40'58.07" E
Those extra formats are hidden by default. You can show them by adjusting the property "insert=false" by
"insert=true" in the map_units.cfg file for those formats.
ImprovementAviation Standards
LCD-4478
Improved rendering of vertical structures that contain no height information in 3D views.
ImprovementAviation Standards
LCD-4479
The bounds of an AIXM5 feature will now return the bounds of the envelope if the feature does not contain any
geometry.
If no envelope is defined, it will return undefined bounds instead. This also implies that features without any
geometry that have an envelope (such as Taxiways, Aprons and Runways) now will have a valid focus point.
Bug fixLucy (LuciadLightspeed)
LUCY-4101
Illegal State Exception thrown in the ErrorLogAddon when errors are logged while Lucy is disposing.
Bug fixLuciadLightspeed
LCD-4881
Labels that are smaller than 1 pixel are now no longer painted as a small dot.
Bug fixLuciadLightspeed
LCD-4880
Fixed problem where the KML label painter would use the highlight style instead of the normal style state for painting
labels, even when their placemarks are not selected.
Bug fixLucy (LuciadLightspeed)
LUCY-4046
TLcyLspSLDStylerSupport now works with AIXM5.0 data model too.
Bug fixLucy (LuciadLightspeed)
LUCY-4104
TLcyMapEditUnitAddOn: an IllegalArgumentException would occur when loading a workspace which
did not contain the azimuth format. Such workspaces are as of now supported.
Bug fixDatabase Connectors
LCD-4871
The PostGIS decoder now works with PostGIS 2.0 and 2.1.
In some cases, it still used deprecated function (without ST_ prefix).
2013.1.19
Bug fixLuciadLightspeed
LCD-4875
The data model of MapInfo incorrectly declared the type of DateTime fields as String, this is now corrected to the
Calendar type. Smallint fields were incorrectly read as Integer objects, which is now corrected to Short.
Bug fixLuciadLightspeed
LCD-4870
Fixed a rare NPE that could happen when querying the terrain or an image projection layer while nothing is
visible.
Bug fixLuciadLightspeed
LCD-4868
TLspRasterLayer.query could sometimes return a TLspRasterWorldTouchInfo with an incorrect model point.
Bug fixLuciadLightspeed
LCD-4866
TLspFillStyle now allows enabling and disabling linear texture filtering (if a texture is
present), using the builder's textureInterpolationType() method.
Bug fixLuciadLightspeed
LCD-4865
Improved robustness of the default raster styler for elevation data with more than 16 bits.
Bug fixLuciadLightspeed
LCD-4479
Abstract features no longer consider their envelope as part of their geometry, so they no longer expose it
in their ILcdShapeList methods.
However, abstract features without geometry still use the envelope to calculate their bounds and focus point.
Bug fixLuciadLightspeed
LCD-4861
TLcdSHPDataTypes now correctly maps multi points on ILcdPolypoint interface.
Bug fixDefense Standards
LCD-4847
TLcdNITFUncompressedImageDecoder now correctly decodes multiband rasters.
2013.1.18
Bug fixLuciadLightspeed
LCD-4337
TLspZoomController: fixed a bug in CTRL-zoom which prevented snapping to the least detailed of the two levels
for layers with exactly two zoom levels.
Bug fixAviation Standards
LCD-4857
Fixed threading issue for labeled Airspace features in Lightspeed views.
2013.1.17
ImprovementLuciadLightspeed
LCD-4852
DateTime fields are now supported when decoding MAP files.
ImprovementLuciadLightspeed
LCD-4747
TLcdMAPModelDecoder now logs warnings for exceptions that occur during decoding of the TAB file.
ImprovementTiling Engine
LF-564
Fusion now supports ILcdPolypoints, also known as multi-points.
More specifically, fusion now supports SHP files containing multi-points.
ImprovementTiling Engine
LF-160
The scale estimation for some vector formats such as SHP has been improved so that it no longer blocks the UI when
adding an asset to the Tile Store.
ImprovementTiling Engine
LF-558
ALfnFormat.createAsset(ILcdModel) now returns null to indicate that the model is not supported rather than throwing
IllegalArgumentException.
Remember that you can check if a model is supported using ALfnFormat.isModelOfFormat(ILcdModel) before calling
ALfnFormat.createAsset(ILcdModel).
ImprovementTiling Engine
LF-289
Fusion now supports also non-square tile resolutions for elevation and multi-valued data.
Bug fixLuciadLightspeed
LCD-4855
TLspRasterLayer now ensures that high resolution ILcdRaster objects are always rendered on top of lower resolution
ILcdRaster objects. Note that this ordering is on a per-layer basis; not cross-layer.
Bug fixLuciadLightspeed
LCD-4855
TLcdGYXLayer now ensures that high-resolution ILcdRaster objects are always rendered on top of lower-resolution
ILcdRaster objects. Note that this ordering is on a per-layer basis, not cross-layer.
Bug fixLucy (LuciadLightspeed)
LUCY-4097
In some cases, creating a new drawing shape when a layer was not present could throw an exception.
Bug fixTiling Engine
LF-563
Fusion now correctly fuses SHP data sets containing only a single point.
2013.1.16
Bug fixLuciadLightspeed
LF-563
Fixed several bugs affecting models with degenerate bounds (width and height 0) and models with infinite precision.
Bug fixLucy (LuciadLightspeed)
LUCY-4098
TLcyLspASTERIXFormatAddOn (preview layers): a StackOverflowException could occur when both the configured icon
as well as the default 3D icon were not found. Now the preview layer falls back to a 2d icon and no longer throws
the StackOverflowException.
2013.1.15
ImprovementLuciadLightspeed
LCD-3658
LuciadFusion Tile Store models can now be decoded by the lightspeed.decoder and gxy.decoder samples. A Tile Store
is shown as a tree layer with children for all the coverages. Only the first layer is made visible by default. All
coverage types are supported, but because non-tiled coverages don't support the tiling protocol, only their bounds
are painted. You can pass a Tile Store URI as command-line parameter to open a Tile Store on startup.
ImprovementOGC Server
LCD-4838
The GetCoverage response generation performance has been improved for coverages
that are backed by multiple rasters contained in a single model (ILcdModel).
Bug fixLuciadLightspeed
LCD-4714
Improved robustness when visualizing and fitting on data with unsupported model references.
Bug fixLuciadLightspeed
LCD-4839
String features are now truncated to 254 bytes in the TLcdSHPModelEncoder, longer features resulted in a corrupt
dBase file.
Bug fixLuciadLightspeed
LCD-4840
Improved handling of GeoTIFF images with a SampleFormat tag containing the 'undefined data format' (4) value.
Bug fixLuciadLightspeed
LCD-4835
CGM font decoding: decoder does not rely on separators or word ordering anymore.
2013.1.14
Bug fixLuciadLightspeed
LCD-4824
You can now create new elements for use in a database model using newInstance() on its data type, instead
of creating a custom domain object. The new instance will be a TLcdDataObjectShapeList.
You can get the datatype using TLcdDatabaseModelDescriptor.getModelElementType().
Bug fixLuciadLightspeed
LCD-4823
In some cases, it was not possible to add a new element to a database model.
2013.1.13
ImprovementLucy (LuciadLightspeed)
LUCY-4073
TLcyDrawingAddOn: it is now possible to make the icon chooser hierarchical, allowing to
group the icons. Consult the documentation for the "TLcyDrawingAddOn.icon.iconsfile" property
in the configuration file of the drawing add-on for more information.
ImprovementTiling Engine
LF-543
It is now possible to select a tile combining strategy for elevation data which takes the maximum of contributing
values rather than the average. This strategy can be configured on the TLfnEngineFactory.RasterSessionBuilder.
This feature can only be used with local engines, and can only be configured using a deprecated engine session.
There is no equivalent configuration method on the coverage metadata.
Bug fixLucy (LuciadLightspeed)
LUCY-4086
TLcyGridCoordinateAddOn: loading a workspace which contained an open grid coordinate panel
could result in a NullPointerException. This has been fixed.
Bug fixLuciadLightspeed
LCD-4791
Fixed issue with passing a viewFormat template to a server. The viewFormat no longer becomes corrupted due to missing
parameters. Added defaults for all parameters mentioned in KML specification. For 2D, some of these will default
to 0 however. For example [cameraAlt], [lookatTerrainAlt], [horizFov] and [vertFov]. These have no meaning in a 2D view.
To override this behavior, you can customize TLcdKML22GXYViewParametersUpdater.
Bug fixLucy (LuciadLightspeed)
LUCY-4075
TLcyLspCameraLinkAddOn: the minimum camera distance when using "look at" camera linking in a 3D view was too high,
preventing
you to take a closer look at the linked object.
Bug fixLucy (LuciadLightspeed)
LUCY-4020
In the default Lightspeed layer properties panel it was not possible to activate the labeling
of a nested data object property. This has been resolved.
Bug fixReal-time Engine
ALcdTimeIndexedSimulatorModel: the init method now takes the appropriate write locks before modifying the given
track model.
Bug fixReal-time Engine
LCD-4815
ALcdTimeIndexedSimulatorModel: the write lock on the track model is now unlocked before firing the model changes.
This prevents a certain class of dead locks.
Bug fixReal-time Engine
LCD-4804
TLcdTrackModel: the model bounds now also include the height information when the contained elements also contain
height.
Bug fixTiling Engine
LF-551
Fixed a broken link to the OGC Web Server Suite developer's guide in the HTML documentation.
2013.1.12
ImprovementLuciadLightspeed
LCD-4007, LCD-4781
TLcdSHPModelDecoder and TLcdSHPModelEncoder are now configurable to trim feature names or not.
ImprovementLucy (LuciadLightspeed)
LUCY-4071
TLcyLspASTERIXFormatAddOn: the track layers are now visualized using an aircraft (when zoomed in).
ImprovementOGC Server
LCD-4783
The WCS server has been updated with support for coverages that are backed by
multiple rasters contained in a single model (ILcdModel). Based on the supplied area of
interest and resolution parameters, the WCS server now takes into account all
raster instances found in a model to calculate the resulting GeoTIFF raster.
Bug fixLuciadLightspeed
LCD-4801
TLspModelElementTrackingPointProvider did not work correctly in 3D when tracking ILcdOriented instances that
did not implement ILcd3DOriented.
2013.1.11
ImprovementLuciadLightspeed
LCD-4660
Added extra functionality to TLcdKML22GXYPainterProvider to be able to set a default loading icon while loading point-
based placemarks. By default this is null, which means that there is no default loading icon (as before).
ImprovementLuciadLightspeed
LCD-4676
For Lightspeed views: Floating GroundOverlays with transparency used to obscure shapes rendered below them. This
has now been fixed. This only affects GroundOverlay elements that were not clamped to ground.
ImprovementLuciadLightspeed
LCD-4764
TLcdCGMGXYPainterProvider now supports ILcdMultilevelRaster.
ImprovementLuciadLightspeed
LCD-4731
The Earth GXY raster painter now supports caching the warped image. This increases memory usage but can improve
performance when there are multiple Earth rasters in the view whose model reference does not match the view's world
reference.
ImprovementLuciadLightspeed
The TLcdGML31Measure and TLcdGML32Measure types now have an additional 'type' property, which is
required to support for XML-Java-XML roundtripping of ISO metadata.
ImprovementLuciadLightspeed
LCD-3618
Fitting on ILcdGXYViews now takes the rotation into account.
Bug fixLuciadLightspeed
The target property of TLcdGML31Observation and TLcdGML32Observation was incorrectly mapped to QName, this is now
changed to TLcdGML32AbstractGML, which corresponds with the GML Schema definition. The getter and setter methods for
the property are updated accordingly.
Bug fixLuciadLightspeed
LCD-4775
Improved 3D fitting when using TLspViewTransformationUtil or TLspViewNavigationUtil with very narrow or wide bounds.
Bug fixLuciadLightspeed
LCD-4773
Fixed a rare NPE that could happen when querying touch info or bounds for objects
painted with TLspShapePainter. The NPE could occasionally occur when creating measurements
with TLspRulerController.
Bug fixLuciadLightspeed
LCD-4755
Fixed issue that would cause some KML files with Networklinks to keep updating, even after they were disposed. The
TLcdKML22RenderableModel.dispose() method now iteratively disposes internal resource updaters.
Bug fixLuciadLightspeed
LCD-4769
A NoClassDefFoundError could be thrown when not adding JAI as a dependency, for example when using the ruler
controller.
Bug fixLuciadLightspeed
LCD-4765
Fixed a bug in the encoding of LTS XML files, which could cause duplicate 'lts' prefix definitions in the XML data,
in case another StAX implementation than Woodstox was used.
Bug fixLuciadLightspeed
LCD-4760
TLcdLonLatCircularArcByBulge was not correctly visualized when using a bulge of 0. This was a regression caused
by the fix for LCD-4436.
Bug fixLuciadLightspeed
LCD-4753
Encoding a decoded GeoJson file with an id field resulted in incorrect results or errors when
using TLcdSHPModelEncoder or TLcdMIFEncoder.
Bug fixLuciadLightspeed
LCD-4766
TLspRulerLabelStyler could not be used with a custom ALspRulerMeasurement.
Bug fixReal-time Engine
When visualizing data using a plot layer (TLspPlotLayerBuilder) in 3D, the data could be culled sooner than needed.
Bug fixMaritime Standards
Some AML attributes (PRODCT,sorfir,sorlst) did not have display names for their attribute values.
This has been fixed.
Bug fixTiling Engine
LF-548
Fixed a backwards incompatibility in the fusion engine so that it now correctly picks up the GXY layer factory of
legacy ALfnFormat extensions.
Bug fixTiling Engine
LF-547
Fixed a bug in the fusion of S-57 data, which could cause the resulting coverage to be too detailed/not detailed
enough in some areas.
Bug fixTiling Engine
LF-545
Fixed a bug when fusing points into a coverage with bounds that wrap around the date line. In some cases, fused
points could end up squashed against the left edge of a tile. This has now been fixed.
Bug fixTiling Engine
LF-376
Improved memory consumption when fusing very large S-57 catalogues. A maximum heap of 1 GB now suffices when fusing
the full NOAA data, where previously 3 GB was needed.
2013.1.10
ImprovementDefense Symbology
LCD-4667
A new modifier sFrameShapeModifier has been added to the domain object interfaces ILcdAPP6ACoded
and ILcdMS2525bCoded, and refers to the extra icon decorations introduced by affiliation and battle
dimension settings - for instance, the J and K characters respectively introduced by the Joker
and Faker affiliations. The new modifier can be used to enable or disable its visualization
through the method setLabelEnabled in the style interfaces ILcdAPP6AStyle and ILcdMS2525bStyle.
Bug fixLucy (LuciadLightspeed)
LUCY-4070
lucy.touch sample: the workspace which is loaded on start-up of this sample was corrupt. The
workspace has been corrected.
Bug fixLuciadLightspeed
LCD-4761
Due to a driver bug, painting label pins or curved labels could cause a VM crash on certain hardware. A
workaround was added for this.
Bug fixLuciadLightspeed
LF-501
Fixed a bug in area simplification so that it no longer removes points and lines, it only operates on areas now.
2013.1.09
Bug fixDefense Symbology
LCD-4757
Military Symbology labels (text icons) were always recalculate on model updates when using a Lightspeed view,
even when the content doesn't change.
2013.1.08
ImprovementLuciadLightspeed
LCD-4749
Added to ability to specify the character set on the TLcdMAPModelDecoder.
ImprovementLuciadLightspeed
LCD-4746
TLcdGXYZoomNavigationControl's response to clicks has been improved.
ImprovementLuciadLightspeed
LCD-620
The XML encoders and decoders now support the xsi:type construct. Full roundtripping from XML
to Java and back to XML without information loss is now possible for XML documents containing
xsi:type constructs.
Bug fixLuciadLightspeed
LCD-4744
TLcdSHPModelDecoder did not always respect the decoding bounds that were set.
Bug fixLuciadLightspeed
LCD-4740
Fixed CGM font decoding: supported fonts are now correctly mapped to system font families.
Bug fixLuciadLightspeed
LCD-3404
XML-based model decoders now throw an IOException with a detailed message in case the
decoded object was not an ILcdModel, instead of a ClassCastException.
Bug fixLuciadLightspeed
LCD-4754
Style changes were not propagated correctly when relying on the default shape painter selection styler.
This resulted in the change not being applied for selected shapes.
2013.1.07
ImprovementReal-time Engine
LCD-4696
Label editing is now supported for plot layers. See TLspPlotLayerBuilder#labelEditable()
and TLspPlotLayerBuilder#labelEditor().
Bug fixLuciadLightspeed
LCD-4717
The shape painter's vertex buffer resources could remain in the OpenGL resource cache,
even if not needed anymore. This has been fixed.
Bug fixLuciadLightspeed
LCD-4721
TLcdGXYPointListPainter#getTouchedPoint did not work correctly for point lists with only one point.
In some cases, this prevents snapping to work during creation of a point list.
Bug fixLuciadLightspeed
LCD-4743
ALspToggleStyler did not correctly propagate style change events. This could prevent the updating
of editing handles.
Bug fixReal-time Engine
LCD-4329
When using the continuous labeling algorithm and configuring parent and child labels, the
child labels could push the parent labels away.
2013.1.06
Bug fixLuciadLightspeed
LCD-4961
The table gpkg_geometry_columns is now only required for GeoPackages containing feature data types.
Bug fixLuciadLightspeed
LCD-4958
GeoPackage decoder now correctly derives zoom level information from the gpkg_tile_matrix table.
Bug fixLuciadLightspeed
LCD-4725
Fixed potential NPE that could occur while editing labels with the TLspGXYLayerAdapter
Bug fixLuciadLightspeed
TLspImageProjectionLayerBuilder created layers with their LayerType set to
BACKGROUND. This could result in a seemingly illogical painting order w.r.t.
other layers. The layer type is now set to INTERACTIVE instead.
Bug fixLucy (LuciadLightspeed)
LUCY-4067
Printing: under Windows and using JDK7, cancelling the print to the XPS format would
show an error dialog, although no error occurred. The error dialog could be disposed
and you could successfully continue using Lucy. This unneeded error dialog is no longer shown.
Bug fixLuciadLightspeed
LCD-4696
TLspEditController now doesn't fire model changes anymore when editing labels.
Bug fixRadar Connectors
TLcdASTERIXCategory30: The definition of the "Reserved Expansion Field" has been fixed. Before this fix,
the presence of such an item could cause exceptions when reading the value for it.
Bug fixRadar Connectors
LCD-4675
TLcdASTERIXLiveDecoder: the methods initDecode and decodeBlockSFCT now allow you to process the live ASTERIX
data on the AWT thread. This way you can follow the threading guidelines for LuciadMap.
2013.1.05
ImprovementLuciadLightspeed
LCD-4590
When connecting to a WMTS service using the
decoder
sample, the first layer (if any) is set
visible by default.
ImprovementLucy (LuciadLightspeed)
LUCY-3210
Lucy's default ECDIS display settings now match the defaults as proposed by the S-52
specification.
ImprovementLuciadLightspeed
LCD-4470, LCD-4656
When there is an error retrieving tiles from a WMTS service, the full stack trace is no longer logged on the default
log level, but on the trace log level. Additionally, the reason is now rendered on a transparent tile together with
the layer ID.
ImprovementRadar Connectors
LCD-3781
TLcdASTERIXFinalModelEncoder: ASTERIX models can now also be saved in the plain asterix format instead of only in
the ASTERIX Final format.
Bug fixLuciadLightspeed
LCD-4711
TLcdGXYBoundsPainter: in some cases, extraneous lines were painted for bounds bordering the
view.
Bug fixLuciadLightspeed
LCD-4707
In some cases, the view performance MBean could throw a NoSuchElementException.
Bug fixLuciadLightspeed
LCD-4705
Fixed a bug in the decoder sample which could cause layers to be ordered incorrectly for custom layer factories.
Bug fixLuciadLightspeed
LCD-4694
Fixed lighting and fog for an Earth terrain with data draped on top of it.
Bug fixDefense Standards
LCD-4698
Fixed an error in the coordinate transformation of southern UTM zones.
Bug fixRadar Connectors
LCD-1595
TLcdASTERIXModelDecoder: the time information in raw asterix files is now interpreted correctly.
Such files containing ASTERIX records before and after midnight will now be decoded correctly.
2013.1.04
ImprovementLuciadLightspeed
LCD-4692
A TLfnTileStoreModelDecoder constructor was added which takes a TLfnTileStoreProvider instance as a parameter, to
promote reuse and sharing of a TLfnTileStoreProvider instance.
ImprovementLucy (LuciadLightspeed)
LUCY-1867
The File | Save As Image will now save the Luciad logo and scale icon as well in the image for
Lightspeed maps.
ImprovementLucy (LuciadLightspeed)
LUCY-1867
The File | Save As Image will now save the Luciad logo as well in the image (applies to
GXY views and GL views).
ImprovementLuciadLightspeed
LCD-4677
Balloon managers now always revalidate their balloons whenever there is a change. This prevents balloons from
becoming blank.
ImprovementDefense Standards
LCD-4424
Support for older SENSRB files has been restored. Files that fail to decode using the
2011 specification will fall back to the 2009 draft.
Bug fixLuciadLightspeed
LCD-4674
TLcdCGMModelDecoder did not correctly determine the sweep angle for arcs,
resulting in the incorrect rendering of circular and elliptical arcs.
These arcs are now rendered correctly.
Bug fixLuciadLightspeed
LCD-4690
Fixed a bug in the WMTS client which caused layers with non-square tiles to be painted incorrectly (overstretched).
Bug fixLuciadLightspeed
LCD-4501
Fixed a memory leak that occurred in shape layers when using frequently
changing textured TLspFillStyles.
Bug fixLuciadLightspeed
LCD-4693
TLspLabelPainter.getLabelIDs() could (temporarily) return an incorrect amount of labels. This
could for example cause label editing to work less reliably in some cases.
Bug fixLuciadLightspeed
LCD-4691
Fixed a bug which could cause a NullPointerException when asking TLfnTileStoreModelDecoder.canDecodeSource with a
URI such as http://localhost:8081/LuciadFusion/lts.
Bug fixLuciadLightspeed
LCD-4689
In some rare cases, objects could disappear when they were selected or de-selected.
Bug fixLuciadLightspeed
LCD-2007
TLspViewNavigationUtil: the center and fit actions now cancel already running navigation
animations.
Bug fixLucy (LuciadLightspeed)
The "TLcyASTERIXDecoderAddOn.ASTERIXFormat.timeOffset" property in "asterixdecoderaddon.cfg"
is now correctly interpreted as 'long' instead of as 'int'.
Bug fixLuciadLightspeed
LCD-4685
TLcdGeoTIFFModelDecoder and TLcdGeoTIFFModelEncoder now work correctly in environments using
partitioned class loading (NetBeans, OSGi, servlet containers).
Bug fixLuciadLightspeed
LCD-4648
Made CGM line dash patterns easier to distinguish.
Bug fixLuciadLightspeed
LCD-4665
Fixed a bug when decoding models from a Windows network paths such as
file:////SERVER/TileStore?COVERAGE_ID=coverage.
Bug fixLuciadLightspeed
LCD-4681
Fixed out-of-bounds error when a tile set is not completely visible in the view's world
reference.
Bug fixMaritime Standards
LCD-4697
Sometimes, in a Lightspeed view, the safety contour was not updated on the view
when the property in the display settings changed.
2013.1.03
ImprovementLuciadLightspeed
LCD-4208
TLcdGXYPointListPainter can now be configured to change the winding rule that determines the
inside of self-intersecting polygons.
ImprovementLucy (LuciadLightspeed)
LUCY-3906
TLcyUndoAddOn: the tooltips of the buttons in the toolbar now display which action they will
undo / redo. Consult the undo_addon.cfg for more information.
ImprovementLucy (LuciadLightspeed)
The map centric front-end shows the preview controls - for example the time slider - on the map.
It can now display a message if there is no time related data, instead of just showing nothing.
ImprovementLuciadLightspeed
LCD-4249
Added a UI widget to the various WMS client samples to control the visibility status
of the layers offered by an OGC WMS server. In the past, all layers were loaded
by default.
ImprovementLuciadLightspeed
A new method has been added on ALfnEnvironment, configureDataModel(TLcdDataModel), which allows
to register extension data models on the Fusion environment. The primary use case is plugging
in extension data models (custom XML Schema's) for ISO 19139 metadata.
Bug fixLuciadLightspeed
LCD-124
Fixed some isTouched inconsistencies with filled shapes in an ILcdGXYView.
Bug fixLucy (LuciadLightspeed)
The map centric front-end addressed a number of smaller issues with respect to the split pane
separating the map and the bottom area (for the table and profile view). For example, when
resizing the window, the split pane could reveal an area that should have been hidden. The
CollapsibleSplitPane class was changed for this. HideableTabbedPane now clears the selected tab
if it is removed.
Bug fixLuciadLightspeed
LCD-4658
Fixed NullPointerException that would occur when trying to paint a GroundOverlay that has no LatLonBounds. This
has been changed to a logging warning. The element will still be added to the model, but it will not be visualized.
Bug fixLuciadLightspeed
LCD-4669
TLcdScaleFormat could parse strings representing a negative scale (e.g. "-1 : 3000" ), and returned
a negative double for it. Such a scale is meaningless, and is no longer parsed by the format.
Bug fixLuciadLightspeed
LCD-4666
Label pins were incorrectly updated when using labels with a world orientation.
Bug fixLuciadLightspeed
LCD-4663
In some cases, shapes were drawn with less accuracy than expected when zooming in.
This is now resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-4005
ArcSDE vector data: changing the line style of one GXY layer would affect the styling of all
ArcSDE vector layers in all GXY views.
Bug fixLuciadLightspeed
LCD-4661
Fixed a bug preventing hatched fill styles to be used in CGM models.
Bug fixLucy (LuciadLightspeed)
LUCY-3959
When opening the print preview for a 3D view more than once, the scale text label and icon
could show an incorrect scale value.
Bug fixLucy (LuciadLightspeed)
LCD-4659
Fixed an issue that would cause some SLD points to not be visualized in complex
data structures.
Bug fixLucy (LuciadLightspeed)
LUCY-4014
TLcyPreviewAddOn: when adjusting the lower or upper bounds of the time range filter, the
selected new date was not always applied correctly. As a result, you could still move the slider
past the selected new date.
Bug fixLucy (LuciadLightspeed)
LUCY-3862
When printing a view, the scale icon showed an incorrect distance when using a print scale
different from 100%.
Bug fixMaritime Standards
LCD-4664
The safety contour color was not updated when the S-52 color scheme changed; this has been fixed
now.
2013.1.02
ImprovementLucy (LuciadLightspeed)
LUCY-4065
TLcyWorkspaceAddOn: it is now possible to configure a Locale specific fallback workspace in the
configuration file. See the TLcyWorkspaceAddon.fallbackWorkspace property in the
workspace_addon.cfg file.
ImprovementLucy (LuciadLightspeed)
LUCY-4042
The safe guard format wrapper classes no longer pass null models to the delegate format.
Bug fixLuciadLightspeed
LCD-4657
Fixed problem with cloning of TLcdKML22Polygon, which could cause a StackOverflowException.
Bug fixLuciadLightspeed
LCD-4319
MGRS grid: Some labels, located at a negative height, could be turned upside down at a certain
scale in 3D.
Bug fixLuciadLightspeed
LCD-3626
Labels following a line using points with a non-zero height could temporarily detach from
the line.
Bug fixLuciadLightspeed
LCD-4346
A bug was fixed in the WMTS client which caused failure to connect to some RESTful WMTS services.
Bug fixTiling Engine
LF-542
Fixed a threading issue which could cause the depth contours of ECDIS data to be fused with slightly wrong colors.
2013.1.01
ImprovementLucy (LuciadLightspeed)
LUCY-4064
When an object has multiple labels, moving them now only moves one label at a time where
before all labels were moved.
ImprovementLuciadLightspeed
LCD-4314
GML 3.2 now imports identifiers with the "urn:uuid:" codespace as lower-case.
ImprovementLuciadLightspeed
LCD-473
TLcdEarthTileRepository: added setModelReference method. This method initializes the bounds to
the correct type (e.g. TLcdXYBounds vs TLcdLonLatBounds). Previously the bounds were always for
a cartesian reference. TLcdEarthRepositoryModelDecoder and TLcdEarthRepositoryModelFactory
automatically initialize this property.
ImprovementLuciadLightspeed
LCD-4183
Certain unambiguous units of measure now supported both in uppercase and lowercase, to increase data compatibility.
ImprovementLucy (LuciadLightspeed)
LUCY-4010
Layers based on database models are now better positioned in the layer tree, instead of always
on top.
ImprovementLuciadLightspeed
LCD-4587
TLcdCompositeCurve.getFocusPoint() always returned a lon-lat point, even when the curve consisted of XY shapes.
It now returns a point of the appropriate type.
ImprovementLuciadLightspeed
LCD-4145
It is now possible to pass an EPSG code to TLcdEPSGGeodeticDatumFactory.
ImprovementLuciadLightspeed
LCD-4296, LCD-4489, LCD-3828, LCD-3825
Several improvements and fixes for the lightspeed.limitnavigation sample:
- The constraints used to limit navigation now handle movement along the border of the
area of interest much better.
- The navigation constraints now handle changing the world reference better.
- The navigation constraints now do not use the area of interest constraint if the area
lies completely outside the projection bounds.
ImprovementLuciadLightspeed
LCD-4446
Made balloons more robust after they become visible without any content.
ImprovementLuciadLightspeed
LCD-549
The XML built-in type parser now attempts to reuse already parsed instances of some data types,
to reduce the overall memory footprint of decoded XML data.
ImprovementDefense Standards
LCD-4469
TLcdNITFModelDecoder now uses a better sub-tile size when decoding JPEG2000 files.
ImprovementS-63
LCD-4393
TLcdS63ModelDecoder.canDecodeSource() now additionally checks whether a cell permit is available
for the given source; if no cell permit is available, it returns false.
Bug fixLuciadLightspeed
LCD-4245
In some cases, a TLcdDatabaseModel did not extend its bounds when an object was moved outside
its original bounds.
Bug fixLuciadLightspeed
LCD-4463
In some cases, TLcdTransformedHeightProvider incorrectly returned NaN when using a delegate
height provider defined in a geodetic reference.
Bug fixLuciadLightspeed
LCD-4507
A bug in one of the constructors of TLcdWMSClient has been fixed. This fixes a
NullPointerException, occurring when configuring an SLD layer descriptor on a
TLcdWMSGetMapRequest that was created by the TLcdWMSClient.
Bug fixLuciadLightspeed
LCD-5968
Improved TLspRulerController robustness. Before ruler measurement lines or labels could disappear
sporadically when creating new measurements. This has been fixed.
Bug fixLuciadLightspeed
LCD-3837
The pin from a balloon to its corresponding object is now properly rendered
when printing the view.
Bug fixLuciadLightspeed
LCD-4085
getEndTangent2D() of TLcdXYPolygon, TLcdLonLatPolygon, TLcdXYCompositeRing and TLcdLonLatCompositeRing
returned incorrect results.
Bug fixLucy (LuciadLightspeed)
LUCY-3986
File | Save As would block the UI when the JPEG2000 add-on was loaded and you tried
to save an Earth model.
Bug fixLucy (LuciadLightspeed)
LUCY-3997
The layer properties panel for editing the icon style of a TLcdSymbol included meaningless
numbers
in the comboboxes (GXY and Lightspeed). Those numbers have been removed.
Bug fixLucy (LuciadLightspeed)
LUCY-4061
Table view: switching from one layer to another could result in an incorrect table view (e.g.
an incorrect state of the buttons).
Bug fixLuciadLightspeed
LCD-4616
Fixed flickering of labels when their content frequently changes.
Bug fixLuciadLightspeed
LCD-4617
A bug in the encoding of SLD Styled Layer Descriptors in TLcdWMSGetMapRequest, causing
TLcdWMSGetMapRequest.setStyledLayerDescriptor() to throw a NullPointerException, has been
fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4040
Dockable front-end: throwing a TLcyVetoException when Lucy is closing could result in a
reset of the layout of the application panes. This has been fixed.
Bug fixLuciadLightspeed
LCD-3398
TLspLonLatGridLayerBuilder did not allow disabling labels by setting the styler to null.
Bug fixLuciadLightspeed
LCD-3529
TLspLonLatGridLayerBuilder created a set of lon lat lines that don't include the grid origin
when using some spacings.
Bug fixLuciadLightspeed
LCD-4613
TLcdXYEllipse.computePointSFCT returned incorrect points.
Bug fixLuciadLightspeed
LCD-4438
TLspWorldSizedLineStyle#asBuilder() did not copy the Z order and texture properties.
TLspStrokedLineStyle#asBuilder() did not copy the Z order properties.
Bug fixLucy (LuciadLightspeed)
LUCY-4053
MapCentricFrontendMain: reloading the workspace used to trigger multiple previewers and object
property panels.
Bug fixLuciadLightspeed
LCD-4085
TLcdLonLatLine.getTangent2D(1.0) and getEndTangent2D() returned incorrect results.
Bug fixLuciadLightspeed
LCD-3452
MGRS grid: some labels could have an incorrect rotation after switching the world reference.
Bug fixLuciadLightspeed
LCD-4456
Raster data could sometimes disappear when partially outside the view.
Bug fixLuciadLightspeed
LCD-4607
TLspSLDStyler didn't handle labels of moving domain objects well, possibly leaving a trail
of labels.
Bug fixLuciadLightspeed
LCD-4608
Possible deadlock when using TLspSLDStyler for dynamic models.
Bug fixLuciadLightspeed
LCD-3061
TLspLabelPlacer could perform a label placement, even after removing it from the view.
Bug fixLuciadLightspeed
LCD-4436
TLcdLonLatCircularArcBy3Points did not always intersect with its three defining points.
Bug fixLuciadLightspeed
LCD-3932
TLcdEllipsoid.geodesicPointSFCT() did not interpolate the longitude value when interpolating
two geodetic points that are both located on the same pole. This could cause artifacts in
projections where the pole is represented by a line instead of a point (for example
TLcdEquidistantCylindrical).
Bug fixLuciadLightspeed
LCD-2056
Fixed a memory leak when using a Lightspeed view with a geocentric reference.
Bug fixLuciadLightspeed
LCD-2631
Geobuffer contour calculations could fail when one of the baseline points lies on one of the
poles.
Bug fixLuciadLightspeed
LCD-4487
TLcdGeoPackageModelDecoder.commit() and TLcdGeoPackageModelEncoder.save() now set the generated
id on newly added elements.
Bug fixLuciadLightspeed
LCD-3620
Possible OutOfMemoryError when enabling halo for label pins and using the in- or on-path
labeling algorithm.
Bug fixLuciadLightspeed
LCD-4482, LCD-3058
Fitting on multiple layers and on special layers has been made more robust.
Bug fixLuciadLightspeed
LCD-4458
Zooming in on an MGRS grid in 3D could cause an out of memory exception.
Bug fixLuciadLightspeed
LCD-4508
TLcdGXYDensityLayer: it did not always respect the color specified to be used at index 0,
depending on the specific values and colors that were used.
Bug fixLuciadLightspeed
LCD-4182
TLcdGML32ArcByCenterPoint did not always respect conversion on axis order. The angles
also had to be recalculated: This now happens correctly.
Bug fixLuciadLightspeed
LCD-4395
Fixed possible deadlock when removing a layer while the view is being painted.
Bug fixLuciadLightspeed
LCD-4484
Fixed a bug when opening Tile Stores on a Windows network path such as \\SERVER\Path.
Bug fixLucy (LuciadLightspeed)
LCD-4584
Fixed possible thread safety issue that was caused by retrieving measurements from the view
by the mouse location panel.
Bug fixLuciadLightspeed
LCD-4584
TLcdGXYViewMeasureProvider is now thread-safe, as long as it uses thread-safe delegate
measure providers.
Bug fixDatabase Connectors
LCD-4485
In some cases, the MSSQL decoder didn't set the key auto-generated by the database back on the java objects that were inserted.
Bug fixOGC Server
LCD-4597
Fixed a bug when using WFS transaction requests to populate an empty GML model.
Bug fixOGC Server
LCD-4506
The SRS name is now encoded in the GML envelope. It is no longer repeated for each individual feature. This reduces
bandwidth for WFS GetFeature responses.
Bug fixAviation Standards
LCD-4483
Fixed NPE that could occur when previewing an AIXM 5.x file with Navaids with limited time-span.
Bug fixAviation Standards
LCD-4520
Fixed a potential error in TLcdProcedureGeometryCalculator when connecting CI and AF
legs in cases where the latter has a very large radius.
Bug fixDefense Standards
LCD-4469
TLcdNITFModelDecoder can now decode files larger than 2 GB.
Bug fixDefense Standards
LCD-4469
TLcdNITFModelDecoder now supports drag-n-drop when decoding JPEG2000 files.
Bug fixDefense Standards
LCD-4469
TLcdNITFModelDecoder now correctly orders the rasters in the resulting multilevel raster
when setDecodeMultilevelRasters(true) is used for JPEG2000 files.
Bug fixDefense Symbology
LCD-4610
The labels for the Non-Submarine symbol in APP-6B (1.X.5.4) were not shown on a map.
Bug fixDefense Symbology
LCD-4594
The possibility to use Unknown affiliation has been added to the APP-6A/B MOOTW symbols
Refugees (2.X.3.4.1) and Safe House (2.X.3.4.2). These symbols were previously restricted
to respectively friend, neutral and friend, hostile.
Bug fixMaritime Standards
LCD-3339
The memory consumption of TLcdS52GXYCatalogueLayer has been reduced; this is most noticeable
when panning around in large catalogues.
Bug fixMaritime Standards
LCD-3964
Catalogues can now be rendered when the S-57 meta object class Coverage (M_COVR) has been
excluded from decoding. This may affect performance though, as the M_COVR information is used to
optimize rendering performance.
Bug fixMaritime Standards
LCD-4019
The angles of light sectors were computed incorrectly for some projections; this has been
corrected.
Bug fixMaritime Standards
LCD-4287
Full light sector lines are no longer drawn when the the map scale is smaller than the SCAMIN
value of the light sector.
Bug fixMaritime Standards
LCD-3975
Some S-52 icons were being chopped off 1 pixel at their border due to rounding errors. This has
been fixed.
Bug fixMaritime Standards
LCD-4066
Icons of two-way route parts (TWRTPT) and currents (CURENT) are now properly rotated when the
map is being rotated.
Bug fixRadar Connectors
Records that do not contain any location data are now discarded. This way, more asterix files can
be decoded without visual artifacts.
Bug fixRadar Connectors
LCD-4502
TLcdASTERIXCategory21: the target address is now used as the ID of a trajectory. This way, more
files containing category 21 data can be decoded. The TargetIdentification of a trajectory can now be
changed using the setValue method of TLcdASTERIXTrajectory.
2013.1
ImprovementLuciadLightspeed
LCD-4464
Improved the rounding behavior of certain scaled vector icons.
ImprovementLuciadLightspeed
LCD-4452
Improved the rendering quality of certain vector based icons.
ImprovementLuciadLightspeed
LCD-4441
Latency has been reduced when submitting multiple objects to TLspShapePainter's style collector.
ImprovementLucy (LuciadLightspeed)
LUCY-4041
TLcyDefaultDecodersAddOn: the configuration file now allows to control whether data is saved
as 2D or 3D when exporting to the SHP format. See the SHPFormat.export3DShapes property in
the default_decoders.cfg file for more information.
ImprovementLuciadLightspeed
LCD-4416, LCD-3089
Any model changes that happen on a non-EDT thread while a model is being edited with a TLspEditController
will now be scheduled on the EDT thread internally to prevent threading issues.
ImprovementLucy (LuciadLightspeed)
LUCY-4001
The File | Connect to... action will now automatically fit on the opened data on a Lightspeed
view,
similar to what the File | Open action does.
ImprovementLucy (LuciadLightspeed)
LUCY-4037
Map centric previewer (time slider etc.) now remains hidden when the time range is empty, that
is, for ILcdSimulatorModel's that don't define a time range (yet).
ImprovementLucy (LuciadLightspeed)
Scale combo boxes of the map and print add-ons are now configured to contain extra scales:
1/10K, 20K and 50K.
ImprovementLucy (LuciadLightspeed)
LUCY-4035
The configuration file of the workspace add-on now allows to disable the workspace
data source handler. See the "TLcyWorkspaceAddon.addDataSourceHandler" property in
the workspace_addon.cfg file.
ImprovementLucy (LuciadLightspeed)
LUCY-4036
Lucy now uses high-resolution window icons. The "iconImageFileName" property in the
lucy.cfg file
now accepts an array of icon paths instead of a single icon. This allows to define icons of
multiple
sizes (see java.awt.Window#setIconImages).
The same change has been done to AFrontend. This ensures that the custom front-end use
high-resolution window icons as well.
ImprovementLuciadLightspeed
LCD-4408
TLcdCartesian now contains a method that makes it possible to calculate a point inside a
polygon, but not inside a list of other polygons, see TLcdCartesian.computeInsidePoint().
ImprovementLuciadLightspeed
The TLspTouchSelectEditController#selectWhat method now returns a set containing all
available paint representations in the view.
ImprovementLuciadLightspeed
TLcdLayerTree now allows setting the minimum visible row count, which affects its preferred size
in a scroll pane. This behavior is especially useful when overlaying a JTree on a map,
where you want to prevent unused empty space, but you also want to allow it to grow when needed.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: The object properties window of the preview track is now a compact
customizer with convenient, searchable fields focusing on the most important symbol
properties. In addition, it is now possible to show labels for track symbols.
ImprovementLuciadLightspeed
LCD-2088
ALspViewXYZWorldTransformation has a new method getGeodeticVisibleArea(), which
returns a polygon that bounds the currently visible area of the world. An example
usage of this method can be seen in the new Map Overview sample
(samples.lightspeed.mapoverview).
ImprovementLuciadLightspeed
TLspShapeLayerBuilder now uses an object view margin of 32 pixels by default.
ImprovementLucy (LuciadLightspeed)
TLcySaveAsImageActionFactory has been added to the API. This class allows to create ILcdAction
instances
which can save a (map) component to an image.
ImprovementLuciadLightspeed
NimbusTouchLookAndFeel (sample code) now uses larger slider thumbs.
ImprovementLuciadLightspeed
LCD-4168
Added support to the ALcdGXYPen implementations and TLcdGXYShapePainter for visualizing ILcdCurve implementations.
ImprovementLucy (LuciadLightspeed)
The TLcyLspAsciiRasterFormatAddOn has been added. This add-on allows to visualize
ESRI ASCII Raster Format data on a Lightspeed map.
ImprovementLucy (LuciadLightspeed)
The TLcyAsciiRasterFormatAddOn has been added, which allows to visualize ESRI ASCII Raster
Format
data on a GXY map.
ImprovementLuciadLightspeed
Added support for ASCII Raster Format files (*.asc). Such files can be decoded into an ILcdModel
with the TLcdArcInfoASCIIGridModelDecoder.
ImprovementLuciadLightspeed
LCD-253
TLcdGXYBusyLayerTreeNodeCellRenderer now also takes into account the busy status of layers
of which the painter provider implements ILcdStatusSource.
ImprovementLuciadLightspeed
TLcdEarthGXYRasterPainter and TLcdEarthGXYMultivaluedRasterPainter now send out status events
when retrieving raster tiles.
ImprovementLucy (LuciadLightspeed)
LUCY-3975
A 'Common Operation Picture (COP)' sample has been added to Lucy. It is an all-in-one
sample capable of synchronizing data with other Lucy installations and other
Luciad products, such as LuciadMobile and LuciadRIA. Please read the COP user guide
to see how to get started with this sample.
ImprovementLucy (LuciadLightspeed)
LUCY-2623
Trying to open a non-existing workspace using the Recent Files action will no longer start
loading the
workspace and then fail. It will now show a message indicating that the workspace cannot be
loaded
and do not attempt to actually load the workspace. This makes sure the current workspace is not
affected.
ImprovementLucy (LuciadLightspeed)
Map centric frontend sample:
- the task panes (SwingX) have been replaced with custom on-map panes. This allowed to
heavily tune the behavior towards this specific use case. Amongst others: collapsed panels
are only as wide as their title (instead of their content), animations are now also
available for panels changing their content, extensive logic to decide which panes to
collapse, improved behavior if panes don't fit on screen ...
- the location of the tool bar items changed by explicitly specifying
their order (see 'toolBar.groupPriorities' in 'map_centric_frontend.cfg'). Also, the select
and
ruler controller are now configured in the 'ControlsGroup' instead of the
'ControllersGroup', in
sync with the regular configuration files.
- The button to load data has been removed from the layer control panel
(see 'map_centric_map_addon_MapComponent.cfg')
- The search box of the table view is now at the far right, as it was in look and feels
other than Nimbus (see FindInTableAction.java).
- The horizontal borders near the tool bars (orange and dark) are now more
consistent.
- The width of the preview controls (time slider) now adapts to the size of the map.
- The sample code has been restructured introducing two new packages: one containing
Swing UI classes, another package dealing with Lucy application panes.
- The format bar (drawing, PIM, MS2525 ...) now automatically activates when creating
or
loading a layer. It does no longer switch tabs when selecting another layer though. This
avoids distractive animations when selecting objects belonging to different bars which
have different heights.
ImprovementLucy (LuciadLightspeed)
TLcyLspMapAddOn: The location of the light button changed by explicitly specifying its tool bar
priority: added 'FogLightGroup' in property 'TLcyLspMapAddOn.toolBar.groupPriorities' of
'resources/lucy/lspmap/TLcyLspMapAddOn_CommonMapComponent.cfg'.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory and TLcyLspMapComponentFactory now constrain their Mercator and
PseudoMercator projection actions
to the commonly used latitude interval [-85.0, 85.0].
ImprovementLuciadLightspeed
TLcdMercator now allows changing its latitude boundaries.
ImprovementLuciadLightspeed
Added parser and formatter for PROJ.4 parameter strings (see
com.luciad.reference.format.TLcdProj4ReferenceParser/Formatter).
ImprovementLucy (LuciadLightspeed)
Lucy can now visualize LVDB and LRDB data through the TLcyLVDBAddOn and the TLcyLRDBAddOn. Those
add-ons also provide support for exporting other formats to the LVDB and LRDB format.
ImprovementLuciadLightspeed
TLspComplexStrokedLineStyle was introduced. This new style makes it possible to use complex
strokes to visualize shapes. This style makes it possible for example to repeat stroke patterns
along the line, add decorations at the start or end, such as arrow heads, and more. See
samples.lightspeed.style.strokedline for examples of how to use it.
ImprovementLuciadLightspeed
During creation, TLspGeoBufferEditor now chooses a better initial width of the buffer. It is
now based on the distance of the first segment of the base line.
ImprovementLuciadLightspeed
TLcdISO19139MetadataDecoder and TLcdISO19139MetadataEncoder now support decoding and encoding of
data using ISO19115 extension schema's. Custom extensions can be plugged in by generating a
TLcdDataModel from the extension schema(s) using TLcdXMLDataModelBuilder, and providing this
data model to the decoder or encoder constructor.
ImprovementLuciadLightspeed
The ISO19115 Metadata model has been extended with the ISO GMX types. TLcdISO19139MetadataDecoder
and TLcdISO19139MetadataEncoder have been extended to support decoding and encoding from these types.
ImprovementLuciadLightspeed
The LVDB (LuciadMobile Vector Database) and LRDB (LuciadMobile Raster Database) format support was moved from LuciadMobile.
These formats are intended for use only with existing LuciadMobile applications and should not be used otherwise.
If you are looking for an SQLite-based exchange format, we advise to use OGC GeoPackage instead.
Please refer to the LuciadMobile Developer's Guide for a detailed description of the LVDB and LRDB formats.
ImprovementLucy (LuciadLightspeed)
The TLcyModelEncoderContext now contains the view and layer as optional properties.
ImprovementLuciadLightspeed
A new sample, samples.wms.client.ecdis.gxy, has been added, illustrating how to connect to an
ECDIS-supporting WMS server and customize the WMS layer rendering, by including S-52 styling
parameters in the GetMap requests. This sample requires a running, ECDIS-supporting LuciadFusion
server (ECDIS WMS is supported in LuciadFusion from version 2013.1). See the sample documentation
and developer guide for more information.
ImprovementLucy (LuciadLightspeed)
The TLcyLspGeoPackageFormatAddOn allows to visualize GeoPackage data on a Lightspeed view.
ImprovementLucy (LuciadLightspeed)
Lucy can now visualize GeoPackage data on a GXY view. This functionality is provided by the
TLcyGeoPackageAddOn.
This add-on also allows to export other raster and vector data to the GeoPackage format.
ImprovementLucy (LuciadLightspeed)
A new add-on, ErrorLogAddOn, has been added to the map centric sample. This add-on collects
warning and errors
passed to the java.util.Logger and adds an action to the status bar that allows displaying them
in a table-like format.
ImprovementLuciadLightspeed
TLspShapeLayerBuilder has a new synchronous() method. This forces created layers to
paint synchronously, i.e. to perform discretization and other non-rendering tasks on
the EDT.
ImprovementLuciadLightspeed
The fusion metadata model now supports specifying a non-tiled coverage. Such a coverage is identified by its
metadata class TLfnNonTiledCoverageMetadata. It has no tile-specific information such as type, format and so on.
Non-tiled coverages always have asset sources in Tile Store. Due to the absence of tiles, they cannot be visualized
with a regular fusion client, only with a WMS client. These coverages will be invisible to older clients.
ImprovementLuciadLightspeed
Latency of filled shape painting using TLspShapePainter has been considerably reduced, especially for large shapes. This is
due to a much improved triangulation algorithm in TLspShapeDiscretizer. The old triangulation algorithm can still be re-enabled
using the system property -Dcom.luciad.view.lightspeed.geometry.discretization.TLspShapeDiscretizer.gluTesselator=true.
ImprovementLucy (LuciadLightspeed)
TLcyLspDrawingAddOn: it is now possible to add arrow heads to lines in a Lightspeed view.
ImprovementLuciadLightspeed
The fusion metadata model now supports specifying the format of the asset, such as "S-57" or "GeoTIFF". This allows
identification of an asset's format without having to decode it.
ImprovementLuciadLightspeed
The fusion metadata model now supports specifying that the asset sources must be stored in the Tile Store. This can
be specified on the coverage metadata. The presence of asset sources in the Tile Store enables WMS GetFeatureInfo
requests for a coverage. There are limitations as to the input data formats:
- S-57 catalogues and cells are supported.
- All other formats only supported if the source is a single file. Auxiliary files are lost. Fusion does
not fail on these formats, instead it copies only a single asset source.
- Only files are supported, not streams in general.
ImprovementLucy (LuciadLightspeed)
TLcyGXYCompositeLabelPlacementHintProvider now extends from TLcyGenericComposite.
ImprovementLuciadLightspeed
OGC GeoPackage is now supported.
- You can open .gpkg files using TLcdGeoPackageModelDecoder. You can use a shape layer to visualize vector data, or a raster
layer to visualize raster data, as demonstrated in the common decoder sample: samples.lightspeed.decoder.MainPanel
- You can create .gpkg files using TLcdGeoPackageModelEncoder, as demonstrated in
samples.encoder.sqlite.geopackage.Main
See developer's guide or javadoc of com.luciad.format.sqlite.geopackage for more details.
ImprovementLucy (LuciadLightspeed)
LUCY-3943
The table view now indicates how many rows of data the table contains.
ImprovementLuciadLightspeed
TLcdRotatingIcon can now be used on the Lightspeed view overlay panel.
ImprovementLucy (LuciadLightspeed)
The functionality of the TLcyMS2525bAddOn and TLcyAPP6AAddOn has been improved:
- The object properties window is now a compact customizer with convenient, searchable
fields
focusing on the most important symbol properties.
- The format bar allows rapid creation of new symbols with a new symbol search box.
- The object properties window now allows marking a symbol as a favorite, causing it to
appear in the format bar.
To revert these changes, please refer to the upgrade considerations of this release.
ImprovementLuciadLightspeed
LCD-4155
The TLcdGeoJsonModelDecoder.decode instance method is less restrictive now.
Instead of allowing only sources with FeatureCollections, it now allows you to decode
sources that contain either a single geometry, a single feature, or an array of features, into an ILcdModel.
ImprovementLucy (LuciadLightspeed)
LUCY-3974, LCD-3559
Labels could overlap when printing a GXY view.
ImprovementLucy (LuciadLightspeed)
Added support for the ECRG format.
ImprovementLuciadLightspeed
LCD-4097
It is now possible to decode a single GeoJSON feature into an ILcdDataObject using the static
TLcdGeoJsonModelDecoder.decodeFeature method.
ImprovementLuciadLightspeed
S-52 styling support has been added for S-57 raster and vector coverages. An SLD-based S-52 symbolizer can be
included
in the coverage metadata to specify the display settings with which the coverage should be rendered. See the
s52-sld.xsd schema in the ECDIS component resources (resources/com/luciad/format/s52/s52-sld.xsd) for the exact
XML Schema definition.
ImprovementLuciadLightspeed
SQLite has been updated to version 3.8.0.2.
ImprovementLucy (LuciadLightspeed)
TLcyLspCreateControllerActiveSettable now also has a factory method that adds commit, cancel,
undo and redo actions to the on-map action bar.
ImprovementLuciadLightspeed
The fusion metadata model now supports specifying one or more SLD feature type styles for coverage metadata. The
feature type styles are used for two purposes: to specify how data should be styled when fusing as raster, and to
provide a default style for rendering vector data via WMS, if WMS clients do not specify a custom style.
To support this, the LTS protocol version has been upgraded to LTS 1.0.5. ALfnCoverageMetadata now provides a getter
and setter for TLcdSLDFeatureTypeStyle's.
ImprovementLuciadLightspeed
ALcdWMSProxy can now be configured with an SLD or SLD URL to be encoded in GetMap requests.
ImprovementLuciadLightspeed
TLcdWMSClient and TLcdOGCWMSProxyModelDecoder now support custom SLD extensions (to allow plugging
in custom SLD content in the GetMap request). New constructors have been added for these classes,
which allow to pass the TLcdDataModel of the extension. The TLcdDataModel should be annotated
with a TLcdXMLSchemaMappingAnnotation providing the mapping from Java domain classes to
SLD XML encoding.
ImprovementLuciadLightspeed
The XML binding framework now supports non-qualified elements.
ImprovementLuciadLightspeed
The zip file containing all OGC clients is now called Ogc_client.zip instead of Wms_client.zip
ImprovementLucy (LuciadLightspeed)
The TLcyLspS57FormatAddOn has been introduced, which allows to visualize Ecdis S-57 data
on a Lightspeed view.
ImprovementLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: it is now possible to customize the UI for the TLcdS52DisplaySettings by
registering a custom ILcyCustomizerPanelFactory. Consult the class javadoc of the
TLcyS57DecoderAddOn for more information.
ImprovementLucy (LuciadLightspeed)
The TLcyS57DecoderAddOn now supports both ENC and AML data.
ImprovementLucy (LuciadLightspeed)
The TLcyS57DecoderAddOn now extends from ALcyFormatAddOn, providing access to its ALcyFormat and
allowing to
customize it.
ImprovementLuciadLightspeed
LCD-2833
Painting performance when using many different icons (more than 100) has been considerably improved.
You can disable this change using the system property -Dcom.luciad.view.lightspeed.painter.TLspShapePainter.iconAtlasSupport=false
ImprovementLuciadLightspeed
Temporary object allocation has been significantly reduced when discretizing and painting vector shapes using TLspShapePainter.
ImprovementLuciadLightspeed
TLspFillStyle now supports specifying an ILcdIcon as a texture.
This supports high-resolution printing of texture fills. Icon textures also respond to the feature scale.
ImprovementLucy (LuciadLightspeed)
LUCY-3921
Lighting is now enabled by default for Lightspeed maps. To disable this behavior, adjust the
TLcyLspMapAddOn.graphicsEffect.lightingEnabled
property in the TLcyLspMapAddOn_MapComponent.cfg config file.
ImprovementLuciadLightspeed
LCD-3916
It is now possible to configure the TLcdGeoJsonModelDecoder with a data type.
ImprovementLuciadLightspeed
LCD-3915
It is now possible to export single features and geometries with the TLcdGeoJsonModelEncoder.
ImprovementLuciadLightspeed
Fill styles using TextureCoordinateMode.VIEW_SCALED now translate the texture
coordinates together with the view while it is being panned. This is visually less distracting.
ImprovementLucy (LuciadLightspeed)
LUCY-3749
TLcyLspDrawingAddOn: the chosen font for text domain objects is now visualized correctly on
a Lightspeed view.
ImprovementLucy (LuciadLightspeed)
LUCY-3903
The lucy.tea sample and the lucy.custommapui sample are renamed to lucy.gxy.tea and
lucy.gxy.custommapui respectively.
This makes it more clear that those samples illustrate functionality only available on GXY maps.
ImprovementLuciadLightspeed
LCD-327, LMAP-4641
TLcdMapLocation now accepts a custom Format.
ImprovementLuciadLightspeed
ALcdAnimation now has sensible default implementations for all methods except setTimeImpl.
ImprovementLuciadLightspeed
LCD-3792
A default TLcdLonLatPointFormat instance now uses the same default Locale as the
standard JDK under JDK 7 (Locale.getDefault( Locale.Category.FORMAT ) ) .
ImprovementLucy (LuciadLightspeed)
LUCY-3460
The Tools | Layer Control menu entry has been renamed to Tools | Map Layers. This matches more
closely with the
actual title of the application pane.
ImprovementLuciadLightspeed
LCD-3702
The sample layer factories DatabaseLayerFactory (Lightspeed and GXY views) were removed.
You can use UnstyledLayerFactory (Lightspeed) and GXYUnstyledLayerFactory (GXY) instead.
They offer the same functionality but are not database-specific.
ImprovementLuciadLightspeed
LCD-3702
The sample layer factories DatabaseLayerFactory (Lightspeed and GXY) were removed.
You can use UnstyledLayerFactory (Lightspeed) and GXYUnstyledLayerFactory (GXY) instead.
They offer the same functionality but are not database-specific.
ImprovementDatabase Connectors
LCD-3702
The sample layer factories DatabaseLayerFactory (Lightspeed and GXY) were removed.
You can use UnstyledLayerFactory (Lightspeed) and GXYUnstyledLayerFactory (GXY) instead.
They offer the same functionality but are not database-specific.
ImprovementOGC Server
LCD-4440, LCD-4457
Updated the DescribeCoverage response with a RectifiedGrid description and reorganized
the request CRS listing to improve support for non-compliant OGC clients.
ImprovementOGC Server
LCD-4373
It is now possible to configure an expiry date on a WFS feature type (TLcdWFSFeatureType).
This information is used to fill in the "Expires" HTTP header on the response of a GetFeature
and GetFeatureWithLock request.
ImprovementOGC Server
LCD-4374
It is now possible to configure an expiry date on a WMS layer (ALcdWMSLayer).
This information is used to fill in the "Expires" HTTP header on the response of a GetMap
and GetFeatureInfo request.
ImprovementOGC Server
The WMS server now allows the Post method as access point for GetFeatureInfo requests. This is also reflected in
the WMS capabilities.
ImprovementOGC Server
The zip file containing all OGC servers is now called Ogc_server.zip instead of Wms_server.zip
ImprovementTerrain Analysis Engine
TLspLOSCoveragePainter now supports the use of ALspStyleTargetProvider.
ImprovementTerrain Analysis Engine
Added support for earth tilesets for GXY-based hypsometry. A new painter has been introduced for this: TLcdHypsometricEarthPainter.
This painter is capable of performing hypsometric visualization on top of an elevation-based earth tileset.
ImprovementAviation Standards
LCD-4453
To improve the icon quality of certain icons, we have increased the size of most vector icons
to be 17x17 instead of 16x16. This allows certain icons (such as cross-hairs) to be pixel
perfect and correctly centered.
ImprovementDefense Standards
Added support for the ECRG format. See MIL-PRF-32283.
ImprovementDefense Symbology
There is now a single GXY sample (samples.symbology.gxy) and a single Lightspeed sample
(samples.symbology.lightspeed)
demonstrating all supported military symbologies.
In addition, a new sample shows how to customize the visualization of military symbols and implement new
military symbols in a Lightspeed view.
ImprovementDefense Symbology
LMAP-5459, LCD-648
The samples now show how to build your own military symbol customizer.
Several API enhancements now facilitate this:
- TLcdEditableMS2525bObject and TLcdEditableAPP6AObject have been extended with methods to retrieve and
change symbol properties
- TLcdAPP6ANode and TLcdMS2525bNode have been introduced to allow browsing the symbol hierarchy
- TLcdAPP6AEchelonNode and TLcdMS2525bEchelonNode have been introduced to allow browsing and configuring
echelon values
ImprovementDefense Symbology
The military symbology customizers now allow changing the unique designation of all symbols.
ImprovementDefense Symbology
The zip file containing the functionality of the military symbology is now called Military_symbology.zip
instead of Ms2525b.zip.
ImprovementDefense Symbology
TLspAPP6ALayerBuilder and TLspMS2525bLayerBuilder now provide visualization support in a
Lightspeed view for all APP-6 (a/b) and MIL-STD 2525 (b/c) objects, including tactical line-based symbols.
In addition, the layer builders also allow interactive creation and editing of all symbols.
This is demonstrated in the symbology samples.
ImprovementDefense Symbology
APP-6 and MIL-STD 2525 objects now expose their symbol code (SIDC) through the ILcdDataObject interface.
ImprovementMaritime Standards
LCD-4430
You can now decode multiple catalogues simultaneously as one virtual catalogue by passing a
file 'MULTICATALOG.031' to TLcdS57CatalogueModelDecoder.decode(), which should be located in the
common parent directory of all catalogues to be decoded. The file is only used as a marker file,
to be recognizable by the decoder (TLcdS57CatalogueModelDecoder.canDecodeSource() will return
true for these files), and should be empty.
ImprovementMaritime Standards
TLcdS52DisplaySettings now implements ILcdDataObject. The color scheme, point symbol type, area
symbol type and display category are now also available as Java enumerations, and are used as
property types in the S-52 display settings data type.
ImprovementMaritime Standards
A custom XML Schema is now provided for encoding of S-52 display settings, together with a
decoder/encoder implementation to save/restore a TLcdS52DisplaySettings to/from XML. The schema
can be found in the ECDIS resources jar, in com/luciad/format/s52/s52.xsd. An XML
decoder/encoder
can be instantiated by configuring the TLcdS52DataTypes class on a
TLcdXMLSchemaBasedDecoder/TLcdXMLSchemaBasedEncoder instance.
ImprovementMaritime Standards
The useNationalLanguage flag is now available on TLcdS52DisplaySettings, which aggregates all
S-52 display configuration options. This is now the preferred place to enable/disable this flag.
ImprovementMaritime Standards
TLcdS52DisplaySettings now provides a 'scaleDenominator' setting as a way of configuring the
scales for each
navigational purpose. These scales are expressed as the ratio between one centimeter on the map
and the corresponding number of centimeters in reality (similar to paper chart scales), and
replace
the existing 'scaleRanges' setting, which was device-dependent (pixels/meter). The 'scaleRanges'
setting can still be used but will internally be converted into device-independent scale
denominators;
slight rounding errors may occur in the 'scaleRanges' values, due to the conversion.
ImprovementMaritime Standards
TLcdS57CatalogueModelDecoder now supports conversion to a SENC (System ENC) format.
SENC is a LuciadLightspeed specific format for representing S-57 data, optimized for optimal
performance (reading and visualization).
The SENC format is not intended for exchange purposes; it is available on
TLcdS57CatalogueModelDecoder
as an internal caching mechanism, and is automatically used if the setUseSENCCache(boolean) flag
on TLcdS57CatalogueModelDecoder is enabled (default is false). See the javadoc of
TLcdS57CatalogueModelDecoder
for more information.
ImprovementMaritime Standards
ECDIS data can now be visualized on a Lightspeed view. The TLspS52LayerBuilder class been
introduced
which allows you to create ILspLayer instances for S57 data. The data will be visualized as
specified by S52. The
same TLcdS52DisplaySettings as in GXY can be used to customize the visualization.
ImprovementMaritime Standards
TLcdS57ProductConfiguration and TLcdS52ProductConfiguration can now be retrieved through
getInstance
instead of newInstance. The getInstance method will return a singleton instance that can be
re-used
where necessary. newInstance has been deprecated, you should replace these calls with
getInstance.
ImprovementMaritime Standards
The decoding of S-57 data into ILcdModels and the visualization of those models on a GXY
view has been
simplified.
- There is now a single model decoder available which can decode cells and catalogues
for both the
ENC and AML product type. See the TLcdS57UnifiedModelDecoder class.
- There is now a single ILcdGXYLayerFactory which can create layers for all S-57 models
(cells and catalogues
of both product types). See the TLcdS52GXYLayerFactory class.
- It is no longer required to order the models (see
TLcdS52ProductConfiguration#createOrderedModelDecoder)
before passing them to the layer factory. Therefore, the createOrderedModelDecoder method
has been deprecated.
The developer guide and corresponding javadoc has been updated to illustrate this. The
developer guide contains
code snippets illustrating the new simplified way of providing ECDIS visualisation to your
application.
ImprovementMaritime Standards
TLcdS57ModelDescriptor now provides an optimized way of retrieving the compilation scale, which
does not trigger the loading of the full cell. This allows much faster analysis of the data
structure in e.g. LuciadFusion.
ImprovementMaritime Standards
S-52 visualization of S-57 data in Lightspeed views is now supported.
See TLspS52LayerBuilder for details, or samples.decoder.ecdis.lightspeed.
ImprovementS-63
TLcdS63ProductConfiguration can now be retrieved through getInstance instead of newInstance.
The getInstance method will return a singleton instance that can be re-used
where necessary. newInstance has been deprecated, you should replace these calls with
getInstance.
ImprovementS-63
A new model decoder has been introduced which can decode both cells and catalogues for ENC
and AML. See the TLcdS63UnifiedModelDecoder class.
ImprovementS-63
LCD-2957
A new model decoder is available for S-63 catalogues, TLcdS63CatalogueModelDecoder. This
decoder automatically filters out all cells for which no cell permit is available.
ImprovementTiling Engine
Fusion supports copying of a coverage's asset sources to the Tile Store, if this is so specified in the coverage
metadata. If a coverage's asset sources are in the Tile Store, it no longer requires tiles and may be non-tiled.
From this perspective, there are now three kinds of coverages:
- Tiled raster or vector coverages without asset sources in Tile Store. These are the regular coverages
you're already familiar with.
- Tiled coverages with asset sources in Tile Store. These hybrid coverages behave as regular tiled
coverages, in addition offer support for WMS GetFeatureInfo requests.
- Non-tiled coverages with asset sources in Tile Store. Due to the absence of tiles, these coverages cannot
be visualized using a regular fusion client. They can only be visualized using a WMS client.
A limitation is that this only works for S-57 asset sources. Fusion will fail otherwise.
ImprovementTiling Engine
ALfnFormat.getName() now returns a unique name such as "VPF", "S-57", "GeoTIFF". If not explicitly specified, this
name defaults to the display name of the model decoder, which is the old behavior.
ImprovementTiling Engine
ALfnFormat now provides an ILcdSLDGXYLayerFactory, enabling SLD-based styling of data. By specifying SLD feature
type styles
in the coverage metadata, you can now customize how data needs to be rendered for formats that support SLD
(currently only
SHP and S-57).
ImprovementTiling Engine
When fusing S-57 catalogs as raster, the resulting rasterized coverage now visually matches the input data better.
- The compilation scale is used to determine the maximum level of detail of the resulting coverage.
- The navigational purpose scale is used to determine the minimum level of detail at which data becomes
visible in a coverage.
- The coverage now has underscale indicators by default.
- The coverage now has overscale indicators by default. These will never become visible "earlier" than in
the input data.
They may become visible "later" than in the input data, but never later than twice the scale of the input data.
The coverage will have exactly one level with overscale indicators, and that is the most detailed level.
- There is at least one level in the coverage where the data is visible without overscale indicators.
- Using square pixels minimizes visual rasterization artifacts such as "squashed" icons.
New static methods have been added to TLfnTileStoreUtil to adjust coverage layout, tile size and bounding box to
ensure square pixels in the coverage's native georeference.
Bug fixLuciadLightspeed
Fixed an error in the implementation of getSinY() in TLcdSHPPointM and TLcdSHPPointZ.
Bug fixLuciadLightspeed
LCD-4455
Fixed rare deadlock when switching projection in certain cases.
Bug fixLuciadLightspeed
LCD-4448
Fix error when creating text in a model in screen coordinates.
Bug fixLuciadLightspeed
LCD-4434
TLcdGXYCompositeRingPainter did not paint snap indicators.
Bug fixLuciadLightspeed
LCD-4428
TLcdGXYCompassNavigationControl did not normalize its angle when changing the rotation of the view.
Bug fixLucy (LuciadLightspeed)
LUCY-3931
Pressing OK in the Map | Projection | Edit current dialog when no reference was selected
resulted in a NullPointerException. This has been fixed. When you now press OK without having
a selected reference, the current projection will not be edited and the dialog will simply
be disposed.
Bug fixLuciadLightspeed
LCD-4417
TLcdGMLApplicationModelEncoder can now handle types with properties of type TLcdCoreDataTypes.OBJECT_TYPE.
The encoder now removes these properties in the exported GML type (because it is opaque, the
encoder does not know how to encode it), instead of throwing an exception.
Bug fixLuciadLightspeed
LCD-4410
A ClassCastException which could happen in rare cases when viewing fused vector data in a
Lightspeed view and switching between 2D and 3D projections, has been fixed.
Bug fixLuciadLightspeed
LCD-4396
Raster layers should not apply lighting and fog effects in a 2D view.
Bug fixLuciadLightspeed
LCD-4390, LCD-4388, LCD-4391
Improved ruler controller robustness when using the cartesian measure mode.
Bug fixLuciadLightspeed
LCD-4369
TLspViewNavigationUtil now takes a model read lock when iterating over the model elements.
Bug fixLuciadLightspeed
LCD-3092
Visualization of TLcdLonLatHeightSphere and TLcdLonLatHeightDome with TLspShapePainter in a 3D view has been corrected to
correspond to the contains3D method.
Bug fixLuciadLightspeed
LCD-4169
TLspViewDisplacement style, that can be used for painting icons with TLspShapePainter, was sometimes not honored after style
change events. This has been fixed.
Bug fixLucy (LuciadLightspeed)
Opening a workspace using drag-and-drop would include the workspace in the Recent Workspaces
list. However, using the entry from the Recent Workspaces list for that specific workspace could
indicate that the workspace file does not exist. This has been corrected.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewManagerEvent#VERTICAL_VIEW_ADDED and VERTICAL_VIEW_REMOVED were non-final
constants. They
have been made final.
Bug fixLuciadLightspeed
LCD-3322
Data properties which cannot be serialized to valid JSON
(for example, because of internal circular references in the property)
will be encoded as a null-value by the TLcdGeoJsonModelEncoder.
Bug fixLuciadLightspeed
LCD-4014
Fixed wrong layout of ILcdText instances when drawn with TLspShapePainter.
Bug fixLucy (LuciadLightspeed)
LUCY-3577
The GXY Hypsometry Terrain Analysis AddOn now properly supports hypsometric calculations on
earth and fusion tilesets.
Bug fixLucy (LuciadLightspeed)
LUCY-3979
The action to delete an element from a model did not take a write lock on the model
before removing the elements. This has been adjusted.
Bug fixLuciadLightspeed
LCD-3807
On a printed GXY view, labels could overlap in some cases. This no longer happens.
Bug fixLuciadLightspeed
LCD-3320
By default, instances of ILcdPolypoint which represent a point-cloud
are now rendered correctly as a collection of individual points.
Previously, they were rendered as polygons in certain edge cases.
Bug fixLucy (LuciadLightspeed)
LUCY-3948
The default object properties panel would throw IllegalArgumentExceptions with AIS data when all
nodes were expanded and the empty values not filtered out. This has been corrected.
Bug fixLuciadLightspeed
LCD-4129
TLcdGeoTIFFModelDecoder can now also decode GeoTIFF images containing 64-bit floating point samples.
Bug fixLuciadLightspeed
LCD-856
The JDBC driver used to connect to SQLite databases has been changed to a custom implementation that is more robust.
In particular, it avoids certain rare native crashes that could occur.
Bug fixLuciadLightspeed
The classes of the samples are now delivered in jar files. These jar files are
located in the samples/lib folder of the LuciadMap distribution. This prevents
error messages about java.util.ServiceConfigurationErrors.
The sample classes used to be delivered as extracted class files in the samples/classes folder.
Bug fixLucy (LuciadLightspeed)
LUCY-3899
TLcyLspMapAddOn: fixed visualization of timezones when lighting time of day has been modified.
Bug fixLuciadLightspeed
LCD-3372, LCD-3649
Added a workaround for a Java 7 bug on Linux where multiple screen setups were not dealt with correctly leading to
problems when dragging a Lightspeed view from one screen to another.
The workaround is enabled by default. It can be disabled using the system property -Dcom.luciad.view.lightspeed.multipleScreenWorkAroundForLinuxJava7Enabled=false.
Bug fixLuciadLightspeed
TLcdAWTUtil now has a method invokeAndWait that takes a Callable as an argument. This allows
to conveniently return a result computed on the event dispatch thread.
Bug fixLucy (LuciadLightspeed)
When opening an xml file for which no schema can be found a dialog pops up. That dialog now
respects the Swing threading rules.
Bug fixTerrain Analysis Engine
LCD-4420
TLcdHeightProviderAdapter could return incorrect heights when passing a point in a difference
reference than the reference of the adapted height provider.
Bug fixDefense Standards
LCD-4429
TLcdNITFModelDecoder can now decode files larger than 2 GB.
Bug fixMaritime Standards
LCD-4442
The S-57 decoders now support the comma as a decimal number separator in ISO8211 data streams.
Bug fixMaritime Standards
LCD-4123
Dusk and night colors were not applied to all text elements: those elements were displayed
in day color. This is now resolved, all text elements have the proper dusk and night color.
Upgrade considerationLuciadLightspeed
LCD-4324
TLcdWMTSModelDescriptor now doesn't implement ILcdEarthModelDescriptor anymore.
Models for individual WMTS layers will still have a model descriptor that is both TLcdWMTSModelDescriptor and
ILcdEarthModelDescriptor.
However, when decoding multiple WMTS layers, the decoded model is a model tree node, with no data in the root node
and sub-models for each WMTS layer.
Since the root node does not contain any data, it should not have an ILcdEarthModelDescriptor.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn now by default use the MIL-STD-2525c and APP-6B symbologies.
This may cause errors or warnings when loading workspaces containing MS2525b/APP6A data.
If you prefer the previously used symbologies, refer to the respective config files of these
add-ons to revert this change.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn now use an improved object properties panel that closely
resembles the
one used in the samples of the military symbology specialized package.
To revert to the previous customizer, you can extend the relevant add-on and plug in your own
ALcyFormatWrapper.
The wrapper should return a TLcyEditableMS2525bObjectCustomizerPanelFactory in its
createDomainObjectCustomizerPanelFactories method.
Similarly, the format bar implementation has been changed. To revert to the previous format
bar implementation,
you can copy the format bar sample code from the previous release and return it in your
ALcyFormatWrapper's
createFormatBarFactory method.
Upgrade considerationLuciadLightspeed
TLspShapePainter now only applies style change events from its own stylers. In particular, style events
with the wrong event source will be ignored. This can happen when one styler decorates another styler, and
forwards events without adapting the source. If you use a styler decorator, make sure it does not attach
external listeners to its delegate directly. Instead, it should intercept the events of the delegate and
re-fire the events, as shown here:
public class StylerDecorator extends ALspStyler {
private final ILspStyler fDelegate;
private StylerDecorator( ILspStyler aDelegate ) {
fDelegate = aDelegate;
fDelegate.addStyleChangeListener( new ILspStyleChangeListener() {
@Override public void styleChanged( TLspStyleChangeEvent aEvent ) {
fireStyleChangeEvent( aEvent.getAffectedModel(), aEvent.getAffectedObjects(), aEvent.getAffectedStyles() );
}
} );
}
@Override public void style( Collection aObjects, ALspStyleCollector aStyleCollector, TLspContext aContext ) {
// ...
}
}
Upgrade considerationLuciadLightspeed
TLcdCADRGModelDecoder#canDecodeSource now verifies the entire file name rather than just the file extension.
As a result, the decoder can now assess CADRG frame files with malformed filenames as unsupported, while these
were considered supported in previous releases.
Upgrade considerationLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: it is no longer possible to use different TLcdS52DisplaySettings for the
individual layers. Previously
Lucy allowed to change the display settings in a general panel which changed the settings of all
layers. However, it
was also possible to change the display settings of an individual layer (e.g. through the layer
properties panel or
by loading a style file). This would result in an application-wide display settings panel
showing certain settings and
a layer which used other settings. To avoid this confusion, the settings per layer mechanism has
been removed and the layer
properties panel UI no longer allows to set custom settings on a layer. If you would alter the
display settings of an
individual layer through the API (e.g. loading a style file), it will affect the general display
settings as well, hence
all S-52 layers in the application.
Upgrade considerationLucy (LuciadLightspeed)
The TLcyS57DecoderAddOn has been moved to another package. It is no longer contained in the
com.luciad.lucy.addons.decoders
package but has been moved to the
com.luciad.lucy.addons.s57
package. The configuration file has been moved
as well. The new configuration file is the
lucy/s57/TLcyS57DecoderAddOn.cfg
file.
If you use your own addons.xml file containing the TLcyS57DecoderAddOn, it should be updated
to reflect those changes: both the class name as the location of the config file should be
adjusted.
If you use an extension of the TLcyS57DecoderAddOn, you will get a compile error due to the
move.
The S-63 functionality has also been moved from the TLcyS57DecoderAddOn to a new
TLcyS63FormatAddOn. The S-63 related
configuration options in the s57decoderaddon.cfg file have been moved to the configuration
file of the
new add-on (TLcyS63FormatAddOn.cfg). If you used S-63 data in your application, you will need
to include
both the TLcyS57DecoderAddOn and the TLcyS63FormatAddOn in your addons.xml file.
Upgrade considerationLuciadLightspeed
LCD-3416
TLcdDatabaseGXYPainterProvider was deprecated in favor of TLcdGXYShapePainter.
TLcdGXYShapePainter offers the same functionality but is not database-specific.
Upgrade considerationDatabase Connectors
LCD-3416
TLcdDatabaseGXYPainterProvider was deprecated in favor of TLcdGXYShapePainter.
TLcdGXYShapePainter offers the same functionality but is not database-specific.
Upgrade considerationMaritime Standards
TLcdS57CatalogueModelDecoder no longer scans directories for additional cell update files, when
opening a catalogue. Directory scans were needed in the past to detect update files
(.001, .002, ...) which were not part of the base catalogue. Since 2013.0,
TLcdS57CatalogueModelDecoder supports simultaneous decoding of multiple catalogues (base
catalogue
+ update catalogues), making directory scanning no longer necessary. As the directory scanning
introduced a significant performance overhead in the decoding process, it has now been removed.
Upgrade considerationMaritime Standards
ILcdS52FillStyle has a new method "getIcon" that returns the original icon used to create the
fill pattern image.
If you have an implementation of this interface, you can implement this method by returning an
icon if applicable.
Otherwise, you can return null and the image will be used as before.
2013.0
2013.0.25
ImprovementOGC Server
LCD-4038
The WCS GetCoverage request handler currently expects the bounding box to be expressed
in either the EPSG:4326 (WGS 84) reference or in the native reference of the offered data.
This enhancement adds support for any EPSG and WKT CRS supported by Luciad.
Bug fixLucy (LuciadLightspeed)
LUCY-4028
Best practice sample: activating the previewer and creating a trajectory afterwards would
cause a NullPointerException.
Bug fixLucy (LuciadLightspeed)
LUCY-4024
The mouse location read-out on a map would use the wrong formatting when the default lon-lat
point
format of Lucy had been changed before the map was created. This is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-4023
Lucy.sh: the startup script now also uses the JAVA_EXE variable to determine which
native libraries to load.
Bug fixLuciadLightspeed
LCD-4378
TLcdGXYSelectControllerModel2: the selection popup menu entries would disappear whenever
the corresponding object changes.
Bug fixLuciadLightspeed
LCD-4268
TLcdGeoTIFFModelEncoder would create images with all transparent pixels in certain cases.
Bug fixDefense Standards
LCD-4381
The default value for elevation rasters is now 32001, instead of 0. This solves issues
with height providers that translate the default value to NaN.
2013.0.24
ImprovementLuciadLightspeed
LCD-4362
Extended TIFF codec with support for horizontal differencing predictor combined with 16 or 32-bit
sample sizes.
Bug fixLuciadLightspeed
LCD-4347
TLcdRasterHeightProvider and TLcdInterpolatingRasterHeightProvider now return Double.NaN
when the raster value is an unknown height value (ILcdRaster.getDefaultValue()).
2013.0.23
Bug fixLuciadLightspeed
LCD-4367
The rotation parameters for the datum transformation of TLcdRD1918DutchGridReference were
incorrect, resulting in an offset.
Bug fixLuciadLightspeed
LCD-4363
Icon selection now takes ILcdAnchoredIcon into account properly.
Before, it was possible that you could not select such icons.
Bug fixLucy (LuciadLightspeed)
LUCY-4018
Fixed a bug in CTRL-zoom which prevented snapping to the least detailed of the two levels for
layers with exactly two zoom levels.
Bug fixTerrain Analysis Engine
LCD-4361
Fitting on a layer now works for the case when a layer contains ILcdLOSCoverageMatrices indirectly through style
target providers.
Bug fixMaritime Standards
Models of cells which have been deleted in an update now have the '.000' file with the highest
edition number as source name, instead of the last update file containing the deletion
instruction.
2013.0.22
Bug fixLuciadLightspeed
MGRS overlay labels now don't do calculations when they are invisible. Overlay labels now
also have less impact on performance overall.
2013.0.21
ImprovementLuciadLightspeed
LCD-4339
The new method TLcdGXYCompassNavigationControl#setMagneticNorthMap now lets the control point to the
magnetic north instead of the true north.
ImprovementLuciadLightspeed
LCD-4339
The new methods TLspCompassNavigationControl#setMagneticNorthMap and
TLspNavigationControlsBuilder#magneticNorthMap optionally let the compass point to the magnetic
north instead of the true north.
ImprovementLuciadLightspeed
LCD-4313
For WMTS layers that have no fully compatible tile matrix set, the WMTS client now
uses the most detailed compatible subset, instead of the least detailed subset.
This ensures that you will see the full detail of the layer instead of only a low-quality version.
For some layers, it is possible that the tile matrix with the highest detail is compatible.
This may cause performance problems, and you should use a layer scale range.
ImprovementTerrain Analysis Engine
LCD-4333
TLcdViewProfileJPanel: Improved behavior when component is resized.
ImprovementTerrain Analysis Engine
LCD-4331
TLcdViewProfileJPanel: You can now determine whether mouse-interactions result in a change in height, by using
the setChangeAltitudeOnInteraction() method. You can also determine whether the observer height is visualized
by using the setVisualizeMarkPoint() method.
ImprovementAviation Standards
LCD-4334
TLcdAIXM51AbstractAIXMMessage.getModelEncoder() no longer returns null when it has been decoded by
the TLcdAIXM51ModelDecoder, but an instance of TLcdAIXM51ModelEncoder.
ImprovementS-63
The S-63 model decoders have been upgraded to support S-63 Edition 1.1.1. The most noticeable
changes are in the error reporting: new error codes have been added (see
TLcdS63Exception.ErrorCode) and the implementation of the decoders has been updated to use the
new error codes where required by the specification. TLcdS57ModelDescriptor now also provides
a getWarnings() method which provides access to any non-fatal S-63 warning or error that was
encountered during decoding (for example a subscription license that expires within 30 days).
Bug fixAdvanced GIS Engine
LCD-4343
The advanced binary topology code sometimes returned wrong results in case of polygons and polylines
with degenerate edges. This has been fixed.
Bug fixTerrain Analysis Engine
LCD-4330
TLcdViewProfileJPanel: Simple Line-of-Sight visualization now works when regular Line-of-Sight is turned off.
Bug fixDefense Symbology
LCD-4197
The Fort symbol in the tactical graphics category in MIL-STD 2525b/c (2.X.3.3.2)
and APP-6A/B (2.X.2.2.3.2) was incorrectly rendered as an area instead of a icon.
Bug fixDefense Symbology
LCD-4307
A few MIL-STD 2525b/c and APP-6A/B painters incorrectly required the symbol domain
object to be of the type ILcdCache. This impacted applications
that use custom implementations / wrappers to represent the symbols.
2013.0.20
ImprovementLuciadLightspeed
LCD-4308
Added support for the non-standardized WMS capabilities of MapServer's MapCache WMS.
ImprovementLuciadLightspeed
LCD-4295
Replaced an external WMS capabilities XML Schema reference in the SLD XML Schemas with a
local reference, to avoid unnecessary external network access..
ImprovementLuciadLightspeed
LCD-3504
TLcdLonLatGridPainter#setLabelPosition now allows displaying grid labels at all sides.
Bug fixLuciadLightspeed
LCD-4306
Fixed a memory leak that could occur if a very large number of state changes
(e.g. selection, styling) was done in a view without allowing that view to
repaint itself. This normally happened only with offscreen views or views for
which auto-update was switched off.
Bug fixLuciadLightspeed
LCD-4304
Fixed the awkward color model for elevation data in the fusion.client.lightspeed sample. It now uses the default
DTED color model.
Bug fixLuciadLightspeed
LCD-4301
SLD now takes the stroke width into account when rendering well-known marks. The mark size will
be reduced when increasing the stroke width to ensure that the total icon size does not exceed
the specified size.
Bug fixLucy (LuciadLightspeed)
LUCY-4002
The OK button in the File - Connect To dialog did not work. It only disposed the dialog without
actually trying to load the data. The OK and Cancel button now work as expected.
Bug fixLucy (LuciadLightspeed)
LUCY-4009
The TLyLOSCoverageAddOn now no longer saves the "useOpenCLSpeedup" property in workspace files.
The property prefix
has been renamed from "TLcyLOSCoverageAddOn.layer.tea.coverage." to
"TLcyLOSCoverageAddOn.system.". The change
is backwards compatible: Old property keys are still accepted, but no longer saved in the
workspace file.
Bug fixLuciadLightspeed
LCD-4277
Fix flickering cursor when editing a shape and holding a modifier key.
Bug fixLucy (LuciadLightspeed)
LUCY-4006
Fixed error that could occur when trying to save to an Earth repository.
Bug fixOGC Server
LCD-4195
A bug was fixed which caused NullPointerExceptions upon GetFeatureType or DescribeFeatureType requests for empty
models when using a custom ILcdWFSClientModelEncoderFactory which does not extend from
TLcdWFSClientModelEncoderFactory.
2013.0.19
ImprovementLuciadLightspeed
LCD-3709
Improved painting accuracy for draped shapes whose model reference does not use the WGS84
reference ellipsoid.
ImprovementLuciadLightspeed
LCD-4187
Added an internal auto-detection mechanism to determine the correct axis order for
the EPSG:4326 (WGS 84) reference in case of a WMS 1.3.0 server. The decision is
based on the EPSG:4326 BoundingBox information in the WMS capabilities.
ImprovementLuciadLightspeed
Improved the performance of overlay component painting in a Lightspeed view.
ImprovementLuciadLightspeed
LCD-3707
TLspRulerController now indicates that a measurement can be moved by showing a 'move' cursor
when hovering over it.
Bug fixLuciadLightspeed
LCD-4283
Fixed exception that could occur when a TLspRasterLayer's is used in multiple views and one of
those views is destroyed.
Bug fixLuciadLightspeed
LCD-4203
ILcdAnchoredIcons were incorrectly aligned when drawn with the ON_TERRAIN elevation mode.
Bug fixLuciadLightspeed
LCD-4023
TLspShapePainter.boundsSFCT() sometimes produced incorrect results.
Bug fixLuciadLightspeed
LCD-4065, LCD-4064
Improved the robustness and thread safety of TLspViewXYZWorldTransformation3D and TLspImageProjector.
Bug fixLuciadLightspeed
LCD-4229
When selecting an MGRS grid layer, it became invisible. Now it's not possible to select
and MGRS layer anymore.
Bug fixLuciadLightspeed
LCD-4217
When setting an MGRS grid layer to invisible before it is added to the view, the overview
label remains visible.
Bug fixLuciadLightspeed
LCD-4206
When using TLcdEPSGReferenceFormatter, formatting a reference with a NAD83 datum and without
a reference name, could produce an incorrect code.
Bug fixLucy (LuciadLightspeed)
LUCY-3987
The "OK for All" button in the model reference chooser which is displayed when opening
multiple data sets without reference did not work properly. The chosen reference was
only used for the first data set. For the other data sets an incorrect reference
was used. This has been corrected so that the chosen reference is used for all data sets.
Bug fixLuciadLightspeed
LCD-4113
The printing feature scale is now correctly applied to icons which use the ON_TERRAIN
elevation mode.
Bug fixLuciadLightspeed
LCD-4193
TLspLabelPlacer often used information that is not up-to-date when placing labels for
controller layers (i.e. ILspController.getLayered()). This could for example cause measurement
labels to disappear when using the ruler controller.
Bug fixAdvanced Raster Connectors
LCD-4209
Improved the default size of the ECW image cache. Previously it could be up to 1/4 of the
available system memory which can easily cause problems when using a 32-bit JVM. Now the cache
is limited to 64MB. The performance is not significantly affected. You can change the
size of the cache using the TLcdECWModelDecoder.setMaxCacheSize method.
Bug fixAviation Standards
LCD-4250
The DAFIF(T) ILS and Navaid decoders did not take into account the implicit decimal for
the frequency value.
Bug fixDefense Symbology
TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle did not correctly include the old value in
PropertyChangeEvents when configuring (label) halo properties.
Bug fixDefense Symbology
LCD-4191
Several (label) painters for MIL-STD 2525 and APP-6 produced undesirable
TLcdOutOfBoundsException log messages when labels / objects felt outside the bounds
of a projection.
2013.0.18
Bug fixLuciadLightspeed
LCD-4189
In rare cases, TLspInteractiveLabelsController would call ALspInteractiveLabelProvider.startInteraction(),
without calling ALspInteractiveLabelProvider.stopInteraction() later. This made it possible
for ILspInteractiveLabelListener implementations to be left in an invalid state. This is now
fixed.
Bug fixDefense Symbology
LCD-4186
Fixed an exception that occurred when using a custom ILcdMS2525bShape or ILcdAPP6AShape domain
object.
Bug fixDefense Symbology
LCD-4181
The movement direction arrow did not take into account the active projection to determine
the north.
2013.0.17
ImprovementTerrain Analysis Engine
TLcdProfileViewJPanel now supports setting a target height. Locations on the terrain are considered
visible if the sum of the terrain height plus the target height remains smaller than the minimal
visible height at that point, looking from the observer's point.
ImprovementMaritime Standards
LCD-4188
A bug in the evaluation of AML file names, prohibiting AML models from being encoded, has been
fixed in TLcdS57ModelEncoder.
Bug fixLuciadLightspeed
LCD-4180
ALcdEarthTileSetRaster: the getColorModel, getPixelSize and getType methods could take a very
long time for detailed levels.
Bug fixLuciadLightspeed
LCD-4179
TLcdEarthTileSetElevationProviderTest: did not handle un-normalized geodetic coordinates
correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-3984
The TLcyGXYLayerTreeNodeFormatWrapper would pass TLcyModelEncoderContext instances containing
an internal ILcdModelEncoder instance to the ILcyCustomizerPanelFactory instance of the delegate
format. This has been adjusted. The ILcyCustomizerPanelFactory of the delegate format
now receives a TLcyModelEncoderContext containing the ILcdModelEncoder created by the
delegate format.
Bug fixLuciadLightspeed
LCD-4171, LUCY-3983
In some cases, data formats using HTTP (for example Bing Maps) did not pick up the correct proxy authentication.
Bug fixLuciadLightspeed
LCD-4174
The XML capabilities decoder has been made less strict with respect to the XML element
order of the Style element in the WMS capabilities.
Bug fixLuciadLightspeed
LCD-4173
The XML capabilities decoder failed when empty LayerLimit, MaxWidth and/or MaxHeight elements
were encountered in the WMS capabilities.
Bug fixLuciadLightspeed
LCD-4165
The property change event fired by TLcdGXYShapePainter#setFontStyle had an incorrect property name.
Bug fixLuciadLightspeed
LCD-4156
When no spatial reference is specified for the feature collection, the TLcdGeoJsonModelDecoder will now
correctly apply the default model reference.
2013.0.16
ImprovementLuciadLightspeed
LCD-4135
TLspPinLineStyle.PinEndPosition now has an extra option: MIDDLE_OF_BOUNDS_ON_EDGE. This
pin end position works similar as MIDDLE_OF_BOUNDS, but the pin line is clipped at the
edge of the label instead of ending at the middle of the bounds itself.
ImprovementLuciadLightspeed
LCD-4141
TLcdGeoJsonModelEncoder can now encode more shapes.
- Empty ILcdShapeLists are now encoded as empty GeometryCollections
- The baseShape of an ILcdExtrudedShape will now be encoded to a GeoJson geometry
- An ILcdSurface is now encoded as a Polygon (provided all the rings are also an instance of
ILcdPointList)
- An ILcdRing is now encoded as a Polygon (provided it is also an instance of ILcdPointList)
- An ILcdCurve is now encoded as a LineString (provided it is also an instance of ILcdPointList)
It is now also possible to configure the TLcdGeoJsonModelEncoder to skip domain objects of an ILcdModel it cannot
encode
The default behavior remains identical: an exception is thrown when an unsupported object is encountered. However,
this behavior can now be turned off using setSkipUnsupportedFeature.
ImprovementLuciadLightspeed
LCD-4137
It is now possible to make interactive labels appear by hovering over their domain object,
see TLspInteractiveLabelsController.setActiveOnObjectHover().
Bug fixLuciadLightspeed
LCD-4151
When using interactive labels, a deadlock was possible in some cases. This is now fixed.
Bug fixMaritime Standards
LCD-4153
TLcdS52ModelListBuilder now supports models which contain only a single point element or other
element with zero width/height.
2013.0.15
ImprovementLuciadLightspeed
LCD-4140
ALspDensityStyle has a new "weight" property, which allows the user to specify how
much objects contribute to the density plot. Previously, all objects would increment
the density value by exactly one.
ImprovementLuciadLightspeed
LCD-4132, LCD-2767
It is now possible to notify that the interactive component has changed. This makes it
for example possible to change the content (and size) of an interactive label, while it
is activated. See addInteractiveLabelChangeListener() and fireInteractiveLabelChangedEvent()
in ALspInteractiveLabelProvider.
ImprovementS-63
TLcdS63ModelDecoder now supports combinations of both basic and meta permit files.
Bug fixLuciadLightspeed
LCD-4138
In some cases an IllegalArgumentException was thrown when stopping interactive label
interaction.
2013.0.14
ImprovementLucy (LuciadLightspeed)
LUCY-3898
Lighting panel button now only visible for 3D views.
ImprovementLuciadLightspeed
LCD-4172
The XML capabilities decoder has been made less strict with respect to custom
extensions found in the WMS capabilities.
ImprovementLuciadLightspeed
LCD-4136
TLcdCADRGModelDecoder now handles zero-terminated strings correctly.
ImprovementLuciadLightspeed
LCD-3962
Icons no longer sink into the ground when viewing them at a horizontal angle in a 3D view.
ImprovementLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: you can now filter tracks and plots based on their altitude. You can
configure this in the
ASTERIX settings available in the Edit menu.
ImprovementLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: trajectories can now also be labeled. The contents of the labels can be
configured in the
layer properties panel.
ImprovementLuciadLightspeed
TLcdXMLSchemaBasedDecoder now allows specifying a list of classes for the expected
return value of its decode() methods. This can be useful in cases where there are multiple
elements allowed as root element in the XML documents to decode.
ImprovementTerrain Analysis Engine
LCD-4117
TLcdProfileViewJPanel#calculateLineOfSight now programmatically triggers the line-of-sight functionality.
ImprovementDefense Symbology
LCD-4128
The Penetration Box symbol in the tactical graphics category in MIL-STD 2525b/c (2.X.2.5.3.6)
and APP-6A/B (2.X.2.1.5.3.6) can now have a label based on the Unique Designation modifier.
ImprovementMaritime Standards
TLcdS57ModelDecoder and TLcdS57CatalogueModelDecoder now throw an IllegalStateException in their
canDecodeSource() and decode() methods if they are not properly configured.
ImprovementRadar Connectors
TLcdASTERIXAltitudeRecordFilter: this filter allows you to reject tracks and/or plots based on their altitude.
Set it on the model decoder or live decoder with the setRecordFilter method.
ImprovementRadar Connectors
The properties that can be changed for TLcdASTERIXTrack can now also be changed for TLcdASTERIXPlot.
ImprovementRadar Connectors
LCD-4090
TLcdASTERIXCategory11: all trajectory properties and related track properties for category 11 can now be changed
through the ILcdDataObject interface. More specifically, following trajectory properties can now be changed:
- Callsign
- IFPS_FLIGHT_ID and all its subproperties
- FlightCategory and all its subproperties
- TypeOfAircraft
- WakeTurbulenceCategory
- DepartureAirport
- DestinationAirport
The corresponding track properties can also be changed:
- FlightPlanRelatedData.Callsign
- FlightPlanRelatedData.IFPS_FLIGHT_ID and all its subproperties
- FlightPlanRelatedData.FlightCategory and all its subproperties
- FlightPlanRelatedData.TypeOfAircraft
- FlightPlanRelatedData.WakeTurbulenceCategory
- FlightPlanRelatedData.DepartureAirport
- FlightPlanRelatedData.DestinationAirport
Bug fixLuciadLightspeed
LCD-4127
TLcdGeoJsonModelDecoder now handles decoding of URLs without having to explicitly set the dataModelName. Previously,
this might have thrown an exception, depending on the contents of the URL.
Bug fixLuciadLightspeed
LCD-4134
In some cases, there was flickering while navigating the view due to object paint order.
There now is an improved paint ordering that also takes into account style order for
objects with multiple styles.
Bug fixLuciadLightspeed
LCD-4133
In some cases, an exception "wrong index sizes" could occur for objects with point geometry
that is partially out of the view's world bounds.
Bug fixLuciadLightspeed
LCD-4124
In some cases, labels from a layer could disappear after removing one ore more domain objects
from that layer. An example where this can happen is when using the ruler controller and
canceling the creation of a measurement.
Bug fixLuciadLightspeed
LCD-4122
TLcdUtmMgrsUtil.utmMgrs2LonLat() sometimes produced incorrect results for grid squares very
close to the 180 degrees meridian.
Bug fixLuciadLightspeed
TLcdXMLSchemaBasedDecoder.decode(String) now properly delegates the construction of the document
context to the createDocumentContext() method, consistent with the other decode() methods on the
API.
Bug fixLuciadLightspeed
LCD-4116
Reduced memory usage of TLcdBufferedTile.
Bug fixTerrain Analysis Engine
LCD-4112
Fixed issue with the simple Line-of-Sight calculation offered by the TLcdProfileViewJPanel. This would (for certain values)
be inconsistent
with the regular Line-of-Sight computation. The simple line of sight calculation now uses the same precision as the regular
Line-of-Sight.
Simple Line-of-Sight can be called programatically with the TLcdProfileViewJPanel.calculateVisibility() method. The result
of the
method depends on the TLcdProfileViewJPanel.setMarkPoint() and TLcdProfileViewJPanel.setAltitudeAboveGroundForLineOfSight()
methods.
Bug fixDefense Symbology
LCD-4131
A few incorrect characters were present in the country names Côte d'Ivoire, Réunion and
São Tomé and Príncipe.
Bug fixDefense Symbology
LCD-4108
The APP-6B symbol Special Point (G*C*OX----*****) was not supported.
2013.0.13
Bug fixLuciadLightspeed
LCD-4093
Added a workaround for incorrect Geoserver capabilities. Although mandatory, Geoserver does not
always have a style associated with a layer.
2013.0.12
ImprovementLuciadLightspeed
LCD-4072
TLspCreateController's logging behavior now distinguishes between exceptional use cases and errors.
ImprovementLuciadLightspeed
LCD-4015
It is now possible to invalidate all swing labels at the same time. See
ALspSwingLabelStyler.allComponentsChanged().
ImprovementLuciadLightspeed
LCD-4084
The performance of bounds queries has been improved for cases where a single domain
object is converted into a large number of style targets.
ImprovementLucy (LuciadLightspeed)
LCD-4074
TLcyLspMapAddOn: when holding several mouse buttons at the same time, panning now always takes
priority over rotation.
ImprovementLuciadLightspeed
LCD-4074
The sample class GreedyPanController shows how to cancel other controller interactions, in case the user
is pressing multiple mouse buttons.
ImprovementOGC Server
LCD-4082
Convenience methods have been added to TLcdWMSRequestContext to access the
layers and styles parameters in a request.
ImprovementS-63
LCD-4045
A bug in the configuration of TLcdS63ModelDecoder prevented the new IHO certificate from being
automatically picked up by the decoder. This has been fixed.
Bug fixLuciadLightspeed
LCD-4026
TLcdLonLatGeoBuffers with segments that make a 180 degree turn could be painted
incorrectly. This for example could cause rounded corners or other parts of the buffer
to disappear.
Bug fixLuciadLightspeed
LCD-4107
Null values in the properties member of GeoJson features are no longer encoded as empty hash maps.
Bug fixLuciadLightspeed
LCD-4096
In some cases, paint order for objects with the same z-order was not always consistent.
This could cause flickering while navigating the view.
Bug fixLuciadLightspeed
LCD-4102
Selected and edited objects did not disappear when they were removed from the model or filtered
out due to a model change.
Bug fixLuciadLightspeed
LCD-4099
Label placement could become very slow when using many (> 10000) different labeling
algorithms.
Bug fixLucy (LuciadLightspeed)
LUCY-3957
TLcyAPP6AAddOn, TLcyMS2525bAddOn: double-clicking a symbol in a GL view didn't show
the correct object customizer.
Bug fixLucy (LuciadLightspeed)
LUCY-3955
A NullPointerException could be thrown when creating a layer for an ILcdModel with
an ILcdModelDescriptor with null as type name. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3956
Docking front-end: calling DockableFrameAppPane#disposeApp did not call the
com.jidesoft.docking.DockableFrame#dispose method. This could result in a memory leak,
and incorrect workspace loading.
Bug fixLuciadLightspeed
LCD-4060
Inversion of longitude and latitude is now properly taken into account when points or point
lists are transformed during decoding of GML data.
Bug fixDefense Symbology
LCD-4100
A few MIL-STD 2525b/c and APP-6A/B painters incorrectly required the symbol domain
object to be of the type ALcd2DEditablePolypoint. This impacted applications
that use custom implementations / wrappers to represent the symbols.
Bug fixDefense Symbology
LCD-4086
The dots below icons were not painted in a 3D view.
Bug fixDefense Symbology
The APP-6A/B and MIL-STD 2525b/c data models, respectively accessible through
TLcdAPP6ADataTypes#getDataModel and TLcdMS2525bDataTypes#getDataModel
did not provide a correct list of possible values for the ReinforcedOrReduced
and EvaluationRating data types.
Bug fixDefense Symbology
LCD-4077
The Infiltration Line symbol in MIL-STD 2525b/c (2.X.2.5.2.4) and APP-6A/B (2.X.2.1.5.2.4)
was not correctly oriented in case of vertically aligned coordinates.
Bug fixDefense Symbology
LCD-4054
The label painter for the MIL-STD 2525b Irregular Airspace Coordination Area symbol
(2.X.4.3.2.2.1) did not correctly parse the Additional Information text modifier.
Bug fixDefense Symbology
LCD-4056
The label painter for the MIL-STD 2525c Minimum Risk Route (MRR) symbol (2.X.2.2.2.2)
mixed up the minimum and maximum altitude values.
Bug fixMaritime Standards
LCD-4103
Due to a recent update of the ISO8211 implementation, large unsigned integers were no longer
parsed correctly, which could lead to unresolved pointers in the decoding of S-57 data, and
non-initialized data. This has been fixed now.
Bug fixMaritime Standards
LCD-4081
The rendering of some attribute texts was broken since the introduction of new ILcdS57Attribute
implementations. This has been fixed.
Bug fixRadar Connectors
LCD-4078
TLcdASTERIXModelDecoder is now more robust when decoding multiple files containing records of multiple
categories.
2013.0.11
ImprovementLuciadLightspeed
LCD-3738
TLcdGXYCompassNavigationControl did not behave correctly when the view center was outside the earth bounds.
ImprovementLuciadLightspeed
LCD-4069
TLcdGXYAsynchronousPaintQueue#reset now also clears stale references to layers.
ImprovementRadar Connectors
LCD-4068
TLcdASDIFileReplayInputStream: the threads created by this class now get a descriptive name instead
of the default "Timer-X" names.
ImprovementRadar Connectors
LCD-4068
TLcdASTERIXFinalReplayInputStream: the threads created by this class now get a descriptive name instead
of the default "Timer-X" names.
Bug fixLuciadLightspeed
LCD-3772
ALcdObjectSelectionAction became visible on every selection change if the auto-hide behavior
was disabled. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3559
The map overview is now updated whenever the map size changes.
Bug fixLucy (LuciadLightspeed)
LUCY-3886
Fixed a ClassCastException when trying to print in an SWT based application.
Bug fixLucy (LuciadLightspeed)
TLcyAIXM5AddOn/TLcyAIXM51AddOn: the ILcyCustomizerPanelFactory responsible for the creation of
the table views indicated incorrectly for some TLcyModelContext instances it could create an
ILcyCustomizerPanel.
This would result in an exception when you actually tried to create the customizer panel.
Bug fixLuciadLightspeed
LCD-4036
Most ILcdLayered implementations threw a NullPointerException when trying to move a layer that was not
in the layered object. This has been changed to the advertised NoSuchElementException.
Bug fixLuciadLightspeed
LCD-1517
The Z order property of ALspStyle is now applied globally across different style types,
whereas before it was only considered within groups of objects with the same type
of style.
Bug fixDefense Symbology
LCD-4062
Fixed a caching regression in TLcdMS2525bObjectIconProvider and TLcdAPP6AObjectIconProvider, introduced by the fix
for LCD-4009.
Bug fixRadar Connectors
LCD-4070
Data fields that are optional in the ASTERIX streams are now marked as nullable in the
ILcdDataModels of the various track types.
Bug fixRadar Connectors
LCD-3925
Support property values that contain NUL characters
2013.0.10
ImprovementLuciadLightspeed
TLcdGeoTIFFModelEncoder will now produce stripped images when the tile width and/or height properties are set to
zero.
Bug fixDefense Symbology
LCD-4052
The Lightspeed creation controller could only create MS2525 and APP6 icon symbols if the domain
object implemented ILcd2DEditablePoint. This is for example not the case for a
TLcdEditableMS2525bObject/TLcdEditableAPP6AObject. It is now possible to create any
ILcdEditableMS2525bShape/ILcdEditableAPP6AShape icon symbol using the creation controller.
2013.0.09
ImprovementLuciadLightspeed
LCD-1842
TLspPointToPointSnapper: improved the snapping performance when working with many points.
2013.0.07
ImprovementLucy (LuciadLightspeed)
TLcdDWGDecoderAddOn: the dwg model decoder registered in Lucy will now also read extended entity
data from dwg files.
ImprovementMaritime Standards
4 new implementations of ILcdS57Attribute are available in the API, which model the specific
attribute types available in S-57: TLcdS57EnumeratedAttribute, TLcdS57FloatAttribute,
TLcdS57IntAttribute and TLcdS57ListAttribute. Use these implementations when creating S-57
data programmatically. TLcdS57Attribute should only be used for attributes of type coded
string or free text.
Bug fixLuciadLightspeed
LCD-4040
The make_osgi_bundles script now also processes the native libraries necessary for
LuciadLightspeed's touch support.
Bug fixLucy (LuciadLightspeed)
LUCY-3945
TLcyFusionRasterFormatAddOn: reduced distortions when visualizing fusion raster tile sets in
other than their native projections.
Bug fixLuciadLightspeed
LCD-4031
Fixed balloon rendering problem for jdk 1.5 that would cause greater-than signs to appear at the side of the balloon.
Bug fixLuciadLightspeed
LCD-4028
Several ILcdGXYPainter implementations did not return a full deep clone, making the clone
potentially unsafe when used in another thread.
Bug fixLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: the invalid cell exception handler was only used when decoding S-57 data
and not
when decoding S-63 encrypted data. This has been corrected. If an invalid cell exception handler
is
configured in the configuration file of the add-on, it will now used during the decoding of S-57
and
S-63 encrypted data.
Bug fixLuciadLightspeed
TLcdAnchoredIcon: fixed the default anchor point calculation for non-square icons.
Bug fixLuciadLightspeed
LCD-3992
When modifying halo settings in the label painters, and using domain objects that implement
ILcdCache, labels were not updated correctly.
Bug fixLuciadLightspeed
LCD-4020
The type of the choice property 'ExtendedData' in the AbstractFeatureType was incorrect, this has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3944
TLcyLspPreviewAddOn: Lucy could not be started when realtime.zip was not unzipped and the
license
indicated the realtime specialized package was purchased.
Bug fixLucy (LuciadLightspeed)
LUCY-3941
TLcyToteAddOn: when exporting double values to CSV that used a TLcdISO19103MeasureAnnotation to
indicate their units, the values were formatted as doubles instead of how they appear in the
table. This also affected the TableViewAddOn sample code.
Bug fixReal-time Engine
LCD-4030
ALcdTimeIndexedSimulatorModel: fixed exception when you removed the last track with the
removeTracks method.
Bug fixDefense Symbology
LCD-4029
The APP-6B Non-Submarine symbol (1.X.5.4) was not correct (incorrect font type
and alignment) and has been fixed.
Bug fixDefense Symbology
LCD-4027
The label painter for the MIL-STD 2525c Minimum Risk Route (MRR) symbol (2.X.2.2.2.2)
did not advertise correct label bounds, causing label decluttering algorithms to fail.
Bug fixDefense Symbology
The APP-6B Trawler symbol (1.X.4.3.2.3, S*S*XFTR--*****) could not be created, due
to an inconsistency in the symbol list in the APP-6B standard (missing symbol entry).
Bug fixMaritime Standards
LCD-4018
The rendering of S-52 text labels was broken, this has been fixed.
Bug fixMaritime Standards
LCD-4032
A bug in the comparison of ILcdS57Attribute instances has been fixed. This bug could affect
the correct visualization of manually created S-57 data (data decoded by the standard S-57
decoders
is not affected).
Bug fixMaritime Standards
LCD-4024
Stroke-width now properly takes into account the default pixel density of ecdis.
Bug fixMaritime Standards
The TLcdS52DisplaySettings.isDisplayObjectsOutsideView() setting was not taken into account when
creating a cell layer via TLcdS52ProductConfiguration.createGXYLayerFactory().createGXYLayer().
This has been fixed.
Bug fixMaritime Standards
LCD-4011
A bug in the rendering of overscale indications has been fixed: the overscale indication was
sometimes rendered with line thickness 2, this is now always 1.
Bug fixMaritime Standards
The layer factory created with TLcdS52ProductConfiguration#createGXYLayerFactory no longer
throws exceptions
for invalid models. Now null is returned when no layer can be created for a model which is
according to the
ILcdGXYLayerFactory documentation. This for example allows to include the layer factory in a
composite
layer factory.
Bug fixRadar Connectors
LCD-4008
TLcdASTERIXModelDecoder: no longer throws exceptions for some specific PCAP files that contain IP fragments
for other IP addresses.
2013.0.06
ImprovementLuciadLightspeed
LCD-3919
TLspCreateController now automatically cancels itself if it could not initialize the creation.
This is convenient if a controller model asks the user for additional input and the user cancels.
ImprovementLucy (LuciadLightspeed)
LUCY-3927
TLcyLspMapComponentFactory: a new action has been added which shows a UI to customize the
projection
settings of the view (see TLcyLspMapComponentFactory#EDIT_CURRENT_PROJECTION_ACTION).
ImprovementLuciadLightspeed
LCD-3986
The ruler controller (TLspRulerController) now visualizes snapping points for the first point of the ruler
measurement.
ImprovementLucy (LuciadLightspeed)
LUCY-3937
TLcyLspFusionRasterFormatAddOn: the oversampling artifacts when visualizing a vector-as-raster
coverage
in a Lightspeed view have been reduced.
ImprovementLucy (LuciadLightspeed)
LUCY-3938
It is now possible to define multiple basic/meta cell permit files for the TLcyS57DecoderAddOn
as a comma-separated list for the TLcyS57DecoderAddOn.S63.basicPermitSource and
TLcyS57DecoderAddOn.S63.metaPermitSource
properties in the s57decoderaddon.cfg file.
ImprovementRadar Connectors
LCD-3947
TLcdASTERIXTrajectory: the value of data properties is now the latest non-null value of the corresponding
track property instead of simply the latest value.
ImprovementRadar Connectors
LCD-3951
TLcdASTERIXModelDecoder is now able to decode multiple files in one go. A trajectory split over
two or more files can be decoded as a single trajectory with this. See the 'How to decode ASTERIX data'
section in the developer's guide and the reference documentation of
TLcdASTERIXDataSource
for more information.
Bug fixLuciadLightspeed
The TLspShapePainter contained a memory leak when using TLspIconStyle instances. This memory leak was mainly triggered
when icons appeared and disappeared frequently in the view (e.g. during zooming and panning). This has been fixed.
Bug fixLuciadLightspeed
LCD-4003
Fixed a problem with the ordering of Screenoverlay elements in a GXY view, with respect to their drawOrder.
Bug fixLuciadLightspeed
LCD-3998
Improved handling of unexpected GDAL_NODATA tag values in TIFF files..
Bug fixLucy (LuciadLightspeed)
TLcyComboBoxActionBar: now enforces the documentation comment that aDeactivatePossible must be
false - items cannot be deselected in a combo box - by throwing an exception.
Bug fixLucy (LuciadLightspeed)
LUCY-3939
TLcyComboBoxActionBar: now respect the intended order of its items, as defined by
setGroupDescriptorComparator and setActionBarItemComparator.
Bug fixLuciadLightspeed
LCD-3961
Creation handles for 3D pointlists and 3D buffers used to consume mouse wheel events for certain stages
of creation. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3928
TLcyLspMapAddOn: the "Set layer reference to view" action (see
TLcyLspMapLayerControlFactory#COPY_LAYER_REFERENCE_ACTION) now becomes
immediately visible when switching to a 2D projection on a Lightspeed map.
Bug fixLucy (LuciadLightspeed)
LUCY-3935
A bug has been fixed which caused Lucy's snap-zoom (CTRL-mousewheel) to snap to the wrong scales
for raster coverages with explicitly defined scales.
Bug fixAviation Standards
LCD-3872
Fixed ClassCastException that would occur in some rare conditions.
Bug fixDefense Symbology
LCD-4009
The icon cache in TLcdMS2525bObjectIconProvider and TLcdAPP6AObjectIconProvider did
not correctly handle cache entry collisions in all cases, which could lead to incorrect icons.
Bug fixDefense Symbology
LCD-3994
The Fix symbol in APP-6B (2.X.2.1.1.1.1) was incorrectly advertised as a selectable symbol
instead of a category in the symbol browser.
Bug fixMaritime Standards
LCD-3991
TLcdS57CatalogueModelDecoder.canDecode() now returns true for directories, to be consistent with
decode(), which supports the decoding of directories.
Bug fixRadar Connectors
LCD-3997
TLcdASTERIXCategory11: data Item I011/170 (Track status), field "Track service end" is now
recognized as a termination message.
Bug fixTiling Engine
LF-476
Fixed a memory leak when fusing large S-57 catalogues.
Bug fixTiling Engine
LF-464
The asset type for multileveled elevation rasters is now correctly detected as ELEVATION.
2013.0.04
ImprovementLuciadLightspeed
LCD-3960
Added new methods set/getModelReferenceFormatter on TLcdWFSTransactionRequest to be able to
set a formatter to encode a model reference to a String in WFS transaction requests.
By default, an EPSG encoding is used; the main use case is to support the formatting
of custom references that don't have an EPSG encoding.
ImprovementS-63
LCD-3973
The S-63 implementation has been upgraded to support the new IHO certificate, replacing the
existing certificate which expires in August 2013. This upgrade is mandatory for all
applications
loading S-63 data which is ordered as of August 2013. The S-63 decoder now supports both IHO
certificates by default (the old certificate is still required for decoding of existing data).
In addition, the Primar certificate is now also supported.
To implement this functionality, the TLcdS63ModelDecoder API has been extended to support the
configuration of multiple SA certificates.
Bug fixLuciadLightspeed
LCD-3967
The native libraries necessary to access iButtons on Windows are again present in the lib/native folder. This
means they no longer have to be copied over from the licenses/hardwarekey folder.
Bug fixLuciadLightspeed
LCD-3978
TLspLabelEditor could throw a NPE when no ALspLabelEditFilter was set. This error was
introduced when adding support for LCD-3751.
Bug fixLuciadLightspeed
LCD-3971
Fixed potential memory leak when re-using the TLspCustomizableStyle instances of a
TLspCustomizableStyler.
Bug fixLuciadLightspeed
LCD-3968
TLspRotateController could slightly pan the view when simply pressing the mouse button. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3930
TLcyWMSClientAddOn: the connection dialog did not accept https URLs.
Bug fixLuciadLightspeed
LCD-3955
Resolved an issue where TIFF files containing an associated alpha channel could be rendered incorrectly.
Bug fixLuciadLightspeed
LCD-268
TLcdTouchDevice.getTouchDeviceStatus now returns more relevant error codes.
Bug fixOGC Server
LCD-3985
A bug was fixed which prevented custom model reference parsers from being called when another custom model reference
parser threw a ParseException.
Bug fixOGC Server
LCD-3982
The cache of model references is now correctly reset upon servlet initialization. This eliminates problems with
unknown references which kept polluting the cache after hot redeployment of the servlet.
Bug fixDefense Standards
LCD-3977
TLcdNITFModelDecoder now correctly processes blocked images in combination with JPEG compression.
Bug fixMaritime Standards
LCD-3983
TLcdS52GXYCatalogueLayer now listens to scale ranges on the TLcdS52DisplaySettings object it is
configured with. This ensures that changes to the scale ranges will be taken into account when
the layer is being redrawn.
Bug fixMaritime Standards
InputStreams opened within TLcdS57ModelDecoder were not always closed in case the opened files
do not contain valid S-57 data. This has been fixed.
2013.0.02
ImprovementLucy (LuciadLightspeed)
LUCY-3925
TLcyS57DecoderAddOn: the configuration file allows to specify the invalidCellExceptionHandler
for
the catalogue model decoder through the
TLcyS57DecoderAddOn.S57Format.invalidCellExceptionHandler
property.
ImprovementLuciadLightspeed
LCD-3954
If a TLcdLayer has a filter that implements ILcdChangeSource, it listens for changes in that
filter. If, however, that filter is also referenced by other parts of the application, the
layer could not be garbage collected.
ImprovementMaritime Standards
The labeling flag of layers created by the TLcdS52ProductConfiguration is enabled by default
now.
S-52 labeling is controlled via the TLcdS52DisplaySettings, but only works if the layer
labeling
flag is enabled as well. By enabling this flag by default, it is no longer necessary to
modify
two flags to enable S-52 labeling.
ImprovementRadar Connectors
LCD-3911
TLcdASTERIXCategory11: trajectories of category 11 now also have properties that correspond to the
sub-properties of the FlightPlanRelatedData property of category 11 tracks.
ImprovementRadar Connectors
LCD-3910
The values for the 'TypeOfAircraft' property can now be set for tracks of categories 30 and 30 Version 2.5 Ter.
Trajectories of these categories now also have an 'TypeOfAircraft' property whose value you can change.
ImprovementS-63
LCD-3950
The TLcdS63ModelDecoder now support the setting of multiple permit files (both basic and
meta permit files).
ImprovementTiling Engine
LF-374
LuciadFusion now supports clipping assets on single S-57 cells (clipping was previously only supported on
catalogues).
Bug fixLuciadLightspeed
LCD-3949
A bug was fixed in the caching Tile Store which could result in a corrupted tile. This could happen in specific
circumstances, when cached tiles have been updated on the server, and the server goes offline while updated tiles
are being retrieved from the server.
Bug fixLuciadLightspeed
LCD-3759
Fixed a possible exception in TLcdStatusInputStreamFactory when accessing it in multiple threads.
Bug fixLuciadLightspeed
LCD-3943
The caching Tile Store has been made more robust in case of exceptions. It now continues serving tiles from cache
when the network cable is unplugged (on Linux).
Bug fixLucy (LuciadLightspeed)
LCD-1567
TLcyASTERIXDecoderAddOn: enumerated values for the track properties are now shown as
human-readable
text again instead of as a number.
Bug fixLuciadLightspeed
LCD-3933
Lightspeed rasters painted at a height above the ellipsoid were sometimes also painted on the
view's terrain. In particular the issue occurred when combining the OBJECT_DEPENDENT elevation
mode with the BACKGROUND layer type.
Bug fixLucy (LuciadLightspeed)
LUCY-3524
TLcyPreviewAddOn no longer violates the Swing threading rules when you save a workspace while a
simulation
is running.
Bug fixLuciadLightspeed
LCD-3899
TLcdPrintPreview: fixed a possible ArithmeticException.
Bug fixLuciadLightspeed
LCD-3572
Grid labels would temporarily disappear in some cases when the view contains many labels
with changing content.
Bug fixLuciadLightspeed
LCD-3956
Fixed an exception that could occur when retrieving the bounds of a vector shape from the
layer or painter.
Bug fixLuciadLightspeed
LCD-2993
Improved the logging output of TLspShapePainter. The painter no longer uses non-API classes
for logging, and log levels and messages have been improved.
Bug fixLuciadLightspeed
LCD-2780
Fixed an issue that caused icons to be drawn upside down in 3D views under certain conditions.
Bug fixLuciadLightspeed
LCD-1470
Fixed a potential IndexOutOfBoundsException when selecting objects in shape layers.
Bug fixWeather & Environment Standards
LCD-3774
GRIB files containing non-multiple-of-2-bits data could cause exceptions during painting.
Bug fixDefense Symbology
LCD-3946
The preview icon and the labeling for the MIL-STD 2525c Censor Zone (2.X.4.3.3.4.*) and
Critical Friendly Zone (2.X.4.3.3.6.*) symbols were not correct.
Bug fixDefense Symbology
The APP-6B symbol Sonobuoy (G*C*OXY---*****, 2.X.2.5.1.4) was incorrectly interpreted
as a symbol directory and could therefore not be created through TLcdEditableAPP6AObject.
Bug fixDefense Symbology
LCD-3935
The visualization of the affiliation frame was not fully correct for APP-6B and MIL-STD 2525c.
More specifically, the following issues have been fixed:
- The Suspect, Pending, Exercise Pending, Assumed Friend, Exercise Assumed Friend, Assumed Neutral and
Exercise Assumed Neutral affiliations are now painted with a dashed line style.
- The Assumed Friend, Exercise Assumed Friend, Assumed Neutral, Exercise Assumed Neutral and Suspect
affiliation frames no longer include a ? character at the top right.
- The Pending and Exercise Pending affiliation frames no longer include a ? character in the center (except
for the Unknown battle position symbol, see next item).
- For the affiliation frame of the Unknown battle position warfighting symbol (1.X):
- the frame now has the same shape as the frame of the Ground Equipment symbol.
- the frame now always has a large ? character in the center, for each affiliation type.
- the frame no longer includes the U, F, N, H, ?F, ?N, ?H characters.
Bug fixMaritime Standards
LCD-2901
The navigational purpose for cell in AML catalogues now defaults to 1 instead of 10. This
provides
better default scale ranges for AML catalogue data.
Bug fixMaritime Standards
A bug in the rendering of S-52 texts in TLcdS52GXYCatalogueLayer has been fixed: the layer's
labeling
flag no longer needs to be enabled to render labels, nor do the layer factories configure
a label painter on the S-52 layers anymore (labels are rendered together with all other
geometries,
as they need to respect the rendering order of S-52).
Bug fixMaritime Standards
The floating point separator for 'TE' instructions, which could differ depending on the
operating
system settings, is now always represented by a dot ('.'), as required by the specification.
Bug fixRadar Connectors
TLcdASTERIXTrajectory: the values gotten through the ILcdFeatured interface now match the values
gotten through the ILcdDataObject interface.
Bug fixRadar Connectors
LCD-3936
TLcdASTERIXTrajectory: the bounds returned by getBounds now also include height information.
Bug fixTiling Engine
LF-456
When adding assets into an existing coverage with explicit scale denominators, fusion failed with an exception. This
has now been fixed.
Bug fixTiling Engine
LF-454
A bug was fixed which caused black blocks when fusing CADRG data.
2013.0.01
ImprovementLuciadLightspeed
LCD-3764
TLcdGeodeticDatum.getHeight() now avoids allocations when it can only return height 0.0,
which is the case for non-geoid geodetic datums.
ImprovementLuciadLightspeed
LCD-3917
The WMS client has been made less strict with respect to the ordering of the
Attribution and ScaleHint XML elements in the WMS capabilities, to increase
interoperability with WMS servers that do not strictly adhere to the OGC WMS
Capabilities XML Schema.
ImprovementLucy (LuciadLightspeed)
LUCY-3910
The table view now uses a workaround to respect the odd/even row coloring when using the Nimbus
look and feel.
ImprovementLucy (LuciadLightspeed)
LUCY-3914
A saved workspace is now automatically added to the recent file list.
ImprovementLucy (LuciadLightspeed)
LUCY-3919
The validating UI widgets can now retrieve their color from the look and feel.
For more information see the default_preferences.cfg file or the NimbusLookAndFeelAddOn.
ImprovementLucy (LuciadLightspeed)
The table view sample contains functionality to convert a property value to a string value,
for example an object name or an airspace altitude value. This code is now centralized in a
utility class (ValueUtil), making it more reusable.
ImprovementLucy (LuciadLightspeed)
LUCY-3897, LUCY-3902
The Print add-on legend and scale indication, and the layer style dialog controls
are now readable in dark look and feels, as used by the map centric front-end.
ImprovementLuciadLightspeed
LCD-3858
TLsp3DIconStyle no longer throws an exception if it is created with no icon specified.
Instead, a default arrow icon is used.
ImprovementLucy (LuciadLightspeed)
LUCY-3702
OK and Cancel buttons have been added to the File | Connect to UI.
ImprovementLucy (LuciadLightspeed)
LUCY-3882
TLcySelectionEditorAddOn: the configuration file now supports the same set of key-value pairs
for the
application pane as other application panes ("location","appTitle","shortDescription" and
"smallIcon").
ImprovementLucy (LuciadLightspeed)
LUCY-3879
The workspace support for application panes has been extended. The short/long description,
auto-hide,
floating (location) and icon settings of the application pane (see keys in ILcyApplicationPane)
are
now stored as well.
ImprovementLucy (LuciadLightspeed)
LUCY-3872
The "Save map as image" action now creates an image of the map based on the state of the map the
moment
the action is triggered, and no longer based on the map state after the user selected the
destination file.
ImprovementLucy (LuciadLightspeed)
Map centric sample: roll-over mouse tracker of previewer now also supports overlapping
components: hovering over a component that obscures the previewer buttons does not trigger those
buttons to show up.
ImprovementOGC Server
LCD-3321
The content type of output format "JSON" or "application/json" is now correctly set to "application/json".
ImprovementReal-time Engine
LCD-3861
TLcdSimulator: now responds quicker to heavy changes in work load in combination with low frame
rates.
Bug fixLucy (LuciadLightspeed)
LUCY-3740
TLcyDrawingAddon: fixed a potential deadlock when editing drawing shapes.
Bug fixLuciadLightspeed
LCD-3748
TLcd2DBoundsIndexedModel now does not fire an event when removing an object that is not in the model.
Bug fixLuciadLightspeed
LCD-3758
Fixed issue with balloons not respecting the balloon borders while calculating the maximum size of its contents.
Bug fixLuciadLightspeed
LCD-3737
HGTModelDecoder sample class now returns a model descriptor that correctly indicates that the model contains
elevation
data.
Bug fixLucy (LuciadLightspeed)
The default constructor of the AbstractNumberFormat class (sample code) now uses the correct
Locale
for formatting under JDK7 (see Locale.Category.FORMAT).
Bug fixLucy (LuciadLightspeed)
LUCY-3923
TLcyLosCoverageAddOn: loading a workspace saved on a Linux computer on a Windows machine could
result
in a FileNotFoundException.
Bug fixLuciadLightspeed
LCD-3708
Raster data was sometimes not painted accurately when the model reference's geodetic datum
differs significantly from the one of the world reference.
Bug fixLucy (LuciadLightspeed)
LUCY-3920
The sluggish performance when drawing a 3D polyline over a Fusion terrain in a Lightspeed view
has been fixed.
Bug fixLuciadLightspeed
LCD-3914
TLspSLDStyler now paints icons by default using
ILspWorldElevationStyle.ElevationMode.OBJECT_DEPENDENT, instead of
ILspWorldElevationStyle.ElevationMode.ABOVE_TERRAIN.
Bug fixLuciadLightspeed
A bug in the computation of XML schema dependencies has been fixed: schema's which are only
dependent on other schema's via a global element referring to a global type in another
schema, now have a proper dependency on this other schema.
Bug fixLuciadLightspeed
The XML Binding framework now supports types with anonymous inner super types.
Bug fixLucy (LuciadLightspeed)
LUCY-3922
TLcyLspDrawingAddOn: when creating a dome or sphere in a Lightspeed view, the initial height was
often too high.
Bug fixLucy (LuciadLightspeed)
LUCY-3878
TLcyLspEarthFormatAddOn: when zooming out an outline is now show for Earth tilesets which do not
cover the whole world. An example of such a tileset is most of the LuciadMobile raster data.
Bug fixLuciadLightspeed
LCD-3770
The fusion.client.gxy sample now correctly visualizes coverage bounds, even when they wrap around the date line.
Bug fixLuciadLightspeed
LCD-3903
TLspLabelPainter could possibly crash by trying to paint destroyed textures.
Bug fixLuciadLightspeed
LCD-3859
The TLspTiledWMSProxyPainter's query method did not work correctly.
Bug fixLuciadLightspeed
LCD-3761
The TLspTiledWMSProxyPainter now preferably requests data from the server in the view's world
reference. This avoids some distortion since the data is only transformed once on the server
instead of both on the server and client.
Bug fixLucy (LuciadLightspeed)
LCD-3773
Fixed another NullPointerException which was thrown when loading some 2D GRIB data.
Bug fixLuciadLightspeed
LCD-3747
Resolved an issue that caused Geosym icons to be painted outside of their bounds.
Bug fixLucy (LuciadLightspeed)
LUCY-3844
The transparency and brightness settings are now respected when copying a Bing maps layer
between
a GXY, GL and Lightspeed view.
Bug fixLuciadLightspeed
LCD-3736
TLcdEarthTileSetElevationProvider: fixed bug in elevation interpolation when some samples
are NaN.
Bug fixLuciadLightspeed
LCD-3763
Fixed a layer order problem when selecting objects in a TLspGXYLayerAdapter.
Bug fixLuciadLightspeed
LCD-3751
When an object has more than one label, it is now possible to specify which labels can be
moved using TLspLabelEditor.setLabelEditFilter().
Bug fixLucy (LuciadLightspeed)
LUCY-3881
AIXM5 layers could throw a NullPointerException when labeling is enabled in a GL view.
Bug fixLuciadLightspeed
LCD-3745
Fixed a rare BufferOverflowException that could happen when painting stroked lines.
Bug fixLucy (LuciadLightspeed)
LUCY-3876
TLcyGridCoordinateAddOn: decoding a workspace which contains the grid coordinate panel could
result
in a NullPointerException. This has been fixed.
Bug fixLuciadLightspeed
LCD-1468
TLcdEarthElevationDataCombiner: did not support tiles with odd tile resolutions.
Bug fixLucy (LuciadLightspeed)
Map centric sample: minor fixes for the behavior of automatically collapsing task panes
(overlayed on map).
Bug fixDatabase Connectors
LCD-3928
The decoder can now populate the auto-generated primary feature of added elements, even
if it is not the ROWID. Previously, it would always the ROWID as primary feature of added
elements.
Bug fixOGC Server
LCD-3921
The release no longer includes versions 2.4 and 2.5 of the servlet api. Only version
2.5 is now included.
Bug fixReal-time Engine
LCD-3927
TLspPlotLayerBuilder: the plot icons could be too small when printing a plot layer on some
configurations.
Bug fixWeather & Environment Standards
LCD-3773
Fixed a possible NullPointerException when decoding GRIB data.
Bug fixAviation Standards
LCD-3923
The procedure leg transition between an AF and a subsequent TF leg did not properly take into
account the fixOverflyType property of the AF leg. It always assumed a FLY_OVER value.
Bug fixDefense Symbology
LCD-3922
Changing one of the label style properties of an APP-6 / MIL-STD 2525 object and firing
a model changed event did not trigger a label rendering update in a Lightspeed view.
2013.0
ImprovementLuciadLightspeed
The LuciadLightspeed distribution now contains a sample that creates the necessary metadata
to integrate LuciadLightspeed into OSGi-based projects. You can get started by running the
make_osgi_bundles.bat (on Windows) or make_osgi_bundles.sh (on Unix-like systems) in the
build/osgi directory. You can find additional information in the 'Running in OSGi' chapter
in LuciadLightspeed's developer's guide.
ImprovementLuciadLightspeed
ALcdAnimationManager now uses a default update rate of 60 Hz instead of 30 Hz. This is in line with today's monitor
refresh rates.
ImprovementLuciadLightspeed
LCD-3471
The Multi-threaded Data Access chapter in the LuciadLightspeed Developer's Guide has been completely revised.
ImprovementLuciadLightspeed
LCD-2491
Fixed an issue in the edit and ruler controllers that could result in visual flickering of the painted handles. This was most
prominent in the ruler controller during editing in geodetic mode.
ImprovementLucy (LuciadLightspeed)
TLcyLspPreviewAddOn: previewing on Lightspeed views is now smoother. It can also achieves higher
frame rates, depending on the loaded data.
ImprovementLucy (LuciadLightspeed)
The mouse readout has been enhanced to show measures as well, see ALcdMeasureProvider. This
replaces the 'GRIB parameter value' and 'Fusion Client Multivalued' controllers, which are now
hidden by default. These controllers can be restored using
- The TLcyGRIBDecoderAddOn.setGRIBControllerActiveSettable.menuBar.insert property
in gribdecoderaddon.cfg
- The
TLcyFusionClientAddOn.fusionClientMultivaluedControllerActiveSettable.menuBar.insert
property in TLcyFusionClientAddOn.cfg
API was added to make it possible for other formats to provide measures:
- ALcyFormat#createModelMeasureProviderFactory()
- TLcyCompositeModelMeasureProviderFactory
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: now uses a dedicated 'route' icon instead of the generic polyline icon.
ImprovementLucy (LuciadLightspeed)
A new String constant is defined in ILcyCustomizerPanel: HORIZONTAL_ALIGNMENT_HINT. Certain
implementations,
notably the customizer panels used by TLcyDataPropertyValueContextCustomizerPanelFactories,
listen to property
changes with this name to adapt their horizontal alignment. A typical example is a text field
where the text can
be aligned to the left, the right or around the center.
ImprovementLucy (LuciadLightspeed)
A method has been added to ALcyFormat: createDataPropertyValueCustomizerPanelFactories. This
method allows formats
to register customizer panel factories for instances of TLcdDataPropertyValueContext so that
domain objects of
the format can be edited in the Lucy Table view and Object properties. The
TLcySafeGuardFormatWrapper takes this
method into account and adds an extra check to make sure the model in the context corresponds
with the format.
ImprovementLucy (LuciadLightspeed)
The Fusion Client add-on now registers an ALfnTileStoreProvider as a service in Lucy. See
TLcyFusionClientAddOn.getTileStoreProvider().
ImprovementLucy (LuciadLightspeed)
Added methods to TLcyLspMapComponentFactory to allow support for balloons in a Lightspeed-based
mapcomponent. See TLcyLspMapComponentFactory.createBalloonManager()
ImprovementLucy (LuciadLightspeed)
LUCY-3498
The table view can now display hierarchical data properties. A data object can be thought of as
a tree with the actual
values on the leafs. The table view now displays all the leafs, not only the ones at depth one.
ImprovementLucy (LuciadLightspeed)
The Eclipse integration sample has been updated to work with the OSGi integration sample
of LuciadLightspeed itself. Please refer to the Lucy_EclipseIntegrationGuide.pdf guide
for more information and how to get started.
ImprovementLucy (LuciadLightspeed)
TLcyGXYLayerTreeNodeFormatWrapper was deprecated and two new format wrappers were added as
replacement: TLcyModelListToTreeNodeFormatWrapper and TLcyGXYLayerTreeNodeFormatWrapper2.
- TLcyModelListToTreeNodeFormatWrapper: This format wrapper converts instances of
TLcdModelList to instances of ILcdModelTreeNode after the model is created.
- TLcyGXYLayerTreeNodeFormatWrapper2: This format wrapper provides support for
working with ILcdLayerTreeNodes. This wrapper does not handle TLcdModelLists, so it
should be used together with TLcyModelListToTreeNodeFormatWrapper when TLcdModelLists
are used.
For more information: see the javadoc of TLcyModelListToTreeNodeFormatWrapper and
TLcyGXYLayerTreeNodeFormatWrapper.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: now uses a slightly wider line style for the main profile line, making it
more legible. The vertical view now also better adapts its colors to dark look and feels.
ImprovementLuciadLightspeed
The new classes TLcdCompositeModelDecoder and TLcdCompositeGXYLayerFactory provide a composite implementation of
ILcdModelDecoder
and ILcdGXYLayerFactory, respectively.
ImprovementLuciadLightspeed
The TLcdDataObjectExpressionLanguage has been extended. It is now also possible to update values
in a data object for straight property expressions (DataProperty1.DataProperty2...). Some utility
methods to work with that kind of expressions are also added.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOnCustomizerFactory: a new action is now available that can be used to both
edit and display the current time. See
TLcyPreviewAddOnCustomizerFactory#SET_CURRENT_TIME_NAMED_ACTION.
ImprovementLuciadLightspeed
Asynchronous paint threads are now cleaned up automatically when they are inactive for a
certain amount of time.
ImprovementLuciadLightspeed
TLspRasterLayerBuilder can now also visualize parameterized raster data with icons, using a TLspParameterizedIconStyle.
ImprovementLuciadLightspeed
Introduced TLcdDataPropertyValueContext in the API. This class is a container for information
about the value of a TLcdDataProperty somewhere in a TLcdDataObject.
ImprovementLuciadLightspeed
TLcdTFWRasterModelDecoder now has a default model reference decoder.
ImprovementLuciadLightspeed
The
fusion.client.opengl
sample was removed.
The
fusion.client.metadata.gxy
and
fusion.client.metadata.lightspeed
samples are now changed tofusion.client.metadata.
ImprovementLuciadLightspeed
The interface ILspAWTView and the abstract class ALspAWTView have been introduced as
common ancestors of TLspAWTView and TLspSwingView.
ImprovementLuciadLightspeed
Lightspeed raster layers now allow configuring if and how the painted raster data is interpolated.
The interpolation type can be configured on TLspRasterStyle.
ImprovementLuciadLightspeed
Lightspeed raster layers now also support painting rasters at a fixed altitude above the
ellipsoid instead of only on the terrain. The elevation mode can be configured on
TLspRasterStyle.
ImprovementLuciadLightspeed
With the new abstraction ALfnTileStoreProvider and its implementation TLfnTileStoreProvider, you can now easily
create ALfnTileStore instances from a URI.
TLfnTileStoreProvider can sort out the difference between a "http" and a "file" URI, and creates the correct
ALfnTileStore accordingly.
ImprovementLuciadLightspeed
TLcdTransportFactory has been introduced on the API as a default implementation of ILcdTransportFactory.
It is based on Apache's HttpClient library 4.2.3.
Instances of this class can be used to customize transport in for example FusionClient, BingMaps and OGC web
clients.
ImprovementLucy (LuciadLightspeed)
Various UI elements have been adapted to improve their support for dark look and feels, and for
Nimbus look and feel.
ImprovementLucy (LuciadLightspeed)
Combo boxes now show more items before a scroll bar appears.
ImprovementLuciadLightspeed
A new client API for OGC Web Map Tile Services (WMTS) has been introduced.
For more information, see:
- The
Web Client Suite
developer's guide (OGCWebClientSuite_DeveloperGuide.pdf)
- The class javadoc of
TLcdWMTSModelDecoder
and
TLcdWMTSClient
- The package javadoc of
com.luciad.ogc.wmts
ImprovementLuciadLightspeed
Added the possibility to separate different multi-touch navigation gestures.
Pan, zoom and rotate gestures can be combined or performed separately using
TLspTouchNavigateController.setCombineGestures( true | false ).
Also a new touch gesture is introduced to perform pitch rotations.
The gesture is activated by dragging up or down with minimum 3 fingers.
ImprovementLuciadLightspeed
Lightspeed views now support lighting and fog effects in 3D views. This can result in more
visually striking images, as well as improved perception of scale and shape. The relevant
API can be found in the package com.luciad.view.lightspeed.services.effects. There is a new
Lighting theme in the LuciadLightspeed Demo which demonstrates the new functionality
(see samples.lightspeed.demo.application.data.lighting).
ImprovementLuciadLightspeed
Touch related samples now make use of a more modern Nimbus based look and feel, instead of the
metal look and feel.
ImprovementLuciadLightspeed
TLcdGXYLayerTree and the associated cell renderers are now more compatible with Nimbus Look and
Feel. Before, it could cause subtle issues, such as Nimbus ignoring some properties specified
in the UIDefaults.
ImprovementLucy (LuciadLightspeed)
Added support for lighting in Lightspeed maps. Light can be toggled on or off in the
toolbar of a lightspeed view. You can also adjust the time-of-day. The
TLcyLspMapComponentFactory class
contains new actions for the lighting customizer panel and the fog customizer panel. The ID for
this action
is TLcyLspMapComponentFactory.LIGHTING_SETTINGS_ACTION.
ImprovementLucy (LuciadLightspeed)
It is now possible to use a lightweight Lightspeed view (TLspSwingView) in Lucy by enabling the
TLcyLspMapAddOn.lightweightView property in the TLcyLspMapAddOn configuration files.
ImprovementLuciadLightspeed
It is now possible to override the ILcdLayer.isEditableSupported() property using
TLspShapeLayerBuilder.
ImprovementLuciadLightspeed
TLspLabelPainter now supports the ILspWorldElevationStyle.getElevationMode() property. This
property is used to calculate the label anchor.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn could not handle the case where a custom GUI factory would wrap the created
Customizer; this is now supported as well.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn now allows to hide its application pane. This allows custom GUI factories
to insert the preview components elsewhere in the UI, for example overlayed on the map.
Refer to the 'previewer.applicationPaneVisible' property in the add-on's configuration file
for more information.
ImprovementLuciadLightspeed
TLfnCachingTileStore: a new client-side tile caching mechanism has been introduced on the API.
It allows visualization to continue working offline when for example the server is offline.
It may also speed up the visualization of tiles when a server is slow.
By sweeping the oldest tiles, a best-effort attempt is made to keep the cache size roughly between a low and a high
mark.
Beware that the cache is not synced with the remote server, so it may serve outdated tiles for an indefinite amount
of time.
ImprovementLucy (LuciadLightspeed)
ALcyFormatBar now has properties similar to ILcdAction, ILcyActiveSettable, and
ILcyApplicationPane,
allowing a GUI to retrieve and display more information about the format bar, such as an icon
and short description.
This is demonstrated in the map centric sample.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn now allows to configure the name and icon of the application panes that
it creates.
ImprovementLucy (LuciadLightspeed)
A new map centric sample has been added, superseding the task pane sample. Most notable
characteristics are:
- the map is now a Lightspeed map that can switch between 2D and 3D visualization.
- there can only be a single map, simplifying the UI.
- it uses a dark look and feel, putting more focus on the map.
- both menu bar and tool bar are merged into one.
- less user interaction is required for various tasks, for example, the time controls
automatically appear when relevant.
The sample can be started using the top-level start-up script LucyMapCentric.bat/sh.
ImprovementLucy (LuciadLightspeed)
LUCY-3837
Tool bars can now contain buttons with text, as well as buttons with an icon only. See for
example the javadoc of ILcdAction.SHOW_ACTION_NAME, or the Lucy developer guide.
ImprovementLucy (LuciadLightspeed)
Lightspeed maps now fit on newly added data. This behavior can be disabled by modifying the
TLcyLspMapAddOn.fitOnAddData setting in TLcyLspMapAddOn.cfg.
ImprovementLucy (LuciadLightspeed)
It is now possible to create and visualize PIM trajectories in a Lightspeed view. The existing
TLcyPimTrackAddOn takes care of this, so no new add-ons need to be included.
ImprovementLuciadLightspeed
Tile iterations based on ALfnCoverage.getTileCoordinates no longer throw ConcurrentModificationException when write
operations have happened since the start of the iteration.
This allows for applications to iterate over a coverage while it is being modified (a "live" coverage).
ImprovementLuciadLightspeed
LCD-3517
Icon painting performance when using TLspShapePainter or TLspShapeLayerBuilder has been improved for the
case where many different icons are used.
ImprovementLuciadLightspeed
When tiles are deleted from a Tile Store, space is now reclaimed.
Bear in mind that putting tiles over existing ones does not reclaim space; rather the whole history of the tiles is
preserved.
ImprovementLucy (LuciadLightspeed)
The following formats are now natively supported in Lightspeed views:
- ArcSDE
- ASDI
- ASTERIX
- Fusion multi-valued scalar data
- GML
- GRIB
- KML 2.2
- OBJ
- MIF
- Oracle Locator/Spatial
- Spatialite
These formats are provided by new add-ons, all containing Lsp in their name. addons_data.xml
provides a list of all data format related add-ons. You can conveniently include it in your
own add-ons file using <include>.
ImprovementLuciadLightspeed
TLcdGXYViewComponentPrintable was introduced to make it easier to setup multi-page printing and
printing of a view layed out in a Swing hierarchy.
The printable can also create a preview component (TLcdPrintPreview). This is demonstrated
in the printing sample.
For more information on printing, refer to the developer's guide Chapter on printing.
ImprovementLuciadLightspeed
Terminology: a bounding shape has been renamed to a clipping shape.
This brings LuciadFusion terminology in line with that of LuciadMap (Earth).
This change reflected in the API and the documentation.
- The method ALfnAssetMetadata.getBoundingShape() has been deprecated in favor of
ALfnAssetMetadata.getClippingShape().
- The builder method ALfnAssetMetadata.Builder.setBoundingShape() has been deprecated in favor of
ALfnAssetMetadata.Builder.clippingShape().
ImprovementLuciadLightspeed
All setters on the metadata builders "setSomething(Something aSomething)" have been renamed to "something(Something
aSomething)".
This brings LuciadFusion conventions in line with those of LuciadLightspeed.
The old setters have been deprecated for backwards compatibility, and refer to their new counterparts.
Some examples (non-exhaustive list):
- ALfnResourceMetadata.Builder.setId(String aId) => ALfnResourceMetadata.Builder.id(String aId)
- TLfnVectorCoverageMetadata.Builder.setMaxLevel(int aLevel) =>
TLfnVectorCoverageMetadata.Builder.maxLevel(int aLevel)
ImprovementLucy (LuciadLightspeed)
Some numbers (values with a unit of measure) were displayed left aligned in the table view,
while
most numbers were right aligned. Now all numbers are right aligned in the table view.
ImprovementLuciadLightspeed
LCD-1895
The ILspGLResourceCache that is used by the painters to store OpenGL resources such as textures
and discretized geometry has been optimized to reduce memory consumption. Next to configuring the
cache's size in bytes, the cache can now also be restricted by specifying the maximal number
of cache entries. See TLspViewBuilder#glResourceCacheMaxEntries(X) and the system property
-Dcom.luciad.view.lightspeed.opengl.maxCacheEntries=X where X is the maximal number. By default
there is no limit on the number of cached entries.
ImprovementLuciadLightspeed
Support was added to quickly add all supported LuciadLightspeed data formats to your application by
means of a service look-up mechanism.
This is demonstrated in the samples.common.serviceregistry sample package and the GXY and Lightspeed decoder
samples.
In addition, TLcdServiceAnnotationProcessor enables you to add your own services by simply annotating them with
@LcdService.
See the developer's guide Chapter on adding data formats for more information.
ImprovementLuciadLightspeed
The Lightspeed raster layers now support interactive color filtering. You can apply a custom
color filter by using a TLspColorLookupTableFilterStyle. More details are available in the
developer's guide and the javadoc of TLspRasterLayerBuilder. The lightspeed.style.raster sample
also demonstrates applying a color filter to a raster. Finally, a new Image Filter theme in the
LuciadLightspeed Demo also demonstrates this functionality
(see samples.lightspeed.demo.application.data.imagefilter).
ImprovementLucy (LuciadLightspeed)
The ASTERIX functionality in Lucy has been extended. It is now possible to edit certain constant
properties on trajectories, and save the adapted models back to an ASTERIX file. See the Lucy
User
guide for more information on how to change properties and the list of properties that can be
changed.
ImprovementLucy (LuciadLightspeed)
It is now possible to edit values directly in the table view or the object properties, if the
model elements are instances of ILcdDataObject and appropriate customizers for instances of
TLcdDataPropertyValueContext are registered in the Lucy environment. The new package
com.luciad.lucy.gui.customizer.dataproperty contains classes that facilitate creating the
necessary customizers. For more information see the section on Editing in the (tree) table view
in the Lucy Developer guide.
ImprovementLuciadLightspeed
Added TLcdKML22ResourceProvider to TLcdKML22ModelDescriptor. The resource provider is there for convenience, and is put on
every root
kml model decoded by the TLcdKML22ModelDecoder.
ImprovementLuciadLightspeed
TLcdModelList now has a setModelEncoder method. This allows you to specify a model encoder for
the model list.
ImprovementLuciadLightspeed
The SLDGXYLayerFactory looks for SLD files (.sld) accompanying the model's data files,
and applies this style. This allows styling unstyled formats without having to write code.
This layer factory is demonstrated in the decoder sample.
ImprovementLuciadLightspeed
KML now has native visualization support in ILspViews. Use TLspKML22LayerBuilder to create an
ILspLayer for a KML model. To perform a view-fit action according to the KML specifications, you
can use the TLspKML22ViewFitAction class.
ImprovementLuciadLightspeed
LCD-3501
Added support for ILcdAnchoredIcon in TLspIconStyle. Anchored icons will automatically be displaced to their anchor-points.
Their
center of rotation will also shift to their anchor point.
ImprovementLucy (LuciadLightspeed)
It is now possible to specify page decorators (see TLcyPrintAddOn.createPageDecorator())
or to add pages (e.g. a title page) during printing (see TLcyPrintAddOn.createPrintPageable()).
The same functionality is available for TLcyLspPrintAddOn. This is also demonstrated in the
print sample (see CustomPrintAddOn).
ImprovementLucy (LuciadLightspeed)
Several improvements were made to the TLcyPrintAddOn's print preview UI.
The most notable are the following:
- it is now possible to modify the title from within the UI
- the preview area now shows the preview pages one by one
- the preview area automatically zooms to fit all pages
- some elements have been renamed or removed to improve the usability
The added and changed UI components can be customized using the config file or by extending
TLcyPrintPreviewFactory.
To restore the old zoom default and/or the removed elements, adjust the print
add-on's configuration file, or use one from a previous version.
ImprovementLuciadLightspeed
TLcdWatermarkPrintable and TLcdCompositePageable were added. TLcdWatermarkPrintable makes it
possible to decorate a Printable with a textual watermark. TLcdCompositePageable makes it
possible to compose different Pageables.
ImprovementLuciadLightspeed
LCD-3497
Loading or refreshing groundoverlays now happens more efficiently.
ImprovementLuciadLightspeed
Several GXY samples have been combined, renamed and restructured.
Most notably, there is now a single decoder sample that is able to open all supported formats.
ImprovementLucy (LuciadLightspeed)
The TLcyWMTSClientAddOn and TLcyLspWMTSClientAddOn were been added, providing support for WMTS
models and layers. See menu itemMap | Data | WMTS Client.
ImprovementLuciadLightspeed
TLcdIndexColorModel now supports TLcdColorMap instances whose levels do not map directly to
raster values by making use of an ILcdRasterValueConverter.
This allows retaining the semantics of the color map's levels (e.g. height, temperature).
ImprovementLuciadLightspeed
TLcdKML22RenderableModel.applyOnInteracts2DBounds now returns screenoverlay elements if it is queried with an undefined
bounds. (See ILcdBounds.isDefined)
ImprovementLucy (LuciadLightspeed)
LUCY-2046
TLcyGotoAreaOfInterestAddOn: fitting the active area of interest to the view bounds can now be
undone.
ImprovementLucy (LuciadLightspeed)
The new TLcyLspPrintAddOn supports printing Lightspeed views. Its configuration and
functionality are similar to TLcyPrintAddOn.
ImprovementLuciadLightspeed
LCD-3303, LCD-2373
TLspCreateController now starts its creation on mouse-moved events instead of on the first mouse
released event. This allows creation handles to perform visualizations before the first click.
As a first use case, TLspPointSetHandle has been updated to show its point while the mouse
is hovering over the globe. This allows you to see snapping on your first point while
creating objects.
ImprovementLuciadLightspeed
ILspTaskExecutor now supports executing tasks with a delay. This can for example be used to
easily throttle how often a task is run. The delay can be configured on TLspTaskExecutorRunnable.
ImprovementLuciadLightspeed
LCD-104
Most implementations of ILcdRaster, ILcdMultilevelRaster and ILcdTile now implement the ILcdDisposable interface.
This allows applications to explicitly release any resources that are held by a raster and its tiles without relying
on format specific implementation details.
ImprovementLuciadLightspeed
Lightspeed views can now be printed at high resolution using TLcdPrintComponentAction.
Also, TLspViewComponentPrintable was introduced to make it easier to setup multi-page printing and
printing of a view layed out in a Swing hierarchy.
For more information on printing Lightspeed views, refer to the Lightspeed printing sample and
the developer's guide.
ImprovementLuciadLightspeed
ALcdAnimationManager now has a method to pause/resume all running animations. See
ALcdAnimationManager.setPaused(boolean).
ImprovementLuciadLightspeed
TLspLabelPainter now supports ILcdAnchoredIcon objects.
ImprovementLuciadLightspeed
TLspViewBuilder now supports automatic resource sharing between views. This is on by default. It can
be turned off using the TLspViewBuilder#disableAutomaticContextSharing() method. All views created by
this builder that have this option on will share a resource cache for more optimal memory use.
ImprovementLuciadLightspeed
TLspViewBuilder now has a new method which allows the user to indicate whether
any GUI components (such as navigation controls) will be overlaid on top of the
views that are created. Switching this off may allow the view to perform some
behind-the-scenes optimizations and may avoid some known issues with JDK 1.7.
Overlay component support is still enabled by default.
ImprovementLuciadLightspeed
LCD-3051
TLspViewBuilder has new methods viewType() and worldReference(), which allow the
new views to be pre-configured as 2D or 3D with a given reference. These methods can be used in lieu of a subsequent call
to
TLspViewTransformationUtil.
ImprovementLuciadLightspeed
LCD-263
The label painters now try to make use of ILcdCache as much as possible when enabling halo
painting. This removes the need to manually clear the painter's cache when the domain object
implements ILcdCache.
ImprovementLuciadLightspeed
LCD-3237
TLcdGXYLabelingPathProvider was added. This path provider can provide labeling paths for most
supported shapes.
ImprovementLuciadLightspeed
LCD-3399
TLcdGXYShapePainter was added. This class paints and edits all supported shapes.
ImprovementLuciadLightspeed
The SQLite decoder sample was removed. You can now open .spl files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementLuciadLightspeed
LCD-3365
TLcdSHPModelDecoder now reuses String instances for properties having the same value (similar
to Java's String.intern() mechanism), which may reduce both the memory usage and decoding time of
SHP models significantly.
ImprovementLuciadLightspeed
TLspViewBuilder now has a convenience method to configure the view's background color.
ImprovementLuciadLightspeed
LCD-332
TLcdGXYViewFitAction now also takes into account child layers when fitting on layer tree nodes
(see the setFitToChildren method).
ImprovementLuciadLightspeed
TLspRasterLayer now supports interactively changing the coloring for elevation data. This
is demonstrated in the lightspeed.style.raster sample.
ImprovementLuciadLightspeed
LCD-3377
It is now possible to specify a label location in TLspBoundsQuery and TLspIsTouchedQuery.
ImprovementLuciadLightspeed
Various samples were changed:
- The "streets" sample was moved to the LuciadLightspeed Demo, see samples.lightspeed.demo.application.data.streets
- Various label samples were merged into one, see samples.lightspeed.label.placement
ImprovementLucy (LuciadLightspeed)
LUCY-3282
The Map | Projection | Edit current UI no longer includes the geodetic projections options in
the
combobox. The GXY map only supports a grid reference, so switching to the geodetic projections
is
not needed.
ImprovementLuciadLightspeed
LCD-1520
TLcdStrokeLineStyleBuilder now allows configuring how lines are ended and how their segments
are joined.
ImprovementLucy (LuciadLightspeed)
LUCY-3698
TLcySelectionEditorAddOn: the application pane title as configured in the configuration file is
now replaced by the name of the containing customizer panel (ILcyCustomizerPanel#NAME) when
that name is not null. This allows to change the title of the application pane based on
the current selection.
ImprovementLucy (LuciadLightspeed)
LUCY-3077
TLcyMapAddOn: Improved the UI of the scale-to-raster level action
ImprovementLuciadLightspeed
LCD-3055
Vertical view: improved the interactivity with the cursor and the altitude points.
ImprovementLuciadLightspeed
LCD-2209
The color of a TLspBounds3DIcon can now be changed, this is used by the default selection style
so that the default selection color for 3D icon styles is the same as for regular icons.
ImprovementLuciadLightspeed
LCD-3368
TLcdUtmMGRSUtil is now about 10%-20% faster.
ImprovementLucy (LuciadLightspeed)
Generified the filter instances in the map layer control factories.
ImprovementLuciadLightspeed
LCD-689
Improved the round trip behavior of TLcdUtmMGRSUtil for points near the UTM zone border.
TLcdUtmMGRSUtil.utmMgrs2LonLat() now tries to choose a point that lies in the zone, as well
as in the MGRS grid square.
ImprovementLucy (LuciadLightspeed)
LUCY-3610
TLcyLspRasterFormat now adds a default icon to the layers it creates. This icon can always
be changed by overriding the TLcyLspRasterFormat#customizeLayer method.
ImprovementLuciadLightspeed
LCD-2862
Incorrectly encoded BBox spatial filters without an ogc:PropertyName element can now be decoded,
and evaluated.
This improves compatibility with clients that generate invalid XML.
ImprovementLuciadLightspeed
The new classes TLcdGXYViewMeasureProvider and TLspViewMeasureProvider allow retrieving data values for any point in
a view,
such as the magnetic north declination or weather information.
implementations for the relevant models and layers. To see it in action in a sample, simply
To see this in action in a sample, simply hover the mouse over any part of the view displaying
such information in, for example, the magnetic north sample.
ImprovementLuciadLightspeed
LCD-2997
Dependencies between labels of non-discrete and discrete labeling algorithms are now supported
by default.
ImprovementLuciadLightspeed
LCD-3333
TLspRasterLayer now supports queries, similar to ILspInteractivePaintableLayer. This allows for
example to determine which raster value is painted at a specific pixel in the view.
ImprovementLucy (LuciadLightspeed)
LUCY-3218, LUCY-3708
A Edit | Cut operation can now be undone using Edit | Undo
ImprovementLucy (LuciadLightspeed)
LUCY-3731
- The documentation of all the samples has been improved
- A number of samples have been updated to show more relevant information on start-up,
for
example by loading some extra data relevant to the sample.
- Some of the Lucy samples have been removed as they did not illustrate Lucy specific
functionality
ImprovementLuciadLightspeed
LCD-3346
TLspLabelStyler now implements ILspCustomizableStyler.
ImprovementLuciadLightspeed
LCD-3134
Stroke dash patterns in the line and polygon symbolizer builders can now also be specified using a series of ints.
ImprovementLuciadLightspeed
Added inertia effects to the pan controller. Inertia can be disabled
using TLspPanController.setEnableInertia( false ).
ImprovementLuciadLightspeed
LCD-3221
Performance improvement: TLspLabelPlacer now avoids calling the styler when possible.
ImprovementLuciadLightspeed
LCD-892
TLcdModelList now has a method setModelReference that can be used to specify a model
reference even when the model list is empty.
ImprovementLuciadLightspeed
LCD-692
TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil now have a rhumblinePointSFCT() method
that takes two points and a ratio as input.
ImprovementLuciadLightspeed
LCD-578
TLcdXMLDataModelBuilder now fills in the possibleValues property for restriction types.
ImprovementLuciadLightspeed
LCD-567
Th GML 3.1 and 3.2 model decoders now provide a decodeFeature() method which allows to decode
GML documents containing a single GML feature, instead of feature collections.
ImprovementLucy (LuciadLightspeed)
The Lightspeed GUI factory sample was adapted to demonstrate how to add a custom projection in
the combo box of the map tool bar, and in the menu bar.
ImprovementLuciadLightspeed
TLcdGUIIcon has a new icon for routes.
ImprovementLuciadLightspeed
LCD-677
TLcdEllipsoidRhumblineUtil.closestPointOnRhumbline() was added.
ImprovementLuciadLightspeed
LCD-3349
Curved path labels (TLcdGXYCurvedPathLabelPainter) now avoid too much curvature, eliminating
most self-overlap.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder now has a default model reference decoder.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now has a default model reference decoder.
ImprovementDatabase Connectors
The Oracle Spatial decoder sample was removed. You can now open .ora files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementDatabase Connectors
The DB2 decoder sample was removed. You can now open .db2 files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementDatabase Connectors
The Informix Geodetic decoder sample was removed. You can now open .ifx files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementDatabase Connectors
The Informix Spatial decoder sample was removed. You can now open .isd files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementDatabase Connectors
The MSSQL decoder sample was removed. You can now open .mss files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementDatabase Connectors
The PostGIS decoder sample was removed. You can now open .pgs files using the common
decoder samples: samples.gxy.decoder and samples.lightspeed.decoder.
ImprovementReal-time Engine
LCD-3711
TLcdSimulator: frame rate is now more stable during playback, reducing jitter.
ImprovementReal-time Engine
The ALcdTimeIndexedSimulatorModel now has support to add and remove tracks after initialization. This allows you to
handle certain changes, without having to reinitialize.
ImprovementWeather & Environment Standards
The new TLcdGRIBGXYPainterProvider and TLspGRIBLayerBuilder classes allow visualizing all regular
and multi-valued GRIB models in either an ILcdGXYView or ILspView.
See the decoder.grib.gxy and decoder.grib.lightspeed samples for more information.
ImprovementWeather & Environment Standards
TLcdGRIBModelDecoder now has the ability to automatically create multi-valued models for
relevant data (for example, wind).
See TLcdGRIBModelDecoder#setMultiValuedRasterCreation.
ImprovementAviation Standards
LCD-2746
Runways that are specified in the data will no longer be moved to (0,0), instead they will
have an undefined bounds. As a result, setting a bounds filter will filter out these objects.
ImprovementAviation Standards
LCD-3180
The AIXM 5.1 and 5.0 GXY samples have been merged into a single AIXM 5 sample that focuses mainly on the latest
version, which is 5.1. The support
for the AIXM 5.0 format remains unchanged, so AIXM 5.0 files can still be decoded and visualized by the new sample.
ImprovementDefense Standards
TLcdNITFModelDecoder now has a default model reference decoder.
ImprovementDefense Standards
The previous samples have been merged into one sample. This
sample still supports orthorectification of NITF rasters using SENSRB.
ImprovementInfrastructure Standards
The DWG decoder now supports the DWG 2013 file format.
ImprovementInfrastructure Standards
The DWG decoder was upgraded to use the ODA 3.8.1 library.
ImprovementInfrastructure Standards
The DGN decoder sample was removed. You can now open .dgn files using the common
decoder sample: samples.gxy.decoder.MainApplet.
ImprovementInfrastructure Standards
The DWG decoder sample was removed. You can now open .dwg and .dxf files using the common
decoder sample: samples.gxy.decoder.MainApplet.
ImprovementMaritime Standards
TLcdS57CatalogueModelDecoder now also supports decoding of multiple catalogues. Multiple
catalogues can be decoded by passing the common parent directory to the decoder's decode()
method. This is the preferred way of applying catalogue updates: by putting the update
catalogue(s) next to the base catalogue, the decoder will automatically apply all updates in
the
correct sequence.
ImprovementRadar Connectors
The TLcdASTERIXModelListDescriptor has been added. This model descriptor is used for model lists decoded by the
TLcdASTERIXModelDecoder. If offers functionality to edit the source and display names.
ImprovementRadar Connectors
LCD-3860
ALcdASTERIXDecoder: the measure type for all track-properties which denote a relative time is now duration instead
of absolute time.
ImprovementRadar Connectors
TLcdASTERIXModelDecoder can now decode ASTERIX Category 11 and Category 21. The data models can be found in the
TLcdASTERIXCategory11 and TLcdASTERIXCategory21 classes respectively. Also added support for a popular draft version
of ASTERIX Category 21 (version 0.23). This category can be found in the TLcdASTERIXCategory21Version0Dot23 class.
ImprovementRadar Connectors
TLcdASTERIXModelDecoder: this decoder can read ASTERIX data from PCAP files (network Packet CAPture)
where ASTERIX data are in either Ethernet (versionII, LLC or LLC+SNAP) packets directly
or in UDP datagrams ( UDP datagrams fragmented across multiple IP datagram are also supported).
ImprovementRadar Connectors
Some properties of TLcdASTERIXTrajectory and TLcdASTERIXTrack can now be changed by calling their
setValue method. Consult the developer's guide for more information.
ImprovementRadar Connectors
TLcdASTERIXTrajectory: ASTERIX trajectories now expose a subset of the underlying track properties. Specifically,
the track properties that usually remain the same in the complete trajectory are also available as trajectory
properties. Consult the developer's guide for more information.
ImprovementRadar Connectors
TLcdASTERIXFinalModelEncoder: this model encoder is able to save models and model lists decoded by
the TLcdASTERIXModelDecoder. Together with the set of properties that can now change, this allows you
to clean up your recorded ASTERIX data.
ImprovementTiling Engine
Fusion of coverages can now also be performed on the server. A system which is both fusion server and tile server
is a typical setup.
In a more advanced setup, client, fusion server and tile server are all different systems.
The client and fusion server both require access to the source data. The data root of the source data may be
different on the different machines.
You can define path prefixes to make abstraction of system-specific data roots.
Work has been done to centralize all the information about the fusion of a coverage on the tile server.
If a fusion server breaks down, another fusion server has all the information it needs to be able to continue the
work.
Some configuration has been moved from the engine session to the coverage.
Line simplification, area simplification, filtering etc. can now be configured on the coverage rather than on the
engine session.
ImprovementTiling Engine
Fusion engine checkpoints are now stored on the tile store in the coverage user data (see
ALfnCoverage.getUserData).
This means ALfnEngineEnvironment.getCheckpointDirectory is not used anymore.
Using null to disable checkpoints is still valid, but instead you should set
the checkpoint interval to -1 (you can set it with RasterSessionBuilder.setCheckpointInterval or
VectorSessionBuilder.setCheckpointInterval).
ImprovementTiling Engine
The "fusion.engine" GUI sample and "fusion.engine.coveragecropper" CLI sample have been
replaced with a comprehensive command-line fusion tool: "fusion.engine". Limitations:
- Fusing GRIB data is not supported.
Bug fixLucy (LuciadLightspeed)
LUCY-3873
TLcyLspStyledLayerCustomizerPanelFactory created customizer panels for TLcyLayerContext
instances
containing a GXY or a GL layer. This could result in IllegalArgumentExceptions or empty panels.
The factory
has been adjusted to only accept TLcyLayerContext instances which contain a Lightspeed layer.
Bug fixLucy (LuciadLightspeed)
LUCY-3854
The Lucy samples are now hardcoded to start in English. There are no translations available for
the custom UI
elements in the samples. Starting the samples in English avoids ending up with a partially
translated UI.
Bug fixLucy (LuciadLightspeed)
LUCY-3805
When disposing lucy without exiting the VM, many threads were not cleaned up.
Bug fixLuciadLightspeed
The equals() and hashCode() methods of TLspViewXYZWorldTransformation2D and TLspViewXYZWorldTransformation3D
did not take the entire state of the transformation (such as camera constraints and the installed listeners) into account.
Now they use the transformation's identity.
To only compare what the transformation shows, use the getIdentifier() method.
Bug fixLuciadLightspeed
LCD-1596
Fixed a number of compatibility issues with TLspAWTView and JDK 1.7. In particular, the
full screen toggle in the Lightspeed samples is now also available when JDK 1.7 is used.
Bug fixLuciadLightspeed
Fixed an issue in TLspShapePainter where points that were projected out-of-bounds
could be painted at (0,0) in 2D. Points that fall outside
the projection are now always properly discarded during painting.
Bug fixLucy (LuciadLightspeed)
LUCY-3791
Docking front-end: the "Undo layout change" and "Redo layout change" entries in the pop-up menu
of the application panes
are no longer added. You can re-insert them by adjusting the
"docking.undoRedoLayoutChangesSupported"
property in the lucy.cfg file.
Bug fixLucy (LuciadLightspeed)
LUCY-3196
The upgrade of the JIDE libs fixed an issue where an undocked frame could no longer be moved.
Bug fixLuciadLightspeed
LCD-3374, LCD-2061, LCD-3202
The view fitting when using TLspViewTransformationUtil or TLspViewNavigationUtil has been
improved significantly:
- fit accounts for the rotation of the view when fitting in 2D
- fit more accurately accounts for terrain elevation and the vertical dimension of 3D objects
- more accurate view preservation when switching from 2D to 3D
Bug fixLucy (LuciadLightspeed)
TLcyMutableFileFormatWrapper: using true for its auto-save property in combination with null for
model.getModelDescriptor().getSourceName() could produce a NullPointerException.
Bug fixLuciadLightspeed
LCD-1579
The Lightspeed raster layers no longer become blurry near the screen edges. This was especially
noticeable in high resolution 3D views.
As a result of this fix the painter may need to load and paint more data in a 3D view which can
reduce the performance. This affects all raster layers, including the view's terrain,
image projection layers and hypsometry layers. You can increase the performance of individual
layers by using a TLspRasterStyle with a lower levelSwitchFactor. Note that the style of
the view's terrain can be configured on the view's ILspTerrainSupport. Alternatively you can
revert to the old behavior using the -Dcom.luciad.view.lightspeed.earth.adaptive3DLod=false
JVM flag.
Bug fixLuciadLightspeed
Solved a potential threading problem in TLcdSymbol.
Bug fixLucy (LuciadLightspeed)
LUCY-3692
TLcyAlwaysFitJToolBar: when a tool bar is too small, it displays a button to show its additional
items. If the popup with the additional items is visible, and the tool bar is moved - for
example by resizing panels - the popup now automatically hides. This only works on JDK 1.7 as
issues on JDK 1.6 prevent doing so.
Bug fixLuciadLightspeed
LCD-3390
TLspLabelPainter fired property change events with an incorrect source.
Bug fixLuciadLightspeed
LCD-3332
When doing a bounds or isTouched query for labels, the label painter sometimes used styler
data that is not up-to-date. For example, when modifying the label style so that labels
become bigger than before, the query could temporarily return bounds with the old size.
Bug fixLuciadLightspeed
LCD-1467
TLcdSpeedFormat, TLcdAltitudeFormat and TLcdDistanceFormat now respect the short name of the
unit in case where the name of the unit matches one of the predefined names. For example using
new TLcdSpeedUnit( "Knots", "kts", TLcdSpeedUnit.KNT.getToMeterPerSecondFactor() ) as unit will
now result in a formatted speed with "kts" as unit and not "kn".
Bug fixLuciadLightspeed
LCD-935
In some cases, a TLcd2DBoundsIndexedModel pre-initialized with a TLcdLonLatBounds could
result in a stack overflow error when adding an XY shape.
This has been resolved, and a warning message is logged when this case is detected.
Bug fixLuciadLightspeed
LCD-1917
The accuracy of the ILspImageProjectionLayer is now high, even when zoomed in closely.
Bug fixLuciadLightspeed
TLcdInputStreamFactory now better handles digest authentication.
Bug fixLuciadLightspeed
LCD-2283
The height provider returned by ILspTerrainSupport.getViewDependentHeightProvider with the
valid-heights-only mode returned inaccurate heights when zoomed out.
Bug fixLucy (LuciadLightspeed)
LUCY-3429
Switching the focus to a GXY or GL full-screen map component did not update the active map
component
of Lucy.
Bug fixLuciadLightspeed
LCD-2887
Changing the world reference of an ILcdGXYView while creating an object or ruler measurement would
sometimes not update the object or measurement under construction.
Bug fixLucy (LuciadLightspeed)
The altitude read-out for Lightspeed views did not always match the actual height value under
the mouse cursor.
Bug fixLucy (LuciadLightspeed)
LUCY-2851
PIM, APP6 and MS2525 objects can now be created using touch input. This
was previously impossible as there was no UI to indicate when creation was finished.
Bug fixLuciadLightspeed
LCD-2840, LCD-3335
Fixed painting artifacts when moving the camera below sea level in a 3D view.
Bug fixLuciadLightspeed
LCD-3265
Balloons sometimes no longer point in the direction of their object when the object is
outside the view bounds, and the view is tilted.
Bug fixLuciadLightspeed
LCD-672, LCD-2726
TLcdEPSGReferenceParser and TLcdCRSReferenceParser now create world references with a valid
unit of measure when passing a geodetic reference code as input.
Bug fixLuciadLightspeed
LCD-3066
GML rings can now handle null curves as members (e.g. because of an unresolvable XLink): these
curves will be filtered out when viewed as ILcdCompositeCurve. The curve list of this rings
can not be edited afterwards.
Bug fixLuciadLightspeed
LCD-2597
Improved correctness of geodetic datum encoding in TLcdGeoTIFFModelEncoder.
Bug fixDatabase Connectors
LCD-2949
The Oracle Spatial-Relational sample has been removed. It corresponds to the Oracle Relational Model,
which has been deprecated and is no longer supported by Oracle. New applications should
use the com.luciad.format.oracle.spatial package, which offers
support for the new Oracle Object-Relational Model.
Bug fixWeather & Environment Standards
TLcdGRIBNumericIcon didn't paint its text at the correct location.
Bug fixWeather & Environment Standards
LCD-2777
The default NCEP parameter tables now have the correct originating
center id. This prevents invalid warnings from being triggered.
Bug fixAviation Standards
LCD-948
The global bounds of a decoded AIXM 5 message was not correct in case some of its features
did not have bounds on their own.
Bug fixInfrastructure Standards
LCD-3415
The DWG decoder is now thread-safe. You can use one (or multiple) model decoders concurrently.
Bug fixMaritime Standards
TLcdS57ModelDecoder now supports the deletion of data sets. If a data set is deleted in an
update, the model decoder will return an empty model with null bounds; such models can be
recognized by their edition number: TLcdS57ModelDescriptor.getEditionNumber() will return 0
(edition numbers normally start at 1).
Bug fixMaritime Standards
List attributes, separated by a '/' are supported now.
Bug fixMaritime Standards
LCD-3064
TLcdS57ModelDecoder and TLcdS57CatalogueModelDecoder now support new edition updates as well
as
reissued updates.
Bug fixMaritime Standards
TLcdS57Edge and TLcdS57Face now implement ILcdPointList2.
Upgrade considerationLuciadLightspeed
ILcdGLDrawable has new methods, invokeAndWait() and invokeLater(), which invoke a
runnable with the guarantee that the drawable's OpenGL context is current.
Upgrade considerationLuciadLightspeed
The packaging of LuciadLightspeed has been streamlined:
- The javadoc is now packaged in a separate zip file called Javadoc.zip. That way
you can avoid downloading and extracting this documentation.
- There are now more, but smaller, jar files for LuciadLightspeed. This avoids circular
dependencies between jar files that were present in previous versions of LuciadLightspeed. That
should make it easier to integrate the jar files in some build tools.
- The jar files of third party libraries now contain the version number in their
filename. That way you can easily determine the version of a jar file.
- The resources of a jar file are no longer packaged in separate jar files.
This way it is clearer that these resources are not optional. This also reduces the
number of jar files that are included in the release. Only the optional geoid resources
remain in a separate jar file.
The prerequisites pages in the Technical notes section was updated to reflect these changes.
Please take a look at those for more detailed information.
Upgrade considerationLucy (LuciadLightspeed)
The recent files menu is no longer handled by the TLcyMapAddOn. If you rely on this feature,
add the TLcyRecentFilesAddOn to your add-ons file.
If you have made any changes related to this functionality to the TLcyMapAddOn's configuration,
adapt TLcyRecentFilesAddOn's configuration file accordingly.
Upgrade considerationLuciadLightspeed
Added support for creating a Lightspeed view that is not geographically referenced. The
lightspeed.nongeoreferenced sample demonstrates this. To accommodate this the following API has
changed:
- A model with a reference that does not implement ILcdGeoReference is no longer
interpreted as data defined in view coordinates. A null model reference is now used for
data in view coordinates. This is demonstrated in the lightspeed.paintinview sample.
- ALspStyleTargetProvider.getStyleTargetReference now returns an ILcdModelReference
instead of an ILcdGeoReference. For all Luciad ILcdGeoReference implementations you can
simply cast the reference to ILcdModelReference.
- The default transformations now also support identity transformations between
custom references.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-3839
The projection combo box in the Lightspeed map can now be configured as an action. This allows
inserting it into any action bar.
The old TLcyLspMapComponentFactory.PROJECTION_ACTION_BAR_COMPONENT component and
TLcyLspMapComponentFactory.PROJECTION_ACTION_BAR action bar have been removed.
If you have overridden the TLcyLspMapComponentFactory#createComponent or
TLcyLspMapComponentFactory#createToolBar method for these ID's you should instead override
TLcyLspMapComponentFactory#createAction for the PROJECTION_ACTION ID.
Upgrade considerationLuciadLightspeed
An ILcdOWSRequest now supports REST encoding, if applicable.
Implementations must now implement "getRestEncoding", but can return null to indicate that it
is not supported.
Upgrade considerationLuciadLightspeed
The constructor of TLspPaintRepresentationState has been removed.
Please use TLspPaintRepresentationState.getInstance instead.
This ensures that for every paint
representation and paint state combination there is only one unique instance. This is important to ensure correctness
when using paint representation state instances as key in an identity hash map for example.
Upgrade considerationLucy (LuciadLightspeed)
Lucy.bat/Lucy.sh now starts with a Lightspeed view that can be used for both 2D and 3D.
There is no distinction anymore in the GUI between 2D and 3D maps.
To remain as lightweight as possible, Lucy only loads add-ons that are relevant to
a Lightspeed view. The GXY map and the map overview add-on are not included.
As a result, workspaces with GXY specific functionality will not load correctly.
You can still start a GXY based Lucy using the LucyGXY.bat/LucyGXY.sh script, which remains
fully compatible with the previous Lucy versions.
To make this possible, the add-ons files have been split up.
They can be now found in the resources/lucy directory.
Upgrade considerationLuciadLightspeed
The ALspInteractiveLabelProvider#dispatchAWTEvent() and ALspInteractiveLabelProvider#convertAWTEvent()
methods were removed. Because of this change, the event dispatching mechanism of AWT is used, which
solves problems in corner cases. After this change
- the removed methods are not called anymore causing a possible behavioral change.
- rather than handling all events for all components and subcomponents of an interactive
label via a single method, it will be needed to register listeners on the components for
which events are required.
- some custom event dispatching is no longer possible. For example: dispatching left
mouse button events to a sub component, but handling middle mouse button events in the parent
component is no longer feasible using the standard AWT event dispatching system. This is
something that AWT does not support.
Upgrade considerationLuciadLightspeed
ILcdEarthParameterizedIcon now gets a double[] parameter in its getWidth() and getHeight()
methods. As a result of this change you may get some compile errors. Implementations of
ILcdEarthParameterizedIcon can be fixed by adding the double[] parameter to the methods.
Implementations can be improved by using the double[] parameter in the implementation.
Callers of these methods should pass the parameters to it.
Upgrade considerationLucy (LuciadLightspeed)
The JIDE libs, which are used by the default dockable Lucy front-end, have been upgraded to
version 2.10.6 .
Upgrade considerationLuciadLightspeed
LCD-377
TLcdIconSW has been deprecated in favor of TLcdSWIcon.
Upgrade considerationLuciadLightspeed
LCD-2978
The HTTP authentication libraries (withay-http.jar, withay-util.jar) are no longer needed and have been
removed from the release.
Upgrade considerationLuciadLightspeed
LCD-878
The implementation of TLcdXYBounds and TLcdXYZBounds have changed slightly.
The functionality has not been changed, but the internal method call sequence has.
These methods do not always call their related 2D methods anymore: contains3D, interacts3D, setTo3DUnion,
setTo3DIntersection and setToInclude3DPoint.
For example, contains3D does not always invoke contains2D.
Upgrade considerationLuciadLightspeed
LCD-878
An ILcdBounds instance can now be undefined. This means that the instance does not describe a geographic region.
For this, there is a new method on ILcdBounds: isDefined().
Implementations must add this method. Usually, returning true is enough.
Extensions of ALcd2DEditableBounds can use setDefined(boolean) to manage the defined status.
The behavior of the LuciadLightspeed bounds implementations is mostly the same.
- Use ALcdBounds.isDefined(aBounds) as a shorthand to check for null bounds or undefined bounds
- Bounds transformations will throw TLcdNoBoundsException if the input bounds is undefined
- Composite shapes such as ILcdShapeList, ILcdPointLists, ILcdPolygon, etc. will return undefined bounds if
they are empty
When creating new bounds instances using LuciadLightspeed implementations:
- default (empty) constructors -> undefined
- constructors with values -> defined
- copy constructor -> copies defined status
- clone* -> copies defined status
- equals/hashCode -> take defined status into account
When modifying bounds instances:
- move?D, translate?D, setWidth, setHeight, setDepth -> instance becomes defined
When testing with bounds instances:
- undefined.contains?D(anything) = false
- undefined.interacts?D(anything) = false
- defined.contains?D(undefined bounds) = false
- defined.interacts?D(undefined bounds) = false
- Note: this means that new TLcdLonLatBounds().contains2D(0, 0) now returns false instead of true
Calculating intersections:
- Position, width and height are always updated as before
- undefined.setTo?DIntersection(anything) -> stays undefined
- defined.setTo?DIntersection(undefined bounds) -> becomes undefined
- defined.setTo?DIntersection(defined bounds, but disjoint, no overlap) -> becomes undefined
Calculating unions:
- undefined.setTo?DUnion(defined bounds) -> becomes defined, equal to given bounds
- defined/undefined.setTo?DUnion(undefined bounds) -> no change in bounds or defined status
- setToIncludePoint?D -> same as union
Upgrade considerationLuciadLightspeed
ILspShapeDiscretizer's previously deprecated canDiscretize method has been removed. Instead discretizeSFCT should
throw a TLspDiscretizationException if it is not capable to discretize the provided shape. Implementations
of ILspShapeDiscretizer can simply remove this method. Callers of canDiscretize should instead check
whether above exception is thrown on a discretizeSFCT call.
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 2.4 to 2.5. Consequently,
an application server or servlet container with support for Java Servlet 2.5 or
higher is now required for deployment - for instance, Tomcat 6 or higher.
The impact of this is expected to be low since Java Servlet 2.5 is widely adopted
by application server and servlet container products for over 7 years.
Upgrade considerationTiling Engine
The interface ILfnFusionHandler was removed from the API because it was not used anywhere.
Any existing implementations can safely be removed.
2012.1
2012.1.15
ImprovementLuciadLightspeed
LCD-3730
The balloon managers now respect the maximum size of a balloon content panel when determining the
initial size.
ImprovementLucy (LuciadLightspeed)
LUCY-3570
Lightspeed map: it is now possible to undo/redo the creation of a ruler measurement.
ImprovementLuciadLightspeed
LCD-3640
Added support for fitting on an image projection layer.
ImprovementTerrain Analysis Engine
LCD-3725
You can now fit on layers containing ILcdLOSCoverageMatrices.
Bug fixLuciadLightspeed
LCD-3731
TLspZoomToController did not delegate single-click MOUSE_PRESSED, MOUSE_RELEASED and MOUSE_DRAGGED events.
Bug fixLuciadLightspeed
XMLInputFactory and XMLOutputFactory instances are now instantiated using the class loader of
the com.luciad.xml classes.
Bug fixLuciadLightspeed
LCD-3724
Fixed a rare NPE that would occur when deselecting a non-georeferenced shape in an invisible layer, and then
making the layer visible again.
Bug fixLucy (LuciadLightspeed)
LUCY-3869
Lightspeed map: using the "Copy last click coordinate" action outside the globe on a 3D view
resulted
in a NullPointerException. The action now instead shows a message in the status bar that the
point
was located outside the globe (similar to the behavior on a 2D Lightspeed map).
Bug fixLucy (LuciadLightspeed)
LUCY-3868
Fixed a memory leak in the drawing add-on. This add-on would keep a reference to the view of
a map component, even when the map component was already disposed.
Bug fixLuciadLightspeed
LCD-2878
Raster data could sometimes disappear for a very short amount of time. This typically happened
when the view camera was updated continuously.
Bug fixLucy (LuciadLightspeed)
LUCY-3867
Loading a workspace where the table view was open and the auto-center active settable active
could
result in an IllegalStateException.
Bug fixLucy (LuciadLightspeed)
LUCY-3863
lucy.lightspeed.missionmap: the sample shared a lon-lat grid model between multiple layers on
multiple
views, which is not supported. This resulted in visual artifacts for the grid layer when
switching between
the preparation and execution view. The grid layer has now been excluded from the execution
view.
Bug fixLucy (LuciadLightspeed)
LUCY-3436
Table view: the active settable which synced the layer selection with the table selection was
always enabled,
even when the layer did not support selection. The enabled state of the active settable is now
synchronized
with the selection support of the layer.
Bug fixLucy (LuciadLightspeed)
LUCY-3816
The balloon for a a selected element of a layer will now automatically disappear when the
corresponding layer
is turned invisible.
Bug fixLucy (LuciadLightspeed)
LUCY-3850
TLcyDrawingAddOn: the action to convert a shape into a buffer no longer accepts point instances.
Converting
a point into a buffer resulted in a one-point buffer to which no points could be added. To avoid
this, the
action no longer accepts single points.
Bug fixLucy (LuciadLightspeed)
LUCY-3766
Docking front-end: it was not possible to toggle the checkboxes in the layer control directly
when
the layer control was unfocused under JDK1.7 . You needed two clicks: one to gain focus and one
to
toggle the state of the checkbox. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3848
When applying the style of a GXY layer to a Lsp layer (and vice versa), the "polygon fill
enabled"
style setting is now correctly synchronized. For example the lucy.syncstyle sample was affected
by this
bug: disabling the fill for the world layer on GXY would not disable the fill on the Lightspeed
map.
Bug fixLuciadLightspeed
LCD-3696
A bug was fixed when cancelling the Future of a 'getTile' or any other operation after the operation was done.
The bug caused the future to go to the CANCELLED state even when it was already DONE, violating the contract of
Future.
Bug fixLuciadLightspeed
LCD-3693
Fitting on a layer that only paints data in view coordinates did not work correctly.
Bug fixLuciadLightspeed
LCD-3686
Shapes were sometimes painted at an incorrect height when using the above terrain elevation
mode. This could happen when the model reference had a different geodetic datum than the world
reference.
Bug fixReal-time Engine
LCD-3183
TLspPlotLayerBuilder: altitude exaggeration did not work when switching from 2D to 3D without
changing the world reference.
Bug fixInfrastructure Standards
LCD-3656
The DGN complex shape painting had artifacts while doing touched queries. This is now resolved.
2012.1.14
ImprovementLucy (LuciadLightspeed)
LUCY-3847
TLcyDrawingAddOn: the TLcdLonLatHeightVariableGeoBuffer now uses the altitude formatting for the
height above/below values in the customizer and no longer the distance format.
Bug fixLucy (LuciadLightspeed)
LUCY-3856
The button to exit from full screen was not visible under JDK1.7 on Linux. Bug is fixed by
putting the exit button in the overlay component of the map. This also improved the UI of that
close button.
Bug fixLuciadLightspeed
LCD-3654
TLcdIndexColorModelFactory produced color models with incorrect alpha information.
Bug fixLuciadLightspeed
LCD-3677
Density layers could sometimes paint stale data. This could also happen when changing the
layer's visibility causing the layer to paint nothing until you interacted with the view.
Bug fixLuciadLightspeed
LCD-3674
The StylePanel of the ogc.sld.lightspeed sample now checks the available paint representations
of the stylable layers, before restoring their original stylers (fixes possible
IllegalArgumentException).
Bug fixLucy (LuciadLightspeed)
LUCY-3842
Bing Maps add-on: fixed bug where Lucy would crash when loading a workspace with a Bing Maps
layer without network connection.
Bug fixLucy (LuciadLightspeed)
LUCY-3851
Fixed problem with auto-update functionality of TEA customizer panels.
Bug fixLuciadLightspeed
LCD-3651
Fixed issue when trying to paint world sized lines above ellipsoid.
Bug fixLuciadLightspeed
Lightspeed views did not properly terminate all background threads when they were destroyed.
Bug fixLuciadLightspeed
LCD-3643
Fixed an issue with Cartesian ruler measurements created at the wrong altitude when
the view's altitude exaggeration differs from 1.
Bug fixLuciadLightspeed
LCD-3642
Fixed problem with vertical exaggeration for 3D meshes.
Bug fixReal-time Engine
LCD-3678
TLspPlotLayerBuilder: fixed exception that could occur when selecting many plots.
Bug fixRadar Connectors
LCD-3669
TLcdASTERIXModelDecoder: access to the decoded trajectories is again fast and thread-safe if the proper
read-locks are taken on the model.
2012.1.13
ImprovementLucy (LuciadLightspeed)
LUCY-3840
Improved the visibility of the icon previews in the icon customizer for Lightspeed layers.
ImprovementLucy (LuciadLightspeed)
LUCY-3829
File | Save As... now always prefers the default extension.
ImprovementLucy (LuciadLightspeed)
LUCY-3836
PIM add-on: an exception would occur when trying to save a loaded PIM file.
ImprovementLucy (LuciadLightspeed)
LUCY-3827
TLcyPreviewAddOn: the time range picker is now updated if a source layer is renamed.
ImprovementLucy (LuciadLightspeed)
LUCY-3825
PIM add-on: newly created tracks now respect the configured speed in the format bar.
Also, when changing the type in the format bar, the speed in the format bar now resets to
the configured default speed.
ImprovementLucy (LuciadLightspeed)
LUCY-3819
The ALcyActionBar implementations now delegate to the LookAndFeel#getDisabledIcon and
LookAndFeel#getDisabledSelectedIcon methods to retrieve disabled versions of icons. When
the LookAndFeel cannot provide such an icon, the ALcyActionBar creates its own disabled
version of the icon.
ImprovementOGC Server
The WFS request handler implementations, i.e. the implementations of ILcdRequestHandler
in com.luciad.ogc.wfs, have received a new constructor that takes a
TLcdWFSCommandDispatcherContext to configure all required settings.
This eases custom creation of the request handlers during server startup in
the method ALcdOGCWFSCommandDispatcherFactory#createRequestHandler.
Bug fixLuciadLightspeed
LCD-3621
Vertical or horizontal label pins were not painted when enabling pin halo.
Bug fixLucy (LuciadLightspeed)
LUCY-3838
TLcyLspSafeGuardFormatWrapper now correctly safeguards format bars.
Bug fixLucy (LuciadLightspeed)
The TLcyMapAddOn.onMapActionBar.location property in the GXY and GL map addons didn't work well.
Bug fixLuciadLightspeed
LCD-3609
Fixed problem jittering 3D icons when zoomed in closely.
Bug fixLuciadLightspeed
LCD-747
Fixed a potential memory leak that would occur for KML files in java 7.
Bug fixLucy (LuciadLightspeed)
PIM add-on: the speed combo box now updates when changing the speed unit and/or speed format.
Bug fixLucy (LuciadLightspeed)
LUCY-3826, LUCY-3418
PIM add-on: reloading a workspace no longer overwrites the start date of the selected PIM track.
Bug fixLuciadLightspeed
LCD-3602
TLcdSWAction did not fire a change event when modifying the Action.SMALL_ICON property.
Bug fixLucy (LuciadLightspeed)
LUCY-3834
TLcyAlwaysFitJToolBar#setRemainingItemsIcon would throw a ClassCastException when passing
an ILcdIcon which was not an javax.swing.Icon instance.
Bug fixLuciadLightspeed
LCD-3600
The FusionClient Lightspeed sample now correctly visualizes fused vector data, even when no VPF library is present.
Bug fixLucy (LuciadLightspeed)
LUCY-3832
TLcyLspFusionVectorFormatAddOn: the illegal dependency of this add-on on the VPF Industry
Specific component has been removed.
This makes it now possible to visualize fused vector data in a native Lucy Lightspeed view
without the need for a VPF license or VPF library.
Bug fixLuciadLightspeed
LCD-3599
Resolved issue where the GeoTIFF encoder would generate incorrect downscaled images when processing
elevation data.
Bug fixLuciadLightspeed
LCD-3598
TLspFillStyle.texture() could override the color, even if the texture is null.
Bug fixLuciadLightspeed
LCD-3583
Resolved parsing error with certain format patterns.
Bug fixLuciadLightspeed
LF-202
Changing the asset ID of an asset after it has been added to a coverage is now correctly reflected in the coverage.
Bug fixOGC Server
LCD-3548
Including PropertyName parameters in WFS GetFeature requests could affect subsequent
GetFeature requests in case of ILcdDataObject-based domain objects.
Bug fixReal-time Engine
LCD-3520
TLspPlotLayerBuilder: plot selection did not work correctly when using a style target provides
that does not provide exactly 1 geometry for each domain object.
Bug fixTerrain Analysis Engine
LCD-3603
Fixed problem with the creation of rasters based on LOS calculations using nearest neighbour sampling. The nearest neighbour
sampling could be wrong in some cases. This has now
been fixed.
Bug fixRadar Connectors
LCD-3601
Fixed a problem with the decoding of Special Purpose Fields and Reserved Expension Fields.
2012.1.12
ImprovementDatabase Connectors
LCD-3576
TLcdOracleSpatialModelDecoder can now handle geometry with a "measure" dimension.
Such geometry is converted to 2D shapes, the measure information is not kept.
ImprovementMaritime Standards
The new model encoder TLcdS57ModelEncoder allows to save S-57 domain data. It can save
any data decoded by TLcdS57ModelDecoder as well as programmatically created or modified
S-57 domain data.
Bug fixLucy (LuciadLightspeed)
LUCY-3824
Lightspeed layers: the code responsible for the choice of the default data expression used in
the object
labels has been improved. This should avoid situations where you open the "Layer properties"
panel
and the changes cannot be applied due to an invalid label contents.
Bug fixLucy (LuciadLightspeed)
LUCY-3828
TLcyLspLayerCustomizerAddOn: certain fill patterns where mirrored on the view compared to the
preview in the customizer panel. Due to the fix for LCD-3592 (see the Lightspeed release notes),
this has been fixed.
Bug fixLuciadLightspeed
LCD-3592
The fill pattern for background raster layers was flipped.
Bug fixLucy (LuciadLightspeed)
LUCY-3822
TLcyGridAddOn: opening the grid panel without an open GXY map would cause a
NullPointerException.
Bug fixLuciadLightspeed
LCD-3584
Streamed raster layers, for example a JPIP layer, could sometimes not load tiles completely.
Bug fixLucy (LuciadLightspeed)
LUCY-3820
TLcyPrintAddOn: the print preview could throw an ArithmeticException due to a division by zero.
Bug fixAdvanced Raster Connectors
LCD-2667
Fixed an issue that could cause a crash when using ECW on modern Linux systems.
Bug fixInfrastructure Standards
LCD-3593
The DGN decoder sometimes had an integer overflow when determining element priority. This could
cause wrong priorities as well as comparator errors on JDK 1.7.
Bug fixInfrastructure Standards
LCD-3585
The DGN complex shape painting had artifacts when paint caching was on. This is now resolved.
2012.1.11
ImprovementMaritime Standards
Unknown depth value attributes and properties of TLcdS57Point, TLcdS57Line and TLcdS57Area
are
now consistently represented by Float.NaN (instead of a mix of Float.NaN, Float.MIN_VALUE
and
Float.MAX_VALUE).
Bug fixLuciadLightspeed
LCD-3577
Fixed issue in model content tree that would prevent you from toggling the visibility of a KML file that contained
a single feature without a document element.
Bug fixLuciadLightspeed
LCD-3573
After creating a measurement using TLcdAdvancedMapRulerController, NullPointerExceptions
could be thrown, resulting in no measurement labels. This regression was introduced in the
fix for LCD-3382.
Bug fixLuciadLightspeed
Fixed a potential NPE when using 3D icons and other shapes together in the same layer.
Bug fixReal-time Engine
LCD-3575
TLspPlotLayerBuilder: models with bounds whose width or height is zero were not painted.
2012.1.10
ImprovementLuciadLightspeed
LCD-3499
TLcdGXYInteractiveLabelsController now makes it possible not to select the domain object when
making a label interactive. See setSelectObjectDuringInteraction().
Bug fixLucy (LuciadLightspeed)
LUCY-3815
The TLcyLspSafeGuardFormatWrapper now wraps the ILcdBalloonContentProvider instances as well.
Those providers will
no longer receive TLcdModelElementBalloonDescriptor instances where the model/layer is not
accepted by the format.
Bug fixLucy (LuciadLightspeed)
LUCY-3814
TLcyARINCAddOn: the Lucy file chooser did not list the commonly used ARINC file names /
extensions.
Bug fixLuciadLightspeed
LCD-3566
TLcdGXYPointListPainter.anchorPointSFCT did not always return the expected coordinates when
using setAnchorPointLocation with INSIDE_POLYGON as argument.
Bug fixLucy (LuciadLightspeed)
TLcyWFSClientAddOn, TLcyWCSClientAddOn: the connection dialog
did not accept https URLs.
Bug fixLuciadLightspeed
LCD-3562
TLcdJetIndexColorModelFactory could produce NullPointerExceptions in certain situations.
Bug fixReal-time Engine
TLspPlotLayerBuilder: fixed a potential memory leak if multiple layers are created using
the same styler.
Bug fixWeather & Environment Standards
LCD-3565
The parameter value corresponding to the given internal value of a GRIB file is now calculated
with a higher precision.
2012.1.09
ImprovementLucy (LuciadLightspeed)
TLcyDebugAddOn: debugging actions can now also provide code and config file snippets on how to
insert an action in a given location.
ImprovementLuciadLightspeed
LCD-3538
The interactive label providers now throw more helpful exceptions when dispatching unexpected mouse events.
ImprovementInfrastructure Standards
LCD-3522
Painting performance for cell with holes has been improved. Improvement depends on the size
of the view: 4 times faster for small views, 100 times faster for large views.
Bug fixLucy (LuciadLightspeed)
TLcyGXYLayerTreeNodeFormatWrapper: any model lists passed to the encoders of the wrapped format
are
now always the original model lists. Previously they could be model tree nodes created by the
format
wrapper.
Bug fixOGC Server
LCD-3545
Custom model reference formatters registered by overriding
ALcdOGCWFSCommandDispatcherFactory.registerModelReferenceFormatters() are now always correctly registered.
In particular, when a custom instance of TLcdWFSClientModelEncoderFactory is created by overriding
createClientModelEncoderFactory().
Bug fixAviation Standards
LCD-3556
The DAFIFT loader panel did not support subtype decoding when loading a dataset without
organization in ICAO subdirectories.
Bug fixAviation Standards
LCD-3553
TLcdDAFIFTSpecialUseAirspaceDecoder did not set a correct display name on subtype models.
Bug fixDefense Symbology
The APP-6A preview icon for the Direction Of Attack tactical symbols
'Enemy Confirmed/Known Ground', 'Templated Enemy Ground' and 'Friendly Planned Or On Order'
was not shown in TLcdAPP6AObjectCustomizer.
Bug fixRadar Connectors
TLcdASTERIXCategory1: records of the Plot UAP of category 1 are now decoded as TLcdASTERIXPlots.
Bug fixRadar Connectors
ALcdASTERIXDecoder: TLcdASTERIXPlot instances will now always get added to their own model. Sometimes they
were added to the trajectory model.
Bug fixRadar Connectors
TLcdASTERIXModelDecoder: by default, ASTERIX trajectories decoded from a raw ASTERIX file again start in the
current date instead of the first of January 1970.
Bug fixRadar Connectors
TLcdASTERIXSacSicRecordFilter will no longer throw NullPointerExceptions when reading category 244 data.
2012.1.08
ImprovementLuciadLightspeed
LCD-3525
Balloons that do not contain HTML now correctly keep add a line break when the description contains a "new line" character.
ImprovementLuciadLightspeed
LCD-3499
TLspInteractiveLabelsController now makes it possible not to select the domain object when
making a label interactive. See setSelectObjectDuringInteraction().
Bug fixLuciadLightspeed
LCD-3533
TLcdWFSProxyModel could not cope with feature types that had NaN bounds advertised in the WFS
capabilities.
Bug fixLuciadLightspeed
LCD-3097
Calling
"buildDataModel(TLcdDataModel... aAssetDataModels)"
before calling
"setId(String aId)"
on TLfnVectorCoverageMetadata.Builder no longer throws IllegalStateException.
The generation of the coverage data model from asset data models is postponed until the
"build()"
call.
Bug fixLuciadLightspeed
LCD-3001
Fixed an issue in TLcdSelectionSupport's event firing.
Bug fixLuciadLightspeed
LCD-3527
Improved correctness of icon rotation calculations in TLcdMultivaluedRasterPainter.
Bug fixLucy (LuciadLightspeed)
LUCY-3806
TLcyDrawingAddOn: copying text objects between layers with different references could result in
text
with an incorrect size and rotation.
Bug fixLuciadLightspeed
LCD-3524
TLcdEllipsoid.intersection2DLSSFCT() could throw an exception when one of both line segments
contains one point of the other line segment.
Bug fixLuciadLightspeed
LCD-3523
Certain malformed KML files would cause the TLcdKML22ModelDecoder to throw exceptions other than IOExceptions. These have
now been wrapped into
IOExceptions.
Bug fixLuciadLightspeed
Fixed rendering issues in TLcdGXYRoundedPointListPainter that occurred in case of a grid
reference with TLcdGeodetic projection and modified scale value to express coordinates in meters.
Bug fixLuciadLightspeed
LCD-1574
Improved stroke implementation for QUADTO and CUBICTO segments.
Bug fixLuciadLightspeed
LCD-3486
TLcdOBJMeshDecoder can now correctly resolve .MTL files that are contained in a JAR.
Bug fixLucy (LuciadLightspeed)
LUCY-3808
TLcyDrawingAddOn: config file properties for short description and icon were ignored for the
sub-menus such as fill style and line arrow style.
Bug fixLuciadLightspeed
LCD-3511
Vector data features returned by an applyOnInteract call on a fusion vector data model now correctly support
contains2D and contains3D operations instead of throwing an UnsupportedOperationException.
Bug fixLuciadLightspeed
LCD-3509, LCD-3515
Raster layers did not handle all model changes correctly.
Bug fixLuciadLightspeed
LCD-3505
Fixed issue with TLcdKML22DynamicModel.setHierarchicalVisibility() that would fire wrong element changes for groundoverlays.
Bug fixLucy (LuciadLightspeed)
LUCY-3807
Some color choosers in Lucy contained two transparency sliders under JDK7: one contained by
default in the
JDK (in the JColorChooser) and one added by Lucy. The Lucy transparency slider has been removed
in favor of the one which
is contained in the JDK.
Bug fixLuciadLightspeed
LCD-3503
The color chooser shown when adjusting the colors of a TLcdColorMap using the TLcdColorMapCustomizer no longer
shows two transparency sliders under JDK7. The Luciad transparency slider has been removed in favor of the
transparency slider which is part of the JColorChooser as of JDK7.
Bug fixLuciadLightspeed
LCD-2936
TLcdGeoTIFFModelEncoder now ignores alpha channel when compression type is set to JPEG.
Bug fixReal-time Engine
LCD-3535
TLspPlotLayerBuilder: the icon property for the layer is now taken into account.
Bug fixReal-time Engine
LCD-3534
Plot layers did not handle style target providers with a reference different from the model
reference correctly.
Bug fixReal-time Engine
LCD-3477
Plot layer icons are now also pixel-perfect in a geocentric reference if their scale expression
returns 1.
Bug fixWeather & Environment Standards
LCD-3527
TLcdGRIBWindIcon is now rotated correctly when rotating the map and changing projections.
Bug fixWeather & Environment Standards
LUCY-3618
The GRIB1 model decoder now also supports ECMWF parameter tables.
Remember that by default the NCEP parameter table will be used.
See TLcdGRIB1ModelDecoder#addParameterTable to add other tables.
Bug fixAviation Standards
LCD-3532
A difference in the determination of the number of points between
TLcdProcedureTrajectory#getPointCount and TLcdProcedureTrajectory#getPoint()
could lead to inconsistencies.
Bug fixDefense Symbology
LCD-3519
Rounded line / area symbology was not correctly rendered in case of a grid reference
with TLcdGeodetic projection and modified scale value to express coordinates in meters.
Bug fixMaritime Standards
Enumerated attributes, encoded in S-57 data with an empty value, are no longer included in
the decoded S-57 objects
(they used to be included with value -1).
2012.1.06
ImprovementLuciadLightspeed
LCD-3498
The KML model tree content node now filters out html headers, and only keeps the body of the description. This avoids problems
with certain files.
ImprovementLuciadLightspeed
TLcdKML22RenderableModel now support property changes for various setters. This allows you to easily listen to changes in
(for instance)
the default time bounds set on a model through the TimeMediator..
ImprovementLucy (LuciadLightspeed)
LUCY-3803
The vertical view now prohibits editing if the related layer is not editable.
ImprovementTiling Engine
LF-411
LuciadFusion now supports fusion of BIL elevation data.
Bug fixLuciadLightspeed
LCD-3496
Fixed a NPE when setting a null background styler on ILspTerrainSupport.
Bug fixLuciadLightspeed
LCD-2671
TLspShapeLayerBuilder now uses the font specified by TLspTextStyle (if present) to
paint ILcdText objects.
Bug fixLuciadLightspeed
LCD-3495
Resolved rounding-error in TLcdLonLatPointFormat.
Bug fixLuciadLightspeed
LCD-3494
Fixed issue with TLcdKML22RenderableModel that would not correctly apply the "aFilterOnRegion" attribute on abstract containers.
It now does.
When the given attribute is false, the query will return all abstract features and containers regardless of their region.
Bug fixLuciadLightspeed
LCD-3492
Improved memory management in com.luciad.format.raster package.
Bug fixLucy (LuciadLightspeed)
LUCY-3804
When printing a 2D map, the labels were not decluttered.
Bug fixLuciadLightspeed
LCD-3484
TLspCreateController no longer (incorrectly) allows creation if the target layer or its paint representation are invisible.
Bug fixLuciadLightspeed
Licensing information is now logged via the logging framework, instead of being printed directly
on the console output and error streams.
Bug fixLuciadLightspeed
LCD-3469
TLcdInputStreamFactory would throw a StringIndexOutOfBoundsException when passing a URI of the
form file://\\path\to\file\on\server. URI's of such forms are for example encountered when using
drag-and-drop
Bug fixOGC Server
LCD-3473
The WFS server now respects to the requested feature types, it longer returns irrelevant feature types.
Bug fixReal-time Engine
LCD-3491
Plot layers could throw errors when using certain combinations of expressions, in particular
when using TLcdExpressionFactory.sub().
Bug fixTerrain Analysis Engine
LCD-3485
Lightspeed Line-of-Sight: Fixed issue with certain single-precision ATI cards that would cause numerical instability when
the maximum vertical angle was set
to PI.
Bug fixAviation Standards
The AIXM airspace decoder, TLcdAIXMAirspaceHandler, could not correctly parse decimal
distance values in case of a decimal symbol mismatch between the active locale in Java
and the underlying OS.
2012.1.05
ImprovementLuciadLightspeed
LCD-3331, LCD-3372
TLspSwingView is a new ILspView implementation which is backed by a lightweight
component (unlike TLspAWTView, which is heavyweight). The two views are otherwise
fully equivalent. Using a lightweight view, however, can solve some specific
integration issues that may occur, e.g. when adding the view to a JInternalFrame or
an SWT user interface.
Please read the TLspSwingView class javadoc for important information on the
performance of lightweight vs. heavyweight views.
ImprovementLucy (LuciadLightspeed)
LUCY-3795
Lucy now allows to save vector data to the GeoJson format by registering an ILcdModelEncoder.
Exporting
vector data to the GeoJson format is available through the UI using the File | Save as menu
item.
ImprovementLucy (LuciadLightspeed)
LUCY-2330
TLcyWMSClientAddOn: the transparency checkbox is now selected by default,
as this is most often the preferred choice if the selected image format type supports it.
ImprovementLucy (LuciadLightspeed)
LUCY-3793
Dockable front-end: when maximizing a floating panel the pop-up menu now displays "Restore"
instead
of "Maximize".
ImprovementLucy (LuciadLightspeed)
LUCY-3797
Dockable front-end: when working with multiple displays, maximizing a floating panel now tries
to
detect the display the current window is on.
ImprovementLucy (LuciadLightspeed)
LCD-1125
TLcyWFSClientAddOn: a WFS layer can be saved as a GML 2, GML 3.1 or GML 3.2 file. A
corresponding XML Schema is generated automatically.
ImprovementLuciadLightspeed
LCD-3461
It is now possible to configure TLspPinLineStyle to place the pin at the closest
edge of the label bounds instead of in the middle of the bounds. See
TLspPinLineStyle.Builder.pinEndPosition().
ImprovementAviation Standards
LCD-3454
The domain objects to represent and calculate the geometry of procedures and airspaces,
i.e. TLcdProcedureTrajectory, TLcdDiscretizedLonLatGeoPath and TLcdDiscretizedLonLatOpenGeoPath,
now implement ILcdInvalidateable. This interface offers a general mechanism to invalidate
any cached values in a domain object after any external changes - in this case, the calculated
geometry.
ImprovementDefense Symbology
LCD-3460
Support for the status indicators Fully Capable, Damaged, Destroyed and Full To Capacity has
been added to the MIL-STD 2525c symbology implementation, in accordance with the standard.
ImprovementDefense Symbology
LCD-2537
Support for the echelon indicator COMMAND has been added to the MIL-STD 2525c symbology
implementation, in accordance with the standard.
ImprovementInfrastructure Standards
The DGN decoder now has an option to display "view level overrides" or not: see TLcdDGNLevelSymbology.setUseViewLevelSymbology().
ImprovementMaritime Standards
The unit of measure was incorrectly taken into account during scale computations in the S-52
engine.
This has been fixed now. It only affects references for which the UoM != 1.
Bug fixLucy (LuciadLightspeed)
LUCY-3801
TLcyModelCustomizerAddOn: fixed a memory leak. As long as the map component existed, Lucy kept
a reference to every customizer panel which was created for a model context of that map
component. This
problem could be seen by opening and closing a table view regularly.
Bug fixLuciadLightspeed
Cloned TLspViewXYZWorldTransformation3D fired property change events with the incorrect
source, or didn't fire property changes at all.
Bug fixLuciadLightspeed
Fixed a bug that caused 3D meshes to be painted twice in 3D by TLsp3DMeshPainter.
Bug fixLuciadLightspeed
Fixed a bug that caused colors of 3D meshes to be ignored by TLsp3DMeshPainter.
Bug fixLuciadLightspeed
TLsp3DMeshPainter now correctly reports progress.
Bug fixLuciadLightspeed
Fixed a bug in TLsp3DMeshPainter that caused a NullPointerException when painting unstyled meshes.
Bug fixLucy (LuciadLightspeed)
LUCY-3705
TLcyWMSClientAddOn: changing the transparency of a Lucy WMS layer does no longer
clear the complete layer (which triggered new WMS GetMap requests) when its content
is not changed.
Bug fixLucy (LuciadLightspeed)
LUCY-1987
TLcyWFSClientAddOn: the content of WFS models was by default marked with
ILcyModelContentType.UNKNOWN, which prevented Lucy to determine a logical default
layer order when adding WFS layers.
Bug fixLuciadLightspeed
Fixed a bug that caused shapes painted in view coordinates to be incorrectly painted in world
coordinates when zooming in on the view.
Bug fixLucy (LuciadLightspeed)
LUCY-3798
TLcyFileWorkspaceCodec#resolveRelativePath could not handle workspaces which are contained in
a jar file on the classpath.
Bug fixLuciadLightspeed
LCD-3465
Improved robustness of GeoTIFF resource cleanup.
Bug fixLuciadLightspeed
LCD-3453
The bounds of the LonLatHippodrome in the sample code was calculated incorrectly.
Bug fixLuciadLightspeed
LCD-3443, LCD-875
Model change events collected by ALcdModel and TLcdModelChangeEventSupport are now based on
object identity instead of equals(). This avoids issues with incorrect events.
Bug fixLuciadLightspeed
LCD-2754
Setting the references on a TLcdDefaultModelXYZWorldTransformation could cause a NullPointerException.
Bug fixAviation Standards
LCD-986
Editing circle shapes on the map was interpreted the same way as arcs,
leading to undesired editing handles which caused exceptions when touched.
Bug fixAviation Standards
LCD-1626
The airspace domain object TLcdAssociationBasedAirspace was not safe to use
across multiple threads in parallel.
Bug fixDefense Standards
LCD-3425
Render background pixels transparant instead of black.
Bug fixDefense Standards
Resolved regressions in USRP decoder.
Bug fixInfrastructure Standards
LCD-3448
The DGN decoder now folds "ByLevel" level element colors into each element.
2012.1.04
ImprovementLuciadLightspeed
LCD-3386
The memory use and rendering performance of TLspStrokedLine have been considerably improved,
especially for the case where the view is strongly zoomed in on a long line segment.
ImprovementLuciadLightspeed
LCD-3074
TLspMGRSGridLayerBuilder can now also be used to visualize a classical UTM grid.
ImprovementTerrain Analysis Engine
LCD-3433
Made ALcdLOSCoverageMatrix.retrieveAssociatedPointX() more robust. It now normalizes the angle before it retrieves the data.
ImprovementMaritime Standards
TLcdS57ModelDecoder no longer logs warnings for unresolved object pointers, as unresolved
pointers are almost always caused by references to other S-57 cells, which can be safely
ignored.
ImprovementMaritime Standards
TLcdS57ModelDescriptor now also provided access to a cell's update number.
ImprovementMaritime Standards
LCD-3330
The canDecodeSource() methods of TLcdS57ModelDecoder and TLcdS57CatalogueModelDecoder have
been
refined; they now properly recognize ENC, AML and S-63 cell files, and S-63 signature files.
canDecodeSource() will now only return true if the source is of the right type (catalogue or
cell), and is compatible with the decoder's product configuration (ENC or AML).
ImprovementMaritime Standards
Checksums are now also verified for update cell files, not only for base cell files. Note
that
this takes some additional time during the decoding, as an extra file access is needed.
Checksum
verification can be enabled or disabled via the
TLcdS57CatalogueModelDecoder.setVerifyChecksum()
flag. It is disabled by default.
Bug fixLucy (LuciadLightspeed)
LUCY-3790
TLcyToolBar now allows to put actions into a group more than one level deep. Previously
inserting
two actions in e.g. "Edit", "Shape" would result in two "Edit", "Shape" entries instead of
one entry containing the two actions.
Bug fixLuciadLightspeed
LCD-3438, LCD-3439
At certain zoom levels, polygons, polylines, or other shapes with self-overlapping lines
were not painted anymore.
Bug fixLuciadLightspeed
A bug was fixed which caused layers draped over the 3D terrain to appear distorted or "smeared"
if the resolution of the 3D view was more than 2048 pixels in either direction.
Bug fixLuciadLightspeed
Fixed documentation of TLpsWorldSizedLineStyle. It now correctly says that the only accepted elevation mode is ON_TERRAIN.
Bug fixLuciadLightspeed
The OGC CRS'es urn:ogc:def:crs:OGC:1.3:CRS:84, urn:ogc:def:crs:OGC:1.3:CRS:83 and
urn:ogc:def:crs:OGC:1.3:CRS:27 are
now parsed to geodetic references with correct (lon,lat) axis order in their axis metadata.
Bug fixLuciadLightspeed
Labels were sometimes painted at an incorrect height instead of on the terrain. This could
happen for labels with an anchor object defined in a reference with a different geodetic
datum than the datum of the world reference.
Bug fixLucy (LuciadLightspeed)
LUCY-3788
TLcyEarthOpenGLAddOn: the resolution of the terrain in the view can now be increased in high
resolution views to avoid blurry data near the screen edges. You can increase the resolution
using the new TLcyEarthOpenGLAddOn.clipRegionSize property in the earthopengl_addon.cfg file.
Bug fixLucy (LuciadLightspeed)
LUCY-3712
TLcyLspMapAddOn: changing the distance format of Lucy did not trigger a repaint of the scale
icon
on the map. This has been fixed.
Bug fixLuciadLightspeed
LCD-3422
Calling TLcdJPLEllipsoidFactory using Ellipse_Sphere did not create a spherical ellipsoid.
Bug fixLuciadLightspeed
LCD-3420
When editing labels using TLcdGXYOffsetIconPainter, the selected labels were painted at the
incorrect location.
Bug fixOGC Server
LCD-2543
The WFS property name filtering mechanism was not supported for domain objects that
implemented ILcdDataObject, but were not extensions of the class TLcdDataObject.
The latter restriction has been removed: any implementation of ILcdDataObject is now supported.
Bug fixInfrastructure Standards
LCD-3440
The DGN decoder now supports level element colors defined by RGB values.
Bug fixMaritime Standards
A potential threading issue on the TLcdS57CatalogueModelDecoder has been fixed; when the
model
decoder settings are changed, they could affect the behavior of previously decoded models,
when
decoded using SOFT_REFERENCED or WEAK_REFERENCED loading policy. This is no longer the case.
Bug fixS-63
LCD-3407
The exception thrown by the S-63 model decoder now include the S-63 error code in their
error
message.
2012.1.03
ImprovementLuciadLightspeed
LCD-3116
When zooming in on a region were no detailed imagery is available, imagery with less detail will
be displayed instead of the white fallback images.
ImprovementLucy (LuciadLightspeed)
ALcyGUIFactory now throws a clear exception when used re-entrantly, instead of obscure
runtime exceptions.
ImprovementTiling Engine
Information from the individual S-57 cell files was used to create assets for S-57 catalogues; as a result, the
creation
of assets for large catalogues could take a significant amount of time. This has been fixed. The fix for LF-358
(see below) was reverted in order to fix this issue.
Bug fixLucy (LuciadLightspeed)
LUCY-3784
The selected layers of the map are no longer updated immediately when the selected objects on
the
map change. The update of the selected layers now happens in an invokeLater call. Changing the
selected layers of the map could trigger an update of the object selection on the map (for
example
in the table view). This could confuse selection listeners which would receive events in an
incorrect order.
Bug fixLucy (LuciadLightspeed)
LUCY-3274
The TreeTable class (used for the object properties panel) did not support
TLcdISO19103MeasureAnnotation
nor ILcdISO19103Measure instances. The same approach as in the table view for issue LUCY-3738
has
been used: both instances are converted to a TLcdISO19103Measure before being added to the
model.
Bug fixLucy (LuciadLightspeed)
LUCY-3738
The table view used the wrong formatting for ILcdISO19103Measure instances. As a JTable only
supports renderers for a specific class and not for a specific interface, the
DataObjectTableModel and FeaturedTableModel
class has been adjusted to convert such values to a TLcdISO19103Measure instance for which
a specific renderer has been set on the JTable.
Bug fixLuciadLightspeed
TLcdCompositeIcon was prone to deadlocks when used in multi-threaded environments. This has been fixed.
Bug fixLuciadLightspeed
LCD-3411
Fixed some artifacts below sea level for raster layers in a 3D grid reference.
Bug fixLuciadLightspeed
LCD-3382
Fixed ArrayIndexOutOfBoundsException when using an ILcdGXYViewLabelPlacer (with a labeling
algorithm that depends on the usage of ILcdGXYLabelPainter2) and creating a measurement with
the addGXYLayerToGXYView property of TLcdAdvancedMapRulerController set to true.
Bug fixLuciadLightspeed
LCD-3383
When the addGXYLayerToGXYView of TLcdAdvancedMapRulerController was enabled, labels decluttered
using an ILcdGXYViewLabelPlacer were not painted correctly.
Bug fixLuciadLightspeed
LCD-3400
TLcdGXYBufferPainter: fixed some visualization problems when the paint cache was enabled.
Bug fixReal-time Engine
LCD-3414
The style of selected plots was sometimes not updated correctly.
2012.1.02
ImprovementLuciadLightspeed
LCD-3033
The CoverageVerifier sample now explicitly notifies the user there is nothing to be verified when a coverage doesn't
have checksums enabled.
ImprovementLucy (LuciadLightspeed)
LUCY-3573
The line width, line pattern and fill pattern comboboxes in the default Lightspeed layer
properties
panel no longer use the selected color to render the line/fill preview. This avoids that the
line/fill
becomes invisible when the selected color matches the background color of the combobox. The new
behavior is also more in line with other applications.
ImprovementLuciadLightspeed
LCD-3359
The GML transformer now supports transforming of ILcdSurface objects.
ImprovementLuciadLightspeed
LCD-1585
The performance of TLcdGXYBufferPainter has been improved.
ImprovementOGC Server
LCD-2557
The WFS server will no longer print stack traces at startup when a certain output format is not
usable for a given feature type, a simple warning is printed instead. These warnings are only relevant
if the actual output format is in use. The stack traces can still be obtained by enabling debug logging for
the "com.luciad.ogc.wfs" package.
ImprovementTiling Engine
LF-273
Improved performance and memory consumption when fusing S-57 data by optimizing caching.
ImprovementTiling Engine
LF-239
It is now possible to fuse S-57 data of product type AML with the correct settings, albeit not automatically.
The default behavior remains that S-57 AML data is fused with ENC settings without warning.
Both the S-57 ENC and AML formats are now registered as fusion formats, with the ENC flavor being the preferred
format.
At least application developers now have the possibility to reorganize them if needed.
ImprovementTiling Engine
LF-361
The LuciadFusion sample data was moved one directory up, in samples/resources/Data/LuciadFusion.
The coverage layout was also optimized so that it uses less disk space.
Bug fixLuciadLightspeed
LCD-3406
ILspLayer's with a single point were not painted in a 3D grid reference.
Bug fixLuciadLightspeed
LCD-3405
Fixed rare race condition in TLspLabelPainter that could trigger a NullPointerException.
Bug fixLuciadLightspeed
LCD-3403
ILspEditingStateListeners are now always called with the actual domain object in the event,
rather than the object's geometry.
Bug fixLuciadLightspeed
LCD-2193
The TLcdSymbol#DOUBLE_OUTLINED_RECT now fills a rectangle that covers the actual icon size. Visually,
this increases the width and height of the icon with one pixel.
Bug fixLuciadLightspeed
LCD-3364
Tile Stores which are internally created as a result of a call to TLfnTileStoreModelDecoder.decode(String aSource)
are now properly closed when the corresponding model(s) is/are disposed.
Bug fixLucy (LuciadLightspeed)
LUCY-3784
The setup methods of sample classes TableViewGUIFactory and TreeTableGUIFactory have been
revised to meet the specification of the super method. This could theoretically cause threading
issues.
Bug fixLuciadLightspeed
LCD-3369, LCD-2225
Components added to the overlay component (TLspAWTView.getOverlayComponent()) didn't always
show the correct cursor.
Bug fixLuciadLightspeed
LCD-3316
Balloon cursor handling was not completely correct. In some cases, no move cursor is shown
while it is possible to move the balloon.
Bug fixLucy (LuciadLightspeed)
LUCY-3713
TLcyLspMapAddOn: the on-map scale icon was not immediately adjusted when changing the distance
format.
It required an update of the view (for example by hovering over the map with the mouse) before
the
changes were visible. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3785
The dockable front-end still allowed to remove the last map component even when this was
disabled
in the configuration file. This was caused by the JIDE framework which calls the close action
without
checking whether the action is enabled. A workaround is provided in the
DockableFrameAppPane#MyCloseAction
class. The actionPerformed method now immediately returns when the action is disabled.
Bug fixLuciadLightspeed
LCD-3070
Removed a memory leak in TLspGXYLayerAdapter.
Bug fixLuciadLightspeed
TLspRasterStyle.asBuilder did not copy the levelSwitchFactor property, instead the default
value was used.
Bug fixLuciadLightspeed
LCD-3384
Fixed rare ArrayIndexOutOfBoundsException in TLspLabelPlacer.
Bug fixLuciadLightspeed
LCD-3387
When using TLspLabelingAlgorithm (in combination with TLspLabelingAlgorithmProvider), the
previous location wasn't always reused when needed.
Bug fixLuciadLightspeed
LCD-3385
When adding a label for a shape list containing a point, the default labeling algorithm
placed the label on top of the icon instead of next to it.
Bug fixLuciadLightspeed
LCD-2715
TLspLayer.createScaleRange did not return a correct scale range. To create
a correct scale range the min values must be less than or equal to the max values.
Bug fixAviation Standards
LCD-3065
The implementation of ILcdExtrudedShape by TLcdAIXM5xVerticalStructurePart has been improved to be
more consistent with how AIXM 5 data should be interpreted: the maximum Z corresponds to the elevation
of the elevated point, surface or curve, while the minimum Z is the maximum Z minus the vertical extent.
There will not be an impact on 3D visualization because the vertical structures are already moved during
visualization to be aligned with the terrain.
Bug fixDefense Standards
LCD-3381
Prevents TLcdBCIRasterModelDecoder from incorrectly throwing an EOFException.
2012.1.01
ImprovementLucy (LuciadLightspeed)
LUCY-3170
The layer properties panel for an UTM grid layer now has a combobox to change the scaling
behavior.
Prior, it contained a text field which accepted any value, but only certain values worked. Those
values are now presented in the combobox.
ImprovementLuciadLightspeed
LCD-1586
The performance of TLcdGXYRoundedPointListPainter has been improved.
ImprovementLuciadLightspeed
Logging of the license server has been extended: the license server for each license request now
logs which clients are currently using a license. The port at which the request came in is now
also logged, allowing to map each incoming request to its corresponding license file.
ImprovementLuciadLightspeed
LCD-2174
The predefined hatch fill pattern in TLspFillStyle has been improved to provide better visual
results.
ImprovementLuciadLightspeed
LF-283
When creating a raster asset from a raster coverage, the bounding boxes and pixel densities of the individual
original asset parts are now taken into account.
This has a couple of interesting consequences:
- Coverage cropping now also works efficiently for coverages with non-uniform pixel densities.
- The pixelDensity argument of the TLfnTileStoreUtil.newCoverageAsAssetMetadataBuilder has become obsolete.
This method has now been deprecated in favor of a new method without the pixelDensity parameter.
The new method also throws appropriate exceptions when accessing the Tile Store fails.
There is no longer any need to compute the pixel density upfront using
ImprovementLuciadLightspeed
LCD-3004
A small LuciadFusion sample data set was added for use with the Fusion Client sample.
It contains low-resolution imagery and elevation data, as well as VPF VMAP2i vector data.
ImprovementLuciadLightspeed
LCD-1613, LCD-2693
Improved javadoc of TLcdETOPOModelDecoder.
ImprovementLuciadLightspeed
LCD-3099
It is now possible to format UTM and UPS coordinate Strings using TLcdMGRSFormat.
ImprovementLuciadLightspeed
LCD-3088
It is now possible to configure a coordinate separator and the precision for UTM coordinate
Strings.
ImprovementLuciadLightspeed
LCD-3087
TLcdUPSUtil was added. It is possible to parse and format UPS coordinate Strings using this
new class.
ImprovementLuciadLightspeed
LCD-3077
If the tile width or height is left unspecified or set to an illegal value, an IllegalArgumentException is now
thrown upon creation of a TLfnRasterCoverageMetadata.
If you now accidentally forget to set these required parameters, you get a clear error rather than fusion getting
into an infinite loop because of them.
ImprovementLuciadLightspeed
LCD-3076
ALfnCoverageMetadata.Builder.setCoverageLayout was added as a convenience method to set both the level-0 column- and
row counts with a single call.
TLfnRasterCoverageMetadata.Builder.setTileLayout was added as a convenience method to set both the tile width and
height with a single call.
ImprovementDatabase Connectors
LCD-3344
TLcdOracleSpatialModelDecoder now supports Oracle 11g spatial databases.
ImprovementMaritime Standards
LCD-527
TLcdS57ModelDecoder now always throws an IOException in case something went wrong during
decoding. The underlying cause is available in the exception via getCause().
Bug fixLucy (LuciadLightspeed)
The layer properties panel for an UTM grid layer could throw a NullPointerException. This has
been fixed.
Bug fixLuciadLightspeed
LCD-2906
Fixed a layer order problem when selecting objects in a TLspGXYLayerAdapter.
Bug fixLucy (LuciadLightspeed)
LUCY-2587
TLcyDrawingAddOn: improved the painting performance of groups.
Bug fixLucy (LuciadLightspeed)
LUCY-3732
The auto-complete behavior in the combobox in the Map | Data | WMS dialog was confusing. The
auto-complete functionality is now removed. The combobox now also allows navigation with the
arrow keys without trying to connect to each server.
Bug fixLucy (LuciadLightspeed)
LUCY-3732
The auto-complete behavior in the combobox in the File | Connect to dialog was confusing. The
auto-complete functionality is now removed.
Bug fixLucy (LuciadLightspeed)
LUCY-3780
The ILcyLayerStyleProvider provided by the ALcyLspStyleFormat would incorrectly apply layer
styles containing
multiple styles of the same class. An example was when you copied the grid layer from one map to
another. The copied layer would have all lines in the same color, instead of respecting the
different
line colors of the original grid layer.
Bug fixLucy (LuciadLightspeed)
LUCY-3767
The addons.xml file and the sample addons file did not contain the correct priorities. This
caused certain samples to malfunction. Those priorities have been added.
Bug fixLuciadLightspeed
LCD-3026
Editing a buffer (using TLcdGXYGeoBufferPainter) did not work well with multiple objects
selected. TLcdGXYGeoBufferPainter.isTouched() did not work well when passing
ILcdGXYPainter.HANDLES as mode.
Bug fixLuciadLightspeed
LCD-1554
When the ALcdGXYInteractiveLabelProvider.canStopInteraction() method depends on the focus of a
component of the interactive label, label interaction would not immediately be stopped when
starting to drag an other label.
Bug fixLuciadLightspeed
LCD-3340
When using TLcdGXYAsynchronousLabelPlacer and editing multiple labels at the same time, some of
the labels could lag behind.
Bug fixLuciadLightspeed
LCD-3025
When dragging an interactive label, and then clicking the mouse with an other button,
an IllegalStateException was thrown.
Bug fixLuciadLightspeed
LF-248
An LTS GetCapabilities request with no version specified responds with the highest supported version instead of
failing.
This brings it in line with OCG protocols.
Before, such a request would fail with a NullPointerException and a stack trace.
Bug fixLuciadLightspeed
LCD-2790
TLcdEllipsoidUtil.orientation2D() could produce incorrect results for polygons with
points that lie very close together.
Bug fixLuciadLightspeed
LCD-2838
TLcdLambertAzimuthalEqualArea.inLonLatBounds() was not strict enough for points close to the
singular point of the projection.
Bug fixLuciadLightspeed
Image projection layers (see TLspImageProjectionLayerBuilder) could throw an
IllegalArgumentException when calling getStyler() with a valid paint representation.
Bug fixLuciadLightspeed
TLspRulerController: geodetic measurements were offset by a small amount. This was introduced
in the 2012.1.01 patch release.
Bug fixLuciadLightspeed
LCD-1480
When building a query, specifying an empty array of property-value pairs now behaves as if not invoked, rather than
resulting in a StackOverflowError.
The affected methods are TLfnQuery.BasicBuilder.andFilterAnyDoNotEqual() and andFilterAnyEqual().
Bug fixLuciadLightspeed
LCD-3309
Fixed a NPE when using on path or in path labeling algorithms. This error was introduced in
the fix for LCD-3120.
Bug fixLuciadLightspeed
When the encoding of a resource metadata fails due to invalid contents, a proper exception is now
logged in all cases (RuntimeExceptions were not logged before).
Bug fixLuciadLightspeed
LCD-3267
Closing an ALfnEnvironment no longer logs a warning about unfinished initialization tasks when closing it.
Unfinished initialization tasks are part of normal behavior, they are automatically restarted.
Bug fixLuciadLightspeed
LCD-3240
In some cases, interactive labels would not appear after changing the world reference.
Bug fixLuciadLightspeed
LCD-2432
All samples are now started on the EDT, according to Swing best practices. This avoids Swing threading violations.
Bug fixLuciadLightspeed
LCD-3238
The sample data has now been fixed so that the fusion.client.proxy3d sample no longer fails when visualizing a
terrain from both the imagery and elevation data.
This was a very recent regression which has now been fixed.
Bug fixLuciadLightspeed
LCD-2836
Grid lines could be missing when looking at one of the poles in a 3D geocentric reference.
Bug fixLuciadLightspeed
LCD-3120, LCD-2273
Grid labels could disappear when tilting the view in 3D.
Bug fixLuciadLightspeed
LCD-3122
When zooming in in 3D, some MGRS labels could be painted upside down.
Bug fixLuciadLightspeed
LCD-3223
TLspTextureFont could throw a NullPointerException when trying to retrieve the glyph info
from ascii character 255.
Bug fixLuciadLightspeed
LCD-1276
A bug in the removeElements() method of GML models has been fixed.
Bug fixLuciadLightspeed
LCD-3206
ILspTerrainSupport: getPointOnTerrain could sometimes incorrectly return no intersection for
far away points.
Bug fixLuciadLightspeed
LCD-3205
The default value -1 "unlimited" for min. and max. scale denominators is now also preserved correctly for vector
assets.
Bug fixLucy (LuciadLightspeed)
LUCY-3755
In the model reference chooser panel, no name was shown for the projection of the EPSG:3857
reference. Also EPSG:900913 is now included in the list of references.
Bug fixLuciadLightspeed
In some cases the labels of the TLspRulerController were painted at an incorrect angle.
Bug fixLuciadLightspeed
LCD-40, LMAP-3402
TLcdGIFImageDecoder now correctly decodes interlaced GIF images.
Bug fixLuciadLightspeed
LCD-3080
TLcdBILModelDecoder instances are now configured with a model reference decoder by default.
Bug fixLuciadLightspeed
LCD-2809
TLcdBufferedTile#createImage could produce incorrect results when sub-tile loading produced errors.
Bug fixLuciadLightspeed
LCD-908
TLcdLonLatHeightPolyline and TLcdXYZPolyline now implement ILcdCurve, and
TLcdLonLatHeightPolygon and TLcdXYZPolygon now implement ILcdRing.
Bug fixLuciadLightspeed
LCD-3069
Various ILcdShape implementations had potential race conditions in getBounds vs. invalidateBounds.
Bug fixLuciadLightspeed
LCD-3056
TLspStampLabelLocation: absolute location were not marked as view dependent.
Bug fixLuciadLightspeed
LCD-192
The cursor for interactive labels was often incorrect when using JDK 1.7.
Bug fixLuciadLightspeed
LCD-2926
Fixed a selection problem with partially visible composite curves and rings.
Bug fixLuciadLightspeed
LCD-462
TLcdEarthGXYRasterPainter: now cancels any pending tile requests when its cache is cleared.
Bug fixLuciadLightspeed
LCD-1365
Improved handling of RGBA images in the GeoTIFF encoder.
Bug fixLuciadLightspeed
LCD-131
In rare cases, TLcdGXYAsynchronousLabelPlacer could cause a NullPointerException.
Bug fixLuciadLightspeed
LCD-3078
TLcdGeoTIFFModelEncoder did not correctly encode rasters with a single tile where the tile size did not match the
raster
bounds exactly.
Bug fixLuciadLightspeed
LMAP-5390, LCD-554
TLcdGML31LineString, TLcdGML32LinearRing, TLcdGML32LineString and TLcdGML32LinearRing now
clear their caches
when they are edited.
Bug fixLuciadLightspeed
LCD-1788
Improved robustness of KML decoder in case of invalid characters in KML description elements.
Bug fixLuciadLightspeed
LCD-3067
Fixed rendering issues with TLcdCompassGridPainter.
Bug fixLuciadLightspeed
LCD-2970
TLcdDataModelDescriptor now uses the name and display name of the data model as type name and display name of
the model descriptor, in case the constructor without type name and display name is used.
Bug fixDatabase Connectors
LCD-3136
The TLcdOracleGeoRasterModelDescriptor display name is now set to the file name instead of the raster ID
when there is only resulting one raster model.
Bug fixOGC Server
The WCS server could not cope with some GetCoverage requests that specified a longitude/latitude
outside the coverage bounds.
Bug fixOGC Server
LCD-3060
The WMS scale denominators (optionally configurable on WMS layers) are not correctly taken
into account in case of the geodetic reference EPSG:4326 / CRS:84.
Bug fixOGC Server
LCD-3045
The GeoTIFF encoder used in the WCS now encodes tiles with an odd resolution or a byte indexed
color model more accurately.
Bug fixAviation Standards
The formatting of TLcdAIXM51ValDistanceVertical is now always locale independent. In some cases,
the wrong decimal value separator was used.
Bug fixDefense Standards
LCD-2845
The USRP model decoder is no longer case sensitive.
Bug fixDefense Standards
LCD-530
GeoSym is now thread-safe.
Bug fixDefense Standards
LCD-536
GeoSym now logs a warning when a GeoSym icon could not be loaded.
Bug fixInfrastructure Standards
LCD-706
The DGN decoder now supports element extended colors defined by RGB values.
Bug fixInfrastructure Standards
LCD-706
In some cases, fill color was missing.
Bug fixInfrastructure Standards
LCD-2985
In some cases, a DGN model did not have a TLcdDGNModelDescriptor associated with it.
Bug fixMaritime Standards
LCD-3342
A bug in the S-57 update mechanism, preventing attributes from being updated correctly, has
been
fixed. It affects all possible attribute updates (inserts, changes and deletions).
Bug fixMaritime Standards
LCD-3338
TLcdS52GXYPainterProvider kept a hard reference to a list of S-57 objects, even after its
model
has been garbage collected. This could result in an OutOfMemoryError if lots of S-57 models
are
displayed simultaneously. This has been fixed.
Bug fixMaritime Standards
LCD-540
S-57 points that don't have a Z-value are now initialized with Z-value 0, instead of
Float.MAX_VALUE. This solves an issue in the transformation of points using the vertical
perspective projection.
Bug fixMaritime Standards
LCD-595, LCD-547, LMAP-5662, LMAP-4145
TLcdS57CatalogueModelDecoder now throws an IOException during the decode() of a catalogue
when
no valid cell could be found in the catalogue.
2012.1
ImprovementLuciadLightspeed
SLD styles (TLcdSLDFeatureTypeStyle) can now be used in a Lightspeed view, through the
TLspSLDStyler
class. This styler supports the most commonly used features of the standard. Please refer to the
developer
guide for an overview.
ImprovementLuciadLightspeed
SLD now supports decoding and encoding of Symbology Encoding 1.1.0 styles. By default, new
styles
will also be saved as 1.1.0 styles.
The following features from version 1.1.0 are supported:
- Inline encoding of binary and svg icons.
- New standardized functions such as interpolate, recode, formatDate, categorize,...
- Line widths specified in world units.
ImprovementLucy (LuciadLightspeed)
The Lightspeed style of fusion raster and vector layers is now editable.
ImprovementLucy (LuciadLightspeed)
Fusion vector data is now supported in Lightspeed views, provided by the
TLcyLspFusionVectorFormatAddOn.
Fusion raster data was already supported in Lightspeed views, provided by the
TLcyLspFusionRasterFormatAddOn.
ImprovementLucy (LuciadLightspeed)
Lightspeed equivalents have been created for several GXY utility classes. In most cases this
was achieved by providing an abstract base class with a GXY and LSP specific implementation:
- TLcyLspCreateLayerAction is the Lightspeed equivalent of TLcyCreateGXYLayerAction
- TLcyLspCreateControllerActiveSettable is the Lightspeed equivalent of
ALcyGXYNewControllerActiveSettable
- TLcyLspSetControllerActiveSettable is the Lightspeed equivalent of
TLcyGXYSetControllerActiveSettable
ImprovementLucy (LuciadLightspeed)
Lightspeed vector formats: the new 'OBJECT_DEPENDENT' ElevationMode is now used as the default
for line, fill and icon style. This will not affect existing workspaces.
ImprovementLuciadLightspeed
In order to optimize visualization of vector data for a specific use case, the ELfnDataDensity property was added to
the coverage metadata.
It is a hint for the visualization how the visualization should be optimized:
- OVERVIEW is the optimal setting for vast otherwise not so detailed data, such as the world's coutries.
This is the default.
- DETAIL is the optimal setting for detailed data that does not need to be visible far towards the horizon,
such as roads or buildings.
ImprovementLuciadLightspeed
It is now possible to plug in custom implementations of a metadata store, for example a database implementation.
- ALfnBinaryMetadataStore provides the abstraction of a metadata store.
- Constructors were added to TLfnFileSystemTileStore to allow these implementations to be plugged in.
-
A method ALfnTileStore.close() was added, which custom implementations may override to clean up held resources,
such as database handles.
Application code that owns a Tile Store instance should call this method when appropriate.
ImprovementLuciadLightspeed
Calling getFocusPoint() on a Fusion vector feature no longer triggers the loading of the geometry tiles at the most
detailed level.
ImprovementLucy (LuciadLightspeed)
Fusion vector layers now support label configuration. The additional styling information is
also stored in workspaces.
ImprovementLuciadLightspeed
A new ogc.wfs.proxy.lightspeed sample has been added, showing how to visualize WFS data in a
Lightspeed view.
ImprovementLuciadLightspeed
A new ElevationMode 'OBJECT_DEPENDENT' can now be set on TLspLineStyle, TLspFillStyle and TLspIconStyle.
This elevation mode tries to derive the most appropriate elevation mode based on the object and geometry
that is being styled. The advantage of this new mode is that it is a good default when writing
a styler for generic data.
ImprovementLuciadLightspeed
Styles that support textures now have a new texture coordinate mode: VIEW_SCALED. This mode
preserves the size of the original texture image, which is necessary wehn applying a patterned fill.
ImprovementLuciadLightspeed
LCD-2617
Added extra methods to ALspCreateControllerModel that are called whenever object creation is cancelled or finished.
ImprovementLucy (LuciadLightspeed)
The table view now has a row filter that mirrors the filter on the layer the table view is
based on. This means that only objects that are visible on the map (not filtered) will have
an entry in the table view. The exception to this rule are objects that are made invisible
by unchecking the visibility column in the table view itself. Those objects are visible in the
table but not on the map.
ImprovementLuciadLightspeed
LCD-2199
An extra fireStyleChangeEvent method has been added to TLspStyleChangeSupport allowing to fire a TLspStyleChangeEvent
by passing the event as a parameter to the fireStyleChangeEvent method.
ImprovementLuciadLightspeed
The vertical view now uses anti-aliasing by default. This can be changed
with the setAntiAliasing method in TLcdDefaultVVRenderer, TLcdDefaultVVRendererJ2D and TLcdDefaultVVGridRenderer.
ImprovementLuciadLightspeed
LCD-1892
TLcdSymbol now implements ILcdResizeableIcon, allowing it to be resized.
ImprovementLucy (LuciadLightspeed)
A new add-on, TLcyLspMGRSGridAddOn, allows visualizing MGRS grids on Lightspeed maps.
ImprovementLuciadLightspeed
The default constructor of TLcdSLDMark now initializes a default fill and stroke.
This makes it ready for use inside a symbolizer without additional configuration.
ImprovementLuciadLightspeed
A few classes that were needed to decode OGC filters with the old XML framework have
now been marked as deprecated. The new TLcdOGCFilterEncoder and TLcdOGCFilterDecoder
classes are already in use for a number of releases.
ImprovementLuciadLightspeed
TLspLineStyle now has a new 'pixelOffset' property which allows you to draw a line at a fixed number
of pixels from the original geometry. This enables more complex cartographic symbology.
ImprovementLuciadLightspeed
TLcdSymbol now has a new type: a filled rectangle with a double outline.
ImprovementLuciadLightspeed
A new method has been added to ALspStyleTargetProvider: ALspStyleTargetProvider.getEditTargetsSFCT. This method behaves
like the getStyleTargetsSFCT. The difference is that it identifies which style targets are editable. This allows you to create
complex shapes and still be able to easily edit them. A sample has been added to demonstrate this in the
"samples.lightspeed.customization.arrows" package.
ImprovementLuciadLightspeed
TLspShader now allows loading shader source code from a String as well as from a file.
ImprovementLuciadLightspeed
TLspPrimitiveType now provides a getter for the corresponding TLcd3DPrimitiveType.
ImprovementLucy (LuciadLightspeed)
The maximum PermGen size was increased from 128 to 192 MB to compensate for the loading of extra
classes required by new functionality, especially in 3D views.
ImprovementLuciadLightspeed
TLcdOGCFilterFactory has been introduced to simplify creation of SLD filters.
ImprovementLuciadLightspeed
Creation of SLD/SE Feature Type Styles has been simplified: the key SLD classes now contain
builders to
create the most common types of styles with fewer lines of code compared to the SLD domain
model. This
reduces the overhead that might be associated with the use of SLD in your projects.
ImprovementLucy (LuciadLightspeed)
Visualisation of GeoJSON data on both a GXY and a Lightspeed view is now possible
thanks to the introduction of the TLcyGeoJsonAddOn and the TLcyLspGeoJsonFormatAddOn.
ImprovementLuciadLightspeed
LCD-1010
The handling of scale ranges in the GXY painter implementation of SLD has been aligned with how
scales
are computed for the TLcdGXYScaleIndicator.
ImprovementLucy (LuciadLightspeed)
LUCY-3378
TLcyWorkspaceAddon: now throws a clear exception when add-ons register workspace codecs
after the TLcyWorkspaceAddon is plugged. It used to cause subtle issues afterwards, but now
provides a descriptive message on application start.
ImprovementLuciadLightspeed
LCD-1892
The scale of a TLspIconStyle will now be applied directly to the icon if it implements ILcdResizable. This
allows the icon to paint itself with the best possible quality at the given size, and is similar to the behaviour in GXY.
ImprovementLuciadLightspeed
The Fusion Client now adds support for visualization of fused vector data in 2D and 3D Lightspeed views.
TLspFusionVectorLayerBuilder provides API for creating Lightspeed layers for Fusion vector models.
Styling can be done using default Lightspeed paradigms. GeoSym styling for fused VPF data is
supported out-of-the-box.
The features that are returned by the fusion vector model contain the full detail, which is lazily loaded upon
access.
This is perfect for limited amounts of features, but it does not scale well when handling features in bulk.
For visualization you do not need to worry about this because it is solved internally.
For custom use cases, the TLspFusionGeometryProvider supports retrieval of the multi-leveled, tiled geometry of a
feature.
This scales well whenever features need to be handled in bulk.
ImprovementLuciadLightspeed
The Fusion Client now adds support for visualization of fused raster data in 2D and 3D Lightspeed views.
ImprovementLuciadLightspeed
LCD-2612
Adding editors to the TLspShapeEditor is now easier. You no longer have to explicitly add the editor multiple times to support
their shapelists and
extruded variants. It is enough to add the editor, and it will automatically be picked up by the shape editor if the custom
domain object is
wrapped in an extruded shape or shape list.
ImprovementLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: addons.xml files can now include other files by using <include>
elements.
Please refer to chapter "Lucy addons" in the developer's guide for more information.
ImprovementLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: The priority of an addon can now be specified in the addons.xml file. This
allows
you to influence the order in which addons are loaded.
Please refer to chapter "Lucy addons" in the developer's guide for more information.
ImprovementLuciadLightspeed
LCD-355
ALcdGXYPen now handles shapes crossing the V-opening in a conic projection better. This improvement is enabled only
when straight line mode is disabled.
ImprovementLucy (LuciadLightspeed)
TLcyMSSQLDecoderAddOn is a new add-on which adds support for Microsoft SQL Server databases.
TLcyLspMSSQLFormatAddOn adds support for Microsoft SQL Server databases in a Lightspeed view.
ImprovementLuciadLightspeed
TLspBingMapsCopyrightIcon and TLspBingMapsCopyrightProvider have been introduced. These classes are
the Lightspeed equivalent of the TLcdBingMapsGXYCopyrightIcon and TLcdBingMapsGXYCopyrightProvider classes.
They facilitate showing Bing Maps copyright information on a Lightspeed view. Their usage is illustrated
in the new Lightspeed BingMaps sample (see bingmaps.lightspeed in the samples directory).
ImprovementLucy (LuciadLightspeed)
Visualisation of BingMaps data on a Lightspeed view is now possible thanks to the
introduction of the TLcyLspBingMapsFormatAddOn.
ImprovementLucy (LuciadLightspeed)
The GXY discretization parameters of the default vector formats can now be changed in the
configuration file of the TLcyDefaultDecodersAddOn.
ImprovementLucy (LuciadLightspeed)
Visualisation of AIXM 5.0 and 5.1 data on a Lightspeed view is now possible
thanks to the introduction of the TLcyLspAIXM5FormatAddOn and TLcyLspAIXM51FormatAddOn.
ImprovementLucy (LuciadLightspeed)
ALcyLspStyleFileFormat has been added to the API. This class provides support to create an
ALcyLspFormat where the styles are stored in a file. Consult the javadoc of that class for more
information.
ImprovementLuciadLightspeed
TLcdUtmMgrsUtil now has a utmXY2UtmMgrs() and a utmMgrs2UtmXY() method. These methods convert
between UTM grid coordinates and UTM MGRS Strings.
ImprovementLuciadLightspeed
Added the com.luciad.format.geojson package. This includes a GeoJson model encoder (TLcdGeoJsonModelEncoder) and a
GeoJson model decoder (TLcdGeoJsonModelDecoder).
ImprovementLuciadLightspeed
LCD-2641
It is now possible to configure the spacing between the grid lines of a lon-lat grid.
See com.luciad.view.lightspeed.painter.grid.TLspLonLatGridLayerBuilder.spacingRange() for
details.
ImprovementLuciadLightspeed
MGRS grids can now be displayed in a Lightspeed view using the new TLspMGRSGridLayerBuilder.
This is demonstrated in the grid sample.
ImprovementLuciadLightspeed
Improved bounds transformations from geocentric to geodetic when the geocentric bounds
contain a pole.
ImprovementLuciadLightspeed
New API was added to allow for the quick implementation of an action that works on the currently selected
objects: ALcdObjectSelectionAction.
ImprovementLuciadLightspeed
Introduced TLcdDomainObjectContext in the API. This class is a container for information about
a domain object.
ImprovementLuciadLightspeed
LCD-2566
The SLD decoders now avoid adding default values that are not specified in the XML or as a
default value in the
SLD schema. This ensures that an SLD can be decoded and encoded without making (small) changes
to the data.
ImprovementLucy (LuciadLightspeed)
A new class ALcyWorkspaceObjectCodecWrapper was introduced. It follows the decorator design
pattern to enhance an existing workspace codec.
ImprovementLuciadLightspeed
Added support for ILcdVariableGeoBuffer. TLspShapeDiscretizer and TLspShapeEditor, which uses
the newly added TLspVariableGeoBufferEditor, now also support this shape.
ImprovementLucy (LuciadLightspeed)
TLcyJPIPDecoderAddOn is a new add-on which adds support for JPIP (JPEG2000 Interactive
Protocol). JPIP servers can be accessed by choosing "File - Connect To..." from the menu and
entering the appropriate URL.
TLcyLspJPIPFormatAddOn adds support for JPIP images in a Lightspeed view.
ImprovementLuciadLightspeed
LCD-2628
Labels are now not painted when the label styler specifies an ALspStyleTargetProvider that
does not provide any shapes (see ALspLabelStyleCollector.geometry(ALspStyleTargetProvider)).
ImprovementLuciadLightspeed
TLcdVVTerrainModel was added. This ILcdVVModel makes it possible to display a
terrain profile in a vertical view.
ImprovementLucy (LuciadLightspeed)
The vertical view add-on, TLcyVerticalViewAddOn, now updates the vertical view automatically
when selecting a new (poly)line or a new map. The map chooser and 'Update From' button were
removed. A lock button was added in order to make it possible to lock the vertical view on a
specific (poly)line.
Also, vertical view updates now happen asynchronously.
ImprovementLucy (LuciadLightspeed)
The vertical view add-on, TLcyVerticalViewAddOn, now also supports showing terrain profiles
from Lightspeed views.
ImprovementLucy (LuciadLightspeed)
A new add-on, TLcyLspDrawingAddOn, allows visualizing, creating and editing drawing shapes on
Lightspeed views.
ImprovementLucy (LuciadLightspeed)
LUCY-2315, LUCY-632
The TLcyPreviewAddOn now works on all map components at the same time instead of only on one map
component. It can now also handle all types of map components (2D and 3D map components).
ImprovementLuciadLightspeed
LCD-2619
A new sample "Lightspeed: styling editing handles " shows how to customize the visualization of
editing handles.
ImprovementLuciadLightspeed
Introduced ALcdActionWrapper, a decorator for ILcdAction instances.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: the actions to convert a circle to a sphere/dome showed a dialog allowing to
specify the height, but the height was not used. This dialog has been renewed. It now allows to
specify the height (for the base plate of the dome, or the center point of the sphere) and
indicate
whether this height is specified above the terrain.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: the TLcySLDDomainObject now throws a clear exception when you try to set a
feature
to null. Previously it only logged a warning which could result in NullPointerExceptions later
on
without obvious cause.
ImprovementLuciadLightspeed
TLspShapeLayerBuilder and TLspShapePainter now support a hinting mechanism through which
users can bias the painter either towards higher performance or higher quality/correctness.
Currently, this mechanism can be used to change the way fills and outlines of overlapping
shapes are rendered. See TLspShapePaintingHints for details.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: converting a shape into a buffer no longer shows the UI to input the width and
end-cap style. Instead, intelligent default values are chosen. The width and end-cap style can
be modified afterwards in the object properties panel.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: converting a polyline into a 3D buffer no longer shows UI to input the width
and
the height. Instead, intelligent default values are chosen. The width and height can be modified
afterwards in the object properties panel.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: the intersection action now performs the calculations on a background thread.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: generics have been added to the TLcyDrawingFormat.getDomainObjectSuppliers
method.
ImprovementLucy (LuciadLightspeed)
Introduced TLcyLspCreateControllerActiveSettable which is the Lightspeed equivalent of
ALcyGXYNewControllerActiveSettable.
ImprovementLucy (LuciadLightspeed)
Introduced ALcyLspCreateControllerModel which is the Lightspeed equivalent of the
ALcyGXYNewControllerModel.
ImprovementLuciadLightspeed
LCD-2525
Improved memory usage in layers with invisible paint representations. This includes paint representations
that were invisible due to them being out of scale range.
ImprovementLucy (LuciadLightspeed)
Added support for visualizing ASTERIX plot data in the TLcyASTERIXDecoderAddOn.
ImprovementLucy (LuciadLightspeed)
The TLcyFormatBarAddOn now also works on Lightspeed maps.
ImprovementLuciadLightspeed
LCD-265, LCD-2494, LCD-2550, LCD-322
The MGRS (UTM and UPS) and Georef grid visualizations have received several small improvements to
increase the readability and consistency. The most notable improvement is the ability to paint labels
with a halo.
ImprovementLucy (LuciadLightspeed)
LUCY-2830
TLcyDrawingAddOn: the constructive geometry operations are now performed on a background thread
instead
of on the Event Dispatch Thread.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: generics have been added to the ALcyDomainObjectConverter#adapt method
ImprovementLuciadLightspeed
LCD-374
TLcdUTMZonePainter#setGridZoneColor now allows configuring the grid zone color separately
from the 100,000m square color.
ImprovementLuciadLightspeed
LCD-328
TLcdUTMZonePainter now also displays the grid zone latitude bands.
ImprovementLuciadLightspeed
LCD-214
Performance improvement for TLcdGXYPointListPainter.anchorPointSFCT() when
getAnchorPointLocation() is set to INSIDE_POLYGON and getPaintCache() is set
to true.
ImprovementLuciadLightspeed
LCD-298
The new sample gxy.highlight shows how to highlight domain objects when moving the mouse.
ImprovementLuciadLightspeed
The GXY samples have been moved to the gxy package, making it easier to differentiate them from
the Lightspeed samples.
ImprovementLuciadLightspeed
LCD-2433
A new GXY grid sample demonstrates the border grid, MGRS grid, Georef grid and lonlat grid.
In addition, the mouseLocation and gridSystems samples have been renamed and moved to the transformation
package.
ImprovementLucy (LuciadLightspeed)
The projection combo box above the map now shows more items before showing a scroll bar.
ImprovementLuciadLightspeed
The internal EPSG database has been updated to version 7.11.
ImprovementLucy (LuciadLightspeed)
The connection dialog for WMS and Fusion servers now features auto-completion for the URLs.
ImprovementLuciadLightspeed
LCD-2226
GXY rendering performance has been improved for shapes crossing the projection boundary.
ImprovementLuciadLightspeed
The introduction of TLcdScaleFormat allows for the parsing and formatting of scale values.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: creating a new text object now uses a default text instead of showing a dialog
prompting for text. The text can be adjusted after the object has been created in the object
properties panel.
ImprovementOGC Server
The WFS Server sample can now also serve features in the GeoJSON format, by passing 'json' or 'application/json'
as OutputFormat.
ImprovementOGC Server
A CORS (http://www.w3.org/TR/cors/) implementation is included, which can be activated by optionally
applying a servlet filter to the WFS servlet. This enables web applications that are not hosted on
the same server as the WFS servlet to send Ajax requests to the WFS servlet.
ImprovementOGC Server
The OGC SLD request handling class TLcdOGCSLDWMSCommandDispatcher now supports
the configuration of data models (TLcdDataModel) through a newly added constructor.
These data models are used for decoding XML feature data in SLD requests (i.e.,
SLD inline feature requests).
ImprovementReal-time Engine
A new, high-performing track visualization layer was added. It can handle large static point datasets.
See developer guide or TLspPlotLayerBuilder javadoc for details.
ImprovementReal-time Engine
LCD-2601
TLcdTrackModel: the memory usage of TLcdTrackModel has been lowered.
ImprovementReal-time Engine
LMAP-4013, LCD-8
Various configuration options were added to TLcdGXYContinuousLabelingAlgorithm and TLspContinuousLabelingAlgorithm:
- Use setClampOnScreenEdges to specify if labels can be partially outside the view.
- Use setLabelMovementBehavior to specify when labels should be moved.
- Use setMinDistance to ensure labels are never too close to their object.
- Use setMaxDistance to ensure labels are never too far from their object.
- Use setDisallowedAngle to specify where a label can be positioned around its object.
- Use setPadding to add space between labels.
ImprovementAviation Standards
AIXM data can now be visualized in a Lightspeed view using the new TLspAIXMStyler.
This is demonstrated in the new decoder.aixmcommon.lightspeed sample.
ImprovementDefense Standards
You can now visualize VPF data in Lightspeed according to the GeoSym styling standard, using the new
TLspVPFGeoSymStyler class. The geometries of the VPF domain object can be rendered with TLspShapePainter.
ImprovementRadar Connectors
LCD-2805
TLcdASTERIXTrajectory now also implements ILcdPolyline, which is an ILcdShape. This improves interoperability
with the rest of LuciadLightspeed.
ImprovementRadar Connectors
Added support for plots in the ASTERIX decoder. If an ASTERIX file or live-feed contains any plot data, it
will be output in a specific model with a TLcdASTERIXPlotModelDescriptor. The model will contain
TLcdASTERIXPlot elements, which can be visualized using any painter capable of painting ILcdPoint instances.
ImprovementTiling Engine
LuciadFusion now supports fusion of vector data retrieved from an Oracle Spatial database.
ImprovementTiling Engine
LuciadFusion now supports fusion of raster data retrieved using the JPEG2000 Interactive Protocol (JPIP).
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: it was not possible to change any WMS layer properties directly in the
3D view after copying a WMS layer from 2D to 3D.
Bug fixLuciadLightspeed
LCD-3059
Creating 3D polylines now properly takes into account any altitude exaggeration on the view.
Bug fixLucy (LuciadLightspeed)
TLcySLDDomainObject now implements ILcdInvalidateable.
Bug fixLuciadLightspeed
LCD-1478
The checkboxes for enabling/disabling individual coverages in the fusion.client.proxy3d sample now work correctly.
Bug fixLuciadLightspeed
LCD-1484
Visualization of fused VMAP2i vector data could result in the GeoSymStyleProvider throwing a NullPointerException.
This has now been fixed.
Bug fixLucy (LuciadLightspeed)
The customizer panel factory for the TLspDataObjectLabelTextProviderStyle instances no longer
accepts
a TLcyLspCustomizableStyleContext when it does not find any properties in the data model of the
model
descriptor. This avoids that an empty customizer panel is created which always return false for
the
isChangesValid method.
Bug fixLucy (LuciadLightspeed)
The TLcyLspVectorFormat no longer provides labeling support when the data model of the model
descriptor
has no known properties.
Bug fixLucy (LuciadLightspeed)
LUCY-3737
The object properties panel and the table view did not update for changes to the time duration
format (Edit|Duration Format).
Bug fixLuciadLightspeed
Properties of Fusion vector features having a data type which is not supported by Fusion are now decoded as null
values, instead of default instances of the data type's instance class.
Bug fixLucy (LuciadLightspeed)
LUCY-3722
TLcyGridCoordinateAddOn: when the 'point selection' mode was used in the grid coordinate pnael,
and the selected object was removed before it was deselected a NullPointerException used to
occur.
Bug fixLuciadLightspeed
The glyphs of a TLspStrokedLineStyle no longer deform near the poles when painted in a
2D view.
Bug fixLucy (LuciadLightspeed)
Table view: the export to CSV action used the wrong column names when the column order in the
JTable was different from the column order in the table model.
Bug fixLuciadLightspeed
LCD-2642
TLspScaleIndicator#getLabel() now behaves like a standard getter, whereas previously it
created a new label every time it was called.
Bug fixLuciadLightspeed
LCD-2991
The TLspSelectControllerModel could sometimes return too few selection candidates when the
terrain was set to invisible in a 3D view.
Bug fixLuciadLightspeed
LCD-2768, LCD-2919
TLspRulerController now uses the configured style also for de-selected measurements.
Before, it used a hard-coded thin red line.
Bug fixLuciadLightspeed
LCD-2919
TLspRasterLayer: the raster layer ignored the levelSwitchFactor for interactive raster layers
with an Earth model.
Bug fixLuciadLightspeed
LCD-2841
TLspLabelingAlgorithm often reused previous placements, event if they become invalid.
In order to fix this for custom ALspLabelLocationProvider implementations,
ALspLabelLocationProvider now contains an isValidLocation() method, which can be
implemented.
Bug fixLuciadLightspeed
LCD-684
Some datum transformations from references retrieved with TLcdEPSGReferenceParser were
incorrect.
Bug fixLuciadLightspeed
TLspLabelPainter didn't handle the ALspStampLabelLocation world rotation offset correctly in
all cases.
Bug fixLuciadLightspeed
TLspShapeEditor and TLspShapeListEditor now correctly support recursive shapelists. (i.e. shapelists within shapelists)
Bug fixLuciadLightspeed
Fix NPE when adding a null styler to TLspLabelPainter.
Bug fixLuciadLightspeed
LCD-2581
In some cases, lon lat grid labels were missing.
Bug fixLuciadLightspeed
During creation, TLspLonLatHeightBufferEditor now determines the initial width based on the
length of the first segment of the axis.
Bug fixLuciadLightspeed
LCD-2494
TLcdUTMZonePainter no longer paints scale labels in the UPS zones.
Bug fixLuciadLightspeed
LCD-2468
The terrain no longer contains gaps. Previously there could be small gaps in the terrain in some
world references.
Bug fixLucy (LuciadLightspeed)
LUCY-3619
TLcyDrawingAddOn: the constructive geometry operations could throw ClassCastExceptions when
working
on custom domain objects. For example the lucy.drawing.customdomainobject sample would throw
such
an exception when performing a constructive geometry operation on the custom domain object.
Bug fixLuciadLightspeed
LCD-120
TLcdUTMZonePainter now respects the label color settings for all labels.
Bug fixLucy (LuciadLightspeed)
LUCY-3521
The TLcyDataFormatManager could end in an infinite loop when trying to open files which could
not be opened on any of the available maps. The data format manager now only tries to open the
data on the requested map, and in case that fails it asks one more time if you want to open the
data on another map (when another map is available). No other attempts are performed when the
data can not be loaded on the second map either.
Bug fixLucy (LuciadLightspeed)
TLcyGXYTouchNewControllerActiveSettable: the constructor which accepted an
ILcdGXYController as parameter did not add any behavior to the regular
TLcyGXYSetControllerActiveSettable. Using
that constructor might also cause a NullPointerExceptions when you double-click the active
settable.
Therefore this constructor has been removed. In case you are affected by this change,
use the TLcyGXYSetControllerActiveSettable class instead.
Bug fixLuciadLightspeed
LCD-2710
Improved the accuracy of TLcdUTMZone#getMaxXYBounds.
Bug fixTiling Engine
LF-358
The Fusion ECDIS format now uses the ENC cell's compilation scale for determining the pixel density, instead of the
navigational purpose. The compilation scale is a better indicator of the maximum scale (and thus fusion depth) at
which the data should be used.
Bug fixTiling Engine
LF-356
Complex polygons containing duplicate polygons are unsupported by fusion.
However, fusion's behavior was not consistent: sometimes it silently accepted those polygons, and sometimes it
failed with the error message "Unsupported polygon: sequence of end points without intermediate begin point".
This has now been fixed so that fusion
always
fails on those polygons with the error message "Complex polygon contains duplicate polygons".
There was a bug in VPF which was a common source of this type of unsupported polygons. This bug has now been fixed
as well.
Bug fixTiling Engine
LF-351
Sometimes, when a polygon fully covers a tile but touches it on the edge, it could happen that the affected tile was
missing its parts of the geometry's fill.
When visualizing the fused data, this could lead to unexpected "holes", or in the worst case, an
IllegalStateException with message "Got N fills".
This has now been fixed.
Upgrade considerationLuciadLightspeed
ALspDensityStyle and its descendants no longer implement ILspWorldElevationStyle. The elevation
mode property defined in the density styles was redundant, as there is an equivalent setting in
TLspDensityLayerBuilder which took precedence. Code that used the elevationMode() method of the
density style builders will now result in a compilation error; it should be updated to call the
elevationMode() method on TLspDensityLayerBuilder instead.
Upgrade considerationLuciadLightspeed
The new 'OBJECT_DEPENDENT' ElevationMode is now used as the default for TLspLineStyle, TLspFillStyle, TLspIconStyle and
TLspWorldSizedLineStyle. This greatly simplifies the creation of styles and stylers, as this elevation mode will
provide the best result in most cases. Customers that use a 3D view and rely on the previous
default (ABOVE_ELLIPSOID) may want to update their stylers to explicitly use ABOVE_ELLIPSOID.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-3718
The DockableWorkspaceCodecDelegate had a dependency on the withay third party lib to
encode/decode to/from Base64. This dependency has been replaced by a dependency on
apache.commons.codec .
Upgrade considerationLuciadLightspeed
The structure of the jar files has been changed:
- lcd_earth_3d.jar has been merged into lcd_3d.jar
- lcd_wms_client_tiled.jar has been merged into lcd_wms_client.jar
- lcd_beans.jar is no longer present in the release
If you copy the new jar files over your existing ones, you should delete the old jar files mentioned in the list.
Upgrade considerationLuciadLightspeed
The 'blend overlap' property of TLspLineStyle is now represented by an enumeration that
allows setting the mode to 'AUTO'. This new mode is also the new default, so existing applications
that required that blendOverlap was set to false, will now have to set it to 'NEVER'. Do
note that the new 'AUTO' mode will result in the correct behaviour in most cases.
The default styler for shape layers has also been adapted to use this 'AUTO' mode.
Upgrade considerationLuciadLightspeed
A new method, isNormalized(), has been added to ILspVertexAttribute. This allows users to
describe whether a vertex attribute is normalized, i.e. in the [0, 1] range, or not. This
flag is used internally when calling glVertexAttribPointer().
Upgrade considerationLuciadLightspeed
ILspEditor no longer extends ILcdUndoableSource. As a result, it is no longer possible to attach undoable listeners to
editors in general. The functionality has been moved to TLspEditOperationResult. This object now stores an undoable. Like
before,
each edit operation will create a TLspEditOperationResult. This now has a getUndoable() and a constructor that allows you
to
supply the result with an undoable.
So how does this affect your editors? The following rules should apply:
- If you haven't customized any editors: No change in your code should be required.
- If you implemented a simple ALspEditor: Everything should work without change to your code. ALspEditor itself has been modified
internally
to work with the new undo behavior. This will still propagate correctly to the edit controller.
- If you implemented an ALspEditor that delegates to another editor: Make sure that you check the TLspEditOperationResult
of your delegate first. If this contains an undoable, you should pass this undoable
- If you implemented a fully custom ILspEditor: The same rules apply as the bullet point above. Also, if you generate
your own undoables, be sure to create new TLspEditOperationResult objects that contain them, instead of firing
the undoable as you would before.
A general rule is that, if you had the following code:
@Override
public TLspEditOperationResult edit(...){
//Do edit
ILcdUndoable undoable = ...
fireUndoableEvent(new TLcdUndoableEvent(this, undoable));
return TLspEditOperationResult.SUCCESS;
}
You should replace it with:
@Override
public TLspEditOperationResult edit(...){
//Do edit
ILcdUndoable undoable = ...
TLspEditOperationResult result = new TLspEditOperationResult(isSuccesful, isInvalid, undoable);
return result;
}
Upgrade considerationLuciadLightspeed
The TLspExtrudedShapeEditor no longer returns true for the canEdit method in case its delegate can edit the shape,
for consistency with all the other editors. Now each ALspEditor only accepts shapes it can edit itself. The new
recommended way to create an editor that supports both extruded shapes and a specific delegate shape is as follows:
TLspCompositeEditor compositeEditor = new TLspCompositeEditor();
compositeEditor.addEditor(new TLspExtrudedShapeEditor(compositeEditor));
compositeEditor.addEditor(new TLsp2DPointListEditor());
The example above works for when you want an editor that edits both 2D pointlists and extruded 2D pointlists.
Upgrade considerationLuciadLightspeed
Some methods in ALspStyleCollectorWrapper and ALspLabelStyleCollectorWrapper have been made final.
These methods now convert the argument and forward the call to another method of the wrapper class.
An example is the 'object' method, which wraps its argument in a Collection and forwards the call
to the 'objects' method. Now it is no longer needed to override both the 'object' and 'objects' method,
but it is sufficient to override the 'objects' method.
In case you have overridden one of the affected methods, you will get a compile error. Normally, you
can just delete that overridden final method. The custom behavior of that method should already be
included in the other method, otherwise your extension violated the documentation. So in case you had an
extension of ALspStyleCollectorWrapper containing the following code:
@Override
public ALspStyleCollectorWrapper object( Object aObject ){
doSomethingCustom( Collections.singleton( aObject ) );
return super.object( aObject );
}
@Override
public ALspStyleCollectorWrapper objects( Collection<? extends Object> aObjects ){
doSomethingCustom( aObjects );
return super.objects( aObjects );
}
You can just delete the custom 'object' method.
Upgrade considerationLuciadLightspeed
A third library dependency on Batik 1.7 has been added to support the use of SVG
in Symbology Encoding 1.1.0 styles. Existing users of SLD will need to include Batik
in their build process if they require support for SVG. If SLD is not used or if
SVG support inside these styles is not needed, the Batik libraries are not required.
Upgrade considerationLuciadLightspeed
ILspLabelPainter.getAnchorObject() can now also return ALspStyleTargetProvider instances.
These can for example return anchor objects in a different reference than the model
reference.
Upgrade considerationLuciadLightspeed
The signature of the ALspSwingLabelStyler.paintImage(JComponent, Dimension, TLspContext) method
was changed to ALspSwingLabelStyler.paintImage(JComponent, Dimension, Object, Object, TLspContext)
in order to provide more information about the label for which an image is created.
Upgrade considerationLuciadLightspeed
ILspLabelPainter.getAnchorObject now throws an TLcdNoBoundsException, to indicate that
no anchor object could be found.
Upgrade considerationLuciadLightspeed
TLspEditingStateEvent now extends from EventObject. Because of this, the constructor was
adjusted to include a source argument. Also the TLspEditingSupport constructor now has
a source argument.
Upgrade considerationLucy (LuciadLightspeed)
The TLcyPreviewAddOn now works on multiple maps. This has some consequences:
- The UI created in the TLcyPreviewAddOnCustomizerFactory no longer creates a
MAP_COMBO_BOX_COMPONENT
nor a MODEL_LIST_COMPONENT, but returns null for those components instead. The action to set
the time range of the simulator model has been moved from the MODEL_LIST_COMPONENT to the
layer
control.
- Next to adapting the time range from the layer control context menu, a new drop-down
button in the previewer UI allows to set the time range as well.
- As the previewer now works on multiple maps at the same time, the preview add-on will
contain simulator models from multiple maps. This affects both the events fired by the
preview
add-on as well as the result of the getSimulatorModel( int ) method on the preview add-on.
- The addSimulatorModel and removeSimulatorModel methods of the TLcyPreviewAddOn got
deprecated
in favor of the addSimulatorModelNoLayers and removeSimulatorModelNoLayers. The latter allow
to
add a simulator model to the preview add-on, but does not create any layers. The deprecated
methods
still create layers, but only for the first GXY map. This provides backwards compatibility
for
single map applications which used the add/removeSimulatorModel methods. Applications which
used
multiple GXY views in combinations with those methods will be affected. In that case it is
suggested
to use the new methods and manage the layers manually.
Upgrade considerationLucy (LuciadLightspeed)
Lightspeed map component: the invert selection modifier key has been changed to shift.
This can be changed in the TLcyLspMapAddOn configuration file
(TLcyLspMapAddOn.modifierKey.invert).
Upgrade considerationLuciadLightspeed
TLcdGXYLonLatHeightBufferPainter has been deprecated in favor of TLcdGXYBufferPainter and
TLcdGXYGeoBufferPainter.
Upgrade considerationOGC Server
The Batik libraries have been upgraded from version 1.5 to 1.7, to solve issues
with respect to SVG XML decoding. Users that are relying on SVG support inside the WMS
will need to update their build process accordingly. SVG can be used in the WMS
as map output format (through TLcdGXYViewSVGEncoder) or inside OGC Symbology Encoding
styles (in an SLD-enabled WMS). If SVG is not used, the Batik libraries are not
required.
Upgrade considerationAviation Standards
LCD-954
The 'getShape(int)' method of TLcdSegmentBasedRoute will no longer return the ILcd3DEditablePolyline that
was set with 'set3DEditablePolyline' for all indices. It will return a new clone of this instance for
each separate index instead. This makes this domain object thread safe for reading and avoids exceptions at runtime.
Upgrade considerationDefense Standards
LCD-2535
The SENSRB decoder has been updated to support latest official specification of December 2010. Files
that still use an old version of the specification will no longer decode.
2012.0
2012.0.20
Bug fixLuciadLightspeed
LCD-3012
TLspGXYLayerAdapters that were removed from the view could still be referenced by it.
Bug fixLuciadLightspeed
LCD-3042
The TLspCreateController no longer fires model changes when no edit operations have been performed. (For instance, if the
user clicked outside of the world)
Bug fixLuciadLightspeed
LCD-3041
The raster painter did not support raster styles with a ColorModel for models that do not
contain elevation data.
Bug fixLuciadLightspeed
LCD-3031
TLcdWFSProxyModelDescriptor mixed up the display and type name properties.
Bug fixLuciadLightspeed
LCD-3030
The WMS painter TLcdWMSProxyGXYPainter could not send map requests that exceeded
a 2000 by 2000 map size. If a view exceeded those values, a smaller map was requested
and scaled to match with the view, which could lead to coarse images. The painter has
been fixed and now only applies a map size limit when this is advertised by the server.
Bug fixLucy (LuciadLightspeed)
LUCY-3728
Certain multi-level raster models were accepted by the layer factory, but the layer factory
threw an error during the construction of the layer. This has been resolved.
Bug fixLuciadLightspeed
LCD-3017
Vector painting was improved to support using domain objects that are 'equal' (objects for which
the equals() method returns true). This could result in exceptions during painting.
Bug fixDefense Symbology
LCD-3020
The rendering of the MIL-STD 2525c symbol Munition Flight Path (2.X.4.2.2.5) sometimes
generated a NullPointerException stacktrace when the Date / Time text modifier was not
filled in.
2012.0.19
ImprovementLuciadLightspeed
LCD-2956
Improved the behavior of point list object creation when clicking outside of the bounds of the world.
ImprovementLuciadLightspeed
LCD-2798
Improvement to TLspEditController: Layer based property changes are now handled more fine-grained. Previously, all layer handles
would get
updated if a single layer had a visibility change. Now only the modified layer is updated.
ImprovementLuciadLightspeed
LCD-2958
TLcdEarthAsynchronousTileSet: the tile set now creates daemon threads by default. Previously
a java application would not exit naturally when it kept an (indirect) reference to this tile
set. Please refer to the documentation of the java.lang.Thread class for more details.
ImprovementLucy (LuciadLightspeed)
LUCY-2568
TLcyDrawingAddOn: when creating a drawing layer it is now possible to copy the reference of an
existing layer.
ImprovementLucy (LuciadLightspeed)
LUCY-3711
TLcyAIXM51RealtimeAddOn: changing the previewer time now results in fewer model changes to avoid
unnecessary repaints.
ImprovementLuciadLightspeed
LCD-2615, LCD-2977
ALspStampLabelLocation (and TLspStampLabelLocation) now support absolute view locations, i.e.
labels anchored to the screen origin. See ALspStampLabelLocation.LocationData.isAbsoluteViewLocation()
for more information.
Absolute label locations are used by the StickyLabelsController sample class. When registering
a layer to this controller using StickyLabelsController.registerLayer() (see also
AbstractLspPanel.createStickyLabelsLayerFilter()), labels are made absolute and sticky when
moving the mouse cursor over them. When this is done, labels don't move away from under the
mouse cursor, making it easier to select and edit them.
TLspLabelingAlgorithm now also contains an option not to reuse previous label locations,
see TLspLabelingAlgorithm.setReusePreviousLocations(). This option can be used to make sure
that labels don't remain at the incorrect location after hovering over them.
ImprovementDefense Symbology
LCD-1662
A number of unlabeled tactical line-based symbols in APP-6 and MIL-STD 2525 now have
a label corresponding to the general labeling guidelines for these type of symbols.
The following tactical line-based symbols have been updated:
- Wire obstacle symbols (MIL-STD 2525b/c: 2.X.3.1.11; APP-6A/B: 2.X.2.2.1.13)
- Forward line of own troops (FLOT) symbol (MIL-STD 2525b/c: 2.X.2.1.2.2; APP-6A/B: 2.X.2.1.1.2.2)
- Line of contact symbol (MIL-STD 2525b/c: 2.X.2.1.2.3; APP-6A/B: 2.X.2.1.1.2.3)
- Abatis symbol (MIL-STD 2525b/c: 2.X.3.1.2; APP-6A/B: 2.X.2.2.1.2)
- Antitank obstacle / ditch symbols (MIL-STD 2525b/c: 2.X.3.1.3.1, 2.X.3.1.3.2, 2.X.3.1.3.4;
APP-6A/B: 2.X.2.2.1.3.1, 2.X.2.2.1.3.2, 2.X.2.2.1.3.4)
- Ferry symbol (MIL-STD 2525b/c: 2.X.3.2.2.3; APP-6A/B: 2.X.2.2.2.2.3)
- Lane symbol (MIL-STD 2525b/c: 2.X.3.2.2.6; APP-6A/B: 2.X.2.2.2.2.6)
- Raft site symbol (MIL-STD 2525b/c: 2.X.3.2.2.7; APP-6A/B: 2.X.2.2.2.2.7)
- Fortified line symbol (MIL-STD 2525b/c: 2.X.3.3.3; APP-6A/B: 2.X.2.2.3.3)
- Foxhole, emplacement or weapon site symbol (MIL-STD 2525b/c: 2.X.3.3.4; APP-6A/B: 2.X.2.2.3.4)
- PAA rectangular symbol (MIL-STD 2525b/c: 2.X.4.3.2.6.1; APP-6A/B: 2.X.2.3.3.11)
- PAA circular symbol (MIL-STD 2525b/c: 2.X.4.3.2.6.2; APP-6A/B: N/A)
- Bearing line symbols (MIL-STD 2525b/c: 2.X.6.4; APP-6A/B: 2.X.2.1.1.2.5)
ImprovementDefense Symbology
LCD-1592
The position of the labels of a few tactical point symbols was not fully consistent with
the standard guidelines for these type of symbols. The following tactical point symbols
were affected and have been updated:
- MIL-STD 2525b: route points (2.X.2.1.1.6) and air control points (2.X.2.1.1.7)
- MIL-STD 2525c: route points (2.X.2.1.1.6), air control points (2.X.2.1.1.6),
sea surface control station points (2.X.2.1.1.9) and subsurface control station points (2.X.2.1.1.10)
- APP-6A: route points (2.X.2.1.1.8) and air control points (2.X.2.1.1.11)
- APP-6B: route points (2.X.2.1.1.7) and air control points (2.X.2.1.1.10)
Bug fixLuciadLightspeed
LCD-2994
Robustness improvements were made to vector painting to avoid a potential deadlock if an unexpected
exception occurs in a running application.
Bug fixLuciadLightspeed
LCD-2995
The view did not log instances of java.lang.Error (e.g., an out of memory error) that occur in asynchronous task. These
were also not propagated to the view's exception handler.
Bug fixLucy (LuciadLightspeed)
LUCY-3614
Custom 3D PIM icons were painted much too small.
Bug fixLucy (LuciadLightspeed)
LUCY-3720
The title of dialog to adjust the model settings when creating a new drawing layer has been
reverted to "Create a new Drawing layer", and can again be translated through the resource
files.
Bug fixLuciadLightspeed
LCD-2992
TLsp3DPointListEditor would create an extra point when ending creation with a right click (on the height-handle step). This
has been corrected.
Bug fixLuciadLightspeed
LCD-2989
Fixed issue that would draw an icon as pinpoints when their size is 0. Instead now, no icon will be visible.
Bug fixLuciadLightspeed
LCD-2982
In rare cases, labels would temporarily be blurred.
Bug fixLucy (LuciadLightspeed)
LUCY-3611
Cancelling a viewshed now no longer adds the partially generated viewshed to the viewhsed model.
Bug fixLuciadLightspeed
LCD-2983
Interactive labels sometimes start fading out or disappear for a very short while.
Bug fixLuciadLightspeed
LCD-2896
Improved the precision when transforming bounds to a grid reference in some cases.
Bug fixLuciadLightspeed
LCD-2968
Translation of arcs and circles using move2D() did not correctly move the bounds of the
objects.
This has been fixed now.
Bug fixLuciadLightspeed
LCD-2815
TLspCreateController now logs problems with initializing an object for creation.
Bug fixLuciadLightspeed
LCD-2964
Fixed a problem with the resize handles of Lon-Lat-Height Buffers in 2D Lightspeed views.
Bug fixLuciadLightspeed
LCD-2847
Double click events are no longer consumed by editing handles. This means you can now chain an edit controller with another
controller, and
the second controller will receive the double click events when objects are in the edited paint state.
Bug fixLuciadLightspeed
LCD-2733
Some TLspMoveDescriptors were wrongly labelled as a move in the XYZ plane, even though they were moves in the XY plane. These
have
been fixed to correctly reflect their constraint to not include a change in height.
Bug fixLuciadLightspeed
LCD-2875
Fixed wrap-around problems when editing TLcdLonLatBounds in certain projections
(regression since LCD-258).
Bug fixLuciadLightspeed
LCD-2938
The WCS proxy object TLcdWCSProxy could not cope with request bounds that cross the date line.
Bug fixLucy (LuciadLightspeed)
LCD-2937, LUCY-3736
Fixed nullpointer exception in KML that would occur for map components without balloon managers.
Bug fixLuciadLightspeed
LCD-2945
Fixed a performance issue when painting invisible objects with a halo.
Bug fixOGC Server
LCD-2939
The WCS server could not cope with GetCoverage requests that specified longitude/latitude
request that crossed the date line.
Bug fixAviation Standards
LCD-2966
Circular airspaces were painted as arcs instead of circles.
Bug fixDefense Standards
LCD-2948
Some VPF areas might contain the same outer or inner ring multiple times, which could cause the area to be
filled incorrectly. This has been fixed.
Bug fixDefense Symbology
The internal icon for the Artillery point symbol in APP-6B (2.X.3.1.2) was not correctly centered.
Bug fixDefense Symbology
The preview icon for the Abatis symbol in APP-6B (2.X.2.2.1.2) was not correct and has been fixed.
Bug fixDefense Symbology
LCD-2979
A bug has been fixed in the ILcdGXYEditor for L-shaped tactical symbols in APP-6 and MIL-STD 2525 (e.g., the
'Withdraw' symbol),
which sometimes resulted in an inaccurate calculation of one of the geometry points.
Bug fixDefense Symbology
LCD-2940
The Seize tactical symbol (MIL-STD 2525b/c: 2.X.3.1.7.3, APP-6A/B: 2.X.2.2.1.8.3)
is now defined by 3 points instead of 2 points, following the MIL-STD 2525b/c
and APP-6A/B specifications.
Bug fixDefense Symbology
LCD-2943
The edit lines of the Turn tactical symbol (MIL-STD 2525b/c: 2.X.3.1.7.3, APP-6A/B: 2.X.2.2.1.8.3)
were not redrawn during symbol editing on the map.
2012.0.18
ImprovementDefense Standards
LCD-1425
An exception is now thrown when the image file is not available at decoding time.
Bug fixLucy (LuciadLightspeed)
LUCY-3701
Lucy would throw a NullPointerException and fail to start up when the splash screen font was not
configured in the lucy.cfg file. Now it will just use a default font when the font is not
specified.
Bug fixLuciadLightspeed
LCD-2913
TLcdEarthGLTerrainPainter: the Earth terrain painter did not work correctly for some world
references such as grid references with a lambert conformal projection. Common world references
such as a geocentric reference or a grid reference with a mercator or equidistant cylindrical
reference were not affected.
Bug fixLuciadLightspeed
Moving or translating the GML shapes TLcdGML32LinearRing, TLcdGML31LinearRing and
TLcdGML2LinearRing did
not update the last point of the shape. This resulted in an incorrect representation when
encoding the shapes
to XML. It did not impact decoding or visualization because the last point is expected to be
the same as
the first point and therefore ignored by Luciad's software.
Bug fixLuciadLightspeed
LCD-2894
Some property change events fired by the TLspScaleIndicator had an incorrect property name.
Bug fixLuciadLightspeed
LCD-2894
Some property change events fired by the TLcdGXYScaleIndicator had an incorrect property name.
Bug fixLuciadLightspeed
LCD-2890
TLcdGeoTIFFModelEncoder did not correctly respect the configured level count.
Bug fixLuciadLightspeed
LCD-2877
In certain stereographic projections, TLcdUTMZonePainter's paint method could hang.
Bug fixLuciadLightspeed
LCD-2867
A number of issues have been fixed regarding import/export of coverages and DigestExceptions.
Import of a coverage could occasionally fail with a DigestException for no good reason. This has now been
fixed.
In case of a DigestException, the Future.get() did not throw while the exception was still propagated on
the handler. This has now been fixed: Future.get() now always throws upon a DigestException.
Bug fixLuciadLightspeed
LCD-904
TLcdDatabaseModel now has an isDirty() call to check if there are uncommitted changes.
Bug fixDefense Standards
A NullPointerException which could occur when a FACC feature did not have a value for an attribute
used by a GeoSym condition, has been fixed in the GeoSym style provider.
Bug fixDefense Standards
A potential threading issue in the VPF model implementation has been fixed. The issue (an exception being thrown)
could occur when querying models from multiple feature classes in the same coverage via applyOnInteract, on the
same tiles.
Bug fixMaritime Standards
LCD-2923
TLcdS57CatalogueModelDecoder now automatically picks up cell update files which are not in
the
catalogue file. This is particularly useful in the case of differential updates, where the
original catalogue file does not contain the cell update files, and the update catalogue
file
does not contain the original cell files. Differential updates can now be opened by copying
all
cell update files in the original ENC_ROOT dir, except for the catalogue file.
Bug fixS-63
LCD-2924
The S-63 model decoder can now handle meta permit files without a ':ECS' line declared in
them.
2012.0.17
ImprovementLuciadLightspeed
LCD-2850
The create controller now checks whether it can handle geometries produced by the styler before applying them. This makes
it possible to write
a styler that generates multiple geometries. As long as the editor in your layer can only handle one of those geometries,
the create controller
will be able to create the geometry for you.
ImprovementLucy (LuciadLightspeed)
LUCY-3697
The Edit | Date Time Format menu item now includes the MM-dd-yyyy HH:mm:ss and MM-dd-yy HH:mm:ss
formats by default.
ImprovementLucy (LuciadLightspeed)
LUCY-3697
TLcyMapEditUnitAddOn: it is now possible to add your own date time formats through the config
file using the patterns supported by java.text.SimpleDateFormat. Consult the map_units.cfg file
for more information.
ImprovementLuciadLightspeed
LCD-2743
Labeling algorithms can now optionally ignore previous locations. This is useful
if the previous location can become invalid, or if there is only one possible location.
See TLspLabelingAlgorithm.setReusePreviousLocations().
ImprovementLuciadLightspeed
LCD-1535
The performance of evaluating simple XPaths on XML based domain models has been improved.
For instance evaluating: 'myns:myElement/myns:Name' should be a lot faster. More complex
XPaths like '//myns:Name' are not affected by this optimization.
ImprovementLuciadLightspeed
LCD-2764
TLspHandleGeometryType now has a public constructor, so you no longer have to extend it to create a new one.
ImprovementLuciadLightspeed
TLcdGXYIconPainter no longer tries to paint icons without height or width.
Bug fixLuciadLightspeed
LCD-2806
The contains2D method and bounds computation methods of linear lon lat polygons could produce
wrong results for polygons that wrap around the date line.
Bug fixLucy (LuciadLightspeed)
LUCY-3700
TLcyDrawingAddOn: creating circular shapes with a saw tooth line style or curved line style
could
cause the circular shape to disappear.
Bug fixLuciadLightspeed
LCD-2849
The TLspFrustum.isBoundsVisible could sometimes return true for bounds that are actually not
visible.
Bug fixLuciadLightspeed
LCD-2851
Lightspeed raster layers no longer repaint from scratch when the OpenGL context is re-created.
This could for example occur when undocking a Lightspeed map in Lucy.
Bug fixLucy (LuciadLightspeed)
LUCY-3699
Copying a layer from a GXY to a Lsp view would throw an IllegalArgumentException when the
GXY layer had de-activated the halo for the labels.
Bug fixLuciadLightspeed
LCD-2855
The Apache HttpClient transport implementation did not support resending POST requests
when required for authentication.
Bug fixLuciadLightspeed
LCD-1564, LCD-182
TLcdLonLatPointFormat applied truncation rather than rounding to the smallest component of a formatted coordinate.
This could lead to formatting errors.
Bug fixLuciadLightspeed
LCD-2817
TLcdLonLatPointFormat incorrectly parsed strings containing a zero value for the degree component in certain cases.
Bug fixLucy (LuciadLightspeed)
LUCY-3217
It is now again possible to edit the layer properties of multiple raster layers of the same
format
at the same time.
Bug fixLuciadLightspeed
LCD-2835
The styling of lon lat grid lines could be incorrect in some cases.
Bug fixLuciadLightspeed
TLcdOWSDomain#getValues() did always return an empty array. This class is used inside
OWS (WFS, WCS, WMS) capabilities to model domain metadata.
Bug fixLuciadLightspeed
LCD-2814, LCD-3029, LCD-3053
TLcdGXYLayer: in some cases (e.g. in combination with SLD), labels could disappear.
Bug fixLuciadLightspeed
LCD-2811
Fixed possible, temporary, drawing artifacts when a considerable amount of data is loaded in the view and
the user is interacting with the view.
Bug fixOGC Server
TLcdOWSDomain#getValues() did always return an empty array. This class is used inside
OWS (WFS, WCS, WMS) capabilities to model domain metadata.
Bug fixReal-time Engine
LCD-2846
Labels placed using continuous decluttering would sometimes jitter.
Bug fixAviation Standards
LCD-2864
The turn direction of a procedure turn leg was not correctly taken into account
when it was explicitly set to LEFT or RIGHT.
Bug fixAviation Standards
LCD-2800
Procedure decoding will no longer fail if a bounds filter is used and the decoded procedure
does not have a bounds.
Bug fixAviation Standards
LCD-2800
Procedure decoding will no longer fail if a bounds filter is used and the decoded procedure
does not have a bounds.
2012.0.16
Bug fixInfrastructure Standards
LCD-2427
The DGN decoder now supports the full level filter syntax.
2012.0.15
ImprovementLuciadLightspeed
LCD-2786
Painting icons that are almost entirely transparent has been improved so that they remain visible until
the opacity is actually set to 0.
ImprovementLuciadLightspeed
TLcdSelectionSupport is now thread-safe.
ImprovementAdvanced Raster Connectors
LCD-2804
The performance of the MrSID models has been improved significantly. Due to this improvement the
model decoder may require a slightly larger buffer. The default buffer returned by
TLcdSharedBuffer.getBufferInstance is always large enough.
ImprovementAviation Standards
LCD-2803
The procedure transition from an aircraft position to an arc segment (for instance,
defined by an Arc-to-Fix) has been improved. The transition is now done on the side of the arc
that is closest to the current position of the aircraft.
ImprovementAviation Standards
LCD-2802
The procedure transition between an intercept leg (Course-to-Intercept or Heading-to-Intercept)
and a Course-to-Fix (CF) leg has been improved in the case the aircraft's position
is already very close to the path to be intercepted.
ImprovementAviation Standards
LCD-2796
The procedure transition between an Arc-to-Fix (AF) and Course-to-Fix (CF) leg has been
improved. The transition is now done on the side of the arc that is closest to the
destination fix of the CF leg, to avoid following the arc until the destination course
of the CF leg is intercepted at the complete opposite of the destination position.
ImprovementS-63
LCD-2789
The S-63 model decoder can now handle ENC cells without an DSID_EDTN issue number in their
permit file.
Bug fixLuciadLightspeed
LCD-2799
Fixed issue with TLspEditController that would cause a threading violation to be raised when
modifying an edited layer on a non-EDT thread. Modifying models outside of the EDT-thread is
perfectly valid, and works properly now.
Bug fixLuciadLightspeed
LCD-2785
Fixed issue with NetworkLinks not loading that were not explicitly set to have a ViewRefreshMode.
Bug fixLuciadLightspeed
LCD-2784
Icons visualized with TLspIconStyle are now better aligned with the pixels of the screen. This
avoid unwanted blurring of the icon which could sometimes be seen for certain sizes of the view.
Bug fixLuciadLightspeed
Fixed a possible deadlock when using a styler that checks if certain objects are selected.
Bug fixLuciadLightspeed
LCD-2776
The TLcdEarthGXYRasterPainter.clone method did not return a proper clone of the painter.
Bug fixAviation Standards
LCD-2801
The procedure transition from an aircraft position to a line segment (for instance,
defined by a Track-to-Fix) sometimes generated an unexpected S-curve at the start of
this segment.
Bug fixDefense Symbology
LCD-2782
The label painters for the Phase Line and Light Line symbols did not take into account
the style's labelFontScaling property, which made it impossible to use a custom font size.
2012.0.14
Bug fixLuciadLightspeed
LCD-2774
Transforming bounds from a geocentric or topocentric reference to a grid reference could
produce bounds that were bigger than expected.
Bug fixLuciadLightspeed
LCD-2772
Selection now ignores layer where isSelectableSupported() returns false, even if isSelectable()
returns true.
Bug fixLuciadLightspeed
LCD-2648, LCD-2750, LCD-2751, LCD-2757, LCD-2765
Several fixes for interactive labels:
- In some cases labels were painted twice, or not at all. This fix introduces a new
constructor in ALspSwingLabelStyler, with an ALspInteractiveLabelProvider as argument.
This constructor should be called when using a TLspInteractiveLabelsController. For an
example of how to use these classes, see the lightspeed.labels.interactive sample.
- ALspSwingLabelStyler now has an option to invalidate itself when model changes
are thrown.
- ALspSwingLabelStyler could cause components to be removed from the Swing hierarchy.
This fix also fixes view lags caused by ALspSwingLabelStyler, and fixes label
flickering.
- The paint state wasn't always correctly restored after moving away from an
interactive label
2012.0.13
ImprovementLucy (LuciadLightspeed)
LUCY-3688
TLcyLspMapAddOn: the Set Layer Reference to View action is now hidden for 3D Lightspeed maps.
ImprovementLuciadLightspeed
LCD-2762
Changed a few style default values to reflect default values found in schema.
ImprovementLuciadLightspeed
LCD-2533
TLspCreateController now allows the creation of objects that aren't directly shapes, but contain shapes indirectly through
stylers. This
works for the case when the domain object contains exactly one geometry.
Bug fixLuciadLightspeed
LCD-2756
When selecting 1 object, and then another, TLspEditController removed both objects from the
EDITED paint state.
Bug fixLuciadLightspeed
LCD-2755
ALspController.setCursor only had effect for active controllers. Now the cursor is picked
when the controller is being activated as well.
Bug fixLuciadLightspeed
LCD-2744
TLspLayer did not recalculate the visible set of objects when changing the view's world
reference while the view-world transformation remains unchanged.
Bug fixLuciadLightspeed
LCD-2741
Fixed an exception when painting raster data that has a model reference with a
TLcdPerspectiveProjection. This projection is sometimes used for ortho-rectified data.
Bug fixLuciadLightspeed
LCD-2554
The traffic indicator of the LuciadFusion client sample no longer violates Swing threading rules. This solves
occasional deadlocks when visualizing fusion data.
Bug fixLuciadLightspeed
LCD-2730
Property getters on classes generated from XML Schema's now return correct default values as defined in the
XML Schema, instead of zero (for primitive getters) or null (for non-primitive getters). Default values are no
longer explicitly set on the data object instances for XML attribute properties.
Bug fixReal-time Engine
LCD-2738
TLcdSimulator: the 'playInLoop' property no longer causes exceptions when the simulator model is
empty.
2012.0.12
ImprovementLuciadLightspeed
LCD-2724
The WMS painter TLcdWMSProxyGXYPainter now uses ImageIO instead of JAI to decode images,
to increase image format support (such as JPEG 2000).
ImprovementLuciadLightspeed
LCD-96
TLcdGeoTIFFModelEncoder now adds a TOWGS84GeoKey tag when encoding user-defined datums. TLcdGeoTIFFModelDecoder
will use this tag if present.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: Added progress reporting when exporting GeoTIFF files.
ImprovementLuciadLightspeed
TLcdEllipsoidUtil.intersection2DLSSFCT() was added. This method calculates the intersection
between two geodetic lines, defined by two pairs of points. Unlike
TLcdEllipsoidUtil.intersection2DLineSegments, which returns two intersection points, the
resulting intersection point is the one closest to one of the end points of the two given
segments.
ImprovementLuciadLightspeed
LCD-105
Added progress reporting capability to TLcdGeoTIFFModelEncoder.
ImprovementLuciadLightspeed
LCD-2719
Asynchronous layers can now use VolatileImages internally, potentially improving the
responsiveness of large ILcdGXYViews.
To benefit from this, change the view implementation to a TLcdGXYViewJPanelLightWeight view
without caching (see the setCachingMode method), and change the Java system property
"com.luciad.view.gxy.asynchronous.useVolatileImages" to true.
Bug fixLuciadLightspeed
LCD-2729
Fixed a regression in TLcdGXYAsynchronousPaintQueue's BODIES_AND_SKIP behavior that caused
needless repaints and the disappearance of labels and selected objects.
Bug fixLucy (LuciadLightspeed)
LUCY-3678
The Area Of Interest objects could not be modified through the customizer panel once the scale
of the
view had been changed (e.g. by zooming in/out using the scroll wheel of the mouse). This has
been
fixed.
Bug fixLuciadLightspeed
LCD-2720
TLcdGeoTIFFModelEncoder now always generates an END_BUSY status event if a START_BUSY was fired.
Bug fixLuciadLightspeed
LCD-2717
Some logging statements in com.luciad.concurrent.TLcdLockUtil were not thread-safe. As a result
you could get a ConcurrentModificationException when enabling logging for this class. This has been fixed.
Bug fixLuciadLightspeed
LCD-2718
In some cases, asynchronous layers would not update correctly when
used in a TLcdGXYViewJPanelLightWeight or TLcdMapJPanelLightWeight.
Bug fixLuciadLightspeed
LCD-2708
In some rare circumstances, TLcdGXYAsynchronousPaintQueueManager could throw a ClassCastException.
Bug fixLucy (LuciadLightspeed)
LUCY-3679
TLcyVPFDecoderAddOn: Loading a workspace with VPF data could perform some Swing calls on the
workspace thread.
Bug fixLucy (LuciadLightspeed)
LUCY-3676
The table view uses a filter on the layer, to filter the visibility of individual elements using
a column of check boxes. If another filter is already present on that layer, it can be that
the check box state doesn't match with the map visibility because of that other filter. This is
indicated using an exclamation mark. That exclamation mark could end up in other boolean columns
as well. Sample code samples.lucy.tableview.ModelObjectFilterTableCellRenderer has been updated
too.
Bug fixLuciadLightspeed
LCD-103
Improved TLcdGeoTIFFModelEncoder performance for most raster types.
Bug fixMaritime Standards
LMAP-5330
A potential memory leak in the S-52 display-priority ordered model has been fixed.
Bug fixTiling Engine
LF-329
Image coverages now correctly support odd tile resolutions. There are no longer any grid artifacts.
Upgrade considerationMaritime Standards
LCD-622, LMAP-6020
TLcdS57Point no longer extends from TLcdXYPoint. The geographical location of a TLcdS57Point
is
now stored in a TLcdS57Node, referenced by the TLcdS57Point. This matches better with the
S-57
domain model, and allows easier editing of data: when an S-57 feature is moved, all other
features sharing the same geometry are automatically moved as well. Applications are only
affected if they explicitly cast TLcdS57Point instances to TLcdXYPoint. You can easily solve
this by either casting to an ALcd2DEditablePoint or a TLcdS57Point instead. There are no
methods
removed from the TLcdS57Point API.
2012.0.11
ImprovementLucy (LuciadLightspeed)
LUCY-3664
TLcyMapAddOn: georeferenced images saved by "File | Save As Image | Map" are now also added to
the list
in "File | Recent Files".
ImprovementLucy (LuciadLightspeed)
The drawing addon now supports the the variable 3D buffer.
ImprovementLucy (LuciadLightspeed)
LUCY-2004
Opening a DTED file no longer shows the ARINC decoder as possible file decoder.
ImprovementLuciadLightspeed
A variable geobuffer shape was introduced, ILcdVariableGeoBuffer. This shape represents a
corridor around a given (3D) polyline, adding a width and height to the shape that is defined
for every polyline point. It has one implementation, TLcdLonLatHeightVariableGeoBuffer. This
shape can be painted and edited using TLcdGXYGeoBufferPainter.
ImprovementLuciadLightspeed
LCD-2541
All OGC XML schemas included in the release have been updated to the latest version in
order to comply with the new OGC XLink policy. All XML decoders will continue to
support both XML formats that still use the OGC XLink schema and formats that use the
W3C XLink schema. This ensures that existing applications can continue to work without
changes.
Users of custom XML formats that depend on XLink by using 'xlink:simpleLink' in their
schema are encouraged to check the correctness of their schema. The OGC XLink schema
has been removed from 'http://schemas.opengis.net', but you can still find it in the release.
More information about the change made by the OGC can be found at:
http://www.opengeospatial.org/blog/1597.
ImprovementWeather & Environment Standards
LCD-1409
Decoded models will no longer have a null reference.
ImprovementAviation Standards
LCD-2629
The discretization step size used by TLcdProcedureGeometryCalculator to discretize
procedure arcs can now be configured through the new methods
set/getDiscretizationResolutionAngle.
ImprovementAviation Standards
The default constructors for the AIXM 5.x message and geometry classes (e.g. TLcdAIXM51AbstractAIXMMessage,
TLcdAIXM51Point, TLcdAIXM5ElevatedSurface, ...)
now set the model reference or srs by default to "urn:ogc:def:crs:EPSG::4326". This is the default WGS84 geodetic
reference with lat/lon axis order, and
is defined to be the default reference for AIXM 5.x data. Do note that you still need to ensure that the correct
reference is set when using GML geometries, as there
is no default reference defined for GML.
ImprovementDefense Symbology
LCD-1617
All task symbols in the tactical graphics category in MIL-STD 2525b/c (2.X.1.*)
and APP-6A/B (2.X.1.1.*) can now have a label based on the Unique Designation modifier.
ImprovementDefense Symbology
LCD-1663
It is now possible to render the following symbols with more than two points:
- Forward Edge Of Battle Area (FEBA) symbol (MIL-STD 2525b/c 2.X.2.4.2.1, APP-6A/B 2.X.2.1.4.2.1)
- Direction of Aviation Attack symbol (MIL-STD 2525b/c 2.X.2.5.2.2.1, APP-6A/B 2.X.2.1.5.2.2.1)
- Direction of Ground Main Attack symbol (MIL-STD 2525b/c 2.X.2.5.2.2.2.1, APP-6A/B 2.X.2.1.5.2.2.8)
- Direction of Ground Supporting Attack symbol (MIL-STD 2525b/c 2.X.2.5.2.2.2.2, APP-6A/B
2.X.2.1.5.2.2.7)
Bug fixLuciadLightspeed
LCD-2691
An exception could occur when doing a bounds or touched query on a layer, while the data in that layer
was being updated. This should no longer occur now.
Bug fixLuciadLightspeed
LCD-2541
The WMS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixLuciadLightspeed
LCD-2541
The WFS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixLuciadLightspeed
LCD-2541
The WCS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixLuciadLightspeed
LCD-2541
The OGC Filter XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead
of the
OGC variant that was used before.
Bug fixLuciadLightspeed
LCD-2541
The SLD XML schema's have been updated. The new versions now refer to the official W3C XLink
schema, instead of the
OGC variant that was used before.
Bug fixLucy (LuciadLightspeed)
LUCY-3669
TLcyEarthAddOn: the export to Earth terrain functionality did not work from a 3D view with it
contained Earth layers.
Bug fixLucy (LuciadLightspeed)
LUCY-3657
TLcyDrawingAddOn: intersections can now also be calculated for meridians.
Bug fixLucy (LuciadLightspeed)
LUCY-3659
TLcyOpenFlightDecoderAddOn : textures next to the OpenFlight file can now be found even
when you drag the file from your file explorer to Lucy in Linux.
Bug fixLucy (LuciadLightspeed)
LUCY-3653
LucyDebug.sh now also works when Lucy was installed in a path containing space characters.
Bug fixLucy (LuciadLightspeed)
LUCY-2138
TLcyToteAddOn: removing an element of a layer shown in a table view no longer throws exceptions.
Bug fixLuciadLightspeed
LMAP-2541
The GML schema's have been updated. The new versions now refer to the official W3C XLink
schema, instead of the
OGC variant that was used before.
Bug fixLuciadLightspeed
LCD-2666
TLcdEarthImageCombiner: image tile combiner now correctly supports odd tile sizes.
Bug fixLucy (LuciadLightspeed)
LUCY-1808
TLcyDrawingAddon: several issues in converting a legacy redlining file (.red) to a Drawing file
have been fixed:
- geodetic points were sometimes converted into grid points
- not all georeferences supported by redlining files were supported in the Drawing
format
- the vertical alignment of texts was not converted correctly
- the display name was lost
Bug fixLucy (LuciadLightspeed)
LUCY-1334
The S-57 decoder addon is now loaded when the S-63 library is not present in the class path,
even if S-63 is enabled
in the S-57 decoder config file.
Bug fixLucy (LuciadLightspeed)
LUCY-3648
Saving the default aircraft performance settings for AIS procedures to a file has been
fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2356
When opening a new 2D map in the samples, it had different colors than the original map.
Bug fixLucy (LuciadLightspeed)
LUCY-1981
Full screen mode on Windows now also covers the task bar when it isn't at the bottom.
Bug fixLuciadLightspeed
LCD-2582
Selection of fused vector data features no longer behaves over-eager for shapes that have no fill or outline.
Bug fixLuciadLightspeed
LCD-2559
GML and the derived formats such as AIXM 5.x now support 'NAD83', as srsName. This code is
considered the same as EPSG:4269, but added
for compatibility reasons. Users are encouraged to use the official OGC srsName
'urn:ogc:def:crs:ogc:epsg::4269'.
Bug fixOGC Server
LCD-2541
The WMS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixOGC Server
LCD-2541
The WFS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixOGC Server
LCD-2541
The WCS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixWeather & Environment Standards
LMAP-5892
TLcdGRIBWindIcon is now painted correctly: wind barbs for speeds above 100 knots are painted
as multiple triangles instead of squares.
Bug fixInfrastructure Standards
LCD-866
The DWG decoder can now handle large files, and gives a proper error when the file is too large.
Bug fixInfrastructure Standards
LCD-2658
The DWG decoder was upgraded to use the recent ODA 3.6 library.
Bug fixMaritime Standards
LMAP-5342
A threading issue in the creation of strokes inside the S-52 rendering engine, which could
have
resulted in unexpected NullPointerExceptions, has been fixed.
Bug fixMaritime Standards
A bug in the boundsSFCT method of the S-52 painters, which could have resulted in
NullPointerExceptions, has been fixed.
Bug fixMaritime Standards
LCD-2538
A bug in the cloning operation of S-52 painters has been fixed. This solves potential
concurrency issues when using clones of these painters.
Bug fixMaritime Standards
The ECDIS layers now support ECDIS painters which are wrapped in a
TLcdGXYClippingPainterWrapper.
Bug fixTiling Engine
LF-353
When multiple assets use a common source file but a different clipping shape, the fused result now correctly
contains all contributions.
2012.0.10
ImprovementAdvanced GIS Engine
LMAP-3103
The classes TLcdSphereRhumblineUtil and TLcdEllipsoidRhumblineUtil, which support topology calculations with rhumblines, have
been added.
These classes have been used to implement the following topology calculations: polygon-polygon, polygon-polyline, polyline-polyline
with rhumbline properties.
ImprovementAdvanced GIS Engine
LMAP-1081, LMAP-2652
TLcdEllipsoidalBasicBinaryTopology now supports ILcdBounds.
Bug fixLuciadLightspeed
LCD-2645
Fixed some possible NullPointerExceptions in TLcdModelReferenceMetadata.
Bug fixLucy (LuciadLightspeed)
LUCY-3640
TLcyFileWorkspaceCodec#decodePath could return a String which was not accepted by a
TLcdInputStreamFactory
when decoding a path in a workspace which was opened using drag-and-drop under Linux.
Bug fixAdvanced GIS Engine
LCD-1659
Due to tolerance considerations TLcdEllipsoidalAdvancedBinaryTopology's topology check sometimes
mistook touching shapes for overlapping shapes. This has been fixed.
Bug fixAdvanced GIS Engine
LMAP-4642
TLcdEllipsoidUtil can now also compute contours of ILcdGeoBuffer instances that have as base shape an
ILcdPolygon, ILcdComplexPolygon, and ILcdPoint.
2012.0.09
ImprovementLuciadLightspeed
LCD-2571
TLcdDataTypeMapping now supports transformation of collection type SET to collection type LIST.
ImprovementOGC Server
LCD-2610
It is now possible to avoid loading the EPSG, AUTO and/or AUTO2 reference codes
in the WMS capabilities by leaving out their configuration parameters in the
web.xml file.
ImprovementAviation Standards
LCD-2604
The Marker ARINC handler (TLcdARINCMarkerHandler) can now cope with records that do not specify
the Marker type (although this is required by the specification). Instead of causing an error,
the handler now uses TLcdMarkerType.UNKNOWN as value in this case.
ImprovementAviation Standards
LCD-2603
The ILS ARINC handler (TLcdARINCLocalizerGlideSlopeHandler) can now cope with records that do
not specify the ILS category type (although this is required by the specification). Instead of
skipping the record, the handler now uses TLcdILSMLSCategoryType.UNKNOWN as value in this case.
ImprovementAviation Standards
LCD-2603, LCD-2604
The type safe enumeration classes TLcdMarkerType and TLcdILSMLSCategoryType have both been extended
with an UNKNOWN value, to represent respectively an unknown marker or ILS / MLS category.
Bug fixLucy (LuciadLightspeed)
LUCY-3627
When connecting to an ArcSDE server, several of the dialogs were displayed on the wrong thread.
This
has been corrected and they are now created and shown on the Event Dispatch Thread.
Bug fixLucy (LuciadLightspeed)
LUCY-2585
TLcyDrawingAddOn: creating a composite ring/curve and disposing the map afterwards could result
in
an exception stating that the specified context was already disposed. This has been fixed.
Bug fixLuciadLightspeed
LCD-2742
When adding a layer with selected objects to a view, the edit controller didn't pick up
these selected objects as editing candidates.
Bug fixLucy (LuciadLightspeed)
LUCY-3516
ALcyActionBar no longer shows a separator at the end when all actions and active settables in
the
last group have been set to invisible (using the ILcdAction.VISIBLE key).
Bug fixLuciadLightspeed
LCD-2624
TLspEditController could get into an invalid state when using two paint representation,
each having an editor, with one of both editors returning 0 edit handles.
Bug fixLuciadLightspeed
LCD-2613
The TLspLayer did not always apply its filter correctly. More specifically a visible object was
not removed from the view when it is no longer accepted by the filter due to a model change.
Bug fixLuciadLightspeed
LCD-2618
The TLspTiledWMSProxyPainter did not properly clean up its resources when its layer is removed
from the view.
Bug fixLuciadLightspeed
LCD-2578
Labels painted using ALspSwingLabelStyler would sometimes disappear for a moment when using
them for dynamic domain objects (e.g. moving tracks).
Bug fixLuciadLightspeed
LCD-2607
Each TLfnFileSystemTileStore instance now maintains its own resources.
This guarantees that there can no longer be any contamination of resources between Tile Store instances.
Because each Tile Store instance is now more self-contained, an explicit close() method has been introduced on
ALfnTileStore to allow explicit cleanup of resources.
For backwards compatibility, it is not required to call close() on a Tile Store, in which case resources will be
cleaned up by the garbage collector.
It is however recommended to close Tile Store instances explicitly, because future implementations may do something
useful such as closing a database connection.
Bug fixLuciadLightspeed
LCD-2608
Fitting to a layer with TLspViewNavigationUtil now respects the filter set on the layer (if
any).
Bug fixLuciadLightspeed
LCD-2606
The ILcdGXYView implementations needlessly changed their autoUpdate property if the model was
changed.
Bug fixLuciadLightspeed
Fixed a NullPointerException when using ILspInteractivePaintableLayer.query(), using a
TLspPaintedObjectsQuery for TLspPaintRepresentation.LABEL.
Bug fixLuciadLightspeed
Fixed an IllegalArgumentException that could occur when model changes are fired and the object
is being edited at the same time.
Bug fixLuciadLightspeed
LCD-2600
When canceling an ongoing import, handler.imported() is no longer called.
Bug fixLuciadLightspeed
LCD-2599
Import/export no longer gets stuck after canceling a previous import/export.
Bug fixLuciadLightspeed
LCD-2573
TLsp3DPointListEditor.createPointHeightTranslationHandle() now only creates a handle when
the view is a 3D view. This fixes the problem where the cursor is incorrect when editing a
3D pointlist in a 2D view.
Bug fixLucy (LuciadLightspeed)
LUCY-3634, LUCY-3628
TLcyDrawingAddOn: the copy-paste functionality between different drawing layers often resulted
in
shapes which were converted from one shape into another (for example circle-by-3-points into a
regular circle). This has been corrected so that those unwanted conversions no longer take
place.
Bug fixLuciadLightspeed
LCD-2574
TLcdGXYLayer would clear the painted status of labels too often, causing problems
with label selection.
Bug fixLucy (LuciadLightspeed)
LUCY-3501
TLcyDrawingAddOn: creating circular shapes with a complex line style
(e.g., the triangle line style) could cause IllegalArgumentExceptions.
Bug fixLuciadLightspeed
LCD-2555
If decoding of a GeoTIFF model fails, for example because the reference cannot be decoded,
the corresponding input stream is now closed properly.
Bug fixLuciadLightspeed
LCD-2560
Fixed a possible StackOverflowError in TLcdDataObject.clone().
Bug fixLuciadLightspeed
Unit of measures are now encoded using their full UCUM URN notation, instead of the UCUM
shorthand notation.
This fixes an encoding problem for UCUM symbols which contain special characters.
Bug fixLuciadLightspeed
LCD-2556
The mouse wheel zoom behavior could stop working if the view contains a TLcyLspGXYLayerAdapter
with one or more selected shapes.
Bug fixLucy (LuciadLightspeed)
TLcyDrawingAddOn: the create extruded action would create an extruded shapes with unknown
heights
when the 'Over terrain' option was checked when no terrain data was available at that point.
Now, the
'Over terrain' option is only considered when there is actual terrain data available. If not,
this
option is simply ignored.
Bug fixLuciadLightspeed
LCD-2546
TLcdGXYArcPainter#appendGeneralPath and TLcdGXYEllipsePainter#appendGeneralPath threw
ClassCastExceptions.
Bug fixLucy (LuciadLightspeed)
LUCY-3626
The S-57 format no longer throws an error when an object with unknown object class is selected;
an empty object customizer with indication of the object class is shown instead.
Bug fixLuciadLightspeed
LCD-2528
TLfnQuery.Builder.setResourceTypes now accepts null as argument, meaning 'all resource types'.
Bug fixReal-time Engine
LCD-2605
TLcdSimulatorModelList: the begin- and end-date are now always in the proper order when the
corresponding property change events are fired.
Bug fixReal-time Engine
LCD-2595
TLcdSimulatorModelList: the old and new values of the property change events for the track models
are now filled in.
Bug fixReal-time Engine
LCD-2594
TLcdTimeFilteredSimulatorModel: property change events are now fired appropriately with the
correct information.
Bug fixAviation Standards
LCD-2602
The handling of ILS references in procedure records (if present) could cause a ClassCastException in
TLcdARINCProcedureHandler.
Bug fixAviation Standards
The decoding of enroute communication records has been made more robust with respect to empty feature values.
Additionally, the class javadoc of TLcdARINCEnrouteCommunicationHandler did not correctly mention the
key features that are used to uniquely identify decoded objects.
Bug fixDefense Standards
LCD-2568
The GeoSym resource files input streams were not closed after reading, this has been fixed now.
Bug fixDefense Standards
LCD-2567
Input streams are now closed correctly when a corrupt VPF data file is being read.
Bug fixDefense Symbology
The Task Force echelon icon was not properly aligned with a Hostile affiliation icon.
Bug fixInfrastructure Standards
LCD-1528
The DWG decoder now takes bulges into account for variable-width LWPOLYLINE elements.
2012.0.08
ImprovementLuciadLightspeed
LCD-2529
The cached painting performance has been improved for all painters.
ImprovementAviation Standards
LCD-2516
The holding entry point for procedure trajectories is determined more accurately,
to obtain a smooth connection between the previous leg and the holding.
ImprovementAviation Standards
The default AIXM rendering settings in TLcdAIXMDefaultLayerFactory / TLcdAIXMLayerConfiguration
have been updated to a more useful initial configuration. In the past, black was mostly used
as default color.
Bug fixLucy (LuciadLightspeed)
LUCY-3625
TLcyAlwaysFitJToolBar now supports changing its border.
Bug fixLuciadLightspeed
LCD-2536
TLspLayer no longer fires a property change event on every model change. Users that are
interested in model changes should add a listener to its model.
Bug fixLuciadLightspeed
LCD-2527
Fixed issue with the equals method of TLspShapePainter.
Bug fixLuciadLightspeed
Fixed a possible ArrayIndexOutOfBoundsException in TLcdGXYPolylineLabelPainter.
Bug fixLuciadLightspeed
LCD-2523
The LTS Tile Store implementations now also guarantees that the message digest has been filled in before calling
ILfnGetTileHandler.found(). This facilitates implementations of LTS proxies and gateways.
Bug fixLuciadLightspeed
LCD-2501
The default exception handler of the Earth painters and elevation provider now handles
interrupted exceptions better.
Bug fixLuciadLightspeed
LCD-2513
The TLcdHaloAlgorithm.CONVOLUTION algorithm did not work correctly for anti-aliased text.
Bug fixLuciadLightspeed
LCD-2506
Fixed the decoding of complex content in SLD parameter values. It should now again be possible
to
mix ogc:PropertyName elements with plain text in an sld:CssParameter.
Bug fixAviation Standards
LCD-2531
The TLcdARINCRunwayHandler has been made more robust with respect to incorrect
runway direction bearing values; the handler now identifies and logs incorrect values,
instead of failing with an exception.
Bug fixAviation Standards
LCD-2515
The points of a calculated holding entry were not always added in the right order to the point
list of a procedure trajectory. This did only impact the inspection of the procedure
trajectory points through its ILcdPointList interface, not through its processProcedureGeometry
method.
Bug fixAviation Standards
LCD-1660
The decoding of runway endpoints has been improved to include the correct elevation in all cases. This
may improve the geometry calculation of SID procedures that start with a CA leg in certain cases,
as the length of such legs may now be shorter.
Bug fixInfrastructure Standards
LCD-2427
The DGN level filters can now be retrieved through TLcdDGNModelDescriptor.getDGNLevelFilters().
They can be used as an ILcdFilter on model elements.
Bug fixInfrastructure Standards
LCD-2489
TLcdDGNLevelSymbology now retrieving the line style name associated with a style through getStyleName().
TLcdDGNDisplayInfo.getStyle() now returns either a basic style (0-7), or a style ID.
Bug fixInfrastructure Standards
LCD-704
The DGN elements are now painted according to the priority of the elements and levels.
Bug fixTiling Engine
LF-330
A threading issue was fixed which affected the fusion of vector data such as VPF. The threading issue caused fusion
to fail occasionally with "Shared asset missing".
2012.0.07
ImprovementLuciadLightspeed
TLspScaleIndicator now has a setScaleAtCenterOfMap() property, analogous to that of
TLcdGXYScaleIndicator, allowing the user to choose between the scale in the center of
the view and the scale at the origin of the projection.
ImprovementLucy (LuciadLightspeed)
LUCY-3609
The ALcyLspStyleFormat now allows to override the createLayerStyleCodecFileTypeDescriptors
method so
you can return a null file type descriptor. Such formats will no longer try to apply the default
style
file, will not look for a style file located next to the source and no longer allow to save
the layer style through the Lucy UI. A typical use-case is when connecting to a server where
no *.sty file is available next to the source. Consult the javadoc of that method for more
information.
ImprovementLuciadLightspeed
LCD-1790
Fixed height-line of 3D points,3D point-lists, extruded shapes, domes and spheres when positioned over the ocean.
ImprovementLuciadLightspeed
LCD-1851
Added visual feedback for inserting points into a pointlist or a buffer.
ImprovementLuciadLightspeed
LCD-1779
Made 3D bounds creation and extruded shape creation more consistent. 3D bounds creation now no longer
has a final adjust height step.
ImprovementLuciadLightspeed
LCD-1805
Adjusted sample code so that cursor is updated for editing when mouse wheel is used without the mouse
moving.
ImprovementLuciadLightspeed
LCD-1773
Object creation now displays the baseshape, draped on the ground while creating objects. (Only
in a 3D view for 3D shapes)
ImprovementLuciadLightspeed
LCD-1844
It is now possible to edit the min and max radius of an ILcd2DEditableArcband by dragging
its inner and outer outline.
ImprovementLuciadLightspeed
TLcdGXYClippingPainterWrapper now provides extra API methods for retrieving the delegate
painter and painter provider.
ImprovementLuciadLightspeed
LCD-2249, LCD-2250, LCD-2241
Improved the cursors for several handles. Handles that modify the height of a handle now
have a vertical cursor. Handles that modify the outline of an object now have a cursor
with an improved direction.
ImprovementLuciadLightspeed
LCD-674
Small performance improvement for TLcdSphereRhumblineUtil.intersectsGeodesicRhumbline and
TLcdSphereRhumblineUtil.intersectionGeodesicRhumblineSFCT.
ImprovementLucy (LuciadLightspeed)
LUCY-3526
The TLcyFusionClientAddOn now also supports local Tile Stores. The "File"|"Open" menu supports
opening of tile-store.xml files. Drag-and-drop supports dragging either the tile-store.xml file
or its parent directory directly on the map. The "Map"|"Data"|"Fusion Client" menu supports file
URLs pointing to either the tile-store.xml file or its parent directory.
ImprovementLucy (LuciadLightspeed)
LUCY-3490
For completeness, ILcyActiveSettable.VISIBLE has been introduced. This can be used as key in the
key-value pairs set on an ILcyActiveSettable. Since the key is the same as the
ILcdAction.VISIBLE key,
it does not matter which one you use.
ImprovementLucy (LuciadLightspeed)
LUCY-3542
TLcyGridCoordinateAddOn: when opening the grid coordinate panel it is now initialized with
the active map component.
ImprovementLucy (LuciadLightspeed)
LUCY-3546
The Help|About... action is now the last action in the Help menu, as is the default for most
applications.
ImprovementLuciadLightspeed
XML Schema's are now cached more efficiently by the WFS client, improving overall performance.
ImprovementOGC Server
XML Schema's are now better cached. This improves the performance of processing XPaths.
ImprovementOGC Server
The WFS server no longer accesses the elements() method to generate its schema's, if a data model is available.
ImprovementTerrain Analysis Engine
LCD-1767, LCD-1833
Made it easier make the LOS Coverage Input Shape 360 degrees after it was modified in arc angle size. This
change only affects the LOS lightspeed sample.
Bug fixLuciadLightspeed
LCD-2503
TLspGXYLayerAdapter now better takes into account the delegate layer's isEditableSupported
and isLabelsEditableSupported methods.
Bug fixLuciadLightspeed
LCD-2501
The tile sets in Tile Store models did not correctly handle interrupted exceptions. This could
for example affect tasks that use thread interruption to implement cancellation.
Bug fixLuciadLightspeed
LCD-2482
Data painted on the terrain does not disappear anymore in when zoomed in a lot with a 3D grid
reference. The fading out is also less aggressive.
Bug fixLuciadLightspeed
LCD-2493, LCD-2286
It wasn't possible to edit labels with multiple objects selected.
Bug fixLuciadLightspeed
LCD-2496
Fixed a possible ClassCastException when using TLspLabelEditor, without the painter implementing
ILspStampLocationLabelPainter. Now TLspLabelPainter.canEdit() returns false in that case.
Bug fixLuciadLightspeed
LCD-2495
An issue in the Apache HttpClient library (HTTPCLIENT-1168) could potentially
lead to authentication verification issues in a multithreaded environment.
This has been fixed by adding the necessary synchronization.
Bug fixLuciadLightspeed
LCD-2495
An issue in the Apache HttpClient library (HTTPCLIENT-1168) could potentially
lead to authentication verification issues in a multithreaded environment.
This has been fixed by adding the necessary synchronization.
Bug fixLuciadLightspeed
LCD-2492
TLspEditController.getEditingCandidates always returned at most one editing candidate per
object. Now it returns multiple editing candidates for the same object if it has multiple
paint representations that can be edited. This is for example the case when the object and
its label can be edited.
Bug fixLuciadLightspeed
LCD-1569
TLcdGXYInteractiveLabelsController: Dragging an interactive label out of the view made it
disappear.
Bug fixLuciadLightspeed
LCD-1533
With TLcdGXYPolylineLabelPainter.isLabelOnPath() enabled, labels could be placed incorrectly
on the polyline segment.
Bug fixLuciadLightspeed
LCD-1670
TLcdRasterModelHeightProviderFactory did not support models that do not implement
ILcd2DBoundsIndexedModel and have a different model reference than the reference in which
the height is retrieved.
Bug fixLuciadLightspeed
LCD-2437
Transformations between a topocentric and a geocentric reference were incorrect when
the geocentric reference had a unit of measure value different from 1.0 (meters).
Bug fixLuciadLightspeed
LCD-2413
When the TLcdWMSProxyGXYPainter applied reprojection of WMS layers, a rendering
performance reduction could be caused in some cases due to excessive parsing of
references listed in the server's capabilities. This performance reduction has been fixed now.
Bug fixLuciadLightspeed
LCD-2424
The default labeling algorithm now chooses the largest subshape to determine a label location for closed shapes
(for example polylines).
Bug fixLuciadLightspeed
LCD-2426
Fixed a race condition in TLcdGXYLspAsynchronousPaintQueue that could trigger a NullPointerException.
Bug fixLuciadLightspeed
In rare cases, TLcdGXYCurvedPathLabelingAlgorithm could throw a NullPointerException.
Bug fixLuciadLightspeed
LCD-1786
Fixed a numerical problem that would occur when visualizing TLcdXYCircularArcBy3Points with
a bulge value close to 0.
Bug fixLuciadLightspeed
LCD-1555
In rare cases (polylines with one segment and one point exactly on the view border),
TLcdGXYOnPathLabelingAlgorithm did not find a valid position for a label.
Bug fixLuciadLightspeed
LCD-203
TLcdGXYPolyline(Stamp)LabelPainter sometimes could not place a label on one of the polyline
segments.
Bug fixLuciadLightspeed
LCD-2423
TLcdGXYPolyline(Stamp)LabelPainter.getPossibleLocationCount() returned a negative count for
point lists with 0 points.
Bug fixLuciadLightspeed
LCD-1796
Fixed point insertion and removal of points in polygons for high altitude exaggeration values in mountainous
areas.
Bug fixLuciadLightspeed
LCD-2421
Fixed minor glitch in arcband creation.
Bug fixLucy (LuciadLightspeed)
LUCY-3613
The label painter tab of the customizer panel for magnetic north layers didn't work anymore.
Bug fixLuciadLightspeed
LCD-1519
TLcdPolarStereographic: inWorldBoundsOnSphere and world2DEditableBoundsOnSphereSFCT could
produce slightly incorrect results for a true scale latitude different from 90 or -90
degrees. In addition, the equals method could return true for polar stereographic projections
with different true scale latitudes.
Bug fixLuciadLightspeed
LCD-2416
The boundaryLats method of TLcdGeneralPerspective, TLcdPerspectiveProjection and
TLcdVerticalPerspective could generate NaN values.
Bug fixLucy (LuciadLightspeed)
LUCY-3608
The action to save a layer style to file now only considers layer style encoders when
the corresponding file type descriptor is not null.
Bug fixLuciadLightspeed
TLcdGXYClippingPainterWrapper now behaves correctly in case the delegate painter provider
should return a null painter for a given object.
Bug fixLuciadLightspeed
LCD-729
Fixed issue with cloning of some domain objects.
Bug fixLucy (LuciadLightspeed)
LUCY-3362
Removed the option to enable label pins in the layer properties for Magnetic North layers.
Bug fixLucy (LuciadLightspeed)
The prerequisites of Lucy mentioned that only the TLcyToteAddOn uses the SwingX library, while
this library is used throughout all of Lucy to improve the UI. The prerequisites document has
been corrected.
Bug fixLuciadLightspeed
LCD-2379, LCD-2383
Possible Exceptions when resizing a 3D view, making it smaller than 0 pixels.
Bug fixLuciadLightspeed
LCD-2255, LCD-2381
TLcdViewXYZWorldTransformation2D could produce NaN values when the width and height
are 0. TLcdViewXYZWorldTransformation could return a negative scale for a negative
height.
Bug fixLuciadLightspeed
The TLspViewXYZWorldTransformation3D.isAdjustDepthRange property wasn't always respected
Bug fixLuciadLightspeed
LCD-2238, LCD-2253
TLcdRulerController: It wasn't possible to insert or remove points from a measurement
when in cartesian mode.
Bug fixLucy (LuciadLightspeed)
LUCY-3164
Changing the layer properties for an ASDI flightplan layer on a 3D map could result in an
IllegalArgumentException due to an incorrect ILcdUndoable. This has been fixed. This problem
only
occurred in V10 versions of Lucy. V11 and higher did not contain this bug.
Bug fixLuciadLightspeed
LCD-698
TLcdLambertAzimuthalEqualArea could produce NaN values for points very close to the
projection border.
Bug fixLuciadLightspeed
TLspViewXYZWorldTransformation2D/3D didn't re-evaluate their constraints when changing
properties like the width and height. This could possibly break constraints that rely on
these properties.
Bug fixLuciadLightspeed
LCD-2251
Zooming using the navigation controls could cause the view to pan in 2D.
Bug fixLucy (LuciadLightspeed)
LUCY-3409
TLcyGLMapAddOn: the labels of a ruler measurement were not updated when changing the default
distance format in Lucy. You needed to manually trigger a repaint of the view before the
changes were visible in the view. This has been resolved by fixing LCD-1211 (mentioned in the
release notes of the 3D component).
Bug fixLuciadLightspeed
LCD-129
When passing a geocentric or topocentric reference to ALcdModelHeightProviderFactory, it
returned an ILcdHeightProvider that returned incorrect height values in many cases.
Bug fixLuciadLightspeed
LCD-2228, LCD-2246
When selecting multiple objects, the move cursor was still shown, even when no object could be
edited.
Bug fixLuciadLightspeed
LCD-2244
It was possible to interact with some editing handle through the globe.
Bug fixLuciadLightspeed
LCD-2231, LCD-2243, LCD-2229, LCD-2248
Several fixes for interactive labels:
- Interactive labels couldn't be moved on some location of the label.
- The position of the interactive and regular label was inconsistent.
- It was possible that 1 label was painted twice when enabling interactive labels.
- The move cursors wasn't properly set when hovering over the interactive label.
Bug fixLuciadLightspeed
LCD-2236
Discretization of shapes would sometimes fail for shapes on the equator, smaller than 2
degrees.
Bug fixLuciadLightspeed
LCD-2240
TLspContinuousLabelingAlgorithm: labels wouldn't move back to their desired location after
editing them.
Bug fixLuciadLightspeed
LCD-2230
TLspRulerController: the fill of the equal distance circles would flip when they become too
large.
Bug fixLuciadLightspeed
LCD-695, LMAP-5656
Fixed TLcdSphereUtil intersection methods for small collinear line segments on
the equator or on a meridians. In addition, the methods accepting doubles as input values
returned incorrect results in some cases.
Bug fixLuciadLightspeed
LCD-211
Views could temporarily return null when calling getGXYViewLabelPlacer, right after
calling setGXYViewLabelPlacer.
Bug fixLuciadLightspeed
LCD-1654
TLcdGXYAsynchronousLayerMonitor could trigger the unnecessary creation of asynchronous
paint threads.
Bug fixLuciadLightspeed
LCD-1562
The GML transformer will now correctly transform object that extend from ALcdPoint to
features
that have a point property, instead of creating features with bounding shapes and no
geometry.
Bug fixLuciadLightspeed
LCD-1627
Fixed an NullPointerException that could occur while painting a TLcdWCSProxy with elevation data.
Bug fixOGC Server
LCD-2425
The default transparent map configuration applied by the WMS (TLcdWMSGXYViewFactory)
could cause rendering issues when using transparent colors for vector features.
The configuration has been updated to avoid these issues.
Bug fixOGC Server
The WCS server GetCoverage response could have some incorrect pixels when the request requires
resampling of the raster data.
Bug fixOGC Server
LCD-1624
The WCS server sometimes returned raster data that is geographically shifted w.r.t. the original
data.
Bug fixOGC Server
LCD-1590
The WCS server did not expose which value indicates that the value of a pixel is unknown. For
example a DTED raster can contain unknown values.
Bug fixOGC Server
LCD-1581
The WCS server did not support elevation data with negative heights (e.g. a height below sea
level).
Bug fixOGC Server
LCD-1576
The WCS server did not always use the optimal level in an ILcdMultilevelRaster. It could use a
more detailed level while a less detailed level already provided the same quality for a given
request.
Bug fixTerrain Analysis Engine
LCD-1787
Fixed the ripple pattern in the visualization of the LOS coverage using the TLspLOSCoveragePainter that would
occur when simulating very large LOS coverages of several thousand kilometres in diameter.
Bug fixDefense Standards
LCD-1665
The order of the shapes in a cross-tile feature in ELEMENT_PER_FEATURE mode could differ when decoded multiple types
and retrieved with different applyOnInteract bounds. The implementation has been changed now
to ensure a constant order for all shapes in a feature.
Bug fixDefense Symbology
LCD-1658
The direction of the triangles on the outline of the Belt symbol (MIL-STD 2525b 2.X.3.1.1.1,
APP-6A 2.X.2.2.1.1.1), the Zone symbol (MIL-STD 2525b 2.X.3.1.1.3, APP-6A 2.X.2.2.1.1.3),
the Obstacle Free Area symbol (MIL-STD 2525b 2.X.3.1.1.4, APP-6A 2.X.2.2.1.9) and the
Obstacle Restricted Area (MIL-STD 2525b 2.X.3.1.1.5, APP-6A 2.X.2.2.1.9.1) was dependent on the
orientation of the shape and therefore not always correct.
2012.0.06
ImprovementLuciadLightspeed
This release contains over 500 enhancements, performance improvements, and fixes mainly in the Lightspeed view package and
subpackages. The main highlights are improved vector shape rendering performance, improved icon and line rendering quality,
improved terrain draping quality, improved label deconfliction and painting quality, fully customizable shape editing functionality,
a powerful new layer query API, and many more. Externally requested changes are logged as individual release notes, others
have been left out to keep the release notes concise. It is recommended to upgrade existing projects to this LuciadLightspeed
version before analyzing any issues encountered.
ImprovementLuciadLightspeed
TLspLineStyle now has an additional property isBlendOverlap that can be configured using
the builder. It allows to adjust the behavior when painting multiple overlapping lines with
the same style. When set to false, all pixels covered will receive the same
color, even if this color is transparent and if multiple lines cover the
same pixel. If set to true, overlapping (transparent) lines will
be blended together resulting in a less transparent color at their
crossings.
ImprovementLucy (LuciadLightspeed)
TLcyDebugAddOn: now provides an action to print the model content types (and layer types for GXY
layers) of every layer of the currently active map. It helps to investigate issues with respect
to layer ordering.
ImprovementLuciadLightspeed
LCD-1622
The performance of asynchronous painting when working with many layers has been improved.
ImprovementLuciadLightspeed
New API has been introduced to allow more customization of the editing functionality in
Lightspeed views. Please refer to the chapter "Creating and editing domain objects in a
Lightspeed view" in the developer's guide for an overview of this new API. All API can be found
in the package com.luciad.view.lightspeed.editor and its subpackages. The principal classes and
interfaces are:
- ILspEditor creates editing handles for a given domain object and applies editing
operations to this object. Implementations of ILspEditor exist for each type of
ILcdShape that can be edited.
- ALspEditHandle is a small GUI widget which represents some modifiable part of a
domain object (e.g. a vertex of a polyline) and which translates user input (e.g. mouse
drags) into editing operations that can be applied to the underlying object.
- TLspEditOperation describes such an operation and is passed from the handle back
to the editor, where it is applied to the edited object.
- ILspSnapper defines a mechanism for snapping objects to one another while they are
being edited.
- ALspMultiObjectHandle is a variant of ALspEditHandle which is used by
TLspEditController to capture editing operations that apply to a group of edited objects
instead of a single object.
ImprovementLuciadLightspeed
TLcdGXYScaleIndicator can now also show a global, pan-independent scale.
ImprovementLuciadLightspeed
TLspDensityLayerBuilder has been added to facilitate creating layers with density plots of
vector data.
ImprovementLuciadLightspeed
A new elevation mode is available for TLspIconStyle: ABOVE_TERRAIN. It means that the icons are placed above the terrain.
The elevation of the object is determined by adding the object's elevation to the terrain's elevation.
Since icons are normally centered around this elevated point, it can be partially obscured by the terrain, depending on the
view angle.
To avoid this, you can either set a fixed offset on the TLspIconStyle, or add a TLspViewDisplacementStyle to allow the
icon to be moved above the terrain dynamically depending on the view angle.
ImprovementLucy (LuciadLightspeed)
TLcyHelpAddOn has been introduced. This add-on provides some more help options for the
end-user of Lucy. It provides a menu entry to open the Lucy end-user guide with the default
PDF viewer of your computer.
ImprovementLuciadLightspeed
A new icon implementation TLcdCGMIcon has been added to the com.luciad.format.cgm
package. This class supports the decoding of an icon that originates from a CGM file.
ImprovementLucy (LuciadLightspeed)
Several enhancements have been made to the ASTERIX functionality in Lucy:
- The UI and configuration file now allow to specify which categories should be loaded.
See
the asterixdecoderaddon.userPrefs.cfg file and the Edit | Asterix Settings... menu entry.
- The 2.5 ter version of category 30 is now supported. Since this version can not be
distinguished from the regular category 30, only one of those categories can be enabled at
the same time.
- The UI and configuration file allow to specify the location of the radar systems, and
to
ignore certain radars. See the asterixdecoderaddon.userPrefs.cfg file and the Edit | Asterix
Settings... menu entry. The
old asterix_locations.cfg file has been removed and is no longer supported.
ImprovementLuciadLightspeed
LCD-1474
An attempt to decode a non-existent file using TLcdETOPOModelDecoder will now
throw an appropriate IOException rather than return an invalid model.
ImprovementLucy (LuciadLightspeed)
The Lightspeed map component now includes touch controllers as well. A new touch sample has been
introduced
to show those controllers (lucy.frontend.lsptouchtaskpane). The existing Lucy touch sample
(lucy.touch) has
been adjusted to open a Lightspeed map when you choose File | New 3D map .
ImprovementLucy (LuciadLightspeed)
TLcyDataFormatManager: if loading data failed (for example using File|Open), it now shows the
type of exception if its message is null.
ImprovementLucy (LuciadLightspeed)
TLcyGeospatialPDFAddOn: new addon that supports geospatial PDF files.
ImprovementLucy (LuciadLightspeed)
The warnings about a missing ALcyLspStyleRepository instance are replaced by an
exception. When you encounter such an exception, plug in the TLcyLspStyleRepositoryAddOn or
register an ALcyLspStyleRepository instance on the Lucy back-end.
The ALcyLspStyleRepository#getInstance method has been introduced to easily
retrieve the instance from the Lucy back-end, and to check whether such instance
is indeed available.
ImprovementLucy (LuciadLightspeed)
ALcyGUIFactory now allows to specify whether the active settables can be deactivated through the
action bar(s) in which they are inserted. See ALcyGUIFactory#isActiveSettableDeactivatePossible
for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-1702
TLcyDrawingAddOn: improved the orientation of north arrows for several projections.
ImprovementLuciadLightspeed
LCD-179
TLcdColorMapCustomizer: the behavior of adding a level has been simplified to be more
predictable. The new level is now always added between the selected and the next level.
ImprovementLuciadLightspeed
TLcdObliqueMercator: transforming from world to lon lat and from lon lat to world
has become more consistent. Points that can be transformed in one direction can now always
be transformed back.
ImprovementLuciadLightspeed
It is now possible to import an entire coverage from any Tile Store to any other Tile Store. The previously existing
restriction that the source coverage had to be on a local Tile Store is hereby lifted. A new utility class
TLfnTileStoreUtil provides additional convenience methods to copy coverages between Tile Stores.
It is now possible to check the integrity of a local coverage.
Each tile can have an optional checksum, according to the message digest algorithm specified on the coverage
metadata.
-
TLfnDigestTileStore is a decorator which verifies tile checksums upon access.
It defines a handler to receive notifications of corrupt tiles.
-
ALfnCoverage.getTileCoordinates provides iteration over all tiles in a coverage.
It only works for
local
coverages retrieved through a TLfnFileSystemTileStore, not for remote ones retrieved through a TLfnLTSClient.
ImprovementReal-time Engine
LCD-1653
ALcdTimeIndexedSimulatorModel no longer fires change events for empty models.
ImprovementTerrain Analysis Engine
The LOS sample now uses arc bands instead of circles as the input shape. This
allows you to visually edit the range of the LOS calculation.
ImprovementDefense Standards
GeoSym definitions can now be reloaded programmatically. A reload can be triggered by
reconfiguring the GeoSym definition paths on TLcdVPFGeoSymProvider.
ImprovementDefense Standards
TLcdVPFGeoSymProvider now provides methods for retrieving symbol ids for a given FACC feature,
next to the existing methods for retrieving icons for a feature. The new methods allow to use
the GeoSym rules with custom styles, independent of the provided built-in styles.
ImprovementRadar Connectors
LCD-61, LMAP-2794
The conversion from relative time to absolute time is now more robust.
ImprovementRadar Connectors
Sample class TrackSimulatorModel now also interpolates the track altitudes, not only the 3D
location.
ImprovementRadar Connectors
The ASTERIX decoders can now filter on the record level, which allows to filter individual
tracks while decoding. One could for example filter out tracks based on their SAC/SIC code
(radar system), or ignore all coasted tracks. See also ILcdASTERIXRecordFilter,
TLcdASTERIXSacSicRecordFilter and ALcdASTERIXDecoder.setRecordFilter.
ImprovementRadar Connectors
The ASTERIX decoders now support reading a subset of network capture files (PCAP files). It
supports captures of raw Ethernet packages (LLC, IEEE 802.3), where no additional network
protocols like IP or UDP are used. Replaying PCAP files is supported as well, please refer to
TLcdASTERIXFinalReplayInputStream for more details.
ImprovementRadar Connectors
Support for version 2.5 ter of ASTERIX category 30 has been added. This is a draft version of
the specification, released in 1997. It is binary incompatible with the final release of
category 30 (v6.1 in 2000). It is therefore disabled by default. It can be enabled by setting
TLcdASTERIXCategory30Version2Dot5Ter on the ALcdASTERIXDecoder.
Bug fixLucy (LuciadLightspeed)
LUCY-3502
TLcyDrawingAddOn: drag-and-drop of a redlining file onto Lucy would ignore the features file.
This
has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3551
TLcyDrawingAddOn: importing a shp, MIF or POL file as drawing file and saving the
workspace without making any changes to the imported layer would result in an incorrect
workspace.
The layer could not be correctly restored.
In case you have such a workspace you can load the workspace, remove and reload the corrupted
layer
and resave the workspace. This will result in a corrected workspace.
Bug fixLucy (LuciadLightspeed)
LUCY-3548
TLcyToteAddOn: the table view no longer throws exceptions when it is empty.
Bug fixLuciadLightspeed
TLcdGXYAsynchronousPaintQueue now respects the auto-update property of the view.
Bug fixLuciadLightspeed
LCD-1473
Resolved an issue that the labels of buffer, band or polygon objects stayed in place when
moving the objects.
Bug fixReal-time Engine
LCD-58, LMAP-5777
ALcdTimeIndexedSimulatorModel: the selection of a layer is no longer cleared when making large
time jumps.
Bug fixTerrain Analysis Engine
LCD-1623
Fixed an inconsistency between the hardware accelerated and non-hardware accelerated LOS calculations, where
(for some conditions) the hardware accelerator would calculate one less column in the resulting
coverage matrix.
Bug fixDefense Standards
Changes to values in TLcdGeoSymDefaults are now correctly taken into account (some values
were only read once during initialization of the GeoSym provider and not updated
afterwards).
Bug fixDefense Symbology
LCD-1658
The direction of the triangles on the outline of the Encirclement symbol (MIL-STD 2525b 2.X.2.6.2.3,
APP-6A 2.X.2.1.6.1.1.1) should always point outwards, regardless of the orientation of the shape.
Upgrade considerationLuciadLightspeed
The API of all asynchronous methods on ALfnCoverage and ALfnTileStore has been made consistent. The changes:
- All asynchronous methods return a Future which can be used to block for the result or to cancel the
operation
- All asynchronous methods require an extension of ILfnFailureHandler defining the throwables which may
happen during asynchronous operation. This is the equivalent of a 'throws' clause of a synchronous method.
- Exceptions are propagated via the asynchronous handler, or via an ExecutionException thrown when blocking
for the result using Future.get(). In case of multiple exceptions, it is the
first
one which is propagated. Either one of these mechanisms can be used, they are equivalent.
- ILfnFailureHandler has an addition callback method
cancelled(CancellationException)
next to interrupted(InterruptedException). The former happens when a Future is cancelled, while the latter
happens when a thread was unexpectedly interrupted.
Beware that, even though methods have an asynchronous signature, they may do some of their work synchronously. Even
in this case, throwables which are thrown synchronously (most notably RuntimeExceptions and Errors) are still
propagated via the Future and asynchronous handler. The idea is that this is an implementation detail which is
transparent to the application.
Upgrade considerationLuciadLightspeed
New API has been introduced to allow more customization of the editing functionality in
Lightspeed views. In the context of this, the ILspEditor interface has changed considerably.
If you have implemented this interface and would like assistance to upgrade to a newer version
of LuciadLightspeed, please contact
Luciad support.
Upgrade considerationLuciadLightspeed
TLspSelectController's default key to enable multi-object selection has been changed to shift
instead of ctrl. The default behavior can be modified by overriding
TLspSelectController#selectWhat.
Upgrade considerationLuciadLightspeed
The domain objects in the ruler controller model have changed. They are now ALspRulerMeasurement
instead of ILspRulerPolyline. The controller now also allows to override distance and azimuth
calculation.
Upgrade considerationLuciadLightspeed
ILspShapeDiscretizer's canDiscretize method has been deprecated. Instead discretizeSFCT should
throw a TLspDiscretizationException if it is not capable to discretize the provided shape.
Upgrade considerationLuciadLightspeed
ILspTerrainSupport: all terrain query methods now have an additional TLspContext argument. This
is necessary to allow the methods to be called from a separate thread. The context in that case
would be a snapshot of the view's state which is used for the terrain query, while the view's
actual state might be changed by the main thread.
The impact of this change should be minimal, since the methods in question are primarily used
internally by painters.
Upgrade considerationLuciadLightspeed
Camera constraints: replaced ALspCameraConstraint2D and ALspCameraConstraint3D by
a generic ALspCameraConstraint class. Also the constrainXxxParameters method was replaced
by a more general constrain method. Also removed ConstraintChangeListener interfaces and
replaced them with ILcdChangeListener.
Upgrade considerationLuciadLightspeed
In TLspLookAtTrackingCameraConstraint2D the setMaxScale(double) method was removed. This
functionality can be replaced using a separate constraint. For an example of how to do this,
see the limitnavigation sample.
Upgrade considerationLuciadLightspeed
ALspTrackingPointProvider now doesn't pass around an ILspView in most of its methods. A view
can be retrieved using ALspTrackingPointProvider.getView(). Also TrackingPointChangeListener
was removed, and replaced by ILcdChangeListener.
Upgrade considerationLuciadLightspeed
ALspViewXYZWorldTransformations are now constructed for a specific view. As a consequence,
the registerView(ILspView) and unregisterView(ILspView) methods were removed.
TLspViewXYZWorldTransformation2D and TLspViewXYZWorldTransformation3D constructors now have
an ILspView as argument.
Upgrade considerationLuciadLightspeed
The various calls to retrieve bounds and touch information from a layer or painter about objects on the screen has changed.
They have been replaced by a single ILspInteractivePaintableLayer.query() method that accepts various query objects and returns
the relevant information.
In particular, the following calls have been removed:
- ILspInteractivePaintableLayer.queryOnViewBounds
- ILspInteractivePaintableLayer.queryTouched
- ILspInteractivePaintableLayer.isTouched
- TLspLayer.applyOnInteract
- ILspPainter.queryOnViewBounds
- ILspPainter.queryTouched
- ILspPainter.isTouched
- ILspPainter.boundsSFCT
- ILspLabelPainter.isLabelTouched
- ILspLabelPainter.labelBoundsSFCT
Although you can still query painters directly, it is advised to query the layer instead.
You can replace the removed calls above with these query() calls on ILspInteractivePaintableLayer:
- query(new TLspPaintedObjectsBoundsQuery(REGULAR_BODY, viewBounds, 10))
- query(new TLspPaintedObjectsTouchQuery(REGULAR_BODY, viewPoint, 10))
- query(new TLspIsTouchedQuery(object, REGULAR_BODY, viewPoint, 10))
- query(new TLspPaintedObjectsQuery(REGULAR_BODY, viewBounds))
- query(new TLspPaintedObjectsBoundsQuery(REGULAR_BODY, viewBounds, 10)) (same as #1)
- query(new TLspPaintedObjectsTouchQuery(REGULAR_BODY, viewPoint, 10)) (same as #2)
- query(new TLspIsTouchedQuery(object, REGULAR_BODY, viewPoint, 10)) (same as #3)
- query(new TLspBoundsQuery(object, REGULAR_BODY))
- query(new TLspIsTouchedQuery(label, viewPoint, 10)) (similar to #3)
- query(new TLspBoundsQuery(label)) (similar to #8)
The new query method also uses the ALspBoundsInfo and ALspTouchInfo classes as possible return types,
with some minor modifications:
- ALspWorldBoundsInfo#isGeometryDraped has been removed as there was no clear use case.
- ALspWorldTouchInfo#isGeometryDraped has been replaced with getElevationMode. This allows us to return more information
about the position of the touched geometry.
Upgrade considerationLuciadLightspeed
ALspActionController, TLspClickActionController and TLspKeyActionController constructors don't
accept an ILcdFilter for AWT events anymore. Instead, use the setAWTFilter method of ALspController.
Upgrade considerationLuciadLightspeed
The label location hierarchy was simplified and made more flexible. This has an impact on the location classes and label
painter hierarchy.
TLspFreeLabelLocation was removed, use TLspStampLabelLocation as a replacement, which is more powerful.
ILspFreeLocationLabelPainter interface was removed. The API of ILspStampLocationLabelPainter was changed to aid algorithms.
Upgrade considerationLuciadLightspeed
ILspLabelPlacer is now tied specifically to one view. This means that its placeLabels() method does not accept a view anymore,
and that it only contains
label locations for objects in one view.
Upgrade considerationLuciadLightspeed
The API of ALspLabelLocations was simplified. Instead of the various applyOn() methods there is one getLabelLocations() and
one getLabelLocation() method.
Related, TLspLabelLocationVisibilityChangedEvent was merged into TLspLabelLocationChangedEvent. Instead of the processChangedLocations()
and isLabelLocationChanged() methods, there now is only a simple getChanges() method.
Upgrade considerationLuciadLightspeed
The ILspPaintGroupsChangeListener interface has been changed to support better control over
the event processing. This allows for example to make sure that updates to the body and label
of objects are visible at the same time. All ILspPainter's must now also implement this
interface.
To convert an implementation of the old interface you can perform all work previously done in
the paintGroupsChanged method in the prepareChanges method and invoke the changesReady method
on the callback immediately if it is not null.
To convert a painter that previously did not implement ILspPaintGroupsChangeListener you
should at least invoke the changesReady method on the callback argument passed in the
prepareChanges method if it is not null.
Upgrade considerationLuciadLightspeed
The method ILcdOGCFilterEvaluator#buildFilter, used to create a filter evaluator for a
given OGC Filter, now returns an ILcdDynamicFilter instead of an
ILcdFilter. This has been done for optimal interoperability
when using these filter evaluators on GXY, GL and LSP layers.
Applications that use this method will not be affected, since ILcdDynamicFilter
is an extension of ILcdFilter. The change only affects applications
that define a custom implementation of ILcdOGCFilterEvaluator or an extension of
its default implementation TLcdOGCFilterEvaluator. If this is the case, the new methods
introduced by ILcdDynamicFilter, i.e. addChangeListener and addChangeListener),
can be given an empty implementation, since dynamic changes to the filter are not supported.
Upgrade considerationLuciadLightspeed
TLspGXYLayerAdapter no longer allows to set an ILcdFilter on the inner GXY layer. Only
ILcdDynamicFilter instances are allowed. Exceptions will be thrown at runtime when an
incorrect filter is set on the inner layer.
To convert an ILcdFilter to an ILcdDynamicFilter you can make use of the
TLcdChangeSupport class. This class makes it easy to implement ILcdChangeSource.
Upgrade considerationLucy (LuciadLightspeed)
The ALcyLspCameraLinker class has been removed from the API. The extensions of this class,
ALcyLspCameraLinker2D
and ALcyLspCameraLinker3D remain available. The recommended way to implement your own
Lightspeed camera
linker is to start from one of those two subclasses, hence the ALcyLspCameraLinker has no
added value nor a direct
purpose. In case you extended directly from ALcyLspCameraLinker you will get a compile error.
Adjust your class to
extend from ALcyLspCameraLinker2D or ALcyLspCameraLinker3D directly (based on whether the
linker was created
for a 2D or a 3D Lightspeed view respectively).
Also, the canLinkTrackingCamera method has been removed in favor of the new method
isValidViewXYZWorldTransformation.
If you have overridden this method and only rely on the view-to-world transformation,
override isValidViewXYZWorldTransformation instead.
Else, plug in a customized ALcyCameraLinkerFactory and override its canCreateCameraLinker
method.
Upgrade considerationLuciadLightspeed
The signature of the methods getTile, putTile and deleteTile on ALfnCoverage has changed:
- getTile and putTile now take an additional ByteBuffer parameter which can be used to retrieve/provide a
signature for the tile. Existing applications or applications which are not interested in the signature may
provide a null argument.
- the level, row and column parameters have been replaced by a single TLfnTileCoordinates parameter. A
TLfnTileCoordinates instance can easily be created via its getInstance() factory method, given the level, row
and column arguments.
Upgrade considerationLuciadLightspeed
The Fusion protocol now also supports text geometry. Objects with ILcdText geometry can now be fused to vector
coverages, and displayed accordingly in Fusion clients. The vector tile data format used by the Fusion protocol has
been updated to allow modelling of text geometry; old clients will no longer be able to read data which has been
fused with a new Fusion engine supporting text geometry. New Fusion engines can still fuse to the old tile data
format, by setting the appropriate codec version number on the coverage metadata.
Upgrade considerationDefense Symbology
The interfaces ILcdMS2525bCoded and ILcdAPP6ACoded are each extended with a method
to retrieve the symbology standard in use:
- ILcdMS2525bCoded#getMS2525Standard(): returns an ELcdMS2525Standard instance,
representing either MIL-STD 2525b or MIL-STD 2525c,
- ILcdAPP6ACoded#getAPP6AStandard(): returns an ELcdAPP6Standard instance,
representing either APP-6A or APP-6B.
The capability to choose the symbology standard per object was already supported
in the domain object implementations TLcdEditableMS2525bObject and TLcdEditableAPP6AObject
(see LCD-449); as of now, this capability is thus also integrated in the core object interfaces
ILcdMS2525bCoded and ILcdAPP6ACoded.
This change only affects applications that define a custom implementation of ILcdMS2525bCoded
or ILcdAPP6ACoded.
In the most likely use case where this custom implementation is a wrapper around the domain objects
TLcdEditableMS2525bObject or TLcdEditableAPP6AObject, the new methods can just be delegated to
these objects.
If a custom implementation is written separate from TLcdEditableMS2525bObject or
TLcdEditableAPP6AObject, the implementation needs to implement these new methods
by returning the symbology standard that is meant to be used: ELcdAPP6Standard#APP_6A
or ELcdAPP6Standard#APP_6B for respectively APP-6A or APP-6B, and ELcdMS2525Standard#MIL_STD_2525b
or ELcdMS2525Standard#MIL_STD_2525c for respectively MIL-STD 2525b or MIL-STD 2525c.
2012.0.05
ImprovementLuciadLightspeed
LCD-1580
TLcdGXYNewController2 can now also perform edit and commit operations when users drag the mouse, if the
controller is configured to do so.
ImprovementLuciadLightspeed
LCD-1582
Changed behavior of the DataModelTreeModel class found in the sample code. If you configure it
to only display model elements found in the model descriptor, it will also include all dependent
data models in the search. For each dependent data model, it will also display any of the model
elements in the tree. This makes the DataModelTreeModel better-suited for complex data models, such
as AIXM.
ImprovementLuciadLightspeed
LCD-1538
TLcdWFSGetFeatureRequest now has an additional setOGCFilters(TLcdOGCFilter[]) method to
support the configuration of multiple OGC Filters.
ImprovementLucy (LuciadLightspeed)
LUCY-3499
The standard JColorChooser shows a transparency slider when running with JDK7, which was not the
case for
earlier JDK versions. In case JDK7 is used Lucy will no longer show a custom transparency slider
when
presenting a color chooser to the user but rely on the JDK transparency slider instead.
Nothing has been changed for JDK6 and below.
ImprovementLucy (LuciadLightspeed)
LUCY-3517
When loading a style file for a GL layer which contains invalid expressions for the data
object label painter a default expression will be set on the label painter instead of the
invalid
expression. Switching a layer with invalid expressions to labeled did not show any labels in the
view,
as the expression was invalid. With this improvement, this confusing behavior is avoided. This
improvement also makes the GXY and GL behavior consistent.
ImprovementLucy (LuciadLightspeed)
LUCY-3514
When the TLcyCreateGXYLayerAction showed a customizer panel for editing a
TLcyModelMetaDataContext, the
enabled state of the OK button did not consider the isChangesValid setting from the
ILcyCustomizerPanel.
This resulted in a call to applyChanges when the changes were not valid. This has been adjusted.
Bug fixLuciadLightspeed
LCD-700
The implementation of the Google reference system (EPSG codes 900913, 3785, 3857) was
incorrect, possibly causing a shift.
Bug fixLucy (LuciadLightspeed)
LUCY-3522
The DataObjectTableModel and the FeaturedTableModel fired an invalid event if the entire table
needed
to be refreshed because of a model change. This could result in IndexOutOfBoundsExceptions. This
has been
fixed.
Bug fixLucy (LuciadLightspeed)
TLcyAsterixDecoderAddOn: the default style file for realtime Asterix layers is no longer
ignored.
Bug fixLucy (LuciadLightspeed)
LUCY-3518
The DataObjectTableModel and the FeaturedTableModel fired an event indicating rows are possible
added/removed when rows had only been updated. This cleared the selection on the table
unnecessarily. An optimization
has been made to the table models to fire a more appropriate event.
Bug fixLuciadLightspeed
LCD-1556
TLcdSHPModelDecoder did not correctly load the .DBF file associated with a compressed
SHP file (.SHP.GZ). This has now been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3513
When restoring a camera link during the decoding of the workspace some Swing related operations
were not performed on the Event Dispatch Thread. This has been corrected.
Bug fixLuciadLightspeed
LCD-1549
TLcdWMSClient could not cohpe with WMS 1.1.1 capabilities containing links to DTDs
that could not be resolved. Because these DTDs are not used, the resolution of DTD
links has now been disabled.
Bug fixLuciadLightspeed
LCD-1549
DTD resolving has been disabled on the XML decoders (only XML Schema is used by the decoders
to interpret data).
Bug fixLuciadLightspeed
LCD-1525
The bounds of very large TLcdLonLatRhumbPolygons were computed erroneously. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3512
TLcyMapComponentFactory: when creating a new map with the default settings the pan controller is
active. However, the active pan controller was not combined with the navigation controller. This
disabled navigation with the mouse wheel (zoom in/out, ... ). This has been fixed.
Bug fixLuciadLightspeed
LCD-1512
TLcdGXYEllipsePainter could produce painting artifacts for ellipses with an axis length of zero.
Bug fixDefense Symbology
LCD-1593
The icons for the symbols Earthwork / Small Trench / Fortification (APP-6A 2.X.2.2.3.1,
MIL-STD 2525b 2.X.3.3.1), Surface Shelter (APP-6A 2.X.2.2.3.6, MIL-STD 2525b 2.X.3.3.6) and
Underground Shelter (APP-6A 2.X.2.2.3.7, MIL-STD 2525b 2.X.3.3.7) incorrectly included
an offset position indicator.
Bug fixDefense Symbology
The Unique Designation label for the tactical graphics symbols Follow And Assume (APP-6A 2.X.1.1.12,
MIL-STD 2525b/c 2.X.1.12) and Follow And Support (APP-6A 2.X.1.1.12.1, MIL-STD 2525b/c 2.X.1.12.1)
was not correctly positioned anymore since the symbol rendering update introduced by LMAP-4091.
Bug fixInfrastructure Standards
LCD-1561
The DGN decoder now ignores the view attributes related to sheet models.
Bug fixRadar Connectors
LCD-1560
The data models for the various categories no longer confuse the types for properties with the same
display name.
Bug fixRadar Connectors
LCD-1559
Following termination messages are now properly interpreted:
- Category 1, Track UAP: Data Item I001/170 (Track status), field TRE (Last report for track)
- Category 48: Data Item I048/170 (Track status), field TRE (Signal for End_of_Track)
- Category 62: Data Item I062/080 (Track status), field TSE (Last message transmitted)
For category 30, Data Item I030/080 (ARTAS Track status), field TRM (Terminated) was already properly processed.
2012.0.04
ImprovementLuciadLightspeed
TLcdTransformer now provides an additional transformTo() method with both source and target type parameters.
ImprovementLuciadLightspeed
LCD-1483
It is now possible to disable the painting of fill or outline of a fused vector feature by returning a null style.
ImprovementLuciadLightspeed
LCD-1526
TLcdMapGeorefGridLayer now allows configuring the color of the corner labels.
ImprovementLuciadLightspeed
LCD-1496
ServiceException now shows response code and reason in message.
ImprovementLuciadLightspeed
LCD-1466
TLcdISO19103Measure now implements Comparable, so that measurements can easily be sorted.
ImprovementLuciadLightspeed
LCD-1465
TLcdEarthHeightProviderFactory: added support for creating height providers that do not
interpolate the height values. You can disable interpolation of height values by using the
TLcdRasterModelHeightProviderFactory.KEY_INTERPOLATE_DATA key.
ImprovementLuciadLightspeed
LCD-1295
TLcdEPSGReferenceParser now supports parsing EPSG references with an OGC prefix
("urn:ogc:def:crs:EPSG:"). TLcdEPSGReferenceFormatter can format these parsed references
back to the original code.
ImprovementLuciadLightspeed
LMAP-5289, LCD-201
The up arrow of the TLcdGXYCompassNavigationControl did not always point north in
certain projections. This has been fixed.
ImprovementAviation Standards
LMAP-6096
TLcdAIXM51ValDistanceVertical now supports using TLcdAltitudeUnit to specify the uom. TLcdAltitudeUnit is commonly
used by other AIS formats to specify unit of measures for vertical distances.
ImprovementAviation Standards
LMAP-6098
TLcdAIXM51ValDistanceVertical now properly formats values that are set using the 'setValue(double)' method,
to be compliant with the AIXM 5.1 schema. This does not affect the formatting if the value is decoded from file,
or set using another method.
ImprovementAviation Standards
The TLcdAirspaceActivityType type safe enumeration class now has a new methods: 'getCode()'.
This method allow working with the acronyms or codes that are in general use by the aviation community, and simplify
encoding/decoding of files using these codes.
ImprovementAviation Standards
The TLcdAirspaceType type safe enumeration class now has two new methods: 'getCode()' and a static 'valueOf( String aCode
)'.
These methods allow working with the acronyms or codes that are in general use by the aviation community, and simplify
encoding/decoding of files using these codes.
ImprovementAviation Standards
LMAP-6088
A transformation sample from AIXM 3.3/4.5 to 5.1 has been added to the samples. It supports transforming both
airspaces
and aerodromes, but should be sufficiently extensible so you can add your own transformations.
ImprovementDefense Standards
LCD-1437
VPF area features now implement the ILcdSurface interface, providing direct access to the outer and
inner rings of the area.
ImprovementDefense Symbology
LMAP-6030, LCD-449
It is now possible to use the APP-6A, APP-6B, MIL-STD 2525b and MIL-STD 2525c
symbology standards together at runtime. For this purpose, the enumeration classes ELcdAPP6Standard
and ELcdMS2525Standard have been introduced to represent the supported symbology standards,
and the domain objects TLcdEditableAPP6AObject and TLcdEditableMS2525bObject
have been extended with new constructors that accept an instance of these new symbology
standard classes.
In the past, the symbology standard had to be chosen upfront by means of a System property.
This approach still works and is used when no explicit symbology standard is given upon
construction of a TLcdEditableAPP6AObject or TLcdEditableMS2525bObject instance.
ImprovementMaritime Standards
LCD-1461
TLcdS52GXYPainterProvider now has a flag useNationalLanguage to configure whether to use the
national (NOBJNM) or international (OBJNAM) object name for visualizing text labels.
ImprovementMaritime Standards
LCD-1460
The S-57 model decoder now supports lexical level 2 (UCS-2).
Bug fixLuciadLightspeed
LCD-1531
TLcdEarthGLTerrainPainter: the painter could update its tiles too much. This
could for example occur when changing the altitude exaggeration factor.
Bug fixLuciadLightspeed
LCD-696
TLcdLambert1972BelgiumGridReference used inverted rotation parameters for its datum
transformation. This could shift the data when transforming to a reference with a
different datum.
Bug fixLucy (LuciadLightspeed)
LUCY-3505
TLcyMapComponentFactory: it was not possible to activate a controller active settable through
the map_addon config file. The map component factory ignored those config options. This has been
fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3495
When labeling magnetic north declination lines, the label content was wrong. This has
been fixed. The layer customizer panel for magnetic north declination layers has been
simplified as well.
Bug fixLuciadLightspeed
Depending on the SAX parser being used, some input streams for XML schema's might not be closed.
This has been fixed: all input streams opened for XML Schema parsing are now always closed
after use.
Bug fixLuciadLightspeed
LCD-1462
Input streams created by TLcdGeoTIFFModelDecoder and others are now properly closed. This solves issues with "too
many open files" when working with a lot of different models.
Bug fixLuciadLightspeed
LCD-1455
ParseException in TLcdWKTReferenceParser when trying to decode a model reference with
name "RGF-93".
Bug fixLuciadLightspeed
LCD-1451
TLcdEllipsoid.initializeA1OverF() and TLcdEllipsoid.initializeAB() would overwrite the name of
the ellipsoid if it was first set with TLcdEllipsoid.setName().
Bug fixLuciadLightspeed
TLcdMIFModelDecoder now supports the "Regional Mercator" projection for files
where the standard parallel property is set to zero.
Bug fixLuciadLightspeed
LMAP-6097, LCD-590
Unit of measures are now correctly encoded using the UCUM code convention, instead of using
the LuciadMap built-in
symbols (which are not always UCUM-compliant).
Bug fixTerrain Analysis Engine
LCD-1532
Fixed a potential NullPointerException in TLcdHeightProviderAdapter.
Bug fixAviation Standards
TLcdAISDataTypes did not include TLcdNavaidType#ILS_DME as possible value for the navaid type
data property, which prevented its use as data property value in practice.
Bug fixDefense Symbology
LCD-626, LMAP-3595
An IllegalArgumentException was thrown by the MIL-STD 2525b/c customizer
when a weather symbol selection was changed into an installation symbol.
Bug fixDefense Symbology
LCD-1452
The old resources used by the deprecated MIL-STD 2525b API (i.e.,
ALcdMS2525bIconProvider and implementations) could not be found due to a regression.
Upgrade considerationLuciadLightspeed
LCD-1475
The TLcdMagneticNorthGXYLabelPainter used to extend TLcdGXYDataObjectPolylineLabelPainter.
This is no longer the case.
2012.0.03
ImprovementLuciadLightspeed
LCD-1449
TLcdEarthAsynchronousTileSet: the tile set can now enforce that tile operations occur only on
its own threads. The default behavior has not changed, you must call the
setDelegateTileOperationMode method to change it.
ImprovementTerrain Analysis Engine
LCD-1443
Improved TLspLOSCalculator class documentation.
Bug fixLuciadLightspeed
Fixed a problem where updating labels of dynamic models could be delayed.
Bug fixLuciadLightspeed
Fixed a possible deadlock during editing or when using a dynamic model.
Bug fixLucy (LuciadLightspeed)
LUCY-3492
TLcyMapAddOn: the add-on did not allow to configure the "TLcyMapAddOn.createMapAction" action
in another action bar.
Bug fixLuciadLightspeed
LCD-346
The GXY layer performance monitoring did not monitor the time spent for
the rendering of labels placed by an ILcdGXYViewLabelPlacer
(i.e. the ILcdGXYEditableLabelsLayer.PLACED_LABELS layer paint mode).
Bug fixLuciadLightspeed
LCD-1442
Touch and hold editing (inserting and deleting points in pointlists using touch input) didn't
always work as expected. This has been fixed.
Bug fixLuciadLightspeed
LCD-1441
Some GeoTiff files could not be rectified properly. This has been fixed.
Bug fixTerrain Analysis Engine
LCD-1439
Fixed issue with the hardware accelerated TLspLOSCalculator that would miscalculate the center
of the LOS coverage in the case when the minimum vertical angle was set to 0.
Bug fixDefense Standards
LMAP-6076, LCD-1410
A more appropriate default value has been chosen for the maximum residual tie point error. This
will ensure that the bounds of a raster are more accurately decoded during the decoding process.
Bug fixDefense Standards
LMAP-6084, LCD-1413
TLcdNITFModelDecoder now also has limited support for symbol elements in the case
of NITF 2.0 files. Note that only the CGM format is supported for the symbol elements,
so bitmap- and object symbols are ignored.
Bug fixTiling Engine
LF-247
Fusion of VPF has been fixed so that "Edge already in line geometry" failures no longer happen.
Bug fixTiling Engine
LF-191
VPF data containing multiple geometries per feature (since VMAP2i) can now also be fused.
2012.0.02
ImprovementLuciadLightspeed
LCD-414
TLcdGXYLabelPlacer now throws a more meaningful exception if no labeling algorithm
has been set.
ImprovementTiling Engine
LF-250
Fusion of VPF data containing lots of complex polygons has been made more efficient.
ImprovementTiling Engine
LF-111
It is now possible to skip corrupt input files by setting a custom ILfnRasterSessionHandler on the
TLfnEngineFactory.
ImprovementTiling Engine
LF-321
The library dependency on the formats Geospatial PDF and AIXM has been made optional:
the Fusion Engine can now work without these libraries.
Bug fixLuciadLightspeed
LCD-1440
During creation or editing of a measurement using the ruler controller, label position were
unstable in some cases.
Bug fixLuciadLightspeed
LCD-1438
Fixed a possible issue with model locking while painting shapes that could result in an IllegalMonitorStateException.
Bug fixLuciadLightspeed
LMAP-4858, LCD-1431
The Lightspeed raster layers did not support ILcdEarthTileSet's elements with an odd number of
rows or columns at level 0. This could for example happen when visualizing data from a WMS
server in a Lightspeed view.
Bug fixLuciadLightspeed
LMAP-6109, LCD-445
TLcdEarthGLTerrainPainter: the painter did not support draping on top of another terrain.
Bug fixLuciadLightspeed
LCD-3
Fixed a repaint problem with TLspGXYLayerAdapter instances that were initially invisible and
then made visible.
Bug fixLuciadLightspeed
LMAP-6105, LCD-460
TLcdEarthGLTerrainPainter: the painter did not always update all its tiles when needed. This
could for example occur when changing the altitude exaggeration factor.
Bug fixLuciadLightspeed
LMAP-4676, LCD-455
TLcdEarthTileRepositoryPreprocessor: the preprocessor sometimes did not process tiles
at the edge of an asset.
Bug fixLuciadLightspeed
LMAP-6002, LCD-458
TLcdEarthTileRepositoryPreprocessor: the preprocessor did not support assets whose bounds
crosses the 180 degree meridian.
Bug fixLuciadLightspeed
TLcdEarthGLTerrainPainter now works correctly in stereoscopic 3D views.
Bug fixLuciadLightspeed
LMAP-5977, LCD-456
TLcdEarthGLShapeTileSet: the tile set did not support models with a non-geodetic reference for
its fill and outline coverages.
2012.0.01
ImprovementLucy (LuciadLightspeed)
LUCY-3487
The labels of the magnetic north layers now respect the angle format of Lucy.
ImprovementLuciadLightspeed
TLcdMagneticNorthGXYLabelPainter now allows configuring a format for the declination value.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: several new projections have been added. They are not included in the UI by
default,
but can be added by changing the map_addon.cfg config file. For example to include the Gnomonic
projection
to the UI, change the TLcyMapAddOn.gnomonicProjectionActiveSettable.menuBar.insert and
TLcyMapAddOn.gnomonicProjectionActiveSettable.toolBar.insert properties in the map_addon.cfg
file to
true.
ImprovementLucy (LuciadLightspeed)
LUCY-3459
TLcyMapAddOn: the Albers Equal Area Conic projection is now included. It is not inserted by
default. Change the TLcyMapAddOn.albersEqualAreaConicProjectionActiveSettable.menuBar.insert
and/or
TLcyMapAddOn.albersEqualAreaConicProjectionActiveSettable.toolBar.insert property
in the map_addon.cfg file to true if you want to include it in the UI.
ImprovementLuciadLightspeed
LMAP-6063, LCD-702
TLcdWKTReferenceFormatter and TLcdWKTReference parser now support formatting and parsing
references with a EGM96 geoid geodetic datum in particular cases.
ImprovementLuciadLightspeed
The class TLcdGXYClippingPainterWrapper now has an extra constructor that accepts
an ILcdGXYPainterProvider instead of an ILcdGXYPainter, to increase its usability.
Bug fixLuciadLightspeed
LCD-1
The TLspLayer did not apply the filter correctly when its model changes. As a result objects
that are not accepted by the filter could still appear in the view.
Bug fixLuciadLightspeed
LMAP-5698, LCD-128
Painting polygons or polylines with a very large line width using TLcdGXYPointListPainter
could sometimes cause visual artifacts along the border of the view.
Bug fixLuciadLightspeed
LMAP-5826, LCD-208
TLcdJULSimpleFormatter did not format the parameter objects into its messages.
Bug fixLuciadLightspeed
LMAP-5675, LCD-154
TLcdGXYNewController did not respect the isRequestFocusOnMousePressed setting.
Bug fixLuciadLightspeed
LMAP-5660, LCD-195
When detecting a model change, the ILcdGXYView implementations now fire invalidation events for
all layers sharing the model, instead of only one.
Bug fixLuciadLightspeed
LMAP-4591, LCD-454
TLcdGXYClippingPainterWrapper: the clipped region always used a straight-line approximation for
the line segment between the last and first point of a polygon instead of the approximation
computed by the clip pen.
Bug fixLuciadLightspeed
LMAP-6060, LCD-122
In some cases, TLcdGXYPointListPainter could incorrectly fill polygons crossing the projection
boundary.
Bug fixLucy (LuciadLightspeed)
LUCY-3476
TLcyMapOverviewComponentFactory would throw a NullPointerException when the createGXYLayer
method
returns null for the OVERVIEW_LAYER id.
Bug fixLucy (LuciadLightspeed)
LUCY-3462
The Layer Properties panels for empty layer tree nodes showed inconsistent behavior for the
visible settings. Those checkboxes have been disabled as setting the visibility for an empty
layer has no real use.
Bug fixLuciadLightspeed
LMAP-6085, LCD-190
TLcdGeoBufferPainter could not handle ILcdPoint instances that do not implement ILcdPointList.
Bug fixLucy (LuciadLightspeed)
LUCY-3467
TLcyDrawingAddOn: the fix for LUCY-2907 could cause a StackOverflowError in some very specific
cases.
This has been resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-3475
Creating a POL object customizer panel could cause a deadlock if the layer was being painted
asynchronously.
Bug fixLucy (LuciadLightspeed)
LUCY-3457
TLcyWCSClientAddOn, TLcyWFSClientAddOn: entering random text in the
URL chooser panel no longer results in an Internal Error message.
Bug fixLucy (LuciadLightspeed)
LUCY-3234
Adding a custom OGC WMS layer configured with the tiled painter could generate a
ClassCastException when the default WMS client addon (TLcyWMSClientAddOn) was enabled.
Bug fixLuciadLightspeed
LMAP-6067, LCD-135
Fixed a regression (since LMAP-5876) that caused TLcdGXYIconPainter's snaps to be no longer
painted.
Bug fixLuciadLightspeed
LMAP-6044, LCD-114
TLcdTransformedHeightProvider could return a NPE when the bounds of the delegate height
provider are null.
Bug fixLuciadLightspeed
LMAP-6037, LCD-461
TLcdEarthRasterAssetCodec: model reference decoders were not always correctly set on the model decoders. This could result
in errors when preprocessing (for example with the preprocessor sample). This is now fixed.
Bug fixLuciadLightspeed
LMAP-5916, LCD-220
In some cases, TLcdUTMZonePainter could throw an ArrayIndexOutOfBoundsException. This has
been fixed.
Bug fixLuciadLightspeed
LMAP-6057, LCD-1281
Fixed decoding of fill color of CGM graphics elements.
Bug fixAdvanced Raster Connectors
LMAP-5974
Some raster files could not be rectified properly during decoding. This has been fixed.
Bug fixAviation Standards
LMAP-6045
TLcdDAFIFRunwayDecoder: missing true bearing information required to calculate the position of a
runway's arresting gear no longer results in a NullPointerException. If the information is
missing, the arresting gear will not be registered on the runway, and a corresponding data
issue will be added to the log (see ILcdDAFIFDecoder#getErrorMessage()).
Bug fixInfrastructure Standards
LMAP-6081, LCD-715
The DGN decoder now adds tags as text elements.
Bug fixInfrastructure Standards
LMAP-6072, LCD-832, LMAP-6071
The DGN decoder now takes the font table into account.
Bug fixInfrastructure Standards
LMAP-6029, LCD-709
The DGN decoder now properly filters individual profiles in multilines,
based on their classes and levels..
Bug fixInfrastructure Standards
LMAP-6046, LCD-711
The DGN decoder now properly handles files containing empty text nodes.
Bug fixInfrastructure Standards
LMAP-5998, LCD-705
The DGN decoder now supports filled multilines.
Bug fixInfrastructure Standards
LMAP-6049, LCD-703
The DGN decoder now only decodes actual design models and extraction models,
not sheet models.
Bug fixInfrastructure Standards
LMAP-5997, LCD-706
Painting DGN shapes with extended colors no longer throws an
ArrayIndexOutOfBoundsException.
Bug fixMaritime Standards
LMAP-6033, LCD-508
A NullPointerException in TLcdS57FeatureObject.clone(), occurring when no relationships are
present in the object, has been fixed.
Bug fixMaritime Standards
LMAP-6034, LCD-538
Some information was not correctly cloned by TLcdS57Point and TLcdS57Area. This has been
fixed.
Bug fixMaritime Standards
LMAP-6021, LCD-543
S-57 point lists now throw proper IndexOutOfBoundsExceptions when points outside the valid
range
are requested.
Bug fixTiling Engine
LF-309
Improved handling of invalid models in ALfnFormat implementation for GRIB files.
Bug fixTiling Engine
LF-241
LuciadFusion now supports clipping shapes for the ECDIS format.
Bug fixTiling Engine
LF-307
The engine did not always use the ideal level in multi-leveled elevation assets. This could
occur when either the minimum or maximum scale denominator is set or when the pixel density of
an asset part did not match the actual pixel density of the data.
Bug fixTiling Engine
LF-301
NITF data containing vector data can now be fused without failure. As a limitation, only raster data is fused, while
vector data is ignored.
Bug fixTiling Engine
LF-317
Data in geodetic grid references (a TLcdGridReference with TLcdGeodeticDatum and TLcdGeodetic projection) can now be
fused correctly without failure.
2012.0
ImprovementLucy (LuciadLightspeed)
LUCY-3428
ALcyActionBar#setAutoHide now considers the action bar empty when the action bar contains
no visible components instead of considering the invisible components. This matches more
closely with the expectations of the users of this method.
ImprovementLuciadLightspeed
A dynamic filter class (ILcdDynamicFilter) has been added to the utility package.
ImprovementLuciadLightspeed
TLcdStatusEvent and ILcdStatusListener have been generified, so the type of the
source object in the events can be specified.
ImprovementLuciadLightspeed
TLcdCartesian now provides functionality to compute an inner point of a given polygon.
ImprovementLuciadLightspeed
The animation package (com.luciad.view.animation) has been added to facilitate animations.
ImprovementLucy (LuciadLightspeed)
TLcyHypsometryAddon: removed hypsometry settings footprint and normal provider from the user
interface. They remain configurable in the add-on's configuration file.
ImprovementLuciadLightspeed
Performance has been improved for transforming bounds with zero width or height.
ImprovementLucy (LuciadLightspeed)
TLcyLOSCoverageAddOn: now uses OpenCL technology to calculate certain LOS coverage layers
by using the Lightspeed class TLspLOSCalculator.
ImprovementLuciadLightspeed
Action listeners can now be registered to the TLcdBusyLayerTreeNodeCellRenderer class. Registered
listeners are notified at regular intervals whenever a layer is busy in the background.
ImprovementLuciadLightspeed
The sample samples.rotation has been replaced with the more general samples.gxy.editmodes sample.
It shows how to add extra ways to edit an object, by rotation for example, by adding
context-dependent handles and editing behavior.
ImprovementLucy (LuciadLightspeed)
When working with multiple displays, the full screen action now tries to detect the display
the current window is on.
ImprovementLuciadLightspeed
The TLcdEarthGXYRasterPainter now allows painting the tile set bounds when the pixel density is
too high, similar to the ALcdRasterPainter. This feature must be enabled explicitly by using the
setStartResolutionFactor method, the default behavior of the painter has not changed.
ImprovementLucy (LuciadLightspeed)
LUCY-3391
ALcyApplicationPaneTool: now throws exception with clear message when multiple instances use
the same long prefix.
ImprovementLucy (LuciadLightspeed)
LUCY-3378
TLcyWorkspaceAddon: now throws a clear exception when add-ons register workspace codecs
after the TLcyWorkspaceAddon is plugged. It used to cause subtle issues afterwards, but now
provides a descriptive message on application start.
ImprovementLuciadLightspeed
TLcdDataObjectExpressionLanguage now supports the use of constants as function arguments. Constants
should be delimited by single quotes "'", and are passed on to the function as a String.
ImprovementLuciadLightspeed
LMAP-4458
The 'image inputstream factory' property of a TLcdGeoTIFFDecoder no longer needs to be set
to an input stream factory that returns instances of the JAI SeekableStream class.
ImprovementLuciadLightspeed
LMAP-3242
ALcdRasterPainter now support filling a raster's area with a configurable fill
style when the desired pixel density is too high.
ImprovementLucy (LuciadLightspeed)
LUCY-3350
The sample resources files are now grouped per sample
ImprovementLucy (LuciadLightspeed)
LUCY-3305
The brightness and contrast controls now allow increasing their values beyond 100%.
ImprovementLuciadLightspeed
Model decoders for the Wavefront Object (obj) and the OpenFlight (flt) file formats
have been moved from the 3D Additional Component to LuciadLightspeed. They still reside
in the same package, but no longer require the 3D Additional Component to function. They
can be found in the com.luciad.format.object3d package.
ImprovementLuciadLightspeed
LMAP-4182
All transformation implementations are now thread-safe.
ImprovementLucy (LuciadLightspeed)
New (support) classes have been introduced allowing to easily integrate your own Lightspeed
layers in Lucy, or
to customize existing layers:
-
TLcyLspStyleRepositoryAddOn: add-on which provides the style repository, currently only
containing an
application wide selection style
-
TLcyLspLayerCustomizerAddOn: add-on which provides a fallback customizer panel for
TLcyLayerContext instances
containing Lightspeed layer(s)
-
ALcyLspFormat, ALcyLspFormatAddOn have been introduced, together with some useful
extensions. These classes allow
to easily create a new format (with style support)
-
A new format wrapper, TLcyGXYLspAsynchronousFormatWrapper, has been introduced to enhance an
existing ALcyFormat with Lightspeed rendering.
-
TLcyLspMapComponentFactory instances use ILcdInitialLayerIndexProvider to calculate the
optimal position of newly added Lightspeed layers. See
also the release note of ILcdInitialLayerIndexProvider in the release notes of LuciadMap.
-
ILcyCustomizerPanelFactory instances are available for a set of Lightspeed styles. See the
com.luciad.lucy.gui.customizer.lightspeed package documentation.
-
TLcyGXYLspAsynchronousFormatWrapper: ALcyFormat wrapper that adds support for Lightspeed
to existing ALcyFormats. All layers of the wrapped format will be painted asynchronously,
using
Lightspeed rendering if the hardware supports it.
ImprovementLucy (LuciadLightspeed)
Lightspeed views can be opened in Lucy, and several add-ons have been created providing extra
functionality
related to those Lightspeed views:
-
TLcyLspMapAddOn: the Lightspeed counter-part of the TLcyMapAddOn and
TLcyGLMapAddOn. This add-on allows to create a new Lightspeed map. The File | New | 3D Map
menu entry
now opens a Lightspeed map. In order to re-activate the menu entry for the old 3D map,
remove the
'TLcyGLMapAddOn.createMapAction.menuBar.insert=false' entry from the TLcyGLMapAddOn.cfg
file.
Two samples illustrating the customization options of this new add-on are included as well:
lucy.lightspeed.map.guifactory and lucy.lightspeed.missionmap .
-
TLcyLspMapOverviewAddOn: allows the TLcyMapOverviewAddOn to display the bounds
of Lightspeed views as well.
-
Lightspeed versions of several data format add-ons have been created.
-
TLcyLspFallbackFormatAddOn and TLcyLspGLFallbackFormatAddOn: allows to visualize data on the
Lightspeed
view using the available ILcdGXYLayerFactory and ILcdGLLayerFactory instances when no
ILspLayerFactory
is available.
-
TLcyLspToteAddOn: the Lightspeed counter-part of TLcyToteAddOn and TLcyToteOpenGLAddOn. This
add-on shows
the Lightspeed layer's objects and their properties in a table view.
-
TLcyLspGridCoordinateAddOn: this add-on allows the panel created by the
TLcyGridCoordinateAddOn to work on
Lightspeed maps as well.
-
TLcyLspCameraLinkAddOn: this add-on provides tracking camera linking functionality for
Lightspeed views.
It plugs in different default tracking cameras and allows to plug in custom ones.
Numerous samples have been updated and added, illustrating how Lightspeed should be integrated
with Lucy:
-
The general best practice sample has been updated to include support for Lightspeed views.
It defines 2 new sample add-ons:
-
BestPracticeFlightPlanLspFormatAddOn: displays flight plans on a Lightspeed view.
-
BestPracticeWayPointLspFormatAddOn: displays way points on a Lightspeed view.
-
Also the realtime best practice sample has been updated to include support for Lightspeed
views.
It defines one extra new sample add-on, in addition to those already defined by the general
best practice sample:
-
BestPracticeTimeStampedTrackLspFormatAddOn: displays time stamped tracks on a Lightspeed
view.
-
A Lightspeed style sample (lucy.lightspeed.style) has been added to demonstrate how the
Lightspeed styling mechanism can be
combined with the Lucy layer style mechanism to change the transparency for all layers. It
defines 1 new add-on:
-
LspStyleAddOn: adds a slider to the toolbar of Lightspeed map components that allows to
change the transparency of
all layers that expose a Lightspeed style.
-
Two lightspeed samples (lucy.lightspeed.modifiedlinestyle and lucy.lightspeed.newiconstyle)
have been added to demonstrate how to create custom layer customizer panels, allowing
users to move, combine or redefine existing panels and to create new ones. Both samples
define an additional add-on:
-
CustomLineStyleAddOn: replaces the standard UI for customizing the line style with its
own UI.
-
SHPFormatAddOn: introduces a custom layer properties panel for SHP layers containing a
custom
icon style customizer panel.
-
The lucy.lightspeed.loadstyle sample has been introduced, illustrating how the new
ILcyLayerStyleCodec interface
can be used to load a layer style from disk and apply it to an existing layer. The sample
also interacts with
the application-wide selection style, as provided by the TLcyLspStyleRepositoryAddOn.
-
The lucy.lightspeed.customizablestyle sample illustrates how the Lucy style mechanism can
deal with any
ILspCustomizableStyler implementation, and provides out-of-the-box layer properties panel,
style codecs and
workspace support for those ILspCustomizableStyler implementations.
-
The lucy.syncstyle sample (previously called the lucy.glmap.syncstyle) has been rewritten to
work on
Lightspeed maps as well. The sample now illustrates how the layer style between different
layers on
different maps (both GXY as Lightspeed maps) can be kept in sync.
-
The lucy.density sample has been introduced, illustrating how a
TLcdGXYLspAsynchronousLayerWrapper can be used
to add Lightspeed layers to a view.
ImprovementLucy (LuciadLightspeed)
LUCY-3107
The automatic selection of newly added layers can now be switched off in the configuration file
of the TLcyMapAddOn, TLcyGLMapAddOn and the TLcyLspMapAddOn. See the selectNewLayer property in
the map_addon_layer_control.cfg, TLcyGLMapAddOn_LayerControl.cfg and
TLcyLspMapAddOn_LayerControl.cfg
configuration files respectively.
ImprovementLuciadLightspeed
ALcdScaleIndicator and TLcdGXYScaleIndicator have been added to support including a
scale indicator icon.
ImprovementLucy (LuciadLightspeed)
LUCY-3277
Generified ALcyCompositeFilter and ILcdFilter.
ImprovementLucy (LuciadLightspeed)
TLcyDebugAddOn: now also provides debug tool tips for the action bars themselves, not only their
items.
ImprovementLucy (LuciadLightspeed)
LUCY-3278
If an active settable (menu or tool bar item that is either active or inactive) is configured to
be in multiple action bars, and if the active state is configured inconsistently, an exception
is now thrown to avoid the ambiguity.
ImprovementLucy (LuciadLightspeed)
LUCY-3061
New API was added to be able to quickly implement an action that works on the currently selected
objects: ALcyObjectSelectionAction.
ImprovementLuciadLightspeed
LMAP-5639
TLcdGXYShapeListPainter no longer edits the other shapes when a shape's handle is translated.
ImprovementLuciadLightspeed
LMAP-3523, LMAP-5149, LMAP-1576, LCD-2713
Considerably improved the rendering of filled shapes crossing the projection boundaries.
This requires the use of a TLcdGeodeticPen or TLcdGridPen without straight line mode.
ImprovementLucy (LuciadLightspeed)
TLcyComboBoxActionBar: an implementation of ILcyActionBar that uses a combo box.
ImprovementLuciadLightspeed
The ILcdFilter interface has been generified, allowing it to be used to define filters for
specific types of objects.
ImprovementReal-time Engine
TLcdSimulator now supports simulations in both GXY and Lightspeed views. For using TLcdSimulator
in combination with a Lightspeed view. The following methods were added:
- get/setLspLayerFactory: For retrieving/setting the Lightspeed layer factory that creates the
simulation layers for the Lightspeed view(s)
- getLspView: For retrieving the Lightspeed views set on the simulator
- add/removeView: For adding/removing ILcdViews on which the simulator should display the simulation
- getSimulationLspLayers: For retreiving all simulation layers pertaining to a given Lightspeed view
- is/setPlayInLoop: For checking/setting whether the simulator should play the simulation in a loop
ImprovementTerrain Analysis Engine
Added the com.luciad.tea.lightspeed.hypsometry package. This package contains various classes
to perform hardware accelerated hypsometry calculations for increased performance. The package
also contains Lightspeed painters for the hypsometry calculations, so the hypsometric functions
can be viewed in the new Lightspeed views.
ImprovementTerrain Analysis Engine
Added com.luciad.tea.lightspeed.los package. This package contains various classes to perform
hardware accelerated LOS calculations for increased performance. The com.luciad.tea.lightspeed.los.view
package has been added to be able to paint LOS calculations (including LOS calculations based on
older implementations) in new Lightspeed views.
ImprovementDefense Symbology
To easily enable a halo for symbols and their labels, a set of halo properties
have been added to the style interfaces ILcdMS2525bStyle and ILcdAPP6AStyle:
- haloEnabled: enables/disables a halo for a symbol (both icons and line symbols),
- haloColor: configures the color of the symbol's halo,
- haloThickness: configures the thickness of the symbol's halo,
- labelHaloEnabled: enables/disables a halo for the labels of a symbol,
- labelHaloColor: configures the color of the label's halo,
- labelHaloThickness: configures the thickness of the label's halo.
ImprovementDefense Symbology
The APP-6A and MIL-STD 2525b object customizer classes TLcdAPP6AObjectCustomizer
and TLcdMS2525bObjectCustomizer have been extended with the ability
to enable a symbol filter that only allows to use point-based symbology.
ImprovementTiling Engine
LuciadFusion is extended with support for AIXM data, which can be fused into raster coverages (rasterization).
ImprovementTiling Engine
LuciadFusion now supports fusion of Geospatial PDF data, which can be fused into raster coverages (rasterization).
ImprovementTiling Engine
The memory usage and performance of the fusion of VPF data has been improved significantly.
ImprovementTiling Engine
The fusion engine is now supports raster and elevation coverages as input assets for new coverages. This feature can
be used to create a cropped copy of an existing coverage. This use case is illustrated in the
samples.fusion.engine.coveragecropper sample.
ImprovementTiling Engine
The Fusion protocol now also supports per-tile signatures, allowing a coverage to be checked for consistency on
server side. The binary Tile Store format used by the server has been updated to allow storing an optional signature
per tile. The signature is defined by a message digest algorithm on the coverage metadata. New servers can read both
old and new formats, and will continue to use the old format for existing coverages. They will use the new format
only for new coverages that explicitly have a message digest algorithm set. Old servers will not be able to load
coverages in this new format.
ImprovementTiling Engine
The Fusion Engine now supports skipping assets when an error occurs (ex. the data on disk is
corrupt). To use this feature a session handler must be set when creating the engine session.
The default handler will abort the fusion when an error occurs.
Bug fixLucy (LuciadLightspeed)
LUCY-3424
Layers containing a TLcdModelList can now be dragged and dropped between map components.
Bug fixLuciadLightspeed
In some cases, TLcdGXYShapeListPainter did not throw a TLcdNoBoundsException when boundsSFCT
could not calculate valid bounds.
Bug fixLuciadLightspeed
In rare cases, TLcdGXYInPathLabelingAlgorithm could produce a StackOverflowError.
Bug fixLucy (LuciadLightspeed)
Raster outlines for large rasters (i.e. spanning the globe) were not always rendered correctly.
Bug fixLuciadLightspeed
LMAP-5413
ALcdRasterPainter and its subclasses now fire property change events for all public properties.
Bug fixLuciadLightspeed
LMAP-4304
The model descriptor returned by TLcdDTEDModelDecoder will have its 'isElevation' property
set to 'false' when the decoder's 'isShading' property has been set to true. This better
reflects the actual model contents.
Bug fixLuciadLightspeed
TLcdSymbol's hashCode implementation now matches its equals implementation.
Note that a TLcdSymbol's hash code will change if you modify the instance.
Hence, it is strongly advised to treat a TLcdSymbol as an immutable object,
and never change it after construction.
Bug fixLucy (LuciadLightspeed)
LUCY-3331
Lucy now supports alternative license file names, specified using system property
-Dluciadmap.license=license.txt.
Bug fixLuciadLightspeed
TLcdIndexColorModel's equals method relied on Java's IndexColorModel,
which has an equals method that is not strict enough (Oracle Java bug 7107905). A workaround has been provided.
Bug fixLucy (LuciadLightspeed)
LUCY-3283
Lucy now supports the splash screen mechanism of Java 6. This allows to show the splash
screen much sooner, early in the JVM start-up process. To this end, a new API class
TLcySplashScreenMediator is provided. The sample class AFrontend has been adapted to use it.
Bug fixLuciadLightspeed
LMAP-5642
ALcdGXYPainter catches IllegalArgumentExceptions in its getGXYPainter() method and returns
null if the object could not be set on itself. The documentation about the
ILcdGXYPainter.setObject() and the ILcdGXYPainterProvider.getGXYPainter() methods has been improved regarding
some exceptional cases and how they should be handled.
Bug fixLucy (LuciadLightspeed)
LUCY-2828
Expanded state of layer tree nodes is now stored/restored in/from the workspace.
Bug fixLuciadLightspeed
LMAP-4691
Fixed gap/discontinuity on edges of elevation data assets.
Bug fixDefense Symbology
LMAP-5919
The APP-6A and MIL-STD 2525b icon providers, TLcdAPP6AObjectIconProvider and TLcdMS2525bObjectIconProvider,
returned a shared icon for symbols with the same symbol code, regardless whether they shared a symbol
style or not. A shared icon will now only be returned for symbols that have the same code and style properties.
Bug fixTiling Engine
LF-287
The engine sometimes fused too few levels. More specifically the problem occurred when fusing a
raster asset with type VECTOR (for example an ECDIS asset) that is located close to the
coverage edges. Raster assets of type IMAGE or ELEVATION were not affected.
Upgrade considerationLuciadLightspeed
Luciad's abstract OpenGL binding, which is used by ILcdGLView to provide access
to the OpenGL API, is now available directly in LuciadLightspeed. The binding is also
used by the new Lightspeed view implementations (ILspView).
Only one concrete OpenGL binding is now shipped with LuciadLightspeed: JOGL version 2.x.
Previous implementations, based on GL4Java and older versions of JOGL, are no longer
included with the release. Applications that forced the use of a particular binding
via the system property "com.luciad.view.opengl.binding.ALcdGLBinding" should now be forced to use the JOGL 2.x
binding. Normally, this should not
pose any problems, however.
Upgrade considerationLucy (LuciadLightspeed)
The SwingX library has been updated from version 1.0 to version 1.6.2 .
Upgrade considerationLuciadLightspeed
The functionality previously offered by the 'Earth' Additional Component
is now available directly in LuciadLightspeed. This Additional Component provides
support for preprocessing raster and elevation data into a 3D terrain database, as
well as painters and other tools to work with such terrain databases.
The functionality is still contained inside a separate jar lcd_earth.jar,
but this jar is shipped inside the LuciadLightspeed zip file. The documentation of the Earth component, such as
the developer's guide and the release notes,
has been integrated into the main documentation.
Upgrade considerationLucy (LuciadLightspeed)
A new abstract method, createGXYLspAsynchronousLayer(), was added to
ALcyAsynchronousPaintFacade.
This method creates a GXY layer, which uses a Lightspeed layer internally. Custom classes
extending from ALcyAsynchronousPaintFacade will generate a compile error. Classes wrapping an
ALcyAsynchronousPaintFacade can solve this compile error by wrapping the new method. Classes
implementing ALcyAsynchronousPaintFacade can solve this compile error by returning a
TLcdGXYLspAsynchronousLayerWrapper or a TLcdGXYLspAsynchronousLayerTreeNodeWrapper. Should
Lightspeed
not be available to you, you can simply direct the call to
ALcyAsynchronousPaintFacade.createGXYAsynchronousLayer().
Upgrade considerationLuciadLightspeed
The bundled Earth repository "sample_repository" has been renamed to "World".
Upgrade considerationLuciadLightspeed
The signature of the method ALfnTileStore.query() has been changed compared to LuciadFusion V11.0: it no longer
declares to throw InterruptedException. Because it is an asynchronous method, InterruptedExceptions are propagated
via the ILfnQueryHandler. This has been the behavior since V10.0, so there is no actual change in behavior.
Upgrade considerationLuciadLightspeed
ILcdLayerTreeNode now allows configuring the position at which layers are inserted
by setting an ILcdInitialLayerIndexProvider on the node. See ILcdLayerTreeNode#addLayer.
- Direct implementations of the ILcdLayerTreeNode interface will no longer compile,
requiring the implementation of the ILcdInitialLayerIndexProvider getter and setter.
- The new methods have been added to TLcdLayerTreeNodeSupport, which is the support class
for creating such nodes. If you have created an ILcdLayerTreeNode implementation by delegating to this
support class, you can implement these new methods by delegating them to the support class as well.
Upgrade considerationDefense Symbology
LMAP-3366, LMAP-4581
The APP-6A and MIL-STD 2525b icon classes TLcdAPP6AIcon and TLcdMS2525bIcon
now properly paint within the bounding box determined by the icon width and height.
In the past, this was not the case for icons that had an anchor point different from the center
of the icon (e.g., the icon for the Point Of Interest symbol). For those icons, TLcdAPP6AIcon
and TLcdMS2525bIcon shifted the painting position according to this anchor point offset.
TLcdAPP6AIcon and TLcdMS2525bIcon now no longer perform the anchor point shift by themselves.
To determine the correct anchor point, TLcdAPP6AIcon and TLcdMS2525bIcon now implement
ILcdAnchoredIcon, which offers the anchorPointSFCT(Point) method for this.
This change only affects applications that define a custom painter/editor for the icons
(for instance, to customize the selection box around the icon) or that directly
use the API of the icons (for instance, to save them to a bitmap).
For these use cases, the users of the API needed to explicitly take the anchor point shift
into account in the past; this information was retrieved through the methods
getIconCenterOffsetX() and getIconCenterOffsetY() available in TLcdAPP6AIcon and TLcdMS2525bIcon.
In favor of the new ILcdAnchoredIcon approach, getIconCenterOffsetX() and getIconCenterOffsetY()
are no longer available in TLcdAPP6AIcon and TLcdMS2525bIcon. Usage of both methods can easily be
replaced by usage of the anchorPointSFCT(Point) method:
int offsetX = anchoredIcon.getIconCenterOffsetX();
int offsetY = anchoredIcon.getIconCenterOffsetY();
becomes
Point anchorPoint = new Point();
anchoredIcon.anchorPointSFCT( p );
offsetX = ( anchoredIcon.getWidth() / 2 ) - anchorPoint.x;
offsetY = ( anchoredIcon.getHeight() / 2 ) - anchorPoint.y;
Upgrade considerationTiling Engine
The fusion engine
ALfnEngine
is now fully asynchronous. The signature and semantics of its methods have changed to reflect this new paradigm.
A quick way to change existing code is this:
- Replace all old occurrences of
ALfnEngine.fuse()
withALfnEngine.fuse(new MyEmptyFusionHandler()).get(), where
MyEmptyFusionHandler
has empty implementations for all methods.
- Add a
catch ExecutionException
and get its cause.
- Replace old occurrences of
ALfnEngine.getProgressNonBlocking()
withALfnEngine.getProgress(), which has now become non-blocking.
- Reevaluate old occurrences ofALfnEngine.getProgress(). The old behavior was blocking,
but the new behavior is non-blocking. In case the blocking behavior is irrelevant for your use case, you can
just leave it. In case the blocking behavior is relevant for your use case, for example because you want to wait
until the progress has been initialized, replace it with
ALfnEngine.getInitialProgress().get()
.
- The blocking call
void fuse()
has been replaced with a non-blocking counterpartFuture<?> fuse(ILfnFusionHandler).
Instead of receiving the exceptions synchronously, they can now be received either by listening for them on a
handler or by inspecting the
ExecutionException
when blocking for the result withFuture.get().
- Replace all old occurrences of
ALfnEngine.stop()
withFuture.cancel(). This means you need to hold onto the future returned by an earlier call
toALfnEngine.fuse(ILfnFusionHandler).
Upgrade considerationTiling Engine
The class ILfnVectorSessionHandler.FailureContext has been made abstract, its constructor has been removed. Users of
the API should never instantiate this class. The methods getLevel(), getRow() and getColumn() have been replaced by
getTileCoordinates(); the level, row and column information can still be accessed in the returned
TLfnTileCoordinates
object.
Upgrade considerationTiling Engine
LF-182
The Fusion protocol now also supports text geometry. Objects with ILcdText geometry can now be fused to vector
coverages,
and displayed accordingly in Fusion clients. The vector tile data format used by the Fusion protocol has been
updated
to allow modelling of text geometry; old clients will no longer be able to read data which has been fused with a
new Fusion engine supporting text geometry. New Fusion engines can still fuse to the old tile data format, by
setting
the appropriate codec version number on the coverage metadata.
Upgrade considerationTiling Engine
TLfnScaleUtil has moved from package
com.luciad.fusion.engine.vector
to
com.luciad.fusion.util. Imports must be adjusted where necessary.
The default (compilation) scale denominator for a
VectorAssetPart
is now-1, for which a new constant
TLfnScaleUtil.UNKNOWN_SCALE_DENOMINATOR
has been defined. Where appropriate, hard-coded values of
0
should be replaced with references to the new constant.
Upgrade considerationTiling Engine
ILfnVectorSessionHandler: the interface has been modified to support more general failures. More
specifically the
featureElementFailed
method has been renamed to
handleFailure
and some of the attributes in the context have become optional.
11.0
11.0.37
Bug fixDefense Standards
LCD-1447
A cross-tile feature in ELEMENT_PER_FEATURE mode might have contained duplicate shapes in its shape list
after tiles have been garbage-collected and reloaded. This has been fixed now.
Bug fixDefense Standards
LCD-1445
The primitives of a cross-tile feature were not always initialized at the same time in ELEMENT_PER_FEATURE mode.
As a result, the number of shapes in these features might vary over time, depending on the applyOnInteract
operations
that were performed on the model. This has been fixed now: all primitives of a cross-tile feature are now
initialized
at the moment it is first accessed.
Bug fixDefense Standards
LCD-1444
Features with multiple primitives within the same tile but without a feature join table were not merged into a
single model element in ELEMENT_PER_FEATURE mode. This has been fixed.
Bug fixDefense Standards
LCD-1446
A potential threading issue in the decoding of cross-tile features in ELEMENT_PER_FEATURE mode has been fixed.
Bug fixDefense Standards
LCD-1436
The source of a VPF model descriptor is now filled in when a feature class is decoded to a model using
TLcdVPFModelDecoder.decode(TLcdVPFFeatureClass). The path of a VPF feature class is also available now via the
TLcdVPFFeatureClass.getPathName() method.
11.0.36
Bug fixDefense Standards
LMAP-6050, LCD-617
Extra input validation has been added to the VPF model decoder, to avoid OutOfMemoryErrors due to corrupt input
files;
these errors are now converted into IOExceptions. In addition, the VPF model now remembers which files have already
been decoded (or tried to decode) and which not; this avoids that the decoder reattempts to read corrupted files
over and over during each model access. Only the first model access will now throw an IOException in case of
corrupted
files.
11.0.33
Bug fixLucy (LuciadLightspeed)
LUCY-3449
Fixed exception that would occur while decoding polyline based contours layers, created with
the TLcyContoursAddOn. (regression)
Bug fixDefense Symbology
LMAP-6048
The available property values defined by the APP-6A domain object's data type
(TLcdEditableAPP6AObject#getDataType()) did not fully match with the values actually
used in practice, resulting in IllegalArgumentExceptions when relying on this.
Bug fixDefense Symbology
LMAP-5527
The locations of the Unique Designation and Type modifier labels for the
Nuclear Detonation Ground Zero symbol in MIL-STD 2525b (2.X.3.4.2, G*M*NZ----****X) were switched.
Bug fixDefense Symbology
LMAP-1841
When one of the geographical locations of a symbol was not visible in the current view projection,
a TLcdOutOfBoundsException stack trace was sometimes printed on the console.
This will no longer happen, as this situation should only result in the symbol not being painted.
11.0.31
ImprovementLuciadLightspeed
LMAP-6016
TLcdGXYCircularArcPainter now has a paintEditingLabels method, making it easier to display
extra information while editing circular arcs.
ImprovementLuciadLightspeed
LMAP-6007
TLcdGXYCirclePainter now supports snapping its outline.
Bug fixLucy (LuciadLightspeed)
LUCY-3422
TLcyPreferencesTool could produce unneeded warnings when using a long prefix that was a
substring of another long prefix.
Bug fixLucy (LuciadLightspeed)
LUCY-3403
TLcyAPP6AAddOn, TLcyMS2525bAddOn: the rendering settings between a GXY and GL view were
slightly different, resulting in a different icon color for some symbols when visualized
in both views. This has been fixed: the GL view rendering settings are now the same
as in GXY.
11.0.30
Bug fixLuciadLightspeed
TLcdEarthGLTerrainPainter: it was possible that some threads get blocked for a very long time
when producing tiles on multiple threads. This situation could only occur when overriding the
createAsynchronousTileSet method to create a tile set that uses multiple threads.
Bug fixLuciadLightspeed
TLcdEarthTileSetElevationProviderAdapter: the bounds was incorrect when the source reference
did not equal the reference of the elevation provider.
Bug fixLuciadLightspeed
LMAP-6009
TLcdEarthHeightProviderFactory: the factory did not always consume some of its required keys. In
addition it can now also consume the TLcdRasterModelHeightProviderFactory.KEY_INTERPOLATE_DATA
key if it its value is true.
Bug fixLuciadLightspeed
LF-237
The bounding shape of an asset is now encoded in the same geo reference as the asset (used to default to EPSG:4326).
Bug fixLuciadLightspeed
LMAP-6003
Fixed an exception that could occur when using line placement with objects that do not have a
label text.
Bug fixOGC Server
LMAP-6023
GetFeatureInfo requests where not correctly handled for layers that did not provide
non-null painters for each available object in a model. It is however valid for layers
to do that, if they want to hide an object in the map.
Bug fixOGC Server
LMAP-5641
Manually configured scale ranges on the ILcdGXYLayer instances produced by the layer factory
were not correctly taken into account in case of the geodetic reference EPSG:4326 / CRS:84.
Bug fixDefense Symbology
LMAP-6015
The Forward Edge Of Battle Area (FEBA) symbol in MIL-STD 2525b/c (2.X.2.4.2.1, G*G*DLF---****X)
was not correctly rendered: a connection line was painted between the two points,
while only the points should be visualized.
Bug fixInfrastructure Standards
LMAP-5952, LCD-707
The DWG decoder didn't take per-vertex line width into account for LWPOLYLINE elements.
Bug fixInfrastructure Standards
LMAP-5951
The DWG decoder sometimes added curly braces around MTEXT elements.
11.0.29
ImprovementLuciadLightspeed
TLcdGXYPointListPainter now supports snapping points of a complex polygon.
Bug fixLuciadLightspeed
LMAP-6004
Fixed issue where the TLcdKML22GXYPainterProvider would reset the transparency of the groundoverlay
painter to 1, regardless of what had been configured.
Bug fixLuciadLightspeed
LMAP-6005
Fixed issue where an extended style based on a combined style would use the same cache
as its parent style, causing icons in the same base style but separate icons to have
use the same icon.
Bug fixLucy (LuciadLightspeed)
LUCY-3419
TLcyEarthOpenGLAddOn: the add-on called the ILcyCustomizerPanelFactory instances with a
TLcyLayerContext containing an incorrect view. This has been corrected.
11.0.28
ImprovementLucy (LuciadLightspeed)
LF-233, LUCY-3683
The TLcyFusionVectorFormatAddOn now shows a clear warning message when trying
to open a LuciadFusion vector coverage on a 3D map, which is not supported.
ImprovementLucy (LuciadLightspeed)
LUCY-3406
The TLcyPrintAddOn now allows to print BingMaps data as well, including the copyright
information.
ImprovementLucy (LuciadLightspeed)
LUCY-3400, LUCY-3413
ALcyActionBar now hides submenus when all the entries of that submenu become invisible (see
ILcdAction#VISIBLE)
ImprovementAviation Standards
Airspace volumes that use buffers and occur in an aggregated airspace are now also supported for visualization.
Bug fixLuciadLightspeed
LMAP-5986
TLcdLabelConflictChecker could throw an exception upon a reset with zero (or negative)
sized bounds.
Bug fixLuciadLightspeed
LMAP-5962
Improved correctness of reference parsing for GeoTIFF files containing user defined references.
Bug fixLuciadLightspeed
LMAP-5472
In some cases bounds transformations between two geocentric or two topocentric references, or
between a geocentric and a topocentric reference, could return incorrect results.
Bug fixLuciadLightspeed
LMAP-5974, LCD-94
Some raster files could not be rectified properly during decoding. This has been fixed.
11.0.27
ImprovementAviation Standards
LMAP-5755
The DAFIFT decoders have been made more robust to avoid exceptions when encountering unexpected
record field counts.
Bug fixLucy (LuciadLightspeed)
LUCY-3408
The TLcyContourAddOn could cause a NullPointerException when properties of the Lucy back-end
were
changed. This has been fixed.
Bug fixLuciadLightspeed
TLcdLayerTreeNodeCellRenderer kept a strong reference to the last renderer layer, which caused a memory
leak when all layers were removed from the view. This has been fixed.
Bug fixLucy (LuciadLightspeed)
Certain CADRG files could not be loaded due to an error in the scale parsing logic.
Bug fixLuciadLightspeed
LMAP-5949
Fixed issue for 3D views where a NPE would be thrown if a KML file contained a rotated
GroundOverlay element for the case where no TLcdKML22Parameters have been set on the
model.
Bug fixLuciadLightspeed
LMAP-5948
The data model transformation API can now be configured to call transformations for properties
of which the value is null. This is useful when a null value in the source domain should be mapped
on a non-null (default) value in the target domain. TLcdDataModelMapping and TLcdDataTypeMapping
now have an extra constructor with a flag to specify whether to make an attempt to transform
null properties or not.
Bug fixLucy (LuciadLightspeed)
The TLcyMapOverviewAddOn had a dependency on 3D. This dependency has been removed.
Bug fixLucy (LuciadLightspeed)
LUCY-2974
Labels for polylines/polygons in the drawing add-on could make a 'jump' when starting to
edit them.
Bug fixTerrain Analysis Engine
LMAP-5946
TLcdProfileViewJPanel no longer throws warnings when used with a reference that does not contain geoid information.
Bug fixMaritime Standards
LMAP-5950
As of V11.0, TLcdS52GXYPainterProvider could no longer be extended to use custom painters.
This
has been fixed.
11.0.26
ImprovementWeather & Environment Standards
LMAP-5612
TLcdGRIB2ModelDecoder now supports PNG encoded packing.
ImprovementWeather & Environment Standards
LMAP-5614
The documentation on complex packing support has been improved.
ImprovementWeather & Environment Standards
LMAP-5613
TLcdGRIB2ModelDecoder now makes a better estimate of the number of bits required to load GRIB2 files
with complex packing, resulting in less memory consumption.
Bug fixLuciadLightspeed
LMAP-5478
The XML encoder now supports encoding of mixed complex types that extend from other mixed
complex types.
Bug fixAdvanced GIS Engine
LMAP-5379
The memory consumption of advanced topology computations for large models has been reduced significantly.
Bug fixInfrastructure Standards
LMAP-5904
The DGN decoder didn't transform text elements in a shared cell properly. This could cause
text elements at the wrong location or with the wrong size.
11.0.25
ImprovementLucy (LuciadLightspeed)
LUCY-3399
AFrontend now allows to specify the addons file in its constructor, which is used by the
subclasses
to pass an addons file when it is specified as command-line argument.
Bug fixLuciadLightspeed
LMAP-5892
Fixed painting of wind barbs: speeds above 100 knots are now drawn with multiple triangles
instead of squares.
Bug fixLuciadLightspeed
LMAP-5890
In very rare cases TLcdGXYAsynchronousLabelPlacer could throw a RejectedExecutionException.
Bug fixLuciadLightspeed
LMAP-5889
Bounds transformations from a grid reference using TLcdMercator to a geodetic reference
could return bounds with a width of 350 instead of 360.
Bug fixLuciadLightspeed
LMAP-5871
GeoTIFF images contain JPEG encoded RGBA data are now correctly decoded and displayed.
11.0.24
ImprovementLuciadLightspeed
LMAP-5700
When the tiled approach is used to visualize WMS layers, the maximum level of detail
is now determined more accurately in case no scale ranges are defined by the WMS server.
In that case, it now assumes a maximum resolution of 2 cm / pixel to generate the tile structure.
ImprovementLuciadLightspeed
LMAP-5837
TLcdEarthRepositoryModelDecoder: the canDecode method no longer accepts all source names that
refer to a directory. It now only accepts source names that either refer to the repository root
file (that is tilerepository.cfg) or refer to a directory that contains a repository root file.
ImprovementLucy (LuciadLightspeed)
LUCY-2996
When loading an a.toc file, users no longer need to choose between dafif and cadrg. Cadrg is
used. When loading files that the cadrg decoder can handle (and thus also the nitf decoder), the
user no longer needs to choose between those two, cadrg is used by default. This was already
available
on version V10 and higher, but has now been back-ported to V9.
Bug fixLuciadLightspeed
LMAP-5894
Possible IllegalArgumentException when calling TLcdGXYStampLabelPainter.setGXYInteractiveLabelProvider()
or when creating a new TLcdGXYStampLabelPainter with a non-null ALcdGXYInteractiveLabelProvider.
This error was introduced through the addition of LMAP-2671 and LMAP-3554.
Bug fixLucy (LuciadLightspeed)
LUCY-3397
The TLcyGridCoordinateAddOn depended on the 3D component. This dependency has been removed.
Bug fixLuciadLightspeed
The height providers created by the TLcdEarthGLLayerHeightProviderFactory sometimes incorrectly
returned valid heights when the valid heights only option is enabled.
Bug fixLuciadLightspeed
LMAP-5888
The rotation specified in point placements of text symbolizers is now applied correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-3367
The lucy.layerpropertyeditor sample could throw an IllegalArgumentException when updating the
colors of a raster layer through the layer properties panel.
Bug fixLuciadLightspeed
LMAP-5887
The XML generated for WFS-T transaction requests that update a date of type XMLGregorianCalendar
now correctly contains the date instead of an empty element.
Bug fixLucy (LuciadLightspeed)
LUCY-3379
Drag-and-drop of URL's did not work under JDK1.7 . This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3396
TLcyFormatBarAddOn: the format bar could not follow the selected layers when the layer control
of the map component was replaced.
Bug fixLuciadLightspeed
LMAP-5778
TLcdEarthTerrainElevationProvider: the elevation provider did not handle rasters that cross the
180 degree meridian correctly.
Bug fixLuciadLightspeed
LMAP-5882
Fixed problem for certain KMZ files with deflated entries, where a ZipClosed exception
could occur while decoding the file.
Bug fixLucy (LuciadLightspeed)
LUCY-3395
A FileNotFoundException was logged when using the Tools | Create GeoReference menu option. This
has been resolved.
Bug fixLuciadLightspeed
LMAP-5872
The Earth GXY painters allow garbage collection of their cached tiles, including those that were
painted the last time.
Bug fixLucy (LuciadLightspeed)
LUCY-3394
TLcyFormatBarAddOn: loading a workspace which contains a format bar but not the matching layer
could result in a workspace without format bar, depending on the add-on order in the addons.xml
file.
The workspace codec has been adjusted to behave correctly independently of the add-on order.
Bug fixLucy (LuciadLightspeed)
LUCY-3302
Exporting a layer to GeoTIFF could fail when using incorrect settings in the export dialog. In
such case a damaged file was left on disk. This file is now automatically removed.
Bug fixLucy (LuciadLightspeed)
LUCY-3311
The TreeTableFeaturedModel fired the wrong events, causing the tree table to collapse constantly
when displaying real-time data in combination with a running previewer.
11.0.23
ImprovementLuciadLightspeed
LMAP-5857
TLcdGeoTIFFModelDecoder will now skip over invalid sub-images instead of generating a decoding
error. Warning messages are logged when invalid sub-images are skipped.
ImprovementLuciadLightspeed
LMAP-5858
The list of data series supported by TLcdCADRGModelDecoder has been extended to support the
complete set of data series defined in MIL-STD-2411-1 Notice 1.
ImprovementDefense Standards
LMAP-5846
Performance of model access has been improved; especially datasets for which many tiles have one
or more geometry tables missing will take advantage from this improvement.
Bug fixLuciadLightspeed
LMAP-5876
TLcdGXYIconPainter: icons with a halo were not displayed if their first
paint happened far outside the view bounds.
Bug fixLuciadLightspeed
Tile data which were kept in memory by TLcdEarthGXYRasterPainter are now properly released after painting.
Bug fixLucy (LuciadLightspeed)
LF-215
The fusion layer factories no longer support model tree nodes. This support was accidentally
introduced in V11.
Bug fixOGC Server
LMAP-5875
When using WMS layer dimensions, the support class ALcdMultiDimensionalModelProvider
did not accept dimension intervals - only values were accepted.
Bug fixDefense Standards
LMAP-5865
TLcdUSRPModelDecoder documentation was updated to correctly reflect
the .QAL and .SOU file requirements.
Bug fixDefense Standards
LMAP-5774
TLcdUSRPModelDecoder now sets the Product Type and Dataset ID on the decoded
TLcdUSRPZoneDescriptor.
Bug fixMaritime Standards
LMAP-5874
TLcdS57ModelDecoder no longer throws exceptions when decoded models are empty (for example,
because the object class selection filter on the decoder is empty).
11.0.22
ImprovementLuciadLightspeed
LMAP-5843
TLcdAdvancedMapRulerController and TLcdMapTouchRulerController's measurement segment labels
now better follow the segments when measuring geodetic or rhumbline distances.
Bug fixLuciadLightspeed
Prevented a NullPointerException when calling invalidateSelection on a view with a null
reason.
Bug fixLuciadLightspeed
TLcdGXYShapeListPainter, TLcdGXYCompositeCurvePainter and TLcdGXYCompositeRingPainter's
boundsSFCT methods returned the wrong bounds if the bounds had (only) negative X or
negative Y coordinates.
Bug fixLuciadLightspeed
LMAP-5404
GeoTIFF images containing 16-bit data samples and one or more 'extra' samples are now decoded
and rendered correctly.
Bug fixLuciadLightspeed
LMAP-5828
Possible ConcurrentModificationException when using TLcdGXYCompositeViewLabelPlacer in
combination with asynchronous label placement.
Bug fixLuciadLightspeed
LMAP-5827
Fixed decoding problem for GroundOverlay elements that contained a Region. The Regions
now correctly contain a LatLonAltBox.
Bug fixLuciadLightspeed
LMAP-5689
Improved overridden clone methods so that the behavior for both clone() and clone(Map) is
consistent.
Bug fixMaritime Standards
LMAP-5806
TE texts are no longer rendered if a required attribute, used within the text, is not
present.
Bug fixMaritime Standards
LMAP-5680
Texts are no longer rendered if a required attribute, used within the text, is not present.
11.0.20
ImprovementLuciadLightspeed
When an XML attribute has a fixed value, the XML encoders will now always use the fixed value
from the schema, instead of taking the actual value of the data, ensuring the correctness of
the encoded XML document.
ImprovementLuciadLightspeed
TLcdTFWRasterModelDecoder now also accepts .gfw files for georeferencing
.gif files. The sample raster file usa.gif illustrates its use and various
alternative ways for georeferencing images.
ImprovementDefense Symbology
The APP-6A/B weather symbols Instrument Ceiling (3.X.5.1) and Visual Ceiling (3.X.5.1)
are now represented as areas instead of icons, which is more correct according
to the specification.
Bug fixLuciadLightspeed
LMAP-5760
ALcdRasterPainter and its subclasses now render the outline for too
high pixel densities and the outline for selected rasters using the same rendering
logic. This ensures both outlines are always rendered the same.
Bug fixLuciadLightspeed
LMAP-5795
All ILcdCircularArc classes had an issue in getStartTangent2D(),
getEndTangent2D() and getForwardTangent2D() causing reversed orientation.
The calculated tangent angle was correct, but in some cases flipped 180 degrees,
so their direction was reversed.
Bug fixLucy (LuciadLightspeed)
LUCY-2802
When defining a print area on a rotated map, the rectangle properly follows
the mouse pointer again.
Bug fixLuciadLightspeed
LMAP-5802
ALcd3DEditableBounds implements setTo3DIntersection and setTo3DUnion
based on the 2D versions again, for extensions that depend on it.
Bug fixLuciadLightspeed
LMAP-5799
TLcdSHPModelEncoder now always encodes Cartesian polylines and
polygons, instead of possibly wrapping geodetic versions.
Bug fixLuciadLightspeed
LMAP-5801
TLcdEarthGXYSinglevaluedRasterPainter did not correctly show transparency changes when using
IndexColorModel instances, because of Oracle Java bug 7107905. A workaround has been added.
Bug fixDefense Symbology
LMAP-5814
The labelPosition property of an object's style (ILcdAPP6AStyle or ILcdMS2525bStyle) was not properly
taken into account in case the default label painter was used.
Bug fixDefense Symbology
LMAP-5805
Choosing a symbol category in the symbol tree inside the TLcdAPP6AObjectCustomizer or TLcdMS2525bObjectCustomizer
resulted in an incorrect event state. This caused the firing of incorrect events when using setObject afterwards
to customize a symbol.
Bug fixInfrastructure Standards
LMAP-5798
The DGN decoder was not thread-safe, even when using multiple different instances.
This is now fixed by serializing all decode() calls.
Upgrade considerationLuciadLightspeed
LMAP-5797
The protected constructor of the abstract class ALfnAssetMetadata.Builder was removed from the API. It was never
meant to have been part of the API in the first place, so there should be no custom subclasses. The impact of this
change should hence be nihil.
11.0.19
Bug fixLuciadLightspeed
LMAP-5766
TLcdEarthTileSetElevationProvider: the elevation provider did not take the geodetic datum
or unit of measure of the target reference into account if they where different from the
geodetic datum or unit of measure of the preferred reference.
Bug fixDatabase Connectors
LMAP-5794
The decoder sometimes created a Box3D statement outside the geodetic world bounds, causing
a PostGIS error. This was due to floating point rounding errors.
11.0.18
ImprovementLucy (LuciadLightspeed)
LUCY-3297
The GXY layer created for OBJ files only displays an outline which can not be selected, and now
the layer indicates this as well by returning false for the isSelectableSupported method.
ImprovementLuciadLightspeed
Performance improvement for TLcdObliqueMercator.inLonLatBounds() and
TLcdSphericalObliqueMercator.inLonLatBounds().
ImprovementLuciadLightspeed
LMAP-4700
TLcdWFSGetFeatureRequest now has an additional setBoundingBox method to specify a bounding box
with a coordinate system other than WGS84.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now creates models with shorter display names.
ImprovementDefense Standards
LMAP-5767
TLcdVPFModelDecoder now offers two model element modes: elements per geometry and elements per
feature. The former will map each geometry onto a separate model element, the latter will merge
geometries of the same feature together into a single model element, implementing ILcdShapeList.
The former is the existing behavior and is therefore configured on the decoder by default.
Model element modes can be changed using TLcdVPFModelDecoder.setModelElementMode().
Bug fixLuciadLightspeed
LMAP-5499
Some bounds transformations used many more point transformations than needed for some
cases. This fix improves the performance in these cases.
Bug fixLuciadLightspeed
TLcdLonLatBounds and TLcdLonLatFloatBounds now handle some additional
numerical rounding problems in their contains2D(double,double) methods.
Bug fixLuciadLightspeed
LMAP-5769
TLcdOWSHttpTransport will no longer attempt to send GET requests if the ILcdOWSRequest does not
support KVP encoding. This avoids unpredictable behavior with WFS-T transaction requests.
Bug fixLuciadLightspeed
LMAP-5762
TLcdEarthGXYRasterPainter: fixed incorrect rendering when warping partially transparent raster
data.
Bug fixLuciadLightspeed
LMAP-5640, LCD-219
In some cases, TLcdLonLatGridPainter could display erroneous meridian line pieces.
Bug fixDefense Standards
The TLcdVPFGXYPainterProvider now supports rendering of VPF models decoded in
ModelElementMode.ELEMENT_PER_FEATURE mode in combination with GeoSym.
11.0.17
ImprovementLuciadLightspeed
TLcd2DEditablePointList and TLcd3DEditablePointList now implement ILcdPointList2.
In addition, TLcdGeodeticPen and TLcdGXYPen now take better advantage of this
interface.
ImprovementLuciadLightspeed
TLcdETOPOModelDecoder now has settings supportGeoidDatums and
applyGeoidDatums to consider the results with respect to the EGM96 geoid
datum instead of the default WGS84 ellipsoidal datum.
ImprovementLuciadLightspeed
LMAP-5754
TLcdDatabaseModelDescriptor now implements ILcdAnnotatedElement, thus
allowing the addition of annotations to database models.
ImprovementLuciadLightspeed
LMAP-5609
TLcdDatabaseModelDescriptor now has optional feature display names, which are
also used when constructing the data model type.
ImprovementLuciadLightspeed
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties that are passed to to the database model decoder.
ImprovementLuciadLightspeed
LMAP-5509
ALcdRasterPainter has a new utility method resolutionFactor that returns
the ratio between a raster's pixel density and the ideal pixel density,
which can be compared with startResolutionFactor and stopResolutionFactor.
The raster painters provide more detailed logging about the scale and
resolution factor.
ImprovementDatabase Connectors
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties that are passed to to the database model decoder.
ImprovementDatabase Connectors
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties that are passed to to the database model decoder.
ImprovementDatabase Connectors
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties specified to the database model decoder.
ImprovementDatabase Connectors
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties that are passed to to the database model decoder.
ImprovementDatabase Connectors
LMAP-5609
The model descriptor now supports feature display names, which can be
specified in the properties that are passed to to the database model decoder.
ImprovementDefense Standards
The sample samples.decoder.raster.nitf.orthorectified illustrates
orthorectification of NITF rasters that have the SENSRB extension.
ImprovementTiling Engine
LF-231
When a format is unavailable because of a missing dependency, an info message is logged rather than a warning. In
order to make it unaffected by obfuscation, the message displays the format name rather than the class name of the
missing dependency.
Bug fixLuciadLightspeed
LMAP-5758
TLcdSHPModelEncoder now always encodes Cartesian bounds, instead of
possibly wrapping geodetic bounds.
Bug fixLuciadLightspeed
LMAP-5458
TLcdGXYAsynchronousLabelPlacer now creates a thread with a meaningful name.
Bug fixLucy (LuciadLightspeed)
LUCY-3183
The asynchronous labeling thread could remain alive when the corresponding view is removed.
Bug fixLucy (LuciadLightspeed)
LUCY-3292
TLcyDrawingAddOn: a NullPointerException could occur when closing the drawing object properties
panel at a moment where the UI contained unprocessed changes.
Bug fixLucy (LuciadLightspeed)
LUCY-3287
The TLcyMapComponent#getSnapList method returned a ILcdGXYLayerSubsetList which threw
NullPointerExceptions
when snapping is not activated.
11.0.16
ImprovementLuciadLightspeed
LMAP-5636
Raster model decoders that cache tiles in buffers now provide default
parameterless constructors that set a globally shared buffer, for
convenience.
ImprovementLuciadLightspeed
LMAP-4669, LMAP-5608
TLcdEarthGLTerrainPainter: the number of tiles requested by this painter has been reduced
significantly. As a result the terrain in a 3D view typically updates a lot faster.
ImprovementAviation Standards
LMAP-5708
The computation of procedure trajectories has seen some general improvements to increase
the quality, and to ensure consistency when comparing between different LuciadMap versions.
ImprovementAviation Standards
LMAP-5696
Improved the AIXM 5.x airspace painting style to be more inline with ICAO guidance and airspace styles of the
other AIS formats.
ImprovementDefense Standards
LMAP-5695
TLcdNITFModelDecoder now has a new setting separateGraphics to decode vector
data in graphic segments into separate model tree nodes of the main model.
Bug fixLucy (LuciadLightspeed)
LUCY-3285
Copying entries from the table view did not respect the table's sorting
Bug fixLucy (LuciadLightspeed)
The TreeTableGuiFactory incorrectly mapped the collapse action onto the configuration properties
of the expand action.
Bug fixLuciadLightspeed
LMAP-5729
TLcdInterpolatedRaster now handles unknown values more robustly.
Bug fixLuciadLightspeed
LMAP-5726
The DMED/DTED model decoders now return rasters that avoid a threading
problem with the fall-back mechanism for levels of detail.
Bug fixLuciadLightspeed
LMAP-5725
TLcdSHPModelEncoder no longer writes out incompatible (dBASE 7) boolean and
binary double types in .dbf files. Note that the compatible (dBASE 3/4/5)
format has a limited precision for the double type.
Bug fixLuciadLightspeed
LMAP-5718
TLcdAWTPath could sometimes return incorrect results for large polygons.
Bug fixLuciadLightspeed
LMAP-5715
TLcdPolyconic projection transformed out of bounds world points instead of throwing an
out of bounds exception.
Bug fixLuciadLightspeed
LF-187
The Fusion Client can now also connect to a server with (encoded) special characters in its URI path (for example
"http://www.example.com/Luciad%20Fusion/lts").
Bug fixLucy (LuciadLightspeed)
LUCY-1474
The end user guide now documents the settings for encoding GeoTIFF files.
Bug fixLuciadLightspeed
LMAP-5706
When using TLcdGXYCompositeLabelPainter in combination with one or more label painters that
do not implement ILcdGXYLabelPainter2, the getPossibleLocationCount() method could produce
a NullPointerException. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4339
The Linux versions of the license server no longer depend on GLIBC_2.7.
The minimum requirement is currently GLIBC_2.4.
Bug fixLuciadLightspeed
LMAP-5705
TLcdDataObjectIndexedModel did not clear unique indices properly on removeAllElements(). This
could cause inconsistencies and errors later.
Bug fixLuciadLightspeed
TLcdGUIIcon displayed the wrong icon for the UNKNOWN type. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3284
The TableViewGUIFactory.TOGGLE_VISIBILITY_ACTION did not convert the table indices to table
model indices,
resulting in toggling the visibility of the wrong elements when the row order in the table did
not match the
order of the elements in the model (e.g. after sorting the table on a certain column).
Bug fixLuciadLightspeed
LMAP-5697
TLcdCGMModelDecoder now uses a default line/edge type SOLID for elements
that do not specify one.
Bug fixLuciadLightspeed
A memory leak in TLcdGXYRoundedPointListPainter was fixed.
Bug fixLucy (LuciadLightspeed)
LF-110, LUCY-3682
TLcyFusionClientAddOn: it was not possible to connect with a LuciadFusion Data Server
that served at least one coverage without a display name.
Bug fixLuciadLightspeed
LF-141
Various improvements have been implemented to reduce the overall memory usage when visualizing
coverages of type VECTOR.
Bug fixLuciadLightspeed
LMAP-5688
An ArrayIndexOutOfBoundsException could occur in the TLcdGXYPointListPainter when the point list
did not contain any points.
Bug fixLuciadLightspeed
LCD-3077
Javadoc for CoverageMetadata.Builder includes some guidance for choosing good values for level 0 row- and column
counts.
Bug fixLucy (LuciadLightspeed)
LUCY-3276
TLcyGLMapAddOn: it was not possible to set the active state of the
TLcyGLMapAddOn.navigationControlsActiveSettable and the
TLcyGLMapAddOn.mouseLocationActiveSettable to false in the config file. This has been fixed.
Bug fixWeather & Environment Standards
LMAP-5707
TLcdGRIB2TileDecoder no longer throws an ArrayIndexOutOfBoundsException for
tiles with 2 bits per value.
Bug fixDefense Symbology
LMAP-5691
The label color of a symbol's style was not taken into account for the T, T1 labels of a boundary symbol.
11.0.15
ImprovementTiling Engine
LF-225
The engine fast-fails with a clear error message when no identity provider is found for a model.
Bug fixLuciadLightspeed
LMAP-5672
TLcdSymbol: the equals method could throw a NullPointerException when the border and/or fill color
of the symbol is null.
Bug fixLucy (LuciadLightspeed)
LUCY-3273
The state of the comboboxes in the icon style tab in the layer properties panel was not updated
when
changing the border or fill color.
Bug fixLucy (LuciadLightspeed)
The TLcyGXYLayerTreeNodeFormatWrapper could cause a NullPointerException when the wrapped format
returned null for the createGXYLayerTypeProvider() method. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LMAP-5682
DWG layers from a pre-10.1 workspace were restored in a different order, causing different
names and visibility.
The layers will not be restored from such a workspace anymore and user will get a warning.
Bug fixInfrastructure Standards
LMAP-5687
The DGN decoder now ignores empty text node 2d elements.
11.0.14
Bug fixLucy (LuciadLightspeed)
LUCY-3272
The TLcyTreeTableViewAddOn registered its ILcyCustomizerPanelFactory with normal priority
instead
of fallback priority. This has been adjusted.
Bug fixLuciadLightspeed
LMAP-5672
TLcdSymbol: the equals method would return false when the border and/or fill color of
two symbols were not the same instance.
Bug fixLuciadLightspeed
LMAP-5400
TLcdGXYBusyLayerTreeNodeCellRenderer could display a busy state for invisible layers.
Bug fixLucy (LuciadLightspeed)
LUCY-3259
When embedding files in a workspace file (like for example the drawing or PIM add-ons can
optionally do), there was an unlikely possibility of reading corrupted data.
Bug fixAviation Standards
The default AIXM 5 label color has been fixed to be white everywhere. This was already the case in previous
versions,
and has always been the default in Lucy.
11.0.13
ImprovementLuciadLightspeed
LMAP-5607
TLcdSLDSymbolizerPainterFactory now supports TLcdSLDShadedRelief in raster symbolizers to apply
a relief shading to
elevation data.
ImprovementLuciadLightspeed
The new painter classes TLcdShadedRasterPainter and
TLcdShadedMultilevelRasterPainter paint elevation rasters with dark or
light shading based on the position of the sun.
ImprovementDatabase Connectors
The model decoder and encoder now support the geodetic type GEOGRAPHY that
is provided in PostGIS 1.5 and higher.
Bug fixDatabase Connectors
LMAP-5668
The decoder could sometimes return duplicates in the elements() enumeration.
Bug fixInfrastructure Standards
LMAP-5526
The DGN decoder now ignores empty cell definitions and their references.
Bug fixInfrastructure Standards
LMAP-5526
The DGN decoder now applies multi-line joint caps correctly.
11.0.12
ImprovementLuciadLightspeed
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementDatabase Connectors
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementDatabase Connectors
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementDatabase Connectors
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementDatabase Connectors
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementDatabase Connectors
LMAP-5667
The source name, the type name, and the display name of the decoded model
descriptor can now be overridden in the properties specified to the database
model decoder. The default source name is now the actual name of the source
properties file. The default type name is now the display name of the model
decoder, as is conventional for all model decoders.
ImprovementTiling Engine
LF-207
While fusing vector data, complex polygons containing duplicate (sub)polygons now fail with a clear error message.
ImprovementTiling Engine
LF-198
Extended the API with a geometry provider for area simplification, based on the area size in pixels
(TLfnAreaSimplifyingGeometryProvider).
ImprovementTiling Engine
LuciadFusion is extended with support for DGN data, which can be fused into raster coverages (rasterization).
Bug fixLuciadLightspeed
LMAP-5667
TLcdDatabaseModelDecoder now supports properties specifying a custom source
name, type name, and display name when decoding a model.
Bug fixLuciadLightspeed
LMAP-5508
TLcdDatabaseModelDecoder now correctly sets the source name on the model
descriptor of a decoded model.
Bug fixDefense Symbology
LMAP-5671
The selection color of a symbol's style was not taken into account for arrow-based symbols.
Bug fixTiling Engine
LF-204
Vector data from assets with different georeference than the coverage's are now also fused correctly when tiles have
aspects different from 1:1.
Upgrade considerationTiling Engine
The method TLfnEnginFactory.RasterSessionBuilder.setAssetOrder(Comparator) has been renamed to
setAssetPartPartOrder(Comparator), to reflect the fact that it configures the order of asset parts within an asset,
rather than the order of the assets.
Upgrade considerationTiling Engine
LF-206
ALfnEngine has been extended with an abstract method getProgressNonBlocking(), a non-blocking variant of
the already existing getProgress() method. The new method is especially useful in UI code, which should never call
blocking methods, to ensure the responsiveness of the UI. Wrappers extending from ALfnEngine should delegate this
new method to the corresponding method in the wrapped ALfnEngine.
11.0.11
ImprovementTiling Engine
LF-161
The performance to fuse ArcSDE vector data sets has been increased significantly (up to a factor of 10,
depending on the data set), due to improving the concurrent access approach to the source data.
Bug fixLuciadLightspeed
LMAP-5658
When painting a label for only one feature, the label did not update correctly after a change to
the feature such as
moving the geometry.
Bug fixLuciadLightspeed
LMAP-5652
TLcdInterpolatingRasterHeightProvider now correctly handles rasters
containing truncated tiles in their last rows or columns.
Bug fixLuciadLightspeed
LMAP-5655
TLcdGLTiledWMSProxyPainter#setQuality fired an incorrect property change event.
Bug fixLucy (LuciadLightspeed)
LUCY-3253, LUCY-3255
TLcyWMSClientAddOn: the ordering of selected layers in the WMS connection panel did not work.
Bug fixLuciadLightspeed
LMAP-5653
Fixed potential memory leak in TLcdKML22GLLayer.
Bug fixTiling Engine
LF-180
Creation of a LuciadFusion engine no longer fails because of missing formats (NoClassDefFoundError).
Instead, missing formats are gracefully skipped and a warning message is logged.
Bug fixTiling Engine
LF-171
The default asset type for ArcSDE raster data sets is now automatically set to either IMAGE or ELEVATION
instead of always IMAGE, depending on whether the raster data respectively represents pixel or elevation values.
Bug fixTiling Engine
LF-176
In some cases, the fusion process failed on point geometry input data in combination with clipping shapes.
Bug fixTiling Engine
LF-173
The Fusion Engine now uses a connection pool for ArcSDE databases to improve performance.
Bug fixTiling Engine
LF-151
Huge vector data geometries can now efficiently be fused. Previously, they suffered from unreasonable fusion times
in combination with excessive JVM garbage collection activity.
11.0.10
ImprovementDefense Standards
The decoder now accepts all-hyphen values for all fields in SENSRB
extensions, even for fields where they aren't strictly allowed by the
standard.
Bug fixLuciadLightspeed
TLcdGXYIconPainter's boundsSFCT and isTouched methods did not respect the UseOrientation flag.
The painter can now also handle ILcdOriented instances that return NaN for the orientation.
Bug fixLucy (LuciadLightspeed)
LUCY-3263
A memory leak in asynchronous labeling has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3267
The default style for GRIB layers, as configured in the configuration file, was not applied.
Bug fixLuciadLightspeed
TLcdDataObject.clone() now creates an instance of the own class, rather than an instance
of TLcdDataType.getClass().
Bug fixLuciadLightspeed
TLcdSwissGridReference now properly returns custom names set with setName.
Bug fixLuciadLightspeed
TLcdGXYEditController2: when a shape was moved, extraneous snap targets could be shown. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3264
The SwissDHM addon now parses its two model decoder settings correctly.
Bug fixOGC Server
LMAP-5647
Fixed a regression with WFS 1.0 GetFeature XML requests that caused the server to return an exception for valid
requests.
Bug fixMaritime Standards
Rotated icons are no longer painted if the mandatory orientation attribute is not present.
11.0.07
Bug fixOGC Server
LMAP-5637
Querying on a specified amount of features without a filter is now more memory efficient. This also reduces the
memory
need on server initialization.
11.0.06
ImprovementLuciadLightspeed
LMAP-5606
TLcdShadedRasterPainter and TLcdShadedMultilevelRasterPainter now provide
a setting for elevation exaggeration.
Bug fixLucy (LuciadLightspeed)
LUCY-3258
TLcyMapEditUnitAddOn: NullPointerExceptions could occur when certain settings were not
configured in the configuration file of this add-on.
Bug fixLuciadLightspeed
The bounds of TLcdLonLatArc were too small sometimes. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5624
TLcdShadedRasterPainter and TLcdShadedMultilevelRasterPainter now correctly
handle large (sub-tiled) tiles, like DTED level 1 and DTED level 2 tiles.
Bug fixLuciadLightspeed
LMAP-5623
TLcdShadedRasterPainter and TLcdShadedMultilevelRasterPainter now leave
areas with unknown elevation values transparent.
11.0.05
ImprovementLuciadLightspeed
ILcdGML3DirectPosition and ILcdGML3DirectPositionList implementations now recognize srs
names
matching urn:ogc:def:crs:EPSG:*:4326 as references which have their coordinates in inverse
order
(first lat, then lon).
ImprovementLuciadLightspeed
The bounds calculation was improved for TLcdLonLatEllipse, TLcdLonLatCircle, TLcdLonLatArc,
TLcdLonLatCircularArcBy3Points, TLcdLonLatCircularArcByBulge and TLcdLonLatCircularArcByCenterPoint.
Bug fixLuciadLightspeed
LMAP-5628
The legacy icons for TLcdGUIIcon.GLOBE16 and TLcdGUIIcon.LAYERLISTCONTROL16 were not entirely
the same as the old icons.
11.0.04
ImprovementLuciadLightspeed
A new model has been added to the API. It allows indexing of
data objects based on their properties, similar to the functionality in ILcdFeatureIndexedModel.
Next to the new interface, ILcdDataObjectIndexedModel, two implementations have
been added: TLcdDataObjectIndexedVectorModel and
TLcdDataObjectIndexedAnd2DBoundsIndexedModel. Both implementations additionally implement
ILcdIntegerIndexedModel. TLcdDataObjectIndexedAnd2DBoundsIndexedModel also implements ILcd2DBoundsIndexedModel.
Bug fixLuciadLightspeed
LMAP-5552
The sample picture in Data/Ithaca/GeoTIFF for parametric orthorectification
has been corrected to account for height differences between geodetic
datums.
11.0.03
Bug fixTiling Engine
The parameters to specify the levels to produce in TLfnEngineFactory#createRasterSession were not correctly
interpreted.
11.0.02
ImprovementLucy (LuciadLightspeed)
LUCY-2886
TLcyExtremePointOpenGLAddOn: Is now more consistent with TLcyExtremePointAddOn.
TLcyExtremePointOpenGLAddOn
will use the icons configured in the config file of TLcyExtremePointAddOn.
ImprovementLucy (LuciadLightspeed)
LUCY-2936
TLcyHypsometryAddon: Now you can create hypsometry layers from invisible elevation layers.
ImprovementWeather & Environment Standards
LMAP-5559
TLcdGRIB2ModelDecoder now supports complex packing with and without spatial differencing.
Currently only general group splitting is supported (See GRIB 2 Table 5.4 for more details).
ImprovementDefense Symbology
The MIL-STD 2525c symbol groups Navy Group (1.X.4.1.7.*), Surface Decoy (1.X.4.1.8) and
Unmanned Surface Vehicle (1.X.4.1.9) were not correctly rendered and have been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3251
Cancelling the color choosers of the grid layer properties panel no longer changes the color.
Bug fixLucy (LuciadLightspeed)
LUCY-3230
A NullPointerException could occur when opening the layer properties panel of a layer with a
featured label painter and no features (or a data object label painter and no properties).
Bug fixLuciadLightspeed
LMAP-5615
TLcdUTMZonePainter now respects the MGRS formatting conventions of the numerical northing and
easting labels.
Bug fixLuciadLightspeed
LMAP-5610
An exception could occur when using the getCreationClickCount method of the SLD painters during
the creation of
complex geometries.
Bug fixLuciadLightspeed
LMAP-5479
The positioning of TIFF rasters based on TFW files with arbitrary rotations
has been corrected. Additionally, sheared rasters now supported.
Bug fixLucy (LuciadLightspeed)
LUCY-3117
Changed KML message for empty KML model tree to include pattern to translate full sentence
instead
of only the phrase "contains no KML content". The new string is "{0} contains no KML content.",
where
{0} is the name of the map.
Bug fixLucy (LuciadLightspeed)
LUCY-3220
TLcyContourAddOn: Now correctly updates the view when the default altitude format in Lucy is
changed.
Bug fixLucy (LuciadLightspeed)
LUCY-3163
Fixed issue with labeling in the MIF file format for 3D views.
Bug fixLucy (LuciadLightspeed)
LMAP-4928
TLcyLOSCoverageAddOn: Corrected the bounds of a vector-based LOS Coverage layer.
Bug fixAdvanced Raster Connectors
LMAP-5479
The positioning of MrSID rasters based on SDW files with arbitrary rotations
has been corrected. Additionally, sheared rasters now supported.
Bug fixDefense Symbology
The MCM Drone symbol is no longer supported in MIL-STD 2525c (1.X.4.1.3.5, S*S*CMMD--*****)
according to the specification and has been removed.
Bug fixDefense Symbology
LMAP-5541
The data model of MIL-STD 2525b/APP-6A has been altered slightly. The SignatureType data type no longer contains
null as a possible value in its possible value enumeration. The property associated with this data type was
already nullable, so the return value of signature can still be null, but it is no longer modeled
explicitly using the possible values of SignatureType.
Bug fixDefense Symbology
The MIL-STD 2525c symbols Environmental Report Location (1.X.5.5, S*U*E-----*****), Dive Report Location
(1.X.5.6, S*U*V-----*****) and Unexploded Ordnance Area (1.X.5.7, S*U*X-----*****)
were not correctly rendered and have been fixed.
Bug fixDefense Symbology
The Underwater Decoy symbol in MIL-STD 2525b (1.X.5.3, S*U*WD----*****) was not yet rendered with an affiliation
frame, a change which was introduced in the MIL-STD 2525b Change 2 specification.
Bug fixDefense Symbology
The rendering of the Signals Intelligence symbols Missile Downlink (MIL-STD 2525b: 4.X.2.1.2.9,
I*A*SRMD----***), Air Traffic Control (MIL-STD 2525b: 4.X.4.1.2.1, I*S*SRAT----***)
and Unknown (MIL-STD 2525b: 4.X.4.1.2.19, I*S*SRU-----***)
in case of a Neutral affiliation was not correct.
11.0.01
ImprovementLucy (LuciadLightspeed)
LUCY-3250
Added a progress bar for the TLcyViewshedAddOn. The bar indicates progress for viewshed
creation. Viewshed visualization still happens both asynchronously and on-the-fly.
ImprovementLuciadLightspeed
LMAP-5605
TLcdGXYNewController now supports layers that are not selectable.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: the actions of the map context menu to set the time or time range to match
the currently selected object now remove themselves from the pop-up menu when not applicable
(instead of just disabling).
ImprovementLucy (LuciadLightspeed)
LMAP-5531
TLcyViewshedGUIFactory now throws exceptions if a wrong ID is supplied to any of its methods.
ImprovementLuciadLightspeed
LMAP-5504
TLcdColorMapCustomizer: when non-linear scale is used, the arrows can no longer be moved by
dragging them with the mouse. A non-linear scale means a fixed pixel spacing between the
levels, so when end users dragged the levels, they levels did not move visually. Only the level value was changed.
This was confusing for end-users. To visually support this behavioral change, the arrows are replaced with lines if
they cannot be moved.
ImprovementLuciadLightspeed
LMAP-5305
The TLcdEarthGLLayerHeightProviderFactory can now create height providers that only return
heights if there is actually height data available in the model. The Earth 3D painter paints a
terrain at a default height if no height data is available in order to still allow visualizing
the imagery data at this location. These default heights will not be used if the height provider
is configured to use only valid heights.
ImprovementTerrain Analysis Engine
LMAP-5568
The TLcdTerrainViewshedFactory and the TLcd3DMeshViewshedFactory now implement ILcdStatusSource,
as the creation of viewshed for these factories can take up some time. This interface can be
used to receive status updates from the factories.
ImprovementDefense Standards
LMAP-3076
TLcdVPFGXYPainterProvider now provides a flag for enabling and disabling the painter cache.
Caching reduces the time to paint an object but requires more memory.
By default, caching is turned on.
ImprovementDefense Standards
Line and area features with geodetic coordinates are now linearly interpolated between their points, instead of
geodetically (now identical to interpolation mode used for cartesian coordinates).
ImprovementDefense Standards
LMAP-5278
The VPF model decoder can now decode VPF feature table files (*.PFT, *.LFT, *.AFT, *.TFT, *.CFT).
The behavior of decoding a feature table file is identical to the decoding of the corresponding
VPF feature class instance.
ImprovementDefense Standards
Some VPF database have small errors in their spatial indices, which might result in an applyOnInteract operation
not finding one or more features within the specified bounds. The VPF model decoder has been improved to take these
errors into account. Strict-interact applyOnInteract operations will now find the exact number of features, even for
these erroneous databases. Non-strict-interact applyOnInteract operations might find slightly more
results w.r.t. previous versions.
ImprovementMaritime Standards
The S-52 symbology is now by default configured to use the DAY_BRIGHT_COLORS color schema.
ImprovementMaritime Standards
LMAP-5417
Support for visualization of textual information in S-52 has been improved: TE text instructions
instructions, full text alignment and multiple text instructions per style are supported now.
In order to visualize text instructions, ECDIS layers need to be labeled now (layer.setLabeled(true)).
ImprovementMaritime Standards
LMAP-5320
com.luciad.format.s52.gxy.which allows to disable the painter cache. Disabling this cache
may
reduce memory usage significantly, but may increase the painting time.
Bug fixLucy (LuciadLightspeed)
The data model namespace of a Drawing model is now restored correctly when saving and
reloading the model.
Bug fixLucy (LuciadLightspeed)
LUCY-3156
Drawing files without properties are supported again.
Bug fixLucy (LuciadLightspeed)
The Drawing export utility can now handle models which have one or more properties which are not
primitive or are multivalued. This used to cause an exception during encoding. The non-primitive
and multivalued properties are ignored during encoding.
Bug fixLucy (LuciadLightspeed)
LUCY-3094
The Drawing export utility can now handle models whose model descriptor returns null as
model element types (used to throw a NullPointerException).
Bug fixLucy (LuciadLightspeed)
LUCY-3249
Decoding of certain application panes performed some work on the workspace thread while this
should have been performed on the AWT thread. In theory, this could have resulted in an
ArrayIndexOutOfBoundsException during workspace loading.
Bug fixLucy (LuciadLightspeed)
LUCY-3248
ALcyProperties.subset( ... ).containsKey used to return false for keys it did contain.
Bug fixLucy (LuciadLightspeed)
LUCY-3169
TLcyPreferencesTool: user preferences were sometimes not saved when using a long prefix that
was a substring of another long prefix.
Bug fixLucy (LuciadLightspeed)
LUCY-3227
Fixed the NullPointerException which was thrown when loading some 2D GRIB data.
Bug fixLucy (LuciadLightspeed)
LUCY-3221
Fixed some Dutch translations in TEA viewsheds.
Bug fixLuciadLightspeed
POL geometries now invalidate their internal cache when the altitude values are adapted. This means,
among other things, that the 3D representation of extruded POL geometries will be updated if the
minimum or maximum height is changed.
Bug fixLucy (LuciadLightspeed)
Dates are now properly formatted according to the Lucy date format in the Table view and Object
properties panel.
Bug fixLucy (LuciadLightspeed)
LUCY-3215
The size of floating ILcyApplicationPane's used to depend on having set HINT_FLOATING_LOCATION
or not. It now always uses the preferred size.
Bug fixLuciadLightspeed
LMAP-5525
When transforming large (width > 180 degrees) bounds defined in a geodetic reference
to bounds in a geodetic reference with a different datum, it was possible to get an incorrect
result.
Bug fixLuciadLightspeed
LMAP-5436
Labels could disappear when the user zoomed in on a polyline that uses TLcdGXYOnPathLabelingAlgorithm
to place its labels.
Bug fixLuciadLightspeed
LMAP-5519
In the tool tip sample, the tool tip was not cleared from the view when the tool tip controller was disabled,
by choosing the pan
controller, for example.
Bug fixLucy (LuciadLightspeed)
LUCY-3211
Fixed a problem with model references and geoid data in the TEA addons. The TEA addons now
correctly use the default lucy model reference as defined in ILcyLucyEnv.
Bug fixLucy (LuciadLightspeed)
LUCY-2656
The transparency value in the color chooser could initially be wrong. Even when the current
color
was transparent, the slider and preview would indicate the color was opaque. This has been
resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-3209
Decoding the TLcyCombinedMapManager performed some operations on the workspace thread while
they should be performed on the AWT thread. This has been resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-3208
TLcyOracleLocatorDecoderAddOn: Oracle files (.ora) can now be stored and restored from a
workspace.
Bug fixLuciadLightspeed
LUCY-3204
Fixed a possible ConcurrentModificationException in the SLD painters.
Bug fixLucy (LuciadLightspeed)
LUCY-3199
Several Swing Threading Violations during workspace loading have been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3200
A NullPointerException was thrown when painting a GRIB layer containing data with parameter
indicator reserved for originating center use. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3169
TLcyPreferencesTool: javadoc was clarified regarding the constraints on the long and short
prefixes.
Bug fixAdvanced GIS Engine
LMAP-5501
In the geometry.constructive sample the result of the convex hull operation was not selected,
as opposed to the results of other constructive geometry operations. This has been fixed.
Bug fixWeather & Environment Standards
LMAP-5567
TLcdGRIB2ModelDecoder did not handle GRIB2 files which have adjacent rows stored in opposite
direction correctly. This has been fixed.
Bug fixWeather & Environment Standards
LMAP-5473
The GRIB2 model decoder now throws an exception with a meaningful message when decoding
a file with an unsupported grid definition template number.
Bug fixDefense Standards
Attributes which have an enumerated list of possible values in the INT.VDT or CHAR.VDT table are
no longer marked as an enumeration: these types may still have other, non-listed values. The
displayable name of the codes is still available via the TLcdDataType.getDisplayName() method.
Bug fixDefense Symbology
LMAP-5557
The label for the Unique Designation modifier was not displayed for
the Biological and Chemical release event symbols in
MIL-STD 2525b/c (respectively 2.X.3.4.7.1, G*MPNEB---****X and 2.X.3.4.7.2, G*MPNEC---****X).
Bug fixDefense Symbology
The Navigational Hazard symbol in APP-6A and APP-6B (1.X.4.6.2, S*S*ZN----*****)
was erroneously drawn as a line symbol with 2 points instead of as a point.
Bug fixDefense Symbology
The Dummy Minefield symbol in APP-6A (2.X.2.1.3.6, G*C*MDN---*****)
was erroneously drawn as an area instead of as a point.
Bug fixMaritime Standards
LMAP-2500
A rounding error bug in the visualization of depth values has been fixed.
Bug fixMaritime Standards
LMAP-5601
The default Z value of geometries that do not have a Z value in their data is now changed
from
Float.POSITIVE_INFINITY to Float.MAX_VALUE. This fixes a bug in which ECDIS data was
deformed on
the map, occurring with projections which are not capable of handling the infinite Z value.
Bug fixMaritime Standards
A bug in the rendering of traffic junctions has been fixed; these junctions are now
visualized
with the caution area symbol, as specified by the S-52 specification.
Bug fixMaritime Standards
Geometrical computations on some S-57 area features could sometimes cause unexpected errors
in
the JTS library used by the S-52 rendering engine. The engine has been made more robust to
handle these errors.
Bug fixMaritime Standards
A rounding error in the decoding of sounding depths, which introduced an error of 0.1m in
the
visualization of sounding depth values, has been fixed.
Bug fixTiling Engine
LF-108
When fusing multiple raster assets with different geo-references, the assets can be incorrectly ordered.
As a result, a more detailed asset may not be visible because it is hidden beneath a less detailed asset.
Bug fixTiling Engine
The forceLinearInterpolation flag that can be specified when fusing vector data was sometimes
not honored.
Upgrade considerationDefense Standards
The ILcdDataObject interface of VPF domain objects no longer translates enumerated values into
their equivalent description, as defined in the integer or character description table. It now
always returns the original values as contained in the table data. The equivalent description
is still available using the TLcdDataType.getDisplayName(aValue) method. To revert to the previous
behavior, all calls to object.getValue(property) should be replaced with
property.getDataType().getDisplayName(object.getValue(property)).
11.0
ImprovementLuciadLightspeed
Added new TLcdBalloonGUIFactory class that allows for some customization to the visual aspect
of balloons. This class can be used in conjunction with ALcdBalloonManager. It can be found in
the com.luciad.view.swing package.
ImprovementLuciadLightspeed
LMAP-5503
TLcdGXYOverviewController can now fill its rectangle.
This also allows moving the rectangle by dragging the inside.
ImprovementLuciadLightspeed
TLcdGXYPointListPainter: further improved the painting performance
with regards to the functionality added in LMAP-3779.
ImprovementLucy (LuciadLightspeed)
The items under the "File|Save As Image" menu now use PNG as their default image format.
ImprovementLuciadLightspeed
LMAP-5198
A new sample has been added : touch.multiView. This sample demonstrates how to set up two
different views that can be used by multiple users at the same time.
ImprovementLucy (LuciadLightspeed)
Open flight and OBJ files (3D) are now rendered as a wire frame in a 2D view. Previously only
the bounds were drawn. Asynchronous painting (in 2D) is now enabled by default for both formats
(flag in config file).
ImprovementLucy (LuciadLightspeed)
Removed the fix for LUCY-3066. The table view accepts again empty models. E.g. when creating a
new
drawing layer, the table view can again be opened for the empty drawing layer and its no longer
needed
to add an element to the model first.
ImprovementLucy (LuciadLightspeed)
Lucy can now also use ArcSDE raster data to retrieve elevation values.
ImprovementLucy (LuciadLightspeed)
Added the TLcyViewshedOpenFlightAddOn. This AddOn depends on the TEA Industry Specific Component
and the 3D
additional component and is used to provide the ability to calculate viewsheds for OpenFlight
objects.
ImprovementLuciadLightspeed
A new package com.luciad.io.transport was introduced, offering API to provide an abstract
layer for request-response based transports such as HTTP.
The ILcdTransport interface will be used in new LuciadMap functionality whenever extensive HTTP
access is needed, to allow developers to choose and/or customize their own HTTP transport
implementation.
ImprovementLucy (LuciadLightspeed)
TLcyWMSEarthClientAddOn has been added, which allows to visualize
the WMS layers created by the TLcyWMSClientAddOn using a tiled approach.
ImprovementLuciadLightspeed
ALcdWMSProxy now implements ILcdDataSource, allowing it to be passed on to a
ILcdDataSourceModelDecoder.
Similarly, TLcdOGCWMSProxyModelDecoder now implements ILcdDataSourceModelDecoder.
See the LuciadMap release notes for more information on these interfaces.
ImprovementLucy (LuciadLightspeed)
It is now possible to fill polygons using a hatching pattern. This functionality was added
to the 'Paint style' tab in the layer properties panel.
ImprovementLucy (LuciadLightspeed)
LUCY-2862
Some adjustments were made to the Lucy GUI. The new icon set that was added in LuciadMap is now
used for most icons in Lucy. Please refer to the LuciadMap release notes on to revert these
changes. Next to this, the following minor configuration changes were made:
- The zoom controller button was removed from the map toolbar; it can still
be found in the menu.
- The 'add layer' and 'copy layer' buttons were moved from the map and map overview
toolbar to the layer control toolbar.
- The 'toggle selectable', 'toggle editable', 'toggle labeled' and 'layer properties'
buttons in the layer control panel were moved to the side.
- The 'background color' button from the layer control panel was removed; it can still
be found in the menu.
- A new 'open a layer' button was added to the layer control panel.
- The 'create new layer action' in the format bars now allows to choose the format.
- The copyright notice on the maps was replaced by a customizable logo.
These changes can all be reverted by adjusting the configuration files of Lucy, the map add-on,
the GL map add-on, the layer control add-on, the format bar add-on, the drawing add-on,
the APP6a and MS2525b add-ons, and the PIM add-on.
ImprovementLuciadLightspeed
LCD-395, LMAP-3236
A new model element comparator property was added to TLcdGXYLayer, see setModelElementComparator().
The applyOnInteract methods, as well as the painting method will handle the object elements in
the order determined by the set comparator.
ImprovementLuciadLightspeed
LuciadFusion now adds support to fuse and and distribute raster data representing values other than image and
elevation.
For instance, meteorological raster data defining temperature or wind speed. To support this use case,
a new 'multivalued' coverage type is introduced. Additionally, support for the GRIB weather data format
(V1, V2, bulletins) is added, as a primary use case for the new coverage type.
The Fusion Client is extended with support for the new coverage type and the querying and visualization
of fused GRIB data.
ImprovementLucy (LuciadLightspeed)
TLcySkinnedToolBar is a new ILcyToolBar that uses icons (for example images) as the button
backgrounds. It is used when configuring actions to be floating above the map. It is
demonstrated in the TaskPaneFrontendMain sample.
ImprovementLuciadLightspeed
LuciadFusion is extended with support for vector data, enabling users to use very large vector data sets in
applications.
By applying tiling and the use of multiple levels of details, LuciadFusion allows to fuse vector
data sources into a vector coverage, ready for high performance data streaming, visualization and analysis.
To support the vector data use case, the Fusion Client introduces new API to query and visualize
vector coverages.
ImprovementLucy (LuciadLightspeed)
Workspace loading now more gracefully degrades when model decoders throw exceptions other than
IOException.
ImprovementLuciadLightspeed
A new icon set is now being used in all of LuciadMap, Lucy, and all Industry Specific and
Additional Components.
The icons are provided in the PNG format, supporting true color and alpha-transparency.
A vector-based version of the new icons (in the SVG format) is also provided, to make it easy
to customize the icons. See samples/resources/images/vectorIcons.
ImprovementLuciadLightspeed
The class com.luciad.gui.TLcdTranslatedIcon has been added. This can be used to translate an
icon
within its bounds. This is especially useful when working with composite icons.
ImprovementLucy (LuciadLightspeed)
The property 'TLcyMapAddOn.scales.scaleAtCenterOfMap' is now false by default. This means the
more widely used scale at origin of projection is used. This makes the scale value independent
of the position. As such it can be used in combination with the scale range functionality for
raster layers.
ImprovementLuciadLightspeed
TLcdGXYTiledWMSProxyPainter and TLcdGLTiledWMSProxyPainter were introduced. These painters
visualize ALcdWMSProxy objects in 2D and 3D views, respectively, using a tiled approach.
ImprovementLuciadLightspeed
ALcdWMSProxy now implements ILcdBounded. Also, TLcdOGCWMSProxyModelDecoder now produces models
with a valid model reference.
ImprovementLuciadLightspeed
TLcdLonLatPointFormat now supports customizable formatting patterns.
ImprovementLuciadLightspeed
The interface ILcdStatusSource was added. Similar to ILcdChangeSource, objects implementing
this
interface can register and unregister implementations of ILcdStatusListener.
ImprovementLucy (LuciadLightspeed)
Added the TLcyViewshedAddOn. This addon depends on the TEA Industry Specific Component and can
be used
for visibility and shadow calculations in 3D scenes such as urban environments.
ImprovementLuciadLightspeed
The package com.luciad.format.bingmaps provides functionality to connect with Microsoft's Bing
Maps imagery service.
ImprovementLuciadLightspeed
TLcdEarthTileRepository: now also supports retrieving the undecoded tile data by using a format
with byte[] as its class and the name of the coverage native format.
ImprovementLuciadLightspeed
The tile set in a fusion raster model now also supports retrieving the undecoded tile data by
using a format with byte[] as its class and the name of the coverage native format.
ImprovementLucy (LuciadLightspeed)
The copyright notice on the 2D and 3D maps has been replaced by a logo. This logo can be
replaced by an other image, or removed by editing the "logoImageFileName" property in the
following config files:
- map_addon.cfg
- mapoverview_addon.cfg
- TLcyGLMapAddOn.cfg
Alternatively, the creation or insertion of the icon can be customized using:
- TLcyMapComponentFactory : see LOGO_ICON_COMPONENT
- TLcyGLMapComponentFactory : see LOGO_ICON_COMPONENT
ImprovementLuciadLightspeed
The classes and interfaces of the com.luciad.format.object3d package were moved from the 3D
Additional
Component to LuciadMap.
The package can now be accessed without any dependency on the 3D Additional Component.
ImprovementLuciadLightspeed
A new class for tiling SHP data has been added, TLcdSHPTiler. It allows tiling of both geometry
and accompanying DBF files into smaller, tiled data. This class can be used to deal with very
large SHP files, which do not fit into memory at once.
ImprovementLuciadLightspeed
A new interface for point lists was introduced, ILcdPointList2. It provides methods for
accessing
the individual X, Y and Z point coordinate data. The interface allows for low-memory implementations
of point lists. Coordinates are stored as primitive arrays instead of point instances. At the same time,
high-performance access to the coordinate data is maintained, without creating point instances
for each coordinate access.
ALcd2DEditablePolypoint and its extensions now implement the new interface.
TLcdGXYPointListPainter has been updated to take advantage of this new interface.
ImprovementLuciadLightspeed
The SLD label painters now support more advanced labeling functionality that was introduced in
LuciadMap 10.1.
The TLcdSLDLabelingAlgorithm should be used to enable this. The basic SLD sample illustrates
this.
ImprovementLuciadLightspeed
LMAP-1806
TLcdGXYLabelPainter: reduced the number of calls to the #retrieveLabels method.
ImprovementLucy (LuciadLightspeed)
The TLcySpatiaLiteAddOn has been added, which allows to visualize the SQLite SpatiaLite data.
ImprovementLucy (LuciadLightspeed)
The raster layer style now contains the avoidOpaqueBorder property.
ImprovementLuciadLightspeed
A street labeling sample was added. This sample shows how a streets application can be built using
a few techniques :
- Level of detail painting
- Level of detail labels
- Dynamic model filtering
- Dynamic label priorities
ImprovementLuciadLightspeed
TLcdContrastIcon has been added. This wrapper makes it possible to modify the contrast
and brightness of the delegate icon.
ImprovementLuciadLightspeed
An extension of ILcdModelDecoder has been added, ILcdDataSourceModelDecoder. This interface
allows you to decode a model based on an instance of ILcdDataSource, instead of a String.
An ILcdDataSource is a generic marker interface that describes the origin of model data.
For models decoded based on an ILcdDataSource, an extension of ILcdModelDescriptor is available.
ILcdDataSourceModelDescriptor offers a method to return the ILcdDataSource the model is based
on.
ImprovementLucy (LuciadLightspeed)
The visualization of POL data on a 3d Map has been improved. The new TLcyPOLOpenGLAddOn contains
the added functionality. POL polygons are polylines can be displayed in three different ways
now:
- Regular: useful for for instance sectors
- Draped over terrain: used by default for runways and taxiways
- Elevated over terrain: typically used for buildings
Based on the type of a pol geometry, a certain mode is chosen. The properties "typesToDrape" and
"typesToElevate" in the config file "TLcyPOLOpenGLAddOn.cfg", can be changed to controls which
types to drape or elevate. The property "typesToFill" controls which geometries are painted
filled.
The property "transparentTypes" determines which properties are painted transparently.
ImprovementLuciadLightspeed
TLcdEarthGXYRasterPainter: an oversampling factor can now be configured to improve the quality
when the tile set needs to be transformed
ImprovementLuciadLightspeed
TLcdGXYOnPathLabelingAlgorithm now has an extra option to enable/disable label rotation, see
TLcdGXYOnPathLabelingAlgorithm#setAllowRotation().
ImprovementLucy (LuciadLightspeed)
The algorithm to derive disabled icons from normal icons has been improved.
ImprovementLuciadLightspeed
The TLcdStrokeLineStyle class was added. This ILcdGXYPainterStyle implementation is based
on the java.awt.Stroke class, and makes it possible to easily paint more complex lines,
like dashed or dotted lines. TLcdStrokeLineStyleBuilder was added as well. This class makes it
possible to easily create a set of pre-defined stroke based line styles.
ImprovementLuciadLightspeed
The Earth painters now also expose the number of tile requests that are still pending in their
tile context. This can for example be used to show data loading progress to the user.
ImprovementLuciadLightspeed
LMAP-5362
TLcdLockUtil now uses a fair ordering policy when using Java 1.6 and higher. This can be
configured by calling TLcdLockUtil#setFairPolicy.
Due to Oracle bug #6305337, it is strongly recommended to disable fair ordering when using
Java 1.5.
ImprovementLucy (LuciadLightspeed)
LUCY-3120
ILcyLucyEnv now includes a default scale format.
ImprovementLucy (LuciadLightspeed)
Lucy now supports the PseudoMercator projection
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the map scale icon's text appearance can now be specified in the configuration
file.
ImprovementLuciadLightspeed
LMAP-5423
The memory use of decoded SHP models has been reduced significantly. Both the memory use of
coordinate data as well as attribute data has been reduced. It is no longer possible to downcast
point instances returned by ILcdPointList.getPoint(int) in SHP models to ILcd2DEditablePoint;
note
that, although technically possible, this was neither allowed in previous versions.
Points in these point lists should always be edited via the ILcd2DEditablePointList interface of
their
point list.
ImprovementLuciadLightspeed
LMAP-5422
Performance of the SHP model decoder has been increased significantly.
ImprovementLuciadLightspeed
The DWITHIN spatial filter evaluation has been improved for queries on non-point objects. It is now sufficient for
a part of the geometry to be within the specified distance.
ImprovementLucy (LuciadLightspeed)
The TLcyBingMapsAddOn has been added, which allows to visualize the Bing Maps data.
ImprovementLucy (LuciadLightspeed)
LUCY-2983
TLcyDrawingAddOn: the Shape and Draw menu item in the drawing toolbar have been renamed to
Draw and Edit respectively. The inconsistent casing in those menus has been adjusted as well.
ImprovementLucy (LuciadLightspeed)
The layer control panels of 2D/3D maps no longer show the root layer; it could cause confusion
for end-user. It can be made visible again by overriding TLcyMapLayerControlFactory.createTree
like this (see also samples.lucy.guifactory.MapLayerControlFactory):
protected JTree createTree( int aID, TLcyMapLayerControl aMapLayerControl ) {
JTree tree = super.createTree( aID, aMapLayerControl );
if ( aID == LAYER_TREE_COMPONENT__TREE && tree != null ) {
tree.setRootVisible( true );
}
return tree;
}
Similarly, for 3D one should override TLcyGLMapLayerControlFactory.createTree like this:
protected JTree createTree( int aID, ALcyProperties aProperties ) {
JTree tree = super.createTree( aID, aProperties );
if ( aID == TREE && tree != null ) {
tree.setRootVisible( true );
}
return tree;
}
ImprovementLucy (LuciadLightspeed)
TLcyInterruptTaskAction now uses the ILcdAction.VISIBLE key (to hide itself when not
applicable) instead of implementing ILcyCustomizableRepresentationAction for that purpose.
ImprovementLuciadLightspeed
LMAP-4771
The soft cache in the Earth 2D and 3D painters are disabled by default. This typically results
in more stable painting performance.
ImprovementLucy (LuciadLightspeed)
The TLcyConnectionAddOn has been introduced, which allows to pass a String to the
TLcyDataFormatManager
through the UI.
ImprovementLuciadLightspeed
Exposed multi-valued data parameter and multi-valued raster coverage tile set on the API.
This API is used by LuciadFusion for multi-valued data (GRIB).
ImprovementLuciadLightspeed
LMAP-3547
TLcdEarthGLTerrainPainter: improved the level of detail choice algorithm. The new algorithm
is enabled by default but the old algorithm can still be used by calling setClipLevelMode
with value HEIGHT.
ImprovementLuciadLightspeed
The new packages com.luciad.format.gmlcommon.transformation,
com.luciad.format.gml2.transformation,
com.luciad.format.gml31.transformation and com.luciad.format.gml32.transformation introduce
a
new API that supports the transformation of a data model from and to GML. This API makes
it possible to easily encode
and
decode a model as (from) GML.
The sample samples.transformation.gml shows how this API works in practice.
ImprovementLuciadLightspeed
The new com.luciad.datamodel.transformation package introduces an API to
support data transformations between different data models. Data transformations
can be made invertible to support bidirectional conversions from source
to target and back.
ImprovementLucy (LuciadLightspeed)
LUCY-3033
TLcyFusionRasterFormatAddOn: Fusion raster layers now allow to snap on zoom levels.
ImprovementLuciadLightspeed
The package com.luciad.format.sqlite.spatialite provides decoders and encoders to read
and write SQLite SpatiaLite databases.
ImprovementLuciadLightspeed
LMAP-4561
The performance of TLcdColorMap#retrieveColor has been improved when using many levels (for
example 10000 levels and colors).
ImprovementLucy (LuciadLightspeed)
LMAP-5262
The S-57 format now offers a configurable flag for rendering icons using anti-aliasing (enabled
by default).
ImprovementLuciadLightspeed
TLcdUTM, ILcdCompositeProjection, ILcdZonalPoint and ILcd2DEditableZonalPoint were deprecated
in favor of the new TLcdUTMGridSystem. This class makes it possible to easily create
TLcdUTMGrid instances which can be used by the transformation framework. Similarly, a new
TLcdUPSGridSystem class was added for UPS transformations.
ImprovementLuciadLightspeed
LMAP-5256
The following methods were added to TLcdSphereRhumblineUtil :
- rhumblineDistance()
- rhumblineAzimuth2D()
- rhumblinePointSFCT()
ImprovementLucy (LuciadLightspeed)
LUCY-2420
The ALcyActionBar implementations now support the ILcdAction#VISIBLE key, which was introduced
for LMAP-5251 (see the LuciadMap release notes). This allows for example to easily create
context sensitive
pop-up menus.
ImprovementLuciadLightspeed
LMAP-4058
The TLcdAdvancedMapRulerController now offers undo and cancel functionality while creating a
measured polyline, similar to the one in the TLcdGXYNewController2. Pressing backspace will
remove
last point of the polyline, and pressing escape cancels the creation entirely.
ImprovementLuciadLightspeed
TLcdGXYNewController2 now offers methods to undo, redo, cancel and commit operations.
ImprovementLuciadLightspeed
LMAP-5251
A "visible" key has been added to ILcdAction. This key allows to create, for example,
context-sensitive
pop-up menus if the pop-up menu respects this key. By default, Swing does not respect this
property. The
ALcyActionBar extensions in Lucy do respect this property (see LUCY-2420 in the Lucy release
notes).
ImprovementLuciadLightspeed
LMAP-5207
TLcdDefaultModelXYZWorldTransformation did not always transform the z-coordinates correctly
when using references with different datums. Also TLcdGeoReference2GeoReference now supports
transforming from geocentric to geocentric.
ImprovementLuciadLightspeed
LMAP-4913
A curved path labeling algorithm and label painter were added :
TLcdGXYCurvedPathLabelingAlgorithm and TLcdGXYCurvedPathLabelPainter. Both classes depend on
each other, and on the use of TLcdGXYCurvedPathLabelLocation to work correctly.
The labels.placement sample demonstrates how to set up curved path labels.
ImprovementLuciadLightspeed
LMAP-3537
TLcdGXYNewController2 now also updates the object under creation when dragging the mouse.
ImprovementLuciadLightspeed
LMAP-4882
TLcdGXYArcBandPainter, TLcdGXYArcPainter, TLcdGXYCircleBy3PointsPainter, TLcdGXYCirclePainter,
TLcdGXYCircularArcPainter and TLcdGXYEllipsePainter now use a different, customizable
representation of the center point when it is not a handle.
ImprovementLuciadLightspeed
LMAP-3963
TLcdGXYPointListPainter, TLcdGXYGeoBufferPainter, TLcdGXYBufferPainter and
TLcdGXYLonLatHeightBufferPainter now allow snapping their own points to the last point.
ImprovementLuciadLightspeed
LMAP-5192
TLcdCache now softly references cached values.
ImprovementLuciadLightspeed
LMAP-5190
TLcdGXYGeoBufferPainter#getCursor now returns a more accurate cursor when resizing a buffer.
ImprovementLuciadLightspeed
LMAP-4981
TLcdGXYOnPathLabelingAlgorithm now has the option to reuse previous label locations
when calculating label positions. See TLcdGXYOnPathLabelingAlgorithm.setReusePreviousLocations()
for more information.
ImprovementLuciadLightspeed
LMAP-5183
TLcdGXYHaloLabelPainter now also implements ILcdGXYMultiLabelPainter.
ImprovementLuciadLightspeed
ALcdShapeList (and all classes extending from it) now implement ILcdCache.
ImprovementLuciadLightspeed
LMAP-3138
TLcdGeodeticPen now uses the line type property when drawing arcs, making it possible to
draw rhumb arcs. This is now used in the ruler controllers.
ImprovementLuciadLightspeed
LMAP-5161
Improved the behavior of TLcdGeodeticPen#appendLineTo
when the previous model position was not visible in the current world reference.
This also improves the behavior of TLcdGXYPointListPainter for lines that are only partly
visible in the world reference.
ImprovementLucy (LuciadLightspeed)
LUCY-2524
Ecdis layers can now be opened on 3D maps.
ImprovementLuciadLightspeed
LMAP-2671, LMAP-3554
A new controller for interactive labels has been added: TLcdGXYInteractiveLabelsController.
This new implementation replaces the existing interactive label functionality in the label
painters.
The new approach allows wrapping label painters, and can also be used for offset icons.
The labels.interactive sample was adjusted to reflect these changes.
Note : when switching to the new interactive labels implementation, it is important that
every ALcdGXYInteractiveLabelProvider implementation fires the correct events. See
ALcdGXYInteractiveLabelProvider.addLabelInteractionListener(),
ALcdGXYInteractiveLabelProvider.fireInteractionStartedEvent()
ALcdGXYInteractiveLabelProvider.fireInteractionStoppedEvent() and
ALcdGXYInteractiveLabelProvider.fireInteractionCancelledEvent().
ImprovementLuciadLightspeed
LMAP-4425
TLcdGXYLabelPainter, TLcdGXYPolygonLabelPainter, TLcdGXYPolylineLabelPainter:
reduced the number of calls to the retrieveLabels method.
ImprovementLucy (LuciadLightspeed)
LUCY-2949
The SHP, MTM, PIM and MIF formats now use the new labeling algorithms introduced in
LuciadMap 10.1.
ImprovementLuciadLightspeed
LMAP-3183
TLcdGXYStampLabelPainter#addComponentToGXYView now allows adding an the component to a non
empty container.
ImprovementLuciadLightspeed
LMAP-5087, LMAP-3211, LMAP-4389, LMAP-4604
TLcdEPSGReferenceParser now supports many more (unofficial) EPSG codes. These codes are
collected by 'spatialreference.org'. Also a new reference parser was added that looks up
the references online, see TLcdSpatialReferenceParser. Among the new supported references
are a collection of HARN references. This enhancement also implements LMAP-3211, LMAP-4389
and LMAP-4604.
ImprovementLucy (LuciadLightspeed)
LUCY-2893
TLcyDrawingAddOn: the collapsible panes in the object properties panel now have a scroll bar.
ImprovementLucy (LuciadLightspeed)
LUCY-1885
VPF support: it is now possible to open a .VPF properties file (via File->Open).
ImprovementLucy (LuciadLightspeed)
The default value of the 'alwaysChangeDefaultStyle' property in TLcyDrawingAddOn.cfg (see also
LUCY-2518) was changed to true. So when modifying the style of a selected shape, it now also
modifies the style for shapes that are created afterwards.
ImprovementLuciadLightspeed
LMAP-2554
TLcdGeocentric2Geocentric was added. This ILcdModelXYZWorldTransformation can perform
transformations between two ILcdGeocentricReferences. Also
TLcdDefaultModelXYZWorldTransformation
can now delegate to TLcdGeocentric2Geocentric.
ImprovementLuciadLightspeed
LMAP-3513
TLcdEPSGReferenceFormatter and TLcdEPSGModelReferenceEncoder now support formatting/encoding
an ILcdGridReference using a TLcdGeodetic projection that has the default parameters. This
reference is formatted/encoded as an ILcdGeodeticReference.
ImprovementLuciadLightspeed
LMAP-5007
TLcdGXYLabelPainter, TLcdGXYPolylineLabelPainter and TLcdGXYPolygonLabelPainter now allow
changing the margin around the labels. Also, TLcdGXYPolylineLabelPainter and
TLcdGXYPolygonLabelPainter now allow changing the text alignment.
ImprovementLuciadLightspeed
TLcdGXYStampLabelPainter, TLcdGXYPolygonStampLabelPainter and TLcdGXYPolylineStampLabelPainter
now have a protected method pinPointSFCT to retrieve and customize the point where the pin
attaches to the label.
ImprovementLuciadLightspeed
LMAP-4398
TLcdGXYLabelPainter now draws pins for freely placed labels similarly to the pins of discrete
label locations, attaching the pin to the middle of one of the label bounds' edges.
ImprovementLuciadLightspeed
LMAP-4386
TLcdSphereUtil#closestDistanceToGeodesic() was added. This method makes it possible to calculate
the closest distance between a point and either the complete geodetic or a geodetic line
segment.
This method works very similar to TLcdSphereUtil#closestPointOnGeodesic(), but it is more
efficient because it does not need to calculate the closest point.
ImprovementLuciadLightspeed
LMAP-4410
The TLcdWKTReferenceParser now also recognizes "D_MAPINFO" as a valid geodetic datum name,
namely WGS_84.
ImprovementLuciadLightspeed
ILcdDisposable has been introduced, allowing to dispose of an object and
letting it release any system resources that it is holding.
ImprovementLuciadLightspeed
LMAP-5035
TLcdMgrsFormat was added. This Format implementation combines TLcdUtmMgrsUtil and
TLcdUpsMgrsUtil.
ImprovementLuciadLightspeed
LMAP-5040
TLcdUpsMgrsUtil can now have a separator character for UPS coordinate representations.
ImprovementLuciadLightspeed
LMAP-5038
TLcdUpsMgrsUtil now also supports different ellipsoids.
ImprovementLuciadLightspeed
LMAP-3990
TLcdUtmMgrsUtil now supports transforming UTM MGRS Strings directly to/from UTM coordinates,
see TLcdUtmMgrsUtil#utmMgrs2UtmXY and TLcdUtmMgrsUtil#utmXY2UtmMgrs.
ImprovementLucy (LuciadLightspeed)
LUCY-2902
The drawing addon now uses the labeling algorithms introduced in LuciadMap 10.1.
ImprovementLuciadLightspeed
LMAP-4856
The gridSystems sample does not rely on TLcdGridReferenceUtil anymore. Instead it now uses
the generic TLcdGeoReference2GeoReference transformation class.
ImprovementLuciadLightspeed
LMAP-5023
Zip/tar decoding is now done with the help of commons-compress.jar instead
of the custom tar.jar.
ImprovementLuciadLightspeed
LMAP-5078
Added additional constructor to TLcdSHPModelDecoder, TLcdMIFModelDecoder and TLcdMAPModelDecoder
that allows decoding different files with the same data model.
ImprovementLuciadLightspeed
Previously for updating an Earth tile you needed to have all data of this tile. However often
you an implementation only needs some metadata (ex. a time stamp) to check if there is a new
version available. For this purpose an ALcdEarthTile can now return a minimal version of itself.
This allows implementing tile updating without keeping the tile data in memory. The existing
implementation were updated to support this. In practice this means that the Earth painters
require less memory.
ImprovementLucy (LuciadLightspeed)
LUCY-2954
TLcyDebugAddOn: this new add-on adds a Debug menu to for example easily enable performance
monitoring or debugging of asynchronous painting. The system property lucy.debug must be true
to enable it, as is the case for LucyDebug.bat/.sh. More information can be found in the
documentation of TLcyDebugAddOn.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the zoom controller is now no longer present by default, its functionality
is available through the on-map navigation controls or the scroll wheel. To re-enable it, update
the properties as shown below in 'resources/lucy/map/map_addon.cfg':
TLcyMapAddOn.continuousZoomControllerActiveSettable.menuBar.insert=true
TLcyMapAddOn.continuousZoomControllerActiveSettable.toolBar.insert=true
ImprovementLucy (LuciadLightspeed)
LUCY-1196
Area Of Interest labels are now always placed at the center of the Area Of Interest.
ImprovementLuciadLightspeed
LMAP-4968
TLcdGXYBoundsPainter, TLcdGXYArcPainter, TLcdGXYArcBandPainter, TLcdGXYCircleBy3PointsPainter
and TLcdGXYEllipsePainter now also implement ILcdGXYPathPainter.
ImprovementLuciadLightspeed
LMAP-4569
The clearImageCache() and clearImageCache(Object) methods were added to TLcdGXYHaloPainter.
These methods make it possible to clear the cached images that are stored in the painter
itself.
ImprovementLuciadLightspeed
TLcdGXYLayer.paint() now uses ILcdGXYEditableLabelsLayer.applyOnInteract() and
ILcdGXYEditableLabelsLayer.applyOnInteractLabels() internally. This makes it possible to
customize the painting behavior by modifying the result of these methods.
ImprovementLucy (LuciadLightspeed)
A HINT_PINNED key has been added to ILcyCustomizerPanel, allowing to indicate the panel should
not be removed from the UI.
ImprovementLucy (LuciadLightspeed)
LUCY-2884
The TLcyCombinedMapManager, TLcyGenericMapManager and TLcyMapManager now allow to add a listener
which is
warned about all existing map components as well.
ImprovementLuciadLightspeed
LMAP-4642
ILcdGeoBuffer now supports points and (complex) polygons as base shape.
ImprovementLuciadLightspeed
The LuciadFusion HTTP transport needs to use the JVM HTTP proxy settings.
ImprovementLuciadLightspeed
LMAP-5427
The TLcdWCSClient will now take the axis order of the used reference into account when encoding bounding box values
in KVP requests.
ImprovementLuciadLightspeed
LMAP-5426
The TLcdWCSClient will now try to detect GeoTiff encoded elevation data automatically. This allows elevation data to
be properly
used even if the server configuration fails to correctly describe the data.
ImprovementLucy (LuciadLightspeed)
LUCY-2856, LUCY-2857
A filter to filter out specific model elements has been introduced: TLcyModelObjectFilter. The
table view re-uses this filter. The checkboxes in the table view now receive a visual indication
when the state of the checkbox does not match the visibility on the map due to other filter
settings.
ImprovementLucy (LuciadLightspeed)
LUCY-2962
TLcyActionBarUtil#mediateAcceleratorKeys has been introduced, allowing to mediate the
accelerator
keys between an ILcyActionBar and a JComponent.
ImprovementLucy (LuciadLightspeed)
TLcyASDIDecoderAddOn: the performance of the 3D visualization of the trajectories and
flightplans
has been improved.
ImprovementLuciadLightspeed
TLcdGXYPointListPainter now avoids painting lines that are completely outside the view.
This improves the painting speed in some cases, for example when zoomed in on a map containing
many polylines.
ImprovementAdvanced GIS Engine
The standard implementations of ILcd2DAdvancedBinaryTopology now also support ILcdBounds,
ILcdArcBand, and ILcdGeoBuffer instances. Support for polylines, polygons and complex polygons
with rhumbline properties has been added to TLcdEllipsoidalAdvancedBinaryTopology and
TLcdSphericalAdvancedBinaryTopology.
ImprovementDatabase Connectors
The sample configurations now specify connection timeouts.
ImprovementDatabase Connectors
Models created by the TLcdOracleSpatialModelDecoder are now dataobject
enabled. This means that all model elements implement ILcdDataObject and
that the model's model descriptor implements ILcdDataModelDescriptor.
ImprovementOGC Server
The WFS server now supports additional GML output formats to export data using the GML simple features profile.
This allows servers to either export as simple features by default, or otherwise to expose the additional output
formats
so they are available to clients.
ImprovementReal-time Engine
LMAP-3082
TLcdTrackModel : the method applyOnInteract2DBounds (for example used to paint) now works faster,
especially when the number of rows and columns is high.
ImprovementTerrain Analysis Engine
Added the com.luciad.tea.viewshed package. This package contains functionality to calculate
visibility and shadows for 3D scenes such as urban environments and terrain.
ImprovementAviation Standards
All SLD's used with AIXM 5.x should now be specified relative to the feature instead of the time slice. This
makes it possible to define time based styles.
ImprovementMaritime Standards
S-57 features without geometry are now included in the S-57 model's elements() method.
ImprovementMaritime Standards
A new class, TLcdS52DisplaySettings is introduced. This class collects all S-52 rendering
settings that were previously scattered over multiple S-52 components. All relevant S-52
components (symbologies, painter providers, ...) now take a TLcdS52DisplaySettings as a
constructor argument. Components processing the same S-57 model or sharing the same
rendering
configuration should use the same TLcdS52DisplaySettings instance. It is advised to perform
all
S-52 rendering configuration on the central TLcdS52DisplaySettings instance, rather than
using
the existing methods on the individual components.
ImprovementMaritime Standards
LMAP-2019
Two new classes were introduced for easier setup of an ECDIS environment:
TLcdS57ProductConfiguration and TLcdS52ProductConfiguration. They allow to instantiate S-57
and
S-52 components (decoders, painter providers, ...) with a single method call, hiding all the
configuration details for the user of the API. These classes provide out-of-the-box support
for
the ENC and AML product types. Unless another S-57 product is used, users no longer need to
perform S-57/S-52 component configuration manually.
ImprovementMaritime Standards
The properties of S-57 domain object can now be edited.
ImprovementMaritime Standards
Several performance improvements have been done in the S-52 rendering library.
TLcdS52GXYCatalogueLayerList and TLcdS52GXYLevelLayerList have been deprecated, as they are
more
difficult to use and their performance is signficantly lower than that of
TLcdS52GXYCatalogueLayer.
ImprovementMaritime Standards
A new class, TLcdS57Preprocessor, is available in the API. This class prepares S-57 models
to be
used with S-52: it precomputes a set of characteristics which are expensive to compute
on-the-fly during painting, and stores them on the domain objects.
ImprovementMaritime Standards
The public API of S-57 has been extended to cover the full domain model. Nodes, edges and
faces
are now also available through the API. With the extended API, it is now possible to
construct a
fully functional S-57 model outside the S-57 decoders.
ImprovementS-63
TLcdS63ProductConfiguration is a new API class, allowing easy setup of an ECDIS/S-63
environment.
It provides out-of-the-box support for the ENC and AML product types. Unless another S-57
product is used,
users no longer need to perform S-57/S-52/S-63 component configuration manually (except for
the
S-63
permit data).
ImprovementTiling Engine
LF-102
On Windows, occasional failure to delete a temporary staging directory is expected due to file locking.
ImprovementTiling Engine
LuciadFusion is extended with support for rasterizing vector data into raster coverages.
The rasterization relies on a layer factory that should be available for the vector format.
The Fusion Engine provides built-in support for rasterizing the vector data formats
Shapefile (SHP), Vector Product Format (VPF), MapInfo (MIF/MAP), GML (Simple Features profile)
and ECDIS. Through the API, additional formats can be plugged in.
ImprovementTiling Engine
LuciadFusion now adds support to fuse and and distribute raster data representing values other than image and
elevation.
For instance, meteorological raster data defining temperature or wind speed. To support this use case,
a new 'multivalued' coverage type is introduced. Additionally, support for the GRIB weather data format
(V1, V2, bulletins) is added, as a primary use case for the new coverage type.
The Fusion Engine is extended with support for the new coverage type and the GRIB data format.
ImprovementTiling Engine
LuciadFusion is extended with support for vector data, enabling users to use very large vector data sets in
applications.
By applying tiling and the use of multiple levels of details, LuciadFusion allows to fuse vector
data sources into a vector coverage, ready for high performance data streaming, visualization and analysis.
To support the vector data use case, the Fusion Engine introduces new API to fuse vector data.
The Fusion Engine factory class, TLfnEngineFactory, has been extended with the capability of creating a vector
fusion session, next to a raster fusion session. This makes use of a new package com.luciad.fusion.vector,
which contains a number of classes related to vector fusion handling and simplification.
The Fusion Engine supports fusing vector data consisting of points, polylines and polygons.
This comes with built-in support to import vector data from Shapefile (SHP), Vector Product Format (VPF),
MapInfo (MIF/MAP) and GML (Simple Features profile). Additional formats can be plugged in as well,
by providing an ALfnFormat implementation.
Bug fixLucy (LuciadLightspeed)
LUCY-2973
The new labeling framework didn't support non-ILcdDataObject model elements well.
Bug fixLucy (LuciadLightspeed)
LUCY-2972
Using the pre-10.1 labeling in the drawing addon didn't work well anymore.
Bug fixLuciadLightspeed
LMAP-4977
TLcdGXYPointListPainter now uses cached ILcdAWTPaths when calling appendAWTPath().
Bug fixLucy (LuciadLightspeed)
LUCY-3203
A ClassCastException was thrown when creating a TEA layer with a grid reference.
Bug fixLuciadLightspeed
ProgressUtilAWT and ProgressUtil now create their progress dialogs on the Event Dispatch Thread.
This solves some rare deadlock problems when starting the samples.
Bug fixLuciadLightspeed
LMAP-5500
TLcdLonLatGeoBuffer.contains2D() was several times slower than TLcdLonLatHeightBuffer.contains2D()
in some cases. This has been fixed.
Bug fixLuciadLightspeed
TLcdGXYLonLatHeightBufferPainter relied on ILcdGXYContext#getGXYPen returning the same exact
instance for multiple invocations. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3197
A Swing Threading violation during saving of a workspace with unsaved modified files has been
resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-3195
The fallback layer properties panel, as registered by the TLcyMapAddOn and TLcyGLMapAddOn, did
not
updated its checkboxes correctly. This has been resolved.
Bug fixLuciadLightspeed
LMAP-5498
An IllegalArgumentException was thrown when computing the contour of a TLcdXYPolygon base shape
containing 0 points. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5482
Some layers (TLcdUTMGridLayer, TLcdMapGeorefGridLayer) fired a PropertyChangeEvent with
an incorrect property name :
- ScaleRange instead of scaleRange
- Visible instead of visible
- Labeled instead of labeled
- Label instead of label
Bug fixLuciadLightspeed
TLcdGeoTIFFModelEncoder now correctly exports rasters containing buffered
tiles containing ARGB pixels.
Bug fixLuciadLightspeed
LMAP-5496
TLcdDefaultModelXYZWorldTransformation swapped the model and world reference
if they both were grid references.
Bug fixLucy (LuciadLightspeed)
LUCY-3192
The default duration format would sometimes display "0m:60s" instead of "1m:00s". This has been
resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-1559
TLcyS57VPFDecoderAddOn: loading a workspace which references VPF data that are not available no
longer results in
a NullPointerException.
Bug fixLuciadLightspeed
A bug in the rendering of halos,resulting in incorrect halos when printing maps with partly
transparent images
with halo, has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3082
TLcyVPFDecoderAddOn: some Swing related operations were not correctly performed on the EDT
thread. This has
been fixed.
Bug fixLuciadLightspeed
LMAP-5468
The deprecated method ALcdWMSProxy#createImage now has a default implementation that delegates to
ALcdWMSProxy#createImageInputStream, making it no longer required for extensions
to provide an implementation.
Bug fixLucy (LuciadLightspeed)
LUCY-3008
All entries in the layer properties panels can now be translated.
Bug fixLucy (LuciadLightspeed)
TLcyKML22OpenGLAddOn: Added dependency on 3D in addons.xml file.
Bug fixLucy (LuciadLightspeed)
LUCY-3185
The group ID of the ArcSDE ALcyFileTypeDescriptor no longer states 'All Files', which could
cause confusion
with the default 'All Files' option of the Java File Chooser.
Bug fixLuciadLightspeed
TLcdDatabaseModel now avoids soft-caching elements if maxCacheSize is 0.
Bug fixLuciadLightspeed
TLcdDatabaseModel#elements() no longer returns multiple copies of the same
cached elements for large databases.
Bug fixLuciadLightspeed
LMAP-5460
TLcdGeoTIFFModelDecoder now assigns a better default value to elevation rasters. This prevents
a bug where using multiple elevation GeoTIFFs at the same time would result in invalid heights.
Bug fixLuciadLightspeed
Conversion of URLs to file names, which is required for some model decoders,
has been corrected so that it also works on Windows Server 2008.
Bug fixLuciadLightspeed
LMAP-5512, LMAP-5523
TLcdEarthGXYMultivaluedRasterPainter: sometimes icons near the edge disappeared when panning
around and did not position its icons correctly.
Bug fixLuciadLightspeed
In some cases TLcdAWTPath produced ghost lines when using a small min and max ordinate
value. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3139
The "export to Earth repository" action updated its progress panel on the wrong thread. The
updates now
occur on the EDT.
Bug fixLuciadLightspeed
LMAP-5375
TLcdGXYPointListPainter#boundsSFCT() did not always return correct bounds.
Bug fixLucy (LuciadLightspeed)
LUCY-3074
The Strings occurring in the search action of the table view are now passed through
TLcyLang.getString allowing
internationalization.
Bug fixLucy (LuciadLightspeed)
LUCY-3076
The grid coordinate panel now uses the correct label (MGRS iso UTM), and joined the MGRS and UPS
coordinates in one panel.
Bug fixLucy (LuciadLightspeed)
LUCY-3069
The Edit | Point Format | UTM entries are actually MGRS formats. The name of the menu entries
have
been corrected in map_units.cfg .
Bug fixLucy (LuciadLightspeed)
LUCY-3036, LUCY-3037, LUCY-3038
Some Swing threading violations are fixed.
Bug fixLuciadLightspeed
LMAP-2810
TLcdGXYSelectControllerModel2 no longer tries to display the choose dialog for right clicks.
Bug fixLuciadLightspeed
LMAP-2518
TLcdGXYMagnifierController: added a workaround for Sun bug #5070056, which caused the magnifier
window to be displayed on top of dialog windows.
Bug fixLuciadLightspeed
LMAP-1981, LMAP-2024
The cursor was often incorrect for interactive labels.
Bug fixLucy (LuciadLightspeed)
LUCY-2553
The drawing model encoder now ensures that the model reference is always written
as a proper xsd:anyURI (as required by the GML schema).
Before this fix, drawing models using
custom model references for which no valid EPSG codes exist, were not in
all cases compliant to the GML schema.
Note that the drawing model decoder is still able to read
these (schema invalid) files as before.
Bug fixLucy (LuciadLightspeed)
LUCY-2521
TLcyDrawingTEAAddOn: removed the conflicting property
TLcyDrawingTEAAddOn.default_terrain_following_mode
from the configuration file. Use the active state of the active settable to change this
property.
Bug fixLucy (LuciadLightspeed)
LUCY-1625
TLcyPrintAddOn: the properties for the actions configured in the configuration file are now
respected.
Bug fixLuciadLightspeed
LMAP-4775
The TLcdGnomonic constructor that takes an ILcdPoint as argument switched the origin
longitude and origin latitude.
Bug fixLucy (LuciadLightspeed)
LUCY-2971
TLcyMS2525bAddOn - TLcyAPP6AAddOn: the ALcyLayerSelectionTransferHandler plugged in by both
add-ons
is now created in the ALcyFormat, allowing it to be modified.
Bug fixLucy (LuciadLightspeed)
LUCY-2975
The workspace progress panel was not created on the EDT. This has been fixed.
Bug fixLuciadLightspeed
The short unit names of TLcdAngleUnit.DEGREE and TLcdAngleUnit.GRADIAN now correspond to the
symbols defined in the international standard ISO 31-1.
Bug fixLucy (LuciadLightspeed)
LUCY-1479
TableViewAddOn: in some specific cases the table view tried to dispose its application pane
multiple
times. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2475
TableViewAddOn: the default active state of the 'synchronize selection' active settable is set
to
active, as it was before V9.1 . The default state can be changed in the configuration file of
the
table view add-on.
Bug fixLucy (LuciadLightspeed)
LUCY-1519
TableViewAddOn: opening a table view for a layer would clear the selection of that layer. Now
the table
view selection is the same as the layer selection when opening a new table view.
Bug fixLucy (LuciadLightspeed)
LUCY-2858
A memory leak in the table view has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2966
Opening multiple table views for layers of the same mapcomponent no longer results in duplicate
items
in the pop-up menu of the table view.
Bug fixLuciadLightspeed
LMAP-1387
TLcdGXYMagnifierController's keyboard shortcuts have been fixed.
Bug fixAdvanced GIS Engine
LMAP-5487
The developer's guide now contains the Luciad support department contact information.
Bug fixAdvanced GIS Engine
LMAP-5360
Topology query computations incorrectly assumed all points are ILcd2DEditablePoint.
This has been resolved.
Bug fixTerrain Analysis Engine
Prevented TEA from generating duplicate warnings while creating point to point visibility
for a large number of points.
Bug fixDefense Symbology
The tree node icons displayed in the echelon tree in the MIL-STD 2525b/APP-6A customizer
were not correct for the echelons mobility wheeled and tracked,
mobility towed combination and mobility amphibious.
Bug fixDefense Symbology
LMAP-5280
The Static Depiction mine symbol in MIL-STD 2525b/c (2.X.3.1.6.1) is now rendered
as a point symbol instead of an area, as defined by the specification.
Bug fixRadar Connectors
Fixed some wrong instance class specifications in the data model of ASDI.
Bug fixRadar Connectors
LMAP-5461
The boundary crossing information is now available through the ILcdDataObject interface on the
flight plans.
Bug fixRadar Connectors
LMAP-5241
The ILcdDataObject implementation for collection properties is now correct: the values for collection
properties are now always instances of the right collection class.
Bug fixTiling Engine
LF-96
Stopping the fusion engine sometimes causes fatal errors (crashes).
Upgrade considerationLucy (LuciadLightspeed)
The TLcyDataFormatManager is extended to support loading data identified by a ILcdDataSource
instead of a String. To that end new handleDataSources methods are added that take an array of
ILcdDataSources as input. In order to reuse the TLcyDataFormatManager.ALcyHandlerChooser and
the TLcyDataFormatManager.ALcyMapComponentChooser new abstract methods were needed. Implementing
this methods in existing implementations should be very similar to the corresponding
implementations
based on strings.
Upgrade considerationLuciadLightspeed
AssetPart has been renamed to RasterAssetPart for a better symmetry with VectorAssetPart.
Constants in TLfnQuery have been renamed accordingly.
References to TLfnQuery#ASSET_location and TLfnQuery#ASSET_boundingBox can be replaced with
TLfnQuery#RASTER_ASSET_location and TLfnQuery#RASTER_ASSET_boundingBox respectively.
Queries using the properties
"lts:AssetPart/lts:Location/@link:href"
and
"lts:AssetPart/lts:BoundingBox"
should be updated to
"lts:RasterAssetPart/lts:Location/@link:href"
and
"lts:RasterAssetPart/lts:BoundingBox"
respectively, matching a raster asset part specifically.
Upgrade considerationLuciadLightspeed
The Luciad Tile Service (LTS) protocol supported by the LuciadFusion Data Server
has been changed compared to LuciadFusion V10.0. The old protocol will no longer be supported,
requiring applications that use LuciadMap Fusion Client V11.0 to update the LuciadFusion Data Server
to V11.0 accordingly.
Upgrade considerationLuciadLightspeed
The signature of the constructor in TLfnTileStoreModelDescriptor has been slightly changed: the URI parameter
has been replaced by an ALfnTileStore parameter.
A TLfnTileStoreModelDescriptor instance is normally constructed automatically in TLfnTileStoreModelDecoder.
Implementations that manually instantiated this class should now supply the ALfnTileStore parameter,
which can be retrieved through a TLfnLTSClient (in the case of LuciadFusion Data Server connection)
or through a TLfnFileSystemTileStore (in the case of a local file system Tile Store).
Upgrade considerationLuciadLightspeed
The interfaces and classes ILfnTransport, TLfnRequest and TLfnResponse in com.luciad.fusion.client.transport
and the class TLfnHttpAccessPoint in com.luciad.fusion.common.TLfnHttpAccessPoint have been moved
to com.luciad.io.transport and renamed to respectively ILcdTransport, TLcdTransportRequest, TLcdTransportResponse
and TLcdTransportAccessPoint.
Implementations that relied on these interfaces or classes can simply use the new name and import location.
Upgrade considerationLuciadLightspeed
The TLfnRasterAssetMetadata has been changed to support more complex assets. Concretely the
pixel density property has been moved to the RasterAssetParts. This change allows modeling file
formats that can contain data at multiple locations and multiple levels of detail (ex. CADRG TOC
file and ECDIS catalog file) as a single asset. Modeling these with a single asset is desired
because an asset should conceptually be a logical group of data. The method
TLfnRasterAssetMetadata#getPixelDensity still exists, but now takes the maximum of the pixel
densities of the underlying RasterAssetParts.
Upgrade considerationLuciadLightspeed
TLcdLonLatGridPainter can now make use of any ILcdLonLatFormatter instead of a
TLcdLonLatFormatter.
Users of the getLonLatFormatter method may have to add an extra instanceof operation and cast
to make their projects compile again. Code overriding the setLonLatFormatter method will also
have to change the argument type.
Upgrade considerationLucy (LuciadLightspeed)
The Fusion Client add-on infrastructure has been refactored to offer an API to the user,
giving the possibility to create extensions and make customizations.
The existing add-ons TLcyFusionClientAddOn and TLcyFusionClientOpenGLAddOn
have been replaced by several new add-ons available in com.luciad.lucy.addons.fusion:
- com.luciad.lucy.addons.fusion.TLcyFusionCoreAddOn
- com.luciad.lucy.addons.fusion.client.TLcyFusionClientAddOn
- com.luciad.lucy.addons.fusion.format.raster.TLcyFusionRasterFormatAddOn
-
com.luciad.lucy.addons.fusion.format.raster.opengl.TLcyFusionRasterFormatOpenGLAddOn
- com.luciad.lucy.addons.fusion.format.vector.TLcyFusionVectorFormatAddOn
This means that any addons.xml file that used to contain TLcyFusionClientAddOn and
TLcyFusionClientOpenGLAddOn have to be replaced by the new addon configuration.
Existing workspaces that contain Fusion layers can still be loaded but the Fusion layers will
no longer be restored.
These workspaces have to be created again to store the Fusion layers according to the new
add-on configuration.
Upgrade considerationLuciadLightspeed
A new icon set is now being used in all of LuciadMap, Lucy, and all Industry Specific and
Additional Components.
The icons can easily be reverted to the old icons by adding lib/legacy/legacy_icons.jar to
the classpath, before luciadmap.jar.
Because the icons use a more advanced format now (PNG), and because all icons have now been consolidated
in the LuciadMap.jar file, the file paths have been changed.
If you are using TLcdGUIIcon or TLcdShapeIcon, you will automatically use the new icons.
If you use the old icon filenames in your own code, it will be necessary to change them to the
new file names.
To make this easier, the file lib/legacy/legacy_icons.jar contains a mapping (icon_mapping.csv)
from the old icon names to the newly used icon names.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-3064
A new abstract method, createGXYAsynchronousLayerStyleProvider(), was added to
ALcyAsynchronousPaintFacade.
Custom classes extending from ALcyAsynchronousPaintFacade will generate a compile error. Classes
wrapping an ALcyAsynchronousPaintFacade can solve this compile error by wrapping the new method.
Classes
implementing ALcyAsynchronousPaintFacade can solve this compile error by moving the asynchronous
layer style provider functionality to this new method in the asynchronous paint facade.
Upgrade considerationLuciadLightspeed
The constant TLfnClientFactory#TRANSPORT_TYPE_APACHE_HTTP_CLIENT_401 has been renamed to
TRANSPORT_TYPE_DEFAULT, to avoid explicit versions of third-party libraries in the API.
Implementations that used this constant can simply replace it with the new name.
Upgrade considerationLuciadLightspeed
The lcd_wxs_common.jar is no longer part of the release. The necessary classes have been included in the
luciadmap.jar
Upgrade considerationLuciadLightspeed
LMAP-3087
ILcdGXYContext now has a properties object that can be used to store context information across
multiple invocations of a method with an ILcdGXYContext object.
TLcdGXYNewController2 will keep its properties for as long as the same object is being edited.
If you are affected by this change, consider extending from TLcdGXYContext or
ALcdGXYContextWrapper.
Note that implementing ILcdGXYContext from scratch is strongly discouraged.
Upgrade considerationLuciadLightspeed
A new method was added to the ILcdDataModelDisplayNameProvider interface, allowing to query
the display name for a value within a type's domain. This may for example be used to translate
coded enumeration
values into human-readable names. Existing implementations of this interface may
implement the new method by returning aValue.toString(), to keep their current behavior.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-3006
Several add-ons which create ILcyApplicationPane instances now allow to configure the
application pane, and
the corresponding ILcyActiveSettable through the configuration file. As a result, some
existing
configuration options have been replaced
- TLcyS57DecoderAddOn: the
TLcyS57DecoderAddOn.s52StyleActiveSettable
entries in the configuration file have been replaced by
TLcyS57DecoderAddOn.S52.applicationPane
and
TLcyS57DecoderAddOn.S52.applicationPane.activeSettable
entries.
- TLcyGridCoordinateAddOn: the
TLcyGridCoordinateAddOn.gridCoordinateActiveSettable
entries in the configuration file have been replaced by
TLcyGridCoordinateAddOn.applicationPane
and
TLcyGridCoordinateAddOn.applicationPane.activeSettable
entries.
- TLcyMapRotationAddOn: the
TLcyMapRotationAddOn.applicationPaneLocation
entry has been replaced by
TLcyMapRotationAddOn.applicationPane
and
TLcyMapRotationAddOn.applicationPane.activeSettable
entries.
Upgrade considerationLucy (LuciadLightspeed)
All actions and active settables are now inserted in the configured
action bars using TLcyActionBarUtil#insertInConfiguredActionBars. In case an action or active
settable is not included in the configuration file it will no longer appear in the UI. It is
sufficient to
re-add that particular entry to configuration file. Prior versions of Lucy already logged
warnings
for such actions or active settables, which allows to easily find the affected actions and
active settables.
All configuration files shipped with a standard Lucy contain the necessary information
to insert the actions and active settables in the UI.
Upgrade considerationLuciadLightspeed
LMAP-5409
An ILcdOWSRequest can now encode lists of values in a KVP request using a Java List.
This allows the transport to correctly encode these lists using a "," as a separator between values.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2961, LUCY-2883
The TableViewAddOn has been split into three separate add-ons:
- TLcyModelCustomizerAddOn: a new Lucy add-on which is responsible for following the
selected
layers of the active map component, creating TLcyModelContext[] instances for that selection
and
when possible showing a customizer panel for those TLcyModelContext instances (similar to
what the TLcySelectionEditorAddOn does for TLcyDomainObjectContext instances).
- The sample add-on TableViewAddOn now only registers an ILcyCustomizerPanelFactory
capable of creating
a table representation of a TLcyModelContext.
- The sample add-on TreeTableViewAddOn has been created, which registers an
ILcyCustomizerPanelFactory
capable of creating a tree table view for a TLcyDomainObjectContext.
In case you use the regular TLcyToteAddOn, you will now need to include the
TLcyModelCustomizerAddOn and
the TLcyTreeTableViewAddOn as well:
<addon>
<name>Model Customizer</name>
<class>com.luciad.lucy.addons.modelcustomizer.TLcyModelCustomizerAddOn</class>
<configFile>lucy/modelcustomizer/TLcyModelCustomizerAddOn.cfg</configFile>
</addon>
<addon>
<name>Tree Table View</name>
<class>com.luciad.lucy.addons.treetable.TLcyTreeTableViewAddOn</class>
<configFile>lucy/treetable/TLcyTreeTableViewAddOn.cfg</configFile>
</addon>
In case your application already contains a customized version of the TableViewAddOn,
you should not only remove
the TLcyToteAddOn from the addons.xml file, but the TLcyTreeTableViewAddOn and
TLcyModelCustomizerAddOn entry
as well.
The action which opens the table view has been moved as well from the TLcyToteAddOn to
the
TLcyModelCustomizerAddOn. As such, the ID of the action got changed from
TLcyToteAddOn.tableViewAction
toTLcyModelCustomizerPanelAddOn.modelPropertiesAction
. The context for
the action
remained the same (the map component).
Upgrade considerationOGC Server
The lcd_wxs_common.jar is no longer part of the release. The necessary classes have been included in the
luciadmap.jar
Upgrade considerationOGC Server
The lcd_wxs_common.jar is no longer part of the release. The necessary classes have been included in the
luciadmap.jar.
Upgrade considerationMaritime Standards
The model structure created by TLcdS52ModelListBuilder has been changed slightly, to improve
overall performance. The hierarchy has become: level - ENC cell - display priority -
geometry
type (instead of level - display priority - geometry type - ENC cell). The returned models
now
contain ILcdModelContainer instances rather than TLcdModelList instances.
Upgrade considerationRadar Connectors
LMAP-5241, LMAP-5247
In order to fix the issues in the datamodel implementation, the datamodel itself has been
changed for all data object properties that were collections.
This change will not result in compile time errors, only runtime behavior has changed.
You are only affected if you access following collection properties through the
ILcdDataObject interface:
- Category 1, Plot UAP:
- RadarPlotCharacteristics
- WarningErrorConditions
- Category 1, Track UAP:
- RadarPlotCharacteristics
- TrackQuality
- WarningErrorConditions
- Category 244:
- Category 30:
- ReservedExpansionField
- AllocatedSSRCodes
- ARTASTrackNumber
- Category 48:
- ModeSMBData
- WarningErrorConditions
- RawDopplerSpeed
- Category 62:
- TrajectoryIntentData
- ModeSMBData
- ComposedTrackNumber
- TimeOfDepartureArrival
Upgrade considerationTiling Engine
The methods TLfnCompositeFormat.canCreateGXYLayer() and TLfnCompositeFormat.canCreateHeightProvider()
have been removed. Instead, use ALfnAssetMetadata.getSupportedCoverageTypes(), and check if the
result contains ELfnDataType.IMAGE or ELfnDataType.ELEVATION.
Upgrade considerationTiling Engine
TLfnEngineFactory: the engine factory now uses builder classes instead of builder methods for
creating engine sessions. This allows for introducing additional parameters without breaking
existing code and is also more convenient for optional parameters in general.
10.1
10.1.29
ImprovementLucy (LuciadLightspeed)
TLcySwissDHMMatrixDecoderAddOn: the decoder now has a flag to use a geoid vertical datum
instead of an ellipsoidal vertical datum.
ImprovementLucy (LuciadLightspeed)
TLcySwissDHMMatrixDecoderAddOn: the decoder now has a setting for the sampling strategy,
for determining the values for raster pixels (one of the cell corners, the minimum,
the maximum, the average, or continuous bilinear interpolation).
ImprovementLucy (LuciadLightspeed)
LUCY-3172
The halo of the mouse location component on the map can now be enabled/disabled through the
configuration
file. See map_addon.cfg and TLcyGLMapAddOn.cfg
ImprovementAdvanced Raster Connectors
TLcdSwissDHMMatrixModelDecoder now supports sampling strategies for
determining the values for raster pixels (one of the cell corners, the
minimum, the maximum, the average, or continuous bilinear interpolation).
ImprovementAdvanced Raster Connectors
TLcdSwissDHMMatrixModelDecoder now supports a slightly more accurate geoid
vertical datum, in addition to the default ellipsoidal vertical datum.
Bug fixLucy (LuciadLightspeed)
LUCY-3184
TLcyWMSClientAddOn: the layer properties panel for WMS layers in 3D caused a ClassCastException.
This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3180
TLcyGLMapLayerControlFactory: the createEmptyMapLayerControl method was called twice. This has
been adjusted.
Bug fixLucy (LuciadLightspeed)
LUCY-3178
The layer selection synchronization active settable performed Swing related operations on the
workspace thread instead of on the EDT. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3177
Terrain Analysis: Made sure that TEA layers created by any of the TEA AddOns use the
ILcyLucyEnv.getDefaultModelReference() model reference when creating their first
TEA layer.
Bug fixLucy (LuciadLightspeed)
LUCY-3175
TLcyGLMapAddOn: the maxNumberOfMaps option in the config file did not accepted the value -1.
This
has been fixed.
Bug fixMaritime Standards
A bug in the detection of update files, introduced in the previous patch release, has been
fixed.
Bug fixMaritime Standards
LMAP-5437
TLcdS57CatalogueModelDecoder did not consider the locations of S-57 update files as
specified in
the catalogue. This meant that updates to cells in a catalogue would only be applied if the
update files (.001, .002, ...) were in the same directory as the base file (.000). This has
been
fixed.
10.1.28
ImprovementTerrain Analysis Engine
LMAP-5438
Built in fail-safe for special extreme values of vertical angles to prevent overflow
of calculation data on calculations beyond the limit of doubles in LOS computations.
10.1.27
ImprovementLucy (LuciadLightspeed)
LUCY-3166
The DataObjectTableFactory no longer accepts empty models, similar to the FeaturedTableFactory.
ImprovementLuciadLightspeed
LMAP-3084
TLcdGXYLayer now allows setting an interact margin to better support model elements of which the visual
representation is larger than their model bounds.
10.1.26
Bug fixLucy (LuciadLightspeed)
LUCY-3160
The halo thickness slider in the 3D layer properties has no effect and has been removed.
Bug fixLuciadLightspeed
TLcdEarthLevelFallbackTileSet: did not fallback correctly in its synchronous produceTile method
and its updateTile methods.
Bug fixLuciadLightspeed
The Earth painters now emit property change events in all their setters.
Bug fixLucy (LuciadLightspeed)
LUCY-3088
Avoided a deadlock in the layer properties panels due to asynchronous changes.
Bug fixLucy (LuciadLightspeed)
LUCY-3146
The painter style and color tabs are restored in the layer properties panel for GRIB layers.
Bug fixLucy (LuciadLightspeed)
The property 'CADRGFormat.multilevel' in default_decoders.cfg has been removed. Setting this
property
to true would result in a loss of raster scale range functionality, and serves no purpose
anymore.
Bug fixLuciadLightspeed
LMAP-5403
The TLcdPOLModelDecoder would fail if the first line of the pol file was '% Gtool', instead of
'%Gtool'. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3145
ALcyCompositeFilter fires TLcdChangeEvent instances with an incorrect source. This has been
corrected.
Bug fixLucy (LuciadLightspeed)
LUCY-3132
The height in the mouse location panel is now shown in the default model reference
(aLucyEnv.getDefaultModelReference()). Before it was always displayed in the WGS 84
reference.
Bug fixLucy (LuciadLightspeed)
LUCY-3144
The layer properties panel of multilevel SHP layers was incorrect, and did not correctly applied
the settings to the layer. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2946
TLcyS57DrawingAddOn: a bug in the export of text objects to Drawing, prohibiting the export of
some formats to Drawing, has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2018
TLcyS57DecoderAddOn: the addon now supports a larger number of navigational purposes, allowing
to load AML and Inland ECDIS data.
Bug fixAdvanced GIS Engine
LMAP-5328
A bug in the method setFallBackOnBoundsWithBounds of ALcd2DBasicBinaryTopologyMultiShape has been
resolved.
Bug fixAviation Standards
LMAP-5290
TLcdGXYOutlinePolylineLabelPainter's halo functionality was broken.
Bug fixDefense Symbology
LMAP-5419
Circle-based symbol were not accurately drawn when a radius smaller than 1000 meters was used.
Bug fixDefense Symbology
LMAP-5384
It is now possible to configure the color of each tactical symbol in APP-6A (symbol group 2.X) through
ILcdAPP6AStyle#setColor. This was previously not possible for a few tactical symbols,
such as the Point Of Interest symbol.
10.1.25
Bug fixLucy (LuciadLightspeed)
LUCY-3142
The size of the Fusion Client panel may have been too small, so the coverage tree was not
visible.
Bug fixLucy (LuciadLightspeed)
LUCY-3141
TLcyS57DecoderAddOn: the paintUnderscaleIndication flag in the S-57 add-on was no longer taken
into account. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3140
DateRepositoryAddOn sample: the data repository add-on added null file type descriptors to a
composite version,
which could result in a NullPointerException.
Bug fixLuciadLightspeed
LMAP-3968
Fixed gap/discontinuity on edges of geometry data when using a non-geodetic reference.
10.1.24
ImprovementLuciadLightspeed
LMAP-5290
Introduced a new protected method calculateLabelSegment in TLcdGXYPolylineStampLabelPainter to
allow customizing the segment on which a label is placed.
Bug fixLucy (LuciadLightspeed)
LUCY-3134
ArcSDE layers threw an exception when saving the layer style when manualScales are enabled in
the
configuration file. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5374
TLcdGXYCompositeCurvePainter and TLcdGXYCompositeRingPainter now keep the composite curve or
ring connected during editing when it contains composite curves.
Bug fixLuciadLightspeed
LMAP-3435
TLcdRangeSlider: the slider labels did not reflect the disabled state of the component.
Bug fixLuciadLightspeed
LMAP-3556
TLcdGXYBoundsPainter would catch and log TLcdOutOfBoundsExceptions when it should be passing
them on. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5205
TLcdGXYTextPainter: fixed a problem with the 3-click creation mode.
Bug fixLuciadLightspeed
LMAP-3688
In some cases, TLcdVVJPanel could throw an ArrayIndexOutOfBoundsException while painting.
10.1.23
ImprovementLucy (LuciadLightspeed)
LUCY-3123
Extra date formats have been added to map_units.cfg
ImprovementLucy (LuciadLightspeed)
LUCY-1957
Front-end: the status bar of Lucy is now accessible through the action bar manager for the ID
"mainStatusBar",
allowing to insert actions and active settables in the status bar. The change is applied to the
sample front-ends
by modifying the AFrontend#initStatusBar method, as well as in the default Lucy front-end.
ImprovementDefense Standards
The performance of the face construction algorithm, which was reduced after a previous bug fix
(LMAP-5058), has been improved again. This issue only affects area feature classes.
Bug fixLuciadLightspeed
LMAP-5356
The warping raster painters no longer throw a StackOverflowError when the
property oversamplingRate is set (bug introduced in version 10.0).
Bug fixLucy (LuciadLightspeed)
LUCY-3124
The date and duration format were not stored in the workspace.
Bug fixLuciadLightspeed
LMAP-5361
TLcdLabelConflictChecker was too strict when bounds touched each other, marking them as
overlapping. This has now been fixed.
Bug fixOGC Server
LMAP-2414
The WMS GIF encoder, TLcdGXYViewGIFEncoder, now properly supports images that have more than 256 colors
in combination with transparency, regardless of the JDK version.
10.1.22
ImprovementLuciadLightspeed
LMAP-5373
Improved the performance of the functionality added in LMAP-5314.
Bug fixLuciadLightspeed
LMAP-5340
The class TLcdWMSProxyGXYPainter did not accurately transform the view/world bounds in case
of a TLcdGeodetic projection.
Bug fixInfrastructure Standards
LMAP-5371
The DGN decoder now discards empty cells, as they cause the model bounds to be incorrect.
Bug fixInfrastructure Standards
LMAP-5365
The DGN decoder sometimes didn't properly convert 3D arc start angles using the defined
rotation matrix, causing the arcs to start at the wrong position.
10.1.21
Bug fixLucy (LuciadLightspeed)
LUCY-3119
TLcyGRIBDecoderAddOn: the layer properties panel contained settings which could not be applied
for
certain GRIB layers. These settings have been removed from the panel for those layers.
Bug fixLucy (LuciadLightspeed)
LUCY-3110
Saving the style of a GRIB layer with the manualScalesEnabled property set to true resulted in
an exception. This has been fixed.
10.1.20
ImprovementLuciadLightspeed
LMAP-5341
The new Java system property "luciadmap.ibutton" can be set to "usb" or to
"serial" to only look for a hardware key on the corresponding port.
Bug fixLuciadLightspeed
LMAP-4364
TLcdGeoTIFFModelEncoder again takes into account a user-set output stream
factory, even if the output is written to a file. Note that setting an
output stream factory generally reduces the performance of the encoder,
because it then creates a temporary file when encoding a GeoTIFF.
Bug fixLucy (LuciadLightspeed)
LUCY-3118
Some translations were missing in the layer properties panel and the print add-on. These have
been
added.
Bug fixLuciadLightspeed
LMAP-5353
TLcdGXYCompositeRingPainter did not respect the edit (#setEditMode) and selection
(#setSelectionMode) modes.
Bug fixOGC Server
LMAP-3741
The GeoTIFF encoder used in the WCS now properly encodes elevation raster data as signed 16-bit GeoTIFF rasters.
10.1.19
ImprovementDefense Symbology
LMAP-1238
The unit movement direction arrow can now be enabled/disabled through the method
setLabelEnabled(String, boolean) in ILcdAPP6AStyle and ILcdMS2525bStyle.
When disabled, the movement direction arrow will not be rendered,
regardless of the value of the sMovementDirection modifier in ILcdAPP6ACoded and ILcdMS2525bCoded.
Bug fixLucy (LuciadLightspeed)
LUCY-3116
The map properties panel in 2D and 3D did no longer changed the visibility of the map toolbar.
This
has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3111
The NITF format now supports the manualScalesEnabled and manualScalesActive properties as well,
like
most other raster formats.
Bug fixLucy (LuciadLightspeed)
LUCY-3114
The enabled state of the drop down menu for the label priority in the layer properties panel was
incorrect. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3112
TLcyDefaultDecodersAddOn: it was not possible to remove the DMED format or the DMED shaded
format,
only to remove them both. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3108
The layer style of multiple raster layers did not contain the snapping information.
Bug fixLuciadLightspeed
LMAP-5350
TLcdEarthGXYRasterPainter: the painted tiles in the tile context were sometimes not correct.
Bug fixLucy (LuciadLightspeed)
LUCY-2625, LUCY-3103
TLcyWMSClientAddOn: the WMS layer properties 'visible' and 'label' were not correctly restored
after opening a workspace.
Bug fixMaritime Standards
A bug in the DEPARE conditional symbology procedure - edges of depth areas which might have
been
marked as unsafe incorrectly - has been fixed.
10.1.18
ImprovementLuciadLightspeed
LMAP-5318
Bounds information (either by implementing ILcdBounds or ILcdBounded) is now
correctly exported to GML by the GML encoder.
ImprovementLuciadLightspeed
LMAP-5338
TLcdGXYEllipsePainter now tries harder to maintain an optimized quality for
axis-aligned ellipses (which is especially visible in printouts).
Bug fixLuciadLightspeed
LMAP-5339
Polymorph links are now correctly exported to GML by the GML encoder.
Bug fixLuciadLightspeed
LMAP-5339
Fixed a bug in TLcdXMLSchemaBasedEncoder that resulted in exceptions being thrown
in case polymorph links are marshalled where the instance classes of the different
types used in these links are the same.
Bug fixLucy (LuciadLightspeed)
LUCY-3101
The layer style of a PIM waypoint layer did not contain the snapping information.
Bug fixLucy (LuciadLightspeed)
LUCY-3104
The layer style of an AIXM layer did not contain the snapping information.
Bug fixLucy (LuciadLightspeed)
LUCY-3102
The layer style of an ARINC layer did not contain the snapping information.
Bug fixDefense Symbology
The rendering of the 'Movement Direction' property by the MIL-STD 2525b and APP-6A unit (icon) painters
was not correct in case of a HQ (Headquarter) symbol and has been fixed. Additionally, the value Double.NaN
is now ignored for this property; the movement direction arrow is only painted when a value that can be
interpreted as degrees is used.
Bug fixInfrastructure Standards
LMAP-4716
The DGN decoder is now also available for Solaris 64-bit platforms, both Intel and Sparc.
For this the DGN decoder was updated to use version 3.4.1 of the ODA library for all platforms.
The new ODA library version does not change any functionality.
Bug fixMaritime Standards
A potential threading issue in the S-52 rendering engine has been fixed.
10.1.17
ImprovementLuciadLightspeed
LMAP-5331
TLcdSLDSymbolizerPainterFactory now has a method to enable or disable the use of geometry
caching by the painters that it
creates. This allows for more memory-efficient painting of data through SLD.
ImprovementLucy (LuciadLightspeed)
LUCY-3097
TLcyWMSClientAddOn: WMS layers can now be copied from a 2D map to a 3D map.
ImprovementDefense Symbology
LMAP-5325
The location of labels for area symbols in case of a centered label position (ILcdMS2525bStyle#CENTER,
ILcdAPP6AStyle#CENTER) did not take into account the label bounds to fully center the label.
Bug fixLuciadLightspeed
LMAP-5322
TLcdMAPModelDecoder and TLcdMIFModelDecoder now output region objects as complex polygons
instead of as individual polygons. Previously, .mif or .map files that contained polygons with
holes would be visualized incorrectly.
Bug fixLucy (LuciadLightspeed)
LUCY-3096
TLcyWMSClientAddOn: when making changes to the model through the layer properties customizer
panel (e.g.
adding/removing a coverage) a model change event is now fired.
Bug fixLucy (LuciadLightspeed)
LUCY-3093
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: some status events were not
translated.
Bug fixAdvanced GIS Engine
LMAP-5321
TLcdCartesianAdvancedBinaryTopology threw a nullpointerexception when using geodesic geometry.
This has been resolved.
10.1.16
ImprovementLuciadLightspeed
TLcdGXYGeoBufferPainter now also supports painting and editing buffers based on
ILcdComplexPolygon shapes.
ImprovementLuciadLightspeed
LMAP-5314
Improved the memory efficiency of the functionality added in LMAP-3779.
ImprovementDatabase Connectors
TLcdDB2SpatialModelDecoder has been made more robust in its parsing of
model references.
Bug fixLuciadLightspeed
When transforming an ILcdCircularArcByCenterPoint to GML, the uom of the angle is now
correctly set to degrees.
Bug fixLuciadLightspeed
LMAP-5313
Data objects containing property values that are instances of LinkedList are now
properly cloned.
Bug fixInfrastructure Standards
LMAP-5316
Styling priorities were inconsistent with MicroStation in some cases: the "Overrides" symbology
was used even if the "view level symbology" flag was off.
Bug fixInfrastructure Standards
LMAP-5317
Methods TLcdDGNModelDecoder.setLevelSelection(long) and TLcdDGNModelDecoder.getLevelSection()
have been deprecated.
10.1.15
Bug fixLucy (LuciadLightspeed)
LUCY-3090
TLcyDAFIFAddOn: the workspace codecs now perform the Swing related operations on the EDT.
Bug fixLucy (LuciadLightspeed)
LUCY-3087
TLcyWMSClientAddOn: some status messages were not translated.
Bug fixLucy (LuciadLightspeed)
LUCY-3081
Fixed threading issue in TEA AddOn that would occur when performing TEA calculations in multiple
threads.
Bug fixDatabase Connectors
LMAP-5311
TLcdOracleGeoRasterModelDescriptor#isElevation() was broken with the
introduction of delayed loading of meta-data. It again returns true for
elevation rasters.
10.1.14
ImprovementLuciadLightspeed
TLcdEarthGXYRasterPainter: added a quality setting to allow trading quality for performance. By
default the quality is only reduced for elevation data as this does not have any noticeable
visual impact.
ImprovementLuciadLightspeed
Evaluating a filter condition is now more robust and does no longer throw exceptions
when comparing a string value with a numeric value.
ImprovementAviation Standards
The 2D boundary computation for aggregated airspaces now only applies subtractions that cover the full
vertical extent of the other parts. This ensures that the 2D visualization will always cover the full outline
of the airspace.
ImprovementMaritime Standards
S-57 attributes with an enumerated type now have a refined data model type; for each
attribute,
there now is a separate enumerated type with all its possible values.
ImprovementMaritime Standards
Exceptions thrown by the TLcdS57ModelDecoder now include the offset in the input stream at
which
the decoding failed in their error message.
Bug fixLucy (LuciadLightspeed)
LUCY-3089
A tileset could be disposed prematurely when it was present in multiple views.
Bug fixLuciadLightspeed
There were some illegal dependencies from sample code on internal XML code.
Bug fixLucy (LuciadLightspeed)
LUCY-3079
Fixed issue in TEA that would cause some GUI related events to be handled on non-EventQueue
threads.
Bug fixLuciadLightspeed
LMAP-5304
TLcdAdvancedMapRulerController's default azimuth format no longer displays the UTF FFFD symbol
for unknown azimuths.
Bug fixLucy (LuciadLightspeed)
LF-92
Implemented performance enhancements for visualizing fused raster layers in Lucy.
Bug fixLuciadLightspeed
LMAP-5301
TLcdGXYCircularArcPainter did not respect the arc's orientation when editing the arc
end point.
Bug fixLucy (LuciadLightspeed)
LUCY-3085
A ClassCastException would occur when using the com.luciad.lucy.gui.TLcyAlwaysFitJToolBar in
combination with the Motif Look and Feel.
Bug fixLuciadLightspeed
LMAP-5300
It was possible that a ConcurrentModificationException is thrown during asynchronous
painting in rare cases.
Bug fixLuciadLightspeed
LMAP-5298
TLcdWMSProxyGXYLayer did not fire a property change event when a label, icon
or painter provider was set.
Bug fixLucy (LuciadLightspeed)
LUCY-3084
TLcyWMSClientAddOn: some values in the customizer dialog were not translated.
Bug fixLuciadLightspeed
LMAP-5295
Using TLcdGXYAsynchronousLabelPlacer caused the view to allocate memory more often than
necessary. This occasionally resulted in small hitches due to garbage collecting.
Bug fixLuciadLightspeed
LMAP-5293
TLcdSHPModelDecoder could throw NegativeArraySizeExceptions when decoding files that contain
empty records. This has now been fixed.
Bug fixLuciadLightspeed
TLcdEarthGLTerrainPainter: changing the altitude exaggeration factor did not work correctly.
Bug fixAdvanced GIS Engine
LMAP-5223
TLcdEllipsoidalBasicBinaryTopology used incorrect tolerances for some combinations of shapes.
This has been resolved.
Bug fixDatabase Connectors
LMAP-5176
Upgraded PostgreSQL JDBC driver to version 9.0 801, to ensure compatibility
with PostgreSQL 9.0.
Bug fixDefense Standards
A bug in the method getUserFeatureAttributeIndex(String) of TLcdVPFFeatureClass was fixed; the method no longer
throws
an IndexOutOfBoundsException when an invalid argument is passed.
Bug fixDefense Symbology
LMAP-5285
The supporting lines to assist with the creation of a Trip Wire symbol in APP-6A (2.X.2.2.1.12)
and MIL-STD 2525b (2.X.3.1.10) were not correctly rendered.
Bug fixMaritime Standards
An issue with the decoding of polygons, causing polygons with inner holes to be closed
incorrectly, has been fixed.
10.1.13
ImprovementLuciadLightspeed
LMAP-5276
ALcdWMSProxy now implements the ILcdCache interface so all caching can be controlled through that interface.
ImprovementLuciadLightspeed
LMAP-5274
TLcdGXYMagnifierController now allows setting a filter to control what layers are included
in the magnified window.
ImprovementLuciadLightspeed
TLcdSHPModelDecoder has been made more robust in its handling of records of which the actual length (as
written in the record headers in the file) does not match the length defined by the
specification of the shape type in question. For instance, a PointZ shape consists of 4 doubles
(X, Y, Z, M) according to the specification, but some SHP files do not include the M value.
Previously, the SHP decoder would read past the end of the record in such cases, resulting in
failures to read subsequent records.
ImprovementLuciadLightspeed
LMAP-5201
TLcdOrthographic now uses the ellipsoid for its calculations.
ImprovementLuciadLightspeed
LMAP-5282
TLcdGeoReference2GeoReference and TLcdDefaultModelXYZWorldTransformation can now transform
between any of the following references :
- ILcdGeodeticReference
- ILcdGeocentricReference
- ILcdGridReference
- ILcdTopocentricReference
- ILcdGeoidReference
Also a few issues were fixed where the z-component of a point or bounds was not transformed
correctly when using references with non-equal datums. Furthermore
TLcdDefaultModelModelTransformation
was added. This implementation of ILcdModelModelTransformation can also transform between
any of the 5 mentioned references.
ImprovementDefense Symbology
LMAP-5283
The symbol hierarchy filter that can be set on a TLcdMS2525bObjectCustomizer and TLcdAPP6AObjectCustomizer
now supports filtering out any node in the symbol tree without the need to specify the higher-up nodes.
Bug fixLuciadLightspeed
LMAP-5185
TLcdTransformedHeightProvider incorrectly transformed the height in cases where a different
horizontal datum was used. Also in some cases the transformation produced incorrect heights
when only one of both references used a geoid.
Bug fixLuciadLightspeed
Improved the GML export for data types whose instance class extends ILcdShape but whose
instances implement
more concrete shape interfaces.
Bug fixLuciadLightspeed
LMAP-5281
TLcdGeodeticDatum now correctly implements clone(). Before it was possible that the cloned
TLcdGeodeticDatum returned different heights than the original one. Also TLcdGeodeticDatum
now implements ILcdCloneable.
Bug fixLucy (LuciadLightspeed)
LUCY-3068
The JPEG2000 decoder/encoder add-on no longer throws NoClassDefFoundErrors
when trying to save a raster file without the JPEG2000 encoder option in the
license file.
Bug fixLuciadLightspeed
LMAP-5273
TLcdMAPModelDecoder and TLcdMIFModelDecoder now properly escape the names of types and
properties when creating a TLcdDataModel. Previously, file or property names with spaces (or
other characters that are invalid according to TLcdDataType) would result in an exception when
decoding the file.
Bug fixLuciadLightspeed
LMAP-5267
Fixed a bug in the Metadata encoder and decoder that resulted in incorrectly encoded
and decoded code list values.
Bug fixLuciadLightspeed
LMAP-5269
Fixed a bug in TLcdXMLSchemaBasedEncoder and TLcdXMLSchemaBasedDecoder that could
result (under certain circumstances) in attributes getting incorrect values in case
of restriction types inheriting attributes from multiple types in its inheritance
hierarchy.
Bug fixLuciadLightspeed
LMAP-5269
TLcdXMLSchemaBasedEncoder now always marshals attributes that are required and
have a fixed value, even if they didn't receive a value in the domain object.
Bug fixLuciadLightspeed
LMAP-4827
GML line string, linear ring and line string segment now apply linear interpolation
also in geodetic models (this used to be geodesic interpolation). This is in
accordance with the GML specification.
Bug fixLuciadLightspeed
Inserting a point in a GML LineString or LineStringSegment that contains an empty
list as posGroup no longer throws an IndexOutOfBoundsException.
Bug fixLuciadLightspeed
TLcdEarthGLTerrainPainter: fixed a minor memory leak in the painter and improved the overall
memory usage.
Bug fixDefense Symbology
LMAP-5272
The rendering for a set of MIL-STD 2525b symbols in the Warfighting / Ground Track / Equipment category
did not use the correct symbol frame in case of affiliation FRIEND; a rectangle was used instead of a circle.
10.1.12
ImprovementLuciadLightspeed
LMAP-5264
TLcdGeodeticPen#setLineType now also accepts TLcdLineType.CARTESIAN, allowing visualizing
lines that are linearly interpolated in the model.
Bug fixLuciadLightspeed
LMAP-5268
TLcdBNGUtil round-trips sometimes produced different strings. This is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3065
TLcyAPP6AAddOn, TLcyMS2525bAddOn: fixed issue with cropped icons for point symbols that are not
centered around the middle of the icon.
Bug fixLucy (LuciadLightspeed)
LUCY-3062
TLcyG4JAddOn: fixed issue with sky textures not appearing after closing a 3D view and creating a
new one.
Bug fixTerrain Analysis Engine
LMAP-5050
TLcdVVTerrainProfileModel sometimes updated itself too late after receiving a model change event.
This could lead to exceptions when drawing the model in a vertical view.
10.1.11
ImprovementLuciadLightspeed
LMAP-5260
Improved documentation regarding the orientation of polygons that were retrieved using the
TLcdContourFinder class.
ImprovementLuciadLightspeed
LMAP-5254
TLcdLabelLocations: the performance of the setPainted method
when the given label was already marked as painted has been improved.
ImprovementDefense Symbology
LMAP-5171
The Emplacement symbol in APP-6A (2.X.2.2.3.4) and MIL-STD 2525b (2.X.3.3.4) can now be rendered with
an echelon indication (automatically) and a label based on the Unique Designation modifier
(automatically, if labels are enabled).
Bug fixLuciadLightspeed
LMAP-5255
Calculating the anchor point using TLcdGXYPointListPainter.INSIDE_POLYGON did not account for
the wrap-around of polygons.
Bug fixDefense Symbology
The methods hasValue(String) and hasValue(TLcdDataProperty) in TLcdEditableAPP6AObject
and TLcdEditableMS2525bObject did not always return a correct result and have been fixed.
10.1.10
ImprovementLuciadLightspeed
LMAP-5191
The path labeling algorithms (TLcdGXYOnPathLabelingAlgorithm and TLcdGXYInPathLabelingAlgorithm)
now avoid unneeded labeling for labels with a dimension of (0, 0).
ImprovementLucy (LuciadLightspeed)
LUCY-3045
The drawing encoder now has an improved algorithm to assign a default SLD style
when exporting data from other formats. Complex polygons and surfaces for instance
are now properly assigned a style with a polygon symbolizer rule.
ImprovementLuciadLightspeed
LMAP-5230
TLcdGeoTIFFModelDecoder now reduces memory usage for unsigned 16-bits
GeoTIFFs, by sharing grayscale color models.
ImprovementLucy (LuciadLightspeed)
LUCY-3032
The default message when going out of memory now distinguishes between 32 and 64 bit systems,
and no longer
recommends 1024MB for 32 bit systems.
ImprovementLuciadLightspeed
Exporting a shape that implements both ILcdCompositeCurve and ILcdRing now results
in a GML Polygon (iso a GML Curve).
ImprovementAviation Standards
LMAP-5232
Improved decoding support for procedures in the latest DAFIFT releases.
Bug fixLuciadLightspeed
LMAP-5244
TLcdEllipsoid.geoc2llhSFCT() produced an incorrect result when transforming (0, 0, 0).
Bug fixLuciadLightspeed
LMAP-5248
TLcdUpsMgrsUtil could produce incorrect MGRS strings for one specific grid square on the
southern hemisphere. Also converting strings from this grid square to a lon lat point
could produce incorrect results.
Bug fixLuciadLightspeed
LMAP-5249
TLcdUpsMgrsUtil could produce points outside the Ups MGRS range. Also for points near the
borders MGRS conversion round-trips did not always produce consistent results.
Bug fixLuciadLightspeed
TLcdEarthGXYViewTileSet: the scale of the off-screen view is now also correct scale when the
tileset has a geodetic reference.
Bug fixLucy (LuciadLightspeed)
LUCY-3046
An IllegalArgumentException occurred when the map radar view actions were added to the menu bar,
and the user switched from a 3D to a 2D Map. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2986
TLcyDrawingAddOn: converting from general shapes to drawing shapes now correctly re-uses the
featured information of the original shape.
Bug fixLuciadLightspeed
LF-89
The Fusion Client's support for GZip content encoding was broken.
Bug fixLuciadLightspeed
LMAP-5160
TLcdGXYGeoBufferPainter: when creating a grid type polyline geobuffer an exception was thrown.
This has been fixed.
Bug fixLuciadLightspeed
LMAP-5223
The correct tolerances are used for intersection computations for any combination of shapes.
Bug fixLucy (LuciadLightspeed)
LUCY-3053
TLcyG4JAddOn: the adjust intersection plane action now checks for non-null bounds of layers
before applying the action.
Bug fixLuciadLightspeed
LMAP-2453
TLcdGXYArcBandPainter#paintEditingLabels now paints the label in a more suitable
location when translating multiple arc bands.
Bug fixLucy (LuciadLightspeed)
LUCY-3047
The size of the layer selector for DWG layers has been set to a more reasonable size.
Bug fixLuciadLightspeed
LMAP-5231
The raster painters now invalidate their caches if the contrast is changed.
Bug fixLuciadLightspeed
LMAP-5228
TLcdLayer now clears the selection when a new model is set.
Bug fixLucy (LuciadLightspeed)
LUCY-3050
TLcyG4JAddOn: the adjust intersection plane button is now disabled when the bounds of the
selected
layer are null. This avoids a NullPointerException being thrown.
Bug fixLuciadLightspeed
LMAP-5213
Fixed NPE in the Earth 3D painters when they released their resources.
Bug fixReal-time Engine
LMAP-5239
TLcdSimulator now always correctly restores the autoUpdate property of the associated views.
Bug fixReal-time Engine
TLcdSimulator : when the simulator model is initialized with a begin date in the past, the
simulator will now reset to the start date of the simulator model instead of the end date.
Bug fixAviation Standards
LMAP-5227
The TLcdAIXM51ModelEncoder and TLcdAIXM5ModelEncoder now respect the format constraints
for extensions of xsd:decimal types imposed by the different patterns in the type
definition in the AIXM schema. Before this fix, values of such types
(ValPCNBaseType, ValFrictionBaseType and CodeRNPBaseType (for AIXM51),
CodeRNPType, NoNumberType, NoSequenceType, ValPCNType and ValFrictionType (for AIXM5))
were just formatted as doubles. Depending on the value, this could result
in schema-invalid documents being generated by the encoder.
Bug fixAviation Standards
LMAP-5233
The canDecodeSource method of the ARINC decoder now only reads a fixed number of bytes from the file.
This avoids reading too many bytes when files without new lines are tested with this method.
Bug fixAviation Standards
An exception could occur when painting detailed labels for navaids or airspaces. This has been fixed.
10.1.09
ImprovementLucy (LuciadLightspeed)
LUCY-3035
TLcyMapEditUnitAddOn: 4 new formats have been added for lon-lat points. It is now possible to
format them in DDMM, DDMM.m, DDMM.mm and DDMM.mmm formats.
ImprovementLucy (LuciadLightspeed)
LUCY-3020
The TLcyGLMapComponentFactory now creates an active settable allowing to switch to full-screen
mode.
ImprovementLucy (LuciadLightspeed)
LUCY-3016
TLcyDrawingAddOn: the customizer panels now accept the input of negative angles.
ImprovementMaritime Standards
LMAP-5099
TLcdS52SymbologyDecoder now provides a flag to configure whether the decoded symbology
should
use anti-aliasing for its icons or not. Enabling anti-aliasing will result in better-looking
icons, but might have a small impact on rendering performance. It is disabled by default.
Bug fixLuciadLightspeed
LMAP-5215
TLcdDatabaseModel#dispose() no longer throws a ClassCastException if its
model descriptor implements ILcdDatabaseModelDescriptor without extending
TLcdDatabaseModelDescriptor.
Bug fixLucy (LuciadLightspeed)
LUCY-3042
In some specific scenarios it was possible the "selectedLayersAsList" beans property of an
ILcyGenericMapComponent changed without firing a corresponding PropertyChangeEvent. This has
been
fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-3041
A ClassCastException was thrown when attempting to open the properties panel for THF layer
tree nodes. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5212
TLcdBufferedTile now also properly sets the default signedness for 16-bits
rasters if the metadata are loaded lazily.
Bug fixLuciadLightspeed
LMAP-3693
TLcdGXYTextLabelPainter: fixed a problem where handles were still visible while the text was not.
Bug fixLuciadLightspeed
LMAP-5202
TLcdGXYRoundedPointListPainter#isTouched did not respect the context sensitivity for the line.
Bug fixLuciadLightspeed
LMAP-5200
TLcdGXYCirclePainter, TLcdGXYEllipsePainter, TLcdGXYArcBandPainter, TLcdGXYArcPainter,
TLcdGXYCircularArcPainter, and TLcdGXYCircleBy3PointsPainter now
display the center point in the same circumstances.
Bug fixLucy (LuciadLightspeed)
LUCY-3030
TLcyEarthOpenGLAddOn: fixed NullPointerException when opening an Earth repository while the
TLcyEarthOpenGLAddOn.mergeEarthRepositories property is set to false.
Bug fixLucy (LuciadLightspeed)
LUCY-3022
TLcyDataFormatManager could threw a NullPointerException when wrapping the ALcyHandlerChooser
Bug fixLucy (LuciadLightspeed)
LUCY-3027
The lon lat point format did not always adjusted the ParsePosition indices correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-2850
TLcyPreviewAddOn: a NullPointerException could occur when decoding a workspace when the previous
workspace
contained an active preview panel.
Bug fixLucy (LuciadLightspeed)
LUCY-3015
TLcyDrawingAddOn: the customizer panel of the circular arc by center point now correctly handles
all angles of the circular arc.
Bug fixLucy (LuciadLightspeed)
LUCY-2641
TLcyDrawingAddOn: the arc customizer panel now shows the correct angles for all arcs.
Bug fixMaritime Standards
TLcdS57ModelDecoder does no longer fail on reading invalid issue dates in ENC cells. Invalid
issue dates are ignored now.
10.1.08
ImprovementLucy (LuciadLightspeed)
The 3d zoom and rotate controllers don't show the location icon anymore when the camera is
linked
to a certain object.
ImprovementAviation Standards
LMAP-5162
The computation of the geometry of aggregated airspaces has been made more robust for surfaces
that use circular arcs.
Bug fixLuciadLightspeed
LMAP-5199
TLcdJPEG2000ModelDecoder and other model decoders that rely on native
libraries now properly handle files on the class path (which was failing on
Windows and if the names contained spaces).
Bug fixLuciadLightspeed
LMAP-5197
TLcdCircularArcByCenterPointConnector did not calculate the correct arc angles
Bug fixLuciadLightspeed
LMAP-5195
TLcdGXYAsynchronousLayerWrapper#getBounds() now properly delegates runtime exceptions
thrown by the wrapped layer's getBounds() method.
Bug fixLuciadLightspeed
LMAP-4302
ALcdGXYPen#cartesianModelDistance did not consider the scale of the references.
Bug fixLucy (LuciadLightspeed)
LUCY-2821
TLcyDrawingAddOn: an extra AdvancedStyleGroup has been added to the groupPriorities of the
drawing toolbar, containing the change font and change point icon actions.
Bug fixLuciadLightspeed
LMAP-4999
TLcdGXYGeoBufferPainter: it was impossible to remove a point from a polyline geobuffer
with 3 points.
Bug fixLuciadLightspeed
LMAP-5170
It was possible to get into an infinite loop when transforming bounds from a geodetic
reference to a grid reference using a TLcdPolyconic projection.
Bug fixLuciadLightspeed
LMAP-5164
TLcdGXYHaloLabelPainter2 did not correctly cache images when used with multiple labels and/or
sub-labels.
10.1.07
ImprovementLucy (LuciadLightspeed)
LUCY-3023
TLcyMain: now allows to open file names specified as command line arguments, please refer to
TLcyMain#main for more information.
ImprovementLucy (LuciadLightspeed)
LUCY-2978
TLcyGLMapAddOn: the 3D map now automatically repositions the location of the light to the
current camera location. It can be disabled with the Map|Edit Light menu item.
ImprovementLucy (LuciadLightspeed)
The default value of 'TLcyMapOverviewAddOn.mainGXYView.scaleRange.max' in
'resources/lucy/map/mapoverview_addon.cfg' now better matches with the default background data.
As a result, the map overview doesn't zoom in as much, providing a better overview.
ImprovementLucy (LuciadLightspeed)
It is now possible to edit the properties of multiple raster layers(of the same format) at the
same time. Select multiple layers of the same format in the layer control and press the
properties
button to open a customizer panel that will edit the properties of all selected layers at the
same time.
Bug fixLuciadLightspeed
LMAP-5159
TLcdGXYArcPainter could display stray lines when used with degenerate arcs.
Bug fixLuciadLightspeed
LF-87
Modifications to the Tile Store were not always correctly protected against system crashes and power outages.
Bug fixLuciadLightspeed
LMAP-5166
Fixed issue with certain temporary files created by the KML module that were not deleted correctly.
Bug fixLuciadLightspeed
Certain filter objects containing XPath expressions were encoded incorrectly such that
the namespaceURI and the namespace prefix was swapped. This only occurred when encoding
using the Xerces XMLOutputFactory.
Bug fixLuciadLightspeed
LMAP-2028
TLcdFeatureIndexedAnd2DBoundsIndexedModel: when a model listener removed itself as
a listener from the model the next listener was skipped.
Bug fixLuciadLightspeed
LMAP-4899
Fixed the model descriptor of MTM models such that it returns correct data models
and model element types depending on the default level and cumulative property.
Bug fixLuciadLightspeed
LMAP-5158
TLcdGXYPointListPainter: snapping was not immediately visualized (regression due to LMAP-4994).
Bug fixLuciadLightspeed
LMAP-5152
TLcdGXYViewPlanarImage, TLcdGXYViewBufferedImage, TLcdGXYViewCanvas and TLcdGXYViewPanel did not
throw a property change event when changing the background.
Bug fixLuciadLightspeed
LMAP-5151
When calling setSelectable(false) on an asynchronous layer wrapper, the existing selection
was not automatically cleared.
Bug fixLuciadLightspeed
TLcdGXYPointListPainter could throw exceptions when used with point lists that were not
entirely visible in the projection.
Bug fixLucy (LuciadLightspeed)
LUCY-3011
The 3D painting support in the DWG addon now supports the same coloring and shapes as the
2D view.
Bug fixLucy (LuciadLightspeed)
LUCY-2339
The layers created by the fall-back layer factory of the TLcyEarthOpenGLAddOn no longer allow
to set labeled to true through the layer customizer panel. The labeled option was already
disabled
in the other parts of the UI.
Bug fixLucy (LuciadLightspeed)
LUCY-2338
TLcyGLMapAddOn: the altitude exaggeration spinner no longer grows when typing in values with
many
decimals. The minimal number of fraction digits is set to zero as well.
Bug fixLuciadLightspeed
LMAP-5147
TLcdGeoReference2GeoReference could produce incorrect transformed bounds when transforming
from a TLcdGeodeticReference to an other TLcdGeodeticReference.
Bug fixLuciadLightspeed
ALcdGXYPen: in some cases, long straight lines were not painted.
Bug fixLucy (LuciadLightspeed)
LUCY-2813, LUCY-2736, LUCY-2731
Dockable front-end: saving a workspace containing a tabbed pane with as active pane an
ILcyApplicationPane for which no workspace support
exists could lead to a workspace with grey areas. A workaround for this case has been added to
the
DockableWorkspaceCodecDelegate.
Bug fixInfrastructure Standards
LMAP-5165
TLcdDGNLevelSymbology now also exposes the level number next to the level ID and level name.
It is accessible through getLevelNumber().
Bug fixInfrastructure Standards
LMAP-5157
Filtering levels larger than 65 on a V8 file worked on level IDs instead of level numbers.
Bug fixInfrastructure Standards
LMAP-5156
Filtering mslink attributes on database linkage type (user attribute types) was wrong in some cases.
10.1.06
ImprovementLucy (LuciadLightspeed)
All standard available raster formats in lucy now offer functionality to show the raster based
on the map scale of the view (typically used when the scaleAtCenterOfMap properties are false,
see the relevant release note below). This behaviour is disabled by default. When the property
[raster_format].manualScalesEnabled (CADRGFormat.manualScalesEnabled in 'default_decoders.cfg'
for
instance) is set to true, the paint style layer customizer for that format will be adapted.
Instead
of the textfields 'Start resolution factor' and 'Stop resolution factor' a 'Raster scale ranges'
panel will be included, with a automatic and manual behaviour. The automatic behaviour shows
a raster as an outline when too many raster pixels must be retrieved per screen pixel. The
manual
behaviour allows you to specify at what scale (when zooming out) a raster should be replaced
by its outline, and at what scale (when zooming in) a raster shouldn't be painted anymore.
Note that this behaviour only applies when Force painting is disabled. By default the automatic
behaviours is active for new layers. Setting the property [raster_format].manualScalesActive to
true,
activates the manual behaviour for new layers.
Some formats, especially CADRG, also allow you to differentiate between rasters in the same
layer
that should be shown at different scales. You can for instance specify different but consecutive
scale ranges for CADRG rasters scanned from 1:5M maps and from 1:2M maps. When more then one
type
of raster is available, you can also choose to lock on a certain type, ignoring all others.
ImprovementLucy (LuciadLightspeed)
When the property DMEDFormat.modelDecoder.checkTilesImmediately (see 'default_decoders.cfg') is
true, decoded multilevel dmed rasters will now only include a dmed level if the dmed tile is
available and not empty. Previously only missing are empty dt0, dt1 or dt2 files where excluded.
ImprovementLucy (LuciadLightspeed)
The DMEDFormat (see 'default_decoders.cfg') can be customized by a additional config property:
DMEDFormat.modelDecoder.includeDMEDLevel. This property is true by default. When false the DMED
thumbnail will not be added to a DMED multilevel raster. If for instance dt0, dt1 and dt2 levels
are available, you will get a multilevel raster with four levels (dmed, dt0, dt1, dt2) when the
property is true, and a multilevel raster with three levels (dt0, dt1, dt2) when the
property is false.
ImprovementAviation Standards
LMAP-5145
The DAFIFT decoder will no longer log a warning when a model has no bounds. Only when errors occurred during
decoding of that model, a warning will be logged. Models can have no bounds if you for instance decode NDB navaids
for a region that has no NDB navaids.
ImprovementDefense Symbology
LMAP-5141
The label bounds for the aviation line symbol Standard-Use Army Aircraft Flight Route (SAAFR) in APP-6A
(2.X.2.1.2.2.3)
and MIL-STD 2525b (2.X.2.2.2.3) is now calculated more accurate, to optimally support label decluttering.
ImprovementDefense Symbology
LMAP-5140
The character limit for the altitude/depth text modifier has been increased from 6 to 12 characters,
to allow configuring both a minimum and maximum altitude/depth value - this is for example
used for symbols such as the Standard-Use Army Aircraft Flight Route (SAAFR) symbol.
ImprovementDefense Symbology
The Date/Time field in the APP-6A and MIL-STD 2525b customizer no longer shows the preview value,
to avoid confusion about the actual object's properties.
Bug fixLuciadLightspeed
LMAP-5143
The license servers on Linux and Solaris now ignore spurious ^M characters
in license files, caused by some unzipping tools.
Bug fixLucy (LuciadLightspeed)
LUCY-2713
TLcyDrawingAddOn: importing a SHP model as drawing model would throw an exception when the SHP
model
contained TLcdSHPMultiPointZ instances. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5135
ILcdGXYPen's append*LineTo implementations did not append the first point of the line
when applied to a path with a polygon break.
This caused TLcdGXYRoundedPointListPainter to incorrectly render complex polygons.
Bug fixLucy (LuciadLightspeed)
LUCY-2998
TLcyDrawingAddOn: the drawing add-on did not correctly converted drawing files to SHP files when
the drawing file contained complex polygons.
Bug fixLucy (LuciadLightspeed)
LUCY-2389
TLcyEarthOpenGLAddOn: style changes to the layers created by the fallback GL layer factory did
not
always trigger a change event. The sync style sample was affected by this issue.
Bug fixLuciadLightspeed
LMAP-5122
TLcdSphereRhumblineUtil.intersectionGeodesicRhumblineSFCT() did not always produce an
intersection point when the geodesic line segment is completely located on a pole, reducing
it to a point.
Bug fixAdvanced Raster Connectors
LMAP-5120
TLcdDIMAPModelDecoder no longer prints out some debug messages to System.out.
Bug fixDefense Symbology
LMAP-5146
The plus-minus sign, used to represent the Reinforced/Reduced value for the Reinforcement text modifier,
was not correctly encoded, resulting in an invalid character in the corresponding label.
Bug fixDefense Symbology
LMAP-5139
The APP-6A and MIL-STD 2525b customizer did not properly show the content of the Reinforcement
and Evaluation Rating combo boxes when in disabled state.
Bug fixInfrastructure Standards
LMAP-5133
Sometimes only one attribute of a tagset was loaded, even if the tagset contained more than one.
Bug fixMaritime Standards
A memory leak in TLcdS52GXYCatalogueLayer has been fixed.
Bug fixMaritime Standards
LMAP-5136
As of 10.1, the textual information of lights objects was no longer rendered when labeling
was
enabled. This has been fixed.
10.1.05
ImprovementLucy (LuciadLightspeed)
LUCY-2996
When loading an a.toc file, users no longer need to choose between dafif and cadrg. Cadrg is
used. When loading files that the cadrg decoder can handle (and thus also the nitf decoder), the
user no longer needs to choose between those two, cadrg is used by default.
ImprovementLuciadLightspeed
LMAP-5119
TLcdGXYOnPathLabelingAlgorithm: improved label positioning on path corners, and path start and
end points.
ImprovementLuciadLightspeed
LMAP-5117
TLcdGXYLocationListLabelingAlgorithm, TLcdGXYOnPathLabelingAlgorithm and
TLcdGXYInPathLabelingAlgorithm
now log a warning message when they are used in combination with a label painter that does not
implement ILcdGXYLabelPainter2.
ImprovementLuciadLightspeed
LMAP-5118
TLcdGXYOnPathLabelingAlgorithm now has an ABOVE and BELOW AlignmentMode.
ImprovementLuciadLightspeed
The performance of computations with geoid vertical datums has been
improved significantly.
ImprovementLuciadLightspeed
LMAP-5113
TLcdDMEDModelDecoder provides a new property includeDMEDLevel to specify
whether the DMED thumbnail rasters should be included in the decoded
multilevel rasters. The decoder now also removes blank DMED rasters if
checkTilesImmediately is set.
ImprovementLuciadLightspeed
LMAP-5083
TLcdGXYPointListPainter.setAnchorPointLocation() can now be called with the 'INSIDE_POLYGON'
constant. When using this option, the painter will try to find an anchor point location
inside the polygon. The same option was added to TLcdGXYSurfacePainter.
TLcdGXYSurfacePainter.setAnchorPointLocation() can now be called with 'INSIDE_SURFACE'
constant.
ImprovementLuciadLightspeed
LMAP-5107
TLcdSLDGXYPainterFactory and TLcdSLDSymbolizerPainterFactory are now cloneable.
ImprovementLuciadLightspeed
Constructive geometry operations preserve the shape of the inputs better.
ImprovementLucy (LuciadLightspeed)
LUCY-2952
TLcySLDDomainObject does not support null features. The documentation has been updated to
mention this
more clearly.
ImprovementLuciadLightspeed
LMAP-5098
Improved the javadoc for property accessors (getters and setters) on the domain
model objects.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: exporting a SHP file to a drawing file now supports all shapes.
ImprovementLucy (LuciadLightspeed)
LUCY-911
The way scales are computed has been made configurable for the scale icon and scale combobox in
2d maps, and for the area of interest customizer. The following configuration properties have
been added: "TLcyMapAddon.scaleIcon.scaleAtCenterOfMap" and
"TLcyMapAddon.scales.scaleAtCenterOfMap"
in the file 'map_addon.cfg', and "TLcyGotoAreaOfInterestAddOn.scaleAtCenterOfMap" in the file
'goto_area_addon.cfg'. The default values for all these properties are true, which means the
default
behaviour remains unchanged. However, by putting one or more of these properties to false, the
scale for the corresponding component will be calculated based on a fixed point (the center of
the
current view projection), instead of on the point at the center of the map. This provides only a
rough estimate of the scale at other points, especially points far away from the center, but can
be useful when working with systems/protocols that also use a fixed scale definition
(for instance OGC WMS).
ImprovementLuciadLightspeed
LMAP-5079
The geodesicArea() and orientation2D() calculations in TLcdSphereUtil, TLcdEllipsoidUtil
and TLcdEllipsoid are now numerically more stable. Calculating the area or orientation for
small polygons (smaller than 100m²) gives better and consistent results now.
ImprovementTerrain Analysis Engine
LMAP-5060
Added warnings in TLcdLOSCoverageFactory for the case when results are wanted in
altitude mode ABOVE_GEOID, where the target geo reference does not include information
about the geoid itself.
ImprovementAviation Standards
LMAP-5098
Improved the javadoc for property accessors (getters and setters) on the domain
model objects.
Bug fixLuciadLightspeed
LMAP-5125
TLcdGXYInPathLabelingAlgorithm would sometimes place a label at (0, 0) if no valid location
could be found, instead of omitting the label.
Bug fixLucy (LuciadLightspeed)
LUCY-2984
TLcyDrawingAddOn: paint artifacts could appear when simultaneously editing shapes while zooming.
Bug fixLucy (LuciadLightspeed)
LUCY-2759
ALcyPreferencesAddOn: clarified the logging output when included configuration files could not
be found.
Bug fixLuciadLightspeed
LMAP-5121
Since LuciadMap 10.1, TLcdEPSGReferenceParser did not create TLcdUTMGrid instances anymore, but
the equivalent TLcdGridReference instances. This is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2820
TLcyDrawingAddOn: the "Make perpendicular action" no longer accepts point lists, but only
polylines.
Bug fixLucy (LuciadLightspeed)
LUCY-2907
TLcyDrawingAddOn: stack traces of a TLcdOutOfBoundsException could be logged when moving a shape
over
the 180 degree meridian with a EPSG:3395 projection. The stack trace is no longer be printed
since this
is the expected behaviour. The customizer panel has been updated to show "Unknown" distances in
such case
instead of 0 distances.
Bug fixLucy (LuciadLightspeed)
LUCY-2993
The internationalization of the tile of the Ruler application pane has been corrected. It is now
possible
to change/move/remove the map name as well. The corresponding entry in the DefaultResources file
has been changed
from
Ruler\ (
to
Ruler\ ({0})
Bug fixLucy (LuciadLightspeed)
LUCY-2892
TLcyDrawingAddOn: the shape suppliers for (rhumb)polyline and (rhumb)polygons have been adjusted
to avoid
conversion from one shape to another. For example copying a rhumbpolyline from one drawing layer
to another
could result in a geodesic polyline.
Bug fixLuciadLightspeed
LMAP-5116
ALcd2DEditableBounds#setTo2DIntersection no longer shrinks the bounds to
size 0x0 if the input bounds only overlap at their edges.
Bug fixLucy (LuciadLightspeed)
LUCY-2991
In some cases, using label priorities could cause an IllegalArgumentException or a
NullPointerException to be thrown.
Bug fixLuciadLightspeed
LMAP-5114
TLcdGXYInPathLabelingAlgorithm sometimes did not place a label when zoomed out a lot.
Bug fixLucy (LuciadLightspeed)
LUCY-2944
Copying a layer tree node from one map to another could result in a node with the wrong style
and/or
the wrong child layers. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4994
TLcdGXYPointListPainter: translating complex polygons could sometimes trigger an exception.
The fix also improves the performance when translating complex polygons with many sub-polygons.
Bug fixLuciadLightspeed
LMAP-5110
TLcdSphereUtil.closestPointOnGeodesic() could return points that do not lie on the geodesic.
Bug fixLuciadLightspeed
LMAP-5057
GML models created by a TLcdGMLModelDecoder (including the version specific model decoders)
are thread-safe for concurrent reading.
Bug fixLucy (LuciadLightspeed)
LUCY-2459, LUCY-2941
The Edit | Map properties panel no longer contains the checkbox to change the visibility of the
status
bar, since this interfered with the autoHide property of the status bar. The default behavior is
now
to show the status bar when it contains components, and hide it otherwise.
Bug fixLucy (LuciadLightspeed)
LUCY-2567
The enabled state of the delete-action in the pop-up menu is now updated when changing the
editable
and/or editable supported property of a layer in the view.
Bug fixLuciadLightspeed
LMAP-4005, LMAP-5034, LMAP-4778
Fixed a number of issues when creating an TLcdImageIcon using an Image.
Bug fixLuciadLightspeed
LMAP-5101
When using TLcdSphereRhumblineUtil.intersectionGeodesicRhumblineSFCT(), the intersection
of a geodesic with polar end and a parallel could yield an intersection interval instead
of an intersection point.
Bug fixLuciadLightspeed
LMAP-5100
TLcdEllipsoidUtil.intersection2DLineSegments() now gives more correct results when the
line segments touch each other in one of the poles.
Bug fixLucy (LuciadLightspeed)
LUCY-2641
TLcyDrawingAddOn: the arc band customizer panel now shows the correct angles for all arc bands.
Bug fixLucy (LuciadLightspeed)
LUCY-2688
TLcyDrawingAddOn: an ArrayIndexOutOfBoundsException could occur when saving a SHP layer as
drawing layer,
modifying the drawing layer and re-saving it as SHP layer. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5095
TLcdSphereUtil.intersection2DLineSegments() is now more consistent when the intersection
point lies very close to one of the points of one of the geodetic line segments. In that
case the intersection point is snapped to that point.
Bug fixLucy (LuciadLightspeed)
LUCY-2743
A NullPointerException could occur when closing Lucy when multiple maps were active, depending
on the
order of the add-on entries in the addons.xml file. This has been fixed.
Bug fixLuciadLightspeed
LMAP-5096
Warping raster painters no longer temporarily change the default value of
some types of rasters they paint, to avoid problems with the rasters in
different threads.
Bug fixLucy (LuciadLightspeed)
LUCY-2979
TLcyDrawingAddOn: importing files (e.g. a MIF file) could loose feature information. This has
been fixed.
Bug fixLuciadLightspeed
LMAP-5091
The definitions for the Bessel 1841 ellipsoid in TLcdJPLEllipsoidFactory and
TLcdDMA1987bEllipsoidFactory were not consistent.
Bug fixLucy (LuciadLightspeed)
The POL 3d layer factory didn't take the elevation unit of the POL geometry into account. This
has
been fixed.
Bug fixLuciadLightspeed
LMAP-5090
Licenses based on MAC addresses should now also work on Windows if the
network is disconnected.
Bug fixLucy (LuciadLightspeed)
LUCY-2980
Lucy can now read workspace files that have been modified with a generic text editor, which
might have changed the line endings.
Bug fixLuciadLightspeed
LMAP-5042
Fixed the interpretation of start and end angle for ArcByCenterPoint in case of inverse
lon-lat coordinate systems.
Bug fixAviation Standards
Fixes the exceptions that were thrown by the
TLcdAIXM51MarkingBuoyTimeSlice#designator, TLcdAIXM51FASDataBlock#codeICAO,
TLcdAIXM51FASDataBlock#referencePathIdentifier and TLcdAIXM51FASDataBlock#routeIndicator,
TLcdAIXM5Association#remoteSchema properties accessors.
Bug fixDefense Standards
LMAP-5103
TLcdUSRPModelDecoder now accepts the 01.GER extension of the optional
georeference file (which always specifies the WGS84 geodetic datum).
Upgrade considerationLuciadLightspeed
LMAP-5094
The getters for properties of type gco:Date_PropertyType were incorrectly defined to have
return type String. This has been changed to java.xml.datatype.XMLGregorianCalendar. For
the same reason, the type of the value parameter of the according setters was corrected to
java.xml.datatype.XMLGregorianCalendar (also used to be String). The affected properties are
TLcdISO19115Citation.editionDate, TLcdISO19115Date.date,
TLcdISO19115MaintenanceInformation.dateOfNextUpdate and TLcdISO19115Metadata.dateStamp.
10.1.04
ImprovementLucy (LuciadLightspeed)
Drawing support for the POL format (Polygon files produced by the TAAM application of the
Preston
Group PTY Ltd) has been added in Lucy. By default the action to create a new POL layer is not
included in the new layer button on the 2d map toolbar. To enable this, set the property
"TLcyPOLDecoderAddOn.POLFormat.insertNewLayerAction" in "poldecoderaddon.cfg to true.
ImprovementLuciadLightspeed
TLcdEllipsoidUtil.geodesicArea() and TLcdEllipsoidUtil.orientation2D() were added.
ImprovementAviation Standards
The AIXM 5.0 and 5.1 XPath label painters now correctly use the default time slice provider to retrieve a time slice
from the feature. This time slice is now used as the object on which the expressions are evaluated. This is
consistent with all other painters.
ImprovementDefense Standards
The library name has been removed from the VPF data model name, as it is not relevant for the identification of
the data model (different libraries might share the same data model). The VPF product type is now always included
in the data model name using uppercase style, to ensure that databases using different case will still share the
same data model.
Bug fixLuciadLightspeed
LMAP-5066
TLcdEllipsoidUtil#orientation2D() did not always produce correct results for polygons
spanning a large latitude range in some rare cases.
Bug fixLuciadLightspeed
LMAP-5077
When using TLcdGXYLabelPainter, multi-line labels were painted on an incorrect location
during editing when the label was placed at the EAST or WEST location.
Bug fixLuciadLightspeed
LMAP-5075
The orientation of polygons could be incorrect in cases where the polygon contains the same
point more than once.
Bug fixLuciadLightspeed
TLcdEarthGLLabelPainter invoked its delegate label painter with an
ILcdGLContext which incorrectly suggested that labeling was disabled. This
has been corrected.
Bug fixLuciadLightspeed
LMAP-5081
TLcdGXYBufferPainter did not correctly paint buffers when the OUTLINED_OPEN or the
OUTLINED_FILLED_OPEN modes were used.
Bug fixLuciadLightspeed
LMAP-5051, LMAP-5109
TLcdSphereUtil.intersects2DLineSegments() and tLcdSphereUtil.intersection2DLSSFCT() produced
incorrect results in some cases. This is now fixed. This fix also improves the performance of
these methods.
Bug fixLuciadLightspeed
LMAP-5071
The intersection of geodesic and rhumbline could sometimes yield incorrect results when using
TLcdSphereRhumblineUtil.
10.1.03
ImprovementLuciadLightspeed
LMAP-5061
TLcdSphereUtil.geodesicArea() and TLcdSphereUtil.orientation2D() can now also handle
degenerate polygons, for example self-intersecting polygons.
ImprovementLuciadLightspeed
LMAP-5049
Improved painting speed of MultiGeometry elements in 3D. The speed improvement depends on the data, but generally
the more geometries were contained inside the MultiGeometry, the greater the performance boost.
ImprovementLuciadLightspeed
LMAP-4867
TLcdUTMUtil was added. This utility class can be used to format and parse lon lat points
to/from a UTM String.
ImprovementLuciadLightspeed
LMAP-5026
The performance of TLcdUtmMgrsUtil has been improved for most input Strings.
ImprovementLucy (LuciadLightspeed)
LUCY-2951
Made the object properties panel start counting from 1 instead of 0 for property names
that are part of a list.
ImprovementLucy (LuciadLightspeed)
LUCY-2955
TLcyDefaultDecodersAddOn: the CADRG format now allows to create multi level rasters (see the
configuration
file). This is disabled by default to remain backwards compatible. Note that when switching from
single to multilevel will allow to load workspaces containing single level
CADRG files, but the style of the layer will not be restored from the workspace.
ImprovementLucy (LuciadLightspeed)
LUCY-2976
TLcyPrintAddOn: the print add-on now allows to trigger the quick print action through the API.
See
TLcyPrintAddOn#performQuickPrint .
ImprovementLucy (LuciadLightspeed)
TLcyVPFDecoderAddOn: the feature value for null values is now null instead of a special value.
E.g.
-32768 is a special value indicating a short property has value null. Now the corresponding
feature value
is null as well.
ImprovementLucy (LuciadLightspeed)
LUCY-2838
TLcyDataFormatManager: in the handleDataSource method, the ALcyMapComponentChooser is no longer
triggered
for data sources which point to a non-existing file, or to a file for which no ILcdModel could
be created.
ImprovementGraph and Routing Engine
TLcdGDFModelEncoder and TLcdGDFMultiLevelTiledModelEncoder now allow configuring an
ILcdOutputStreamFactory.
ImprovementDefense Standards
LMAP-3821
com.luciad.format.vpf.TLcdVPFModelDecoder now offers a flag setUseNullValues, which allows to configure the behavior
of ILcdFeatured in the case of null values. If the flag is set, null values will be represented by a null object,
otherwise, they will be represented by the special value assigned to them by the VPF specification. It is turned
off by default, for backwards compatibility.
ImprovementMaritime Standards
LMAP-4825
Changes of the S-52 C-S Maintenance document Number 7, October 2009, have been applied on
the
S-52 symbology implementation.
ImprovementMaritime Standards
TLcdS52GXYCatalogueLayer no longer depends on the JTS library. Only the deprecate
TLcdS52GXYCatalogueLayerList still uses the JTS library.
Bug fixLuciadLightspeed
TLcdEarthModelDescriptor: fixed NPE when the source name is null.
Bug fixLuciadLightspeed
LMAP-5052
When using TLcdSphereRhumblineUtil.intersectionGeodesicRhumblineSFCT(), the intersection of
a parallel and a geodesic touching this parallel sometimes returned empty results.
Bug fixLuciadLightspeed
LMAP-5055
TLcdGXYMagnifierController did not show the correct magnified region for one repaint after
enabling the controller.
Bug fixLuciadLightspeed
LMAP-5037
The height of the bounds of a TLcdLonLatHeightPolyline were sometimes twice too large.
Bug fixLuciadLightspeed
LMAP-5032
TLcdUtmMgrsUtil.utmMgrs2LonLat() could throw a ParseException when passing Strings without
a numerical location, for example "4QFJ". This is now solved.
Bug fixLucy (LuciadLightspeed)
LUCY-2959
Creating and immediately closing an ILcyApplicationPane could sometimes cause a
NullPointerException. The fix was applied to Lucy out-of-the-box and to the sample class
DockableFrameMinimumSizeListener.
Bug fixLuciadLightspeed
LMAP-5012
TLcdGXYRasterPainter and TLcdMultilevelRasterPainter: image caching in the rasters was broken
for warped rasters because of the fix for LMAP-3561.
Bug fixLuciadLightspeed
Fixed potential memory leak in document and image providers that would occur for partially
loaded files that are removed from the view.
Bug fixLucy (LuciadLightspeed)
LUCY-2543
TLcyGLMapComponentFactory: a NullPointerException could occur when overriding the createMenuBar
method
to return null. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2529
TLcyGLMapComponent: a NullPointerException could occur when opening a new 3D map and immediately
close
it again. This has been fixed.
Bug fixAviation Standards
LMAP-5063
The ARINC procedure decoder no longer applied the proper filtering to the procedure trajectories. This
regression was introduced in LuciadMap 10.1. The previous behaviour has now been restored.
Bug fixAviation Standards
LMAP-5062
Extensions of ARINC handlers such as TLcdARINCEnrouteAirwayHandler caused compilation issues about a missing
implementation for a package visible abstract method. These issues should no longer occur.
Bug fixDefense Standards
LMAP-5059
Area features no longer contain empty polygons (polygons with zero points), which were an artifact from 'floating
edge' inner rings.
Bug fixDefense Standards
LMAP-5058
The VPF model decoder now automatically detects inner rings which are defined as part of an outer ring. These rings
are now properly decoded as separate polygons, and the auxiliary edges for jumping from outer to inner rings are no
longer present in the model.
Bug fixDefense Standards
LMAP-3821
VPF special attribute values which should be interpreted as being null, are now represented in the ILcdDataObject
view by a null value, instead of the special value (e.g. for Strings, 'N/A' will now become null, for short
integers, -32768 will now become null, ...).
Bug fixDefense Symbology
LMAP-4710
The displayed location of headquarter units is now based upon the free end of the headquarters line
as specified in the APP-6A and MIL-STD 2525b specification, instead of on the center of the unit.
Bug fixMaritime Standards
LMAP-4869
The S-52 rendering engine now paints each S-57 edge only once, as required by the S-52
specification. If an edge occurs in multiple objects, it is only painted once, using the
linestyle of the object with the highest display priority. This feature requires the use of
either a TLcdS52GXYCatalogueLayer (for ENCE catalogues), or a TLcdS52GXYLayer (for
individual
ENC cells).
Bug fixMaritime Standards
LMAP-5001
The ECDIS domain objects now take wrap-around effects into account. This solves rendering
issues
(disappearing data) that may arise with some projections.
10.1.02
Bug fixLuciadLightspeed
LMAP-5029
An empty OGC literal is now decoded as an empty string (was an empty list).
Bug fixLuciadLightspeed
LMAP-5004
TLcdUtmMgrsUtil round-trip sometimes produces different strings. This is now improved. Also
UTM zones are now defined slightly different. They now always include their left border and
exclude their right border.
Bug fixLuciadLightspeed
Properties of type java.sql.Date and java.sql.Time are now exported to GML as
proper xsd:date and xsd:time values. Before this fix, they were exported
with a time and date component yielding schema-invalid documents.
Bug fixLuciadLightspeed
LMAP-5015
TLcdModelReferenceEncoder#save() could throw an IllegalArgumentException when the meta data
of the model reference contains a null authority code.
Bug fixLucy (LuciadLightspeed)
LUCY-2956
TLcyEarthOpenGLAddOn: Exception when visualizing some Earth repositories in a 3D view.
Bug fixAdvanced Raster Connectors
LMAP-5027
The model decoder again accepts "file:" URLs (for instance, coming from drag&drop in Linux).
Bug fixAdvanced Raster Connectors
LMAP-5027
The model decoder again accepts "file:" URLs (for instance, coming from drag&drop in Linux).
Bug fixDefense Standards
LMAP-4992
Date attributes (represented by java Data objects) are now linked to the com.luciad.datamodel.TLcdCoreDataTypes.DATE
data type instead of the com.luciad.datamodel.TLcdCoreDataTypes.CALENDAR data type.
Bug fixDefense Symbology
LMAP-4996
The representation of the following MIL-STD 2525b symbols was not correct and has been fixed:
- Short Range Transporter Launcher and Radar (TLAR), S*G*EWMASR*****, 1.X.3.2.1.1.1.1.1
- Short Range Transporter Erector Launcher and Radar (ETLAR), S*G*EWMASE*****, 1.X.3.2.1.1.1.1.2
- Intermediate Range Transporter Launcher and Radar (TLAR), S*G*EWMAIR*****, 1.X.3.2.1.1.1.2.1
- Intermediate Range Transporter Erector Launcher and Radar (ETLAR), S*G*EWMAIE*****, 1.X.3.2.1.1.1.2.2
- Long Range Transporter Launcher and Radar (TLAR), S*G*EWMALR*****, 1.X.3.2.1.1.1.3.1
- Long Range Transporter Erector Launcher and Radar (ETLAR), S*G*EWMALE*****, 1.X.3.2.1.1.1.3.2
- Theater Transporter Launcher and Radar (TLAR), S*G*EWMATR*****, 1.X.3.2.1.1.1.4.1
- Theater Transporter Erector Launcher and Radar (ETLAR), S*G*EWMATE*****, 1.X.3.2.1.1.1.4.2
- Armored Dozer, S*G*EVEDA-*****, 1.X.3.2.2.3.6.1
- Armored Assault, S*G*EVES--*****, 1.X.3.2.2.3.7
- Armored Engineer Recon Vehicle (AERV), S*G*EVER--*****, 1.X.3.2.2.3.8
- Backhoe, S*G*EVEH--*****, 1.X.3.2.2.3.9
- Ferry Transporter, S*G*EVEF--*****, 1.X.3.2.2.3.10
- Landing Ship Medium, S*S*CALSM-*****, 1.X.4.1.2.2.1
- Landing Ship Tank, S*S*CALST-*****, 1.X.4.1.2.2.2
Bug fixMaritime Standards
LMAP-4792
Accessing the source and display name of S-57 models on the model descriptor no longer
triggers
the loading of the full ENC cell data.
10.1.01
ImprovementLuciadLightspeed
TLcdGXYAsynchronousLabelPlacer: improved the consistency of labeling results while panning and
zooming the view.
ImprovementLuciadLightspeed
LMAP-4633
The bounds calculations of TLcdLonLatPolyline and TLcdLonLatPolygon have been
improved considerably to at least a 1-meter accuracy.
ImprovementLuciadLightspeed
LMAP-4642
The ILcdGeoBuffer implementations now also support ILcdPoint, ILcdPolygon, and
ILcdComplexPolygon
as base shape. The geobuffer painter/editor has also been updated to support buffers based on
ILcdPoint and ILcdPolygon shapes.
ImprovementLuciadLightspeed
LMAP-4958
TLcdGXYOnPathLabelingAlgorithm and TLcdGXYInPathLabelingAlgorithm now give precedence
to (clipped) paths with the largest length.
ImprovementLucy (LuciadLightspeed)
LUCY-2867
Some support for tooltips has been added to the on map navigation controls functionality.
The text of the tooltips can be specified in the 'map_addon.cfg' and the 'TLcyMapAddon.cfg'
files.
The properties in question int 'map_addon.cfg' are compassDescription, compassRingDescription,
compassUpArrowDescription and zoomDescription (with prefix navigationControls). The first three
provide
tooltips for the compass component and some specific active regions it contains. The last one
provides
a tooltip for the zoom component. The same properties are available in 'TLcyGLMapAddon.cfg', and
additionally the property panDescription provides a tooltip for the pan component.
ImprovementLuciadLightspeed
The ALcdCompassNavigationControl now allows specifying separate tooltips for the upper arrow
and the rotation ring. Also the TLcdGXYNavigationControlsFactory has a new factory method
allowing
you to specify the tooltips to be used by its subcomponents.
ImprovementLuciadLightspeed
LMAP-4821
TLcdOverlayLayout now clamps all components to be within the available space
of the parent, instead of always using the preferred size of the children.
ImprovementLuciadLightspeed
LMAP-4808
TLcdEarthGLShapeTileSet:
- The outline and fill coverages of the tile set no also support ILcdCurve, ILcdRing
and ILcdSurface objects.
- The tile set now also supports point objects through a new coverage.
- The documentation on the supported object types was improved.
ImprovementLuciadLightspeed
LMAP-4863
samples.gxy.decoder.mtm now also the new labeling algorithms: TLcdGXYOnPathLabelingAlgorithm
to label polylines and TLcdGXYInPathLabelingAlgorithm to label polygons.
ImprovementLuciadLightspeed
LMAP-4813
The ALcdCompassNavigationControl has some additional functionality. Pressing the control key
while
dragging the outer ring will limit the rotation to multiples of 15 degrees. This makes it easier
to
rotate the linked view to certain special angles like 45 or 90 degrees.
ImprovementLuciadLightspeed
LMAP-4857
TLcdGXYBusyLayerTreeNodeCellRenderer now also considers the
ILcdGXYAsynchronousLayerWrapper#isAsynchronous
value when rendering the colors of the asynchronous layers. Layers which return false for
isAsynchronous
will now be colored like a synchronous layer.
ImprovementLucy (LuciadLightspeed)
LUCY-2876
TLcyS57DecoderAddOn: it is now possible to configure the safety depth through the UI.
ImprovementLucy (LuciadLightspeed)
LUCY-2909
The Lambert Azimuthal Equal Area projection has been added to the default projections
created in the TLcyMapComponentFactory. It can be removed by adding the following lines to the
map_addon.cfg file.
TLcyMapAddOn.lambertAzimuthalEqualAreaProjectionActiveSettable.menuBar.insert=false
TLcyMapAddOn.lambertAzimuthalEqualAreaProjectionActiveSettable.toolBar.insert=false
ImprovementLuciadLightspeed
LMAP-4612
All projection classes can be serialized correctly now.
ImprovementOGC Server
LMAP-4701
The versions of the WCS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wcs.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.0.0,1.1.0" as values, or you can use wild cards such as "1.0.*".
ImprovementOGC Server
LMAP-4701
The versions of the WMS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wms.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.3.0,1.1.0" as values, or you can use wild cards such as "1.1.*".
ImprovementOGC Server
LMAP-4701
The versions of the WFS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wfs.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.0.0,1.1.0" as values, or you can use wild cards such as "1.*".
ImprovementWeather & Environment Standards
The GRIB model decoders now have better detection of rasters that wrap around
the globe.
ImprovementAviation Standards
LMAP-4965
Decoding of ILS-DME navaids is now also supported by the TLcdARINCDMEHandler. Decoded objects will
have the navaid class set to a new class: ILS_DME.
Bug fixLuciadLightspeed
LMAP-4990
TLcdGXYRasterPainter and TLcdMultilevelRasterPainter: the cached entries of these painters
contained a reference to the layer. This made the model objects strongly refer to the layer.
Bug fixLuciadLightspeed
LMAP-4578
The implementation of the Google reference system (EPSG codes 900913, 3785, 3857) was incorrect.
It now uses the newly added TLcdPseudoMercator projection, a variation on the TLcdMercator
projection, which performs all calculations on a spherical ellipsoid.
Bug fixLuciadLightspeed
LMAP-4985
The version negotiation of TLcdWCSClient could fail when using older Java versions in combination with the xerces
XML parser.
Bug fixLuciadLightspeed
LMAP-4954, LMAP-4980, LMAP-4986, LMAP-4987
TLcdGXYEditController2#setStickyLabelsLayerFilter() did not work very well in combination with
parent labels.
Bug fixLuciadLightspeed
Two new applyOnInteract methods were accidentally added to TLcdGXYAsynchronousLayerWrapper.
They have been moved to TLcdGXYAsynchronousEditableLabelsLayerWrapper.
Bug fixLuciadLightspeed
LMAP-4979, LMAP-4978
TLcdGXYPolylineStampLabelPainter: the set location index was not taken into account when
determining the location where the pin attaches to the object, which resulted in unwanted pin
lines when a view or layer label painter was used. Also, a more logical point is now used when
using free placement.
Bug fixLuciadLightspeed
TLcdGXYAsynchronousPaintQueue#setBorderFactor is now also ignored for label painting when a
ILcdGXYViewLabelPlacer is used. The previous behavior could cause labels to be painted at the
wrong location.
Bug fixLuciadLightspeed
LMAP-4976
A potential deadlock issue occurring during the rendering of KML layers has been fixed.
Bug fixLuciadLightspeed
TLcdDTEDModelDecoder now correctly decodes the swapped longitude/latitude
interval values specified by the superseded MIL-D-89020 standard.
Bug fixLuciadLightspeed
LMAP-4969
TLcdVVJPanel: in some cases, the panel would try to paint a selected point that was no longer
visible, resulting in an exception. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4971
TLcdEllipsoid#geodesicDistance() is now more consistent when using poles as input. When two
different polar points that represent the same pole are used, for example (0, 90) and (45, 90),
their distance is now always exactly 0. Also the distances from any other point to these
two pole points are now always exactly equal.
Bug fixLuciadLightspeed
LMAP-4760
TLcdSphereUtil#orientation2D sometimes returned incorrect results on or near the poles. This
fix also fixes TLcdLonLatFloatPolygon#getOrientation(), TLcdLonLatPolygon#getOrientation()
and TLcdLonLatHeightPolygon#getOrientation() in these cases.
Bug fixLuciadLightspeed
LMAP-4860
TLcdLonLatGridPainter: improved meridian labeling for projections including the south pole.
Improved labeling at edges. Now avoids labeling the anti-meridian twice (once for -180 degrees
and once for 180 degrees) at the same location.
Bug fixLucy (LuciadLightspeed)
LUCY-2934
For some DWG files it was impossible to fit on the data in 3D layers.
Bug fixLuciadLightspeed
LMAP-4118
TLcdGXYTextPainter#edit no longer allows making the shape so small that it becomes
impossible to make it larger again.
Bug fixLuciadLightspeed
LMAP-4962
TLcdGXYLayer#applyOnInteractLabels called ILcdGXYLabelPainter#setObject after
retrieving a label painter from its label painter provider.
This could break label painter providers that initialize
their label painter with an object that differs from the passed domain object.
Bug fixLuciadLightspeed
LMAP-4957
TLcdGeoTIFFModelEncoder now avoids averaging artifacts when creating lower
levels of detail of elevation rasters containing unknown elevations.
Bug fixLucy (LuciadLightspeed)
LUCY-2947
Sometimes locations were considered invalid in the Object Properties panel when using
UTM as Point Format.
Bug fixLuciadLightspeed
LMAP-4886
Calling ILcdGXYAsynchronousLayerWrapper#invokeAndWaitOnGXYLayer() could potentially cause
concurrency issues when calling it from a background thread. This method is now always
executed on the Event Dispatch thread, avoiding these issues.
Bug fixLuciadLightspeed
LMAP-4933
TLcdComplexPolygon#hashCode() always returned the same value, making it inefficient for use
in hashmaps etc. It now returns a decent value based on the parts contained by the complex
polygon.
Bug fixLuciadLightspeed
LMAP-1991
TLcdGXYContinuousPanController now draws selected objects in selection mode.
Bug fixLuciadLightspeed
LMAP-4897
When exporting a model to GML, the TLcdGML32ModelEncoder, TLcdGML31ModelEncoder and TLcdGML2ModelEncoder
now properly encodes abstract types as abstract XML schema types.
Bug fixLuciadLightspeed
LMAP-4761
TLcdLonLatHeightPolygon#getOrientation used a Cartesian algorithm. It now uses
the same spherical algorithm used by TLcdLonLatPolygon.
Bug fixLuciadLightspeed
LMAP-4873
Fixed OpenGL lighting settings synchronization issue between draping painter and shader.
Bug fixLuciadLightspeed
LMAP-4564
TLcdCassini and TLcdMollweide had incorrect implementations of inWorldBoundsOnSphere and
world2DEditableBoundsOnSphereSFCT.
Bug fixLuciadLightspeed
LMAP-4563
An exception could be thrown in samples.gxy.vertical when clicking next to a polyline. This
exception was solved by fixing LMAP-4562.
Bug fixLuciadLightspeed
LMAP-4562
In some cases TLcdEllipsoidUtil#contains2D could fail for points generated by
TLcdEllipsoidUtil#closestPointOnGeodesic.
Bug fixLuciadLightspeed
LMAP-4810, LMAP-4948, LMAP-4963, LMAP-5005
The intersection of geodesic and rhumbline could sometimes yield incorrect results when using
TLcdSphereRhumblineUtil. Also a rare case was solved where the code could enter an infinite
loop.
Bug fixLuciadLightspeed
LMAP-4809
TLcdSphereRhumblineUtil is now thread-safe.
Bug fixLuciadLightspeed
LMAP-4385
TLcdSphereUtil#closestPointOnGeodetic could sometimes yield an incorrect result when the
closest point does not lie on the line segment.
Bug fixLuciadLightspeed
LMAP-4868
Some labeling algorithms could throw a NullPointerException when a layer can not return
an ILcdGXYPainter for a domain object.
Bug fixLuciadLightspeed
LMAP-1607
TLcdUpsMgrsUtil could sometimes throw a StringIndexOutOfBoundsException instead of the
expected ParseException. Now it always throws a ParseException.
Bug fixLuciadLightspeed
LMAP-4866, LMAP-4959
TLcdSphereUtil#closestPointOnGeodesic could sometimes yield an incorrect result when the point
from which distance has to be calculated lies (almost) on the geodesic.
Bug fixLuciadLightspeed
LMAP-4864
samples.gxy.decoder did not use the correct labeling algorithms for some labels.
Bug fixLucy (LuciadLightspeed)
LUCY-2889
ASDI flight plans didn't end up in the correct labeling group.
Bug fixLuciadLightspeed
LMAP-4846
TLcdColorMapCustomizer: the linear scale toggle action used to malfunction when not used in
combination with a JToggleButton. This was only possible if the createPanel method was
overridden.
Bug fixLuciadLightspeed
LMAP-4858
TLcdGXYLayer.applyOnInteractLabels() did not apply the function on any label when passing a mode
that consists of ILcdGXYLayer.HANDLES, and not of ILcdGXYLayer.LABELS.
Bug fixLuciadLightspeed
LMAP-4780
TLcdBufferedTile#createImage has been fixed to be thread-safe, even if its
tile decoder is not thread-safe.
Bug fixLuciadLightspeed
LMAP-4845
TLcdColorMapCustomizer gradient toggle button malfunctions when not used in combination with
JToggleButton.
Bug fixLuciadLightspeed
LMAP-4844
Programmatically changing a TLcdColorMap that was set to a TLcdColorMapCustomizer could result
in an IndexArrayOutOfBoundsException.
Bug fixLuciadLightspeed
LMAP-4698
TLcdGXYPolylineStampLabelPainter and TLcdGXYPolygonStampLabelPainter did not always calculate
the correct bounds when using free placement label locations that are defined relative.
Bug fixLucy (LuciadLightspeed)
LUCY-2953
TLcyEarthOpenGLAddOn: fixed a problem when adding a custom model with an Earth tile set or
repository to the 3D view. More specifically a NPE occurred when the add-on was used in merge
mode, there was a (custom) GXY layer factory available for the model and there was no (custom)
GL layer factory available for the model.
Bug fixLucy (LuciadLightspeed)
LUCY-2922
DWG layers in 3D could be set to labeled which resulted in bad visual results. The DWG layers no
longer support to be labeled.
Bug fixLuciadLightspeed
LMAP-4879
TestSphereRhumblineUtil#polygonContains2D() could sometimes fail for points that lie on
the polygon contour.
Bug fixLuciadLightspeed
LMAP-4728
TLcdGeodeticReference#writePropertiesSFCT() did not write the reference name. Also
TLcdGeodeticReference#loadProperties() did not read back the reference name. This is
now fixed.
Bug fixLuciadLightspeed
LMAP-4571
TLcdGeoidGeodeticDatumFactory now has a better cache implementation. Before, each factory
instance had its own cache. Now the geodetic datums are read and cached statically.
Bug fixAdvanced GIS Engine
LMAP-3883
Topology checks between ILcdPolypoint and ILcdCircle could result in infinite loop.
This has been resolved.
Bug fixAdvanced GIS Engine
LMAP-4655
Topology relations between polygons and arcs sometimes gave incorrect results in spherical case.
This has been resolved.
Bug fixAdvanced GIS Engine
LMAP-3902
Topology relations between ellipses sometimes gave incorrect results.
This has been resolved.
Bug fixReal-time Engine
LMAP-4862
A disabled TLcdSimulatorTimeSlider no longer gets enabled by simply dragging on it with the
mouse.
Bug fixInfrastructure Standards
LMAP-4960
TLcdDGNModelDecoder#reset() methods behaved differently than before. They now indicate all
attributes or tags should be selected, instead of none.
Bug fixRadar Connectors
LMAP-4872
The decoder.asterix.live and decoder.asterix.file samples could throw an exception when
setting an other layer labeled.
Bug fixRadar Connectors
LMAP-4870
The decoder.asdi.live and decoder.asdi.file samples could throw an exception when setting an
other layer labeled.
10.1
ImprovementLuciadLightspeed
LMAP-4427
Support was added for EPSG code 3857. This code is an (unofficial) alias for EPSG:3785.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousLayerWrapper#invokeLaterOnGXYLayer now also protects the passed runnable from
model changes on the Event Dispatch Thread.
ImprovementLucy (LuciadLightspeed)
The setupGXYAsynchronousPaintQueueManager method has been added to ALcyAsynchronousPaintFacade,
allowing
to customize the paint queue manager used in Lucy. See the class javadoc of
ALcdGXYAsynchronousPaintQueueManager
for more information on paint queue managers.
ImprovementLucy (LuciadLightspeed)
The ILcdLayerHeightProviderFactory concept has been added to both the 2D and 3D formats.
ImprovementLuciadLightspeed
LMAP-2589
Improved LuciadMap Developer's Guide by documenting setMinimumObjectSizeForPainting that allows
to disable the painting of small objects.
ImprovementLuciadLightspeed
LMAP-4589
The performance of the haloing algorithm has been improved for objects which are larger than the
view bounds, when haloing caching is enabled.
ImprovementLucy (LuciadLightspeed)
TLcySLDLayerStyle, an implementation of an ILcyLayerStyle has been added that exposes styling
support through the use of SLD or Symbology Encoding feature
type styles. Formats that use this style allow customized visualization with this mechanism
without having to override
existing painters or layer factories. Another advantage of the use of a layer style is the
possibility to persist custom
styles in workspace files and easy style synchronization between different layers.
ImprovementLuciadLightspeed
LMAP-2706
TLcdColorMapCustomizer: when adding a new altitude level, the new color is now an interpolation
of the adjacent colors.
ImprovementLucy (LuciadLightspeed)
TLcyAIXM5AddOn, TLcyAIXM51AddOn: These addons now create layers that are configured with a new
type of layer style: TLcySLDLayerStyle.
This layer style exposes the SLD styling capabilities of AIXM 5.0 and 5.1. To use it, you can
simply retrieve the
style of an AIXM5 layer with a layer style provider and cast it to a TLcySLDLayerStyle. This
class provides the necessary
methods to configure the styles for specific feature types.
Users of the 3D capabilities of the AIXM 5.0 and 5.1 add on can also apply this styling to 3D
layers, or simply synchronize the
style between 2D and 3D.
ImprovementLucy (LuciadLightspeed)
LUCY-2848
TLcyASDIDecoderAddOn: the ASDI tracks can now be labeled in the 3D view.
ImprovementLucy (LuciadLightspeed)
TLcyAIXM5RealtimeAddOn, TLcyAIXM51RealtimeAddOn: The AIXM real time add ons now use the new
ILcdTimeSliceProvider functionality
of AIXM 5 to configure AIXM features with a time slice provider implementation that returns
snapshot time slices when
the previewer is active for the model that contains a given feature. This allows you to easily
switch between a 'static'
mode and a 'snapshot' mode. It also ensures consistency between all parts of the application,
and avoids creating a separate
snapshot model that is disconnected from the original data.
ImprovementLuciadLightspeed
LMAP-4443
ILcdLayerHeightProviderFactory has been introduced. The TLcdViewHeightProvider has been adjusted
to work with this new interface as well.
ImprovementLuciadLightspeed
LMAP-4172
TLcdWFSProxyModel now no longer returns null when the server returns an exception that is handled by the exception
handler. An empty enumeration is returned instead.
ImprovementLuciadLightspeed
TLcdRasterModelDecoder now also supports decoding rasters containing
TLcdRenderedImageTile instances (based on Java Advanced Imaging), as
an alternative to the default TLcdBufferedTile instances (based on
ILcdTileDecoder and ILcdBuffer).
ImprovementLuciadLightspeed
TLcdRasterModelDecoder and TLcdJAIModelDescriptor now support an isElevation
flag. The optional flag is read from the input properties and set on the
decoded model descriptor, to specify that the raster data can be interpreted
as elevation data.
ImprovementLuciadLightspeed
LMAP-4740
TLcdAngleUnit now supports angular mils.
ImprovementLuciadLightspeed
LMAP-4443
A new interface for the creation of a layer-based ILcdHeightProvider has been added:
ILcdLayerHeightProviderFactory. This interface is similar to the exiting model-based factory:
ILcdModelHeightProviderFactory. The difference is that the new interface creates a height
provider from a layer and view instead of a model. A layer-based height provider returns heights
that are in sync with the layer and view, with the correct level-of-detail for example. Using it often
it is likely that the necessary data is cached.
ImprovementLucy (LuciadLightspeed)
LUCY-2831
TLcyWorkspaceManager: now has a new method setWorkspaceChanged to be able to indicate that a
workspace has no changes.
ImprovementLucy (LuciadLightspeed)
The new TLcyFusionClientOpenGLAddOn allows 3D visualization of data coming from a LuciadFusion
Data Server.
ImprovementLuciadLightspeed
The TLcdEarthImageTileDataCodec and TLcdEarthSeparateAlphaImageTileDataCodec now allow configuring
the compression quality. Setting a lower compression quality results in smaller data sets at
the cost of image quality.
ImprovementLuciadLightspeed
LMAP-2648
Support has been added to automatically create and assign the paint queues of asynchronously
painted layers.
ALcdGXYAsynchronousPaintQueueManager allows implementing a completely custom paint queue
management strategy. In addition, TLcdGXYAsynchronousPaintQueueManager creates and assign paint
queues based on layer painting requirements described in paint hints.
Please refer to the developer's guide and asynchronous paint sample for more information on how
to use the new paint queue managers.
ImprovementLucy (LuciadLightspeed)
LUCY-2798
The default border factor for asynchronous painting has been reduced to 2.5% to improve
performance.
ImprovementLuciadLightspeed
LMAP-4684
TLcdBufferedTile now has a property to specify whether its pixel values are
signed or not, so the method retrieveValue can return them correctly as
integers.
ImprovementLuciadLightspeed
LMAP-4443
Added a new layer-based height provider factory. Opposed to the existing model-based height
provider factory (e.g. TLcdEarthHeightProviderFactory), the new
TLcdEarthGXYLayerHeightProviderFactory and TLcdEarthGLLayerHeightProviderFactory always return
heights that are in sync with the data being painted in a view. THey also provides better
performance as all required tile data is already cached in memory. The earth.opengl.aboveterrain
sample demonstrates this new functionality.
ImprovementLuciadLightspeed
LMAP-4693, LMAP-2704
TLcdColorMapCustomizer: now also has a non-linear scale, so that all levels can clearly be
distinguished. The desired scale can be toggled by the user. An optional button is
available to revert to given default settings. Both the customizer and TLcdColorMap now
have a master transparency setting, to adjust the transparency of all colors at once.
ImprovementLuciadLightspeed
The TLcdGXYEditController2 contains support to make the labels of specified layers sticky when
the mouse hovers above them. To enable this behavior use the method setStickyLabelsLayerFilter.
The sticky labels behavior will be enabled for all layers that pass this filter. When no filter
is set, no labels will be made sticky.
The TLcdGXYEditController2 and the TLcdGXYTouchSelectEditController will make labels sticky
while
they are being instant edited. This is for instance useful when editing continuously decluttered
labels for realtime layers.
ImprovementLuciadLightspeed
There is a new transformation sample that shows how to transform a point and a bounding box
between view, world and model coordinates.
ImprovementLuciadLightspeed
The earth.preprocessor sample now uses image tiles of 256x256 pixels and elevation tiles of
64x64 pixels, similar to the LuciadFusion default settings.
ImprovementLucy (LuciadLightspeed)
The TLcyEarthOpenGLAddOn now uses image tiles of 256x256 pixels and elevation tiles of 64x64
values, similar to the LuciadFusion defaults, if the merge-repositories mode is set. Earth tile
sets that use the old tile resolutions will still work with similar performance as before.
ImprovementLuciadLightspeed
The TLcdEarthGLTerrainPainter was updated to support the draping feature, introduced in the
LuciadMap 10.1 3D module. This feature allows to paint any GL layer on top of an Earth
terrain, without rendering artifacts such as flickering due to z-fighting. The
earth.opengl.draping sample demonstrates draping some vector data on top of an Earth terrain.
Refer to the Earth and 3D Developer's Guides for more information.
ImprovementLuciadLightspeed
TLcdGXYLabelPainterAdapter was added. This class adapts an ILcdGXYPainter into an
ILcdGXYLabelPainter2. It uses a set of fixed label positions to position the label, and
also offers the possibility to place a pin. This class also implement ILcdGXYLabelEditor,
and can be used to edit labels if an ILcdGXYEditor was specified next to an ILcdGXYPainter.
This class can for example be used to paint icons as labels.
ImprovementLuciadLightspeed
A composite ILcdGXYLabelPainter implementation was added : TLcdGXYCompositeLabelPainter. This
class can be used combine multiple label painters into one. This class specifies two ways
to remap the label and sub-label index.
- Shift label index : Only the label index is shifted.
- Shift sub-label index : All indices of labels and sub-labels from the first label
painter stay exactly the same. For all other labels, the sub-label index is shifted.
ImprovementLuciadLightspeed
All LuciadMap implementations of ILcdGXYLabelPainter now provide support for parent labels.
This means that when a label location specifies an other anchor point, its coordinates are
specified relative to this anchor point, see TLcdLabelLocation#getAnchorPoint(). When this
method returns false, the anchor point is created like it was before. In order to make sure
that TLcdLabelLocation#getAnchorPoint() returns the correct anchor point, code that alters
the label locations should set the parent bounds by using TLcdLabelLocation#setParentBounds().
ImprovementLuciadLightspeed
A sample was added to demonstrate the creation and usage of labeling algorithms and labeling
algorithm wrappers : labels.createalgorithm. It demonstrates how to create a simple labeling
algorithm, how to create a wrapper that rotates the labels, how to create a wrapper that tries
more possible placements, and a wrapper that tries to adjust the font size to find a suitable
label location.
ImprovementLuciadLightspeed
TLcdLabelLocation now has a few extra methods :
- getAnchorPoint() : When this method returns true, the location of this label is
defined
relative to this anchor point. When this method returns false, the user of the label
location
should compute an anchor point.
- getParentLabel() : When this method returns a non-null object, the label location
depends on the returned label. This means that the location of this label is defined with
respect to the parent label. When creating or editing a label, one should always make sure
that this dependency is respected, and that the location is defined relative to the parent
label (getAnchorPoint()). For this it is also necessary to set the bounds of the parent
label (setParentBounds()).
- getParentBoundsRectangle(), getParentBoundsRotation(), setParentBounds() : When a
TLcdLabelLocation has a parent label, the parent bounds should be set before using it.
- isBodyLabel() : When this method returns true, it means that this label is used as a
representation of its domain object.
TLcdLabelLocations now has a new constructor which takes an ILcdLabelDependencyProvider as
argument.
When this constructor is used, a parent label is set on the TLcdLabelLocation when calling
TLcdLabelLocations#getLabelLocationSFCT(). So the parent dependencies of a label can be
specified
using the label dependency provider.
This functionality is demonstrated in the labels.offset sample.
ImprovementLuciadLightspeed
TLcdUTMGrid and TLcdUPSGrid objects now provide a correct TLcdModelReferenceMetaData.
ImprovementLucy (LuciadLightspeed)
In the terrain analysis addons, it's now possible to label contours from a contour layer, and
to select and copy contours from a contour layer and vectors from a line of sight and
visibility layer.
ImprovementLuciadLightspeed
The performance of the convolution halo algorithm has been improved for objects with large
view bounds.
ImprovementLucy (LuciadLightspeed)
Labeling support in Lucy is improved. It is possible to register an
ILcyGXYLabelPlacementHintProvider
in a format (ALcyFormat#createLabelPlacementHintProvider()). This makes it possible to provide
labeling information for each layer :
- a labeling algorithm. Specifies the label behavior.
- a labeling group. Labels from the layers in a label placement group are placed
together, and do not overlap.
- a label obstacle provider. This obstacle provider provides obstacles for all layers
from the same labeling group.
This new functionality removes the need of setting an ILcdGXYLayerLabelPainter for layers which
need different labeling behavior. A different labeling algorithm can be provided instead. This
labeling algorithm can also be used with global label decluttering enabled. For example the
labeling for the magnetic north addon was improved (this also fixes LUCY-2419).
ImprovementLucy (LuciadLightspeed)
TLcyASDIDecoderAddOn / TLcyASTERIXDecoderAddOn: removed the flag to disable the warning message
about global label decluttering : this is not needed anymore since labeling layers of these
formats now works correctly with global label decluttering enabled.
ImprovementLuciadLightspeed
LMAP-3214, LMAP-1813, LMAP-2241, LMAP-838, LMAP-2995, LMAP-2970, LMAP-3240, LMAP-3101, LMAP-3348
New API has been added for advanced label placement, based on an ILcdGXYLabelingAlgorithm.
Algorithms can be combined and wrapped.
TLcdGXYLabelPlacer and TLcdGXYAsynchronousLabelPlacer provide the necessary boiler plate code
to place a labeling algorithm's labels synchronously and asynchronously, respectively.
For more information, see the com.luciad.view.gxy.labeling package, the developer's guide,
and the label samples.
ImprovementLuciadLightspeed
Extensive support was added throughout LuciadMap for ILcdDataObject. In particular, the
following enhancements were made:
- The models of all vector formats (SHP, GML, ISO metadata, database format, MAP,
MIF, SVG, POL, Magnetic North, MTM) are now data object enabled. This means
that the model elements are
ILcdDataObject
instances and
the model's descriptor is aILcdDataModelDescriptor
. Most of these
formats also allow direct access to their data model through a public
TLcd<format>DataTypes
class, for example
TLcdSHPDataTypes
orTLcdSVGDataTypes
.
Encoders that can export models from other formats to their own format have been
enhanced such that they also accept data object enabled models.
Since the model descriptors of these formats now implement
ILcdDataModelDescriptor, all elements in these models are required to
implement ILcdDataObject. Custom domain objects wrapping any of these model
elements will need to implement ILcdDataObject as well, if they are
contained in a model with a model descriptor of any of these formats.
TLcdGXYDataObjectLabelPainter
,
TLcdGXYDataObjectPolylineLabelPainter
and
TLcdGXYDataObjectPolygonLabelPainter
support
painting of labels for data object enabled models. These label painters can be
easily configured using a data object expression language
(more information on this can be found in the javadoc of
ALcdDataObjectExpressionLanguage
)).
- The class
TLcdDataObjectShapeList
is introduced
as an implementation of both
ILcdShapeList
and
ILcdDataObject
.
- A number of new annotations are added to describe additional properties
of the data model. The
TLcdPrimaryKeyAnnotation
can be added to a type (typically in the context
of a database) to indicate what its primary key property is.
TheTLcdHasAShapeAnnotation
,
TLcdShapeAnnotation
and
TLcdShapeListAnnotation
can be used to better
describe the geometry that is contained within a type.
- Various smaller changes are implemented to ensure that a model that is
data object enabled is supported at least as much as a model that relies on
ILcdFeatured
.
Also, all sample code has been updated to use ILcdDataObject (in stead of ILcdFeatured).
More information about ILcdDataObject can be found in the LuciadMap Developer's Guide.
ImprovementLuciadLightspeed
LMAP-3863
The GML model decoder now uses the information contained in TLcdModelReferenceMetaData to
determine
the dimension (2D vs 3D) and coordinate order (lat-lon vs lon-lat) of a model reference.
ImprovementLuciadLightspeed
LMAP-3756
TLcdGXYPointListPainter can now also edit ILcdEditableComplexPolygon instances.
ImprovementLuciadLightspeed
TLcdShapeList now implements the ILcdEditableShapeList interface.
ImprovementLuciadLightspeed
The new interface ILcdEditableComplexPolygon is added. TLcdComplexPolygon now implements this
interface.
ImprovementLuciadLightspeed
LMAP-4168, LMAP-4057, LMAP-2223
Two new contour finders are added, TLcdPolylineContourFinder and
TLcdComplexPolygonContourFinder.
The original TLcdContourFinder could find closed contours. TLcdPolylineContourFinder can find
both open and closed isolines. TLcdComplexPolygonContourFinder can find areas of
height ranges on the terrain as complex polygons, supporting holes and translucent rendering.
The new contour finders use ILcdContourBuilder to create shapes from the contour data, with
implementations TLcdLonLatPolylineContourBuilder, TLcdXYPolylineContourBuilder,
TLcdLonLatComplexPolygonContourBuilder and TLcdXYComplexPolygonContourBuilder.
These implementations return the shape as TLcdValuedContour and TLcdIntervalContour instances.
ImprovementLucy (LuciadLightspeed)
The constructive geometry options in the Drawing AddOn have been extended. In addition to the
union and the intersection, the ability to create the difference, symmetric difference and
convex hull of shapes is added. Complex polygons are also supported as result of the operations.
The operations now work correct on geodetic shapes as well. The operations can now work on more
than two shapes at once.
ImprovementLucy (LuciadLightspeed)
LUCY-2772
TLcySelectionEditorAddOn: now calculates its preferred size based on the actual content, that is
the ILcyCustomizerPanel that is being displayed.
ImprovementLuciadLightspeed
LMAP-4325
The default custom entity resolver on TLcdXMLSchemaBasedMapping is now allowed to
return null for schema's that it can't resolve. The default implementation can now
handle such cases. This makes it much easier to set a custom entity resolver because
it only needs to handle the schema's that it knows about. TLcdXMLSchemaBasedMapping
is now also ILcdInputStreamCapable for this reason. The TLcdXMLDataObjectSchemaHandler
now also uses the default entity resolver of the decoder's mapping to resolve
extension schema's.
ImprovementLuciadLightspeed
TLcdXMLSchemaBasedUnmarshallerProvider now allows registration of unmarshallers
for a given schema element id and java class. Similar functionality is also added
to TLcdXMLSchemaBasedMarshallerProvider.
ImprovementLuciadLightspeed
The name space URI that is passed as parameter to
the TLcdXMLDataModelBuilder when creating a data model
from a schema is no longer mandatory. This makes it easier to
create a data model for a schema for which only the system id
is known (and not the name space URI).
ImprovementLucy (LuciadLightspeed)
The configuration file of the AIXM5.0/AIXM5.1 (OpenGL) add-ons now allow to set the default
style for layers.
ImprovementLuciadLightspeed
LMAP-3863
The GML model decoder now uses the information contained in TLcdModelReferenceMetaData to
determine
the dimension (2D vs 3D) and coordinate order (lat-lon vs lon-lat) of a model reference.
ImprovementLuciadLightspeed
The GML abstract feacture class now implements ILcdInvalidateable.
ImprovementLuciadLightspeed
TLcdAdvancedMapRulerController and TLcdMapTouchRulerController now create polyline
objects that also implements ILcdDataObject (next to the existing ILcdFeatured).
ImprovementLuciadLightspeed
TLcdCompassGridPainter has been extended such that it can also be
used with objects that implement ILcdDataObject.
ImprovementLuciadLightspeed
LMAP-3913
A new interface, ILcdInvalidateable, has been added to the API. It provides a generic mechanism
for
invalidating a composite object when one or more of its compositing values has changed. Classes
that have added
this new interface include ALcdShapeList, TLcdGML3*AbstractFeature and other composite
shape implementations.
ImprovementLuciadLightspeed
TLcdXMLSchemaBasedEncoder and TLcdXMLSchemaBasedDecoder now also provide API to
encode and decode given Result or Source objects as input parameter. The same enhancement
was also done on ALcdXMLModelEncoder and ALcdXMLModelDecoder.
ImprovementLuciadLightspeed
LMAP-4166
TLcdWFSProxyModelFactory and TLcdWFSProxyDecoderDecorator now have a method to set a custom reference parser. This
can be used
to support servers that use custom reference names.
ImprovementLuciadLightspeed
The TLcdCGMModelDescriptor now implements ILcdDataModelDescriptor. The data types for the model
can be found
in the TLcdCGMDataTypes class.
ImprovementLuciadLightspeed
Created a sample to demonstrate the usage of balloons. It can be found in the
samples.gxy.balloon
package.
ImprovementLuciadLightspeed
Upgraded to the latest version (4.0.9) of the WoodStox StAX library.
ImprovementLucy (LuciadLightspeed)
The PIM domain objects now implement ILcdDataObject, and the PIM models now have an
ILcdDataModelDescriptor
ImprovementLucy (LuciadLightspeed)
LUCY-2748
TLcyDAFIFAddOn: the workspace codec is now able to handle relative locations to the DAFIF root
file.
ImprovementLucy (LuciadLightspeed)
LUCY-2696
It is possible to register ILcdInputStreamFactory and ILcdOutputStreamFactory objects in the
Lucy back-end.
They can be picked up if you use a TLcyCompositeInputStreamFactory or
TLcyCompositeOutputStreamFactory.
ImprovementLuciadLightspeed
TLcdGXYPolygonLabelPainter and TLcdGXYPolylineLabelPainter now support rotations different
from 0 when using free placement.
ImprovementLuciadLightspeed
Added an extra constructor in TLcdAWTPath which makes it possible to explicitly set the min
and max ordinate values.
ImprovementLucy (LuciadLightspeed)
LUCY-2818
TLcyNetworkConnectionAddOn: this new addon allows to configure settings related to networked
connections
used in Lucy. By default, it provides support to configure proxy settings and to input
user credentials for servers that require BASIC or DIGEST authentication. This is for example
useful when working with OGC WMS, WFS or WCS web services.
ImprovementLucy (LuciadLightspeed)
ILcyCompositeCustomizerPanel#getCustomizerPanels() now returns a generified List
ImprovementLuciadLightspeed
The GML model encoder can now also export models based on the data model that is present
in the model descriptor.
ImprovementLucy (LuciadLightspeed)
LUCY-2697
The 3D icon for PIM ground tracks is now correctly positioned above ground.
ImprovementLucy (LuciadLightspeed)
The 'layer decluttered' option is now disabled by default in the GUI. This option can be
enabled again by setting
'mapLayerControl.layerLabelDeconflictionActiveSettable.mapLayerControlPopupMenu.insert'
to true in map_addon_layer_control.cfg.
ImprovementLucy (LuciadLightspeed)
LUCY-2569
A new front-end sample was added that makes the map take all available space; the auxiliary
tabs - like layer control and overview - are organized using collapsible task panes, overlayed
on the map.
ImprovementLuciadLightspeed
LMAP-2233
TLcdGXYMultiPointEditControllerModel#editingCandidates and
TLcdGXYEditControllerModel2#editingCandidates now only return a single object when an object's
handles has been touched.
This makes sure that, when translating an object handle of a multiple selection,
the untouched objects are not edited as well.
ImprovementLucy (LuciadLightspeed)
LUCY-2663
TLcyMapComponentFactory: the global label decluttering action (see
TLcyMapComponentFactory#GLOBAL_LABEL_DECONFLICTION_ACTIVE_SETTABLE) now also supports
TLcdGXYViewJPanelLightWeight and TLcdMapJPanelLightWeight.
ImprovementLuciadLightspeed
Performance monitoring now also supports TLcdGXYViewJPanelLightWeight and
TLcdMapJPanelLightWeight.
ImprovementLuciadLightspeed
Updated MapInfo Interchange File (MIF) in the com.luciad.format.mif package to support the new
ILcdDataObject interface. A new class (TLcdMIFDataTypes) can be used to generate data models
for this file format. The model elements remain backwards compatible with the ILcdFeatured
interface,
but it is recommended to use the ILcdDataObject interface for future projects.
ImprovementLucy (LuciadLightspeed)
LUCY-2662
TLcyMain: no longer changes the Thread.getDefaultUncaughtExceptionHandler() if it is already
set to a value different from null. This allows to easily replace the exception handler.
ImprovementLucy (LuciadLightspeed)
LMAP-4241
TLcyKML22AddOn: The KML Contents screen, found under Tools|Show KML Contents, now displays the
map title of the active map in the application pane title.
ImprovementLuciadLightspeed
TLcdGeodeticReference, TLcdGeocentricReference, TLcdTopocentricReference and TLcdGridReference,
(and implicitly TLcdDHDNGermanGridReference, TLcdLambert1972BelgiumGridReference and
TLcdRD1918DutchGridReference) now implement ILcdExtendedModelReference.
ImprovementLucy (LuciadLightspeed)
LUCY-2088
The Map | Projection | Edit Current action has an improvement reference chooser.
ImprovementLuciadLightspeed
LMAP-4019
The interfaces ILcdInputStreamFactoryCapable and ILcdOutputStreamFactoryCapable have been added,
introducing a general way to indicate the capability of respectively configuring an
ILcdInputStreamFactory
and ILcdOutputStreamFactory. These interfaces are now implemented by all existing classes in
LuciadMap
that provide this capability, including all implementations of ILcdModelDecoder/ILcdModelEncoder
and ILcdGXYLayerDecoder/ILcdGXYLayerEncoder.
ImprovementLucy (LuciadLightspeed)
The TLcyMapColorAddOn has been deprecated, and the lucy.style sample has been introduced
which illustrates how
to change the style of a layer.
If you want to reactive the TLcyMapColorAddOn, insert the following lines into
addons.xml
<addon>
<name>Map Color</name>
<class>com.luciad.lucy.addons.map.TLcyMapColorAddOn</class>
<configFile>lucy/map/mapcolor_addon.cfg</configFile>
</addon>
ImprovementLucy (LuciadLightspeed)
Whenever the message "Configfile null not found." is displayed, a strack trace can be provided
as well
for debugging purposes.
ImprovementLuciadLightspeed
LMAP-3864
The TLcdWKTReferenceParser now takes into account the AXIS tags, which can be used in
determining the type and order of the coordinate systems' axes. This information is provided by
a new interface called ILcdExtendedModelReference that extends ILcdModelReference and gives
access to an object of type TLcdModelReferenceMetaData.
ImprovementLuciadLightspeed
The interfaces ILcdSphere and ILcdDome have been introduced to represent 3D spheres and
half-spheres, respectively. The already existing classes TLcdLonLatHeightSphere and
TLcdLonLatHeightDome now implement these interfaces. Furthermore, ILcd3DEditableSphere
and ILcd3DEditableDome represent modifiable versions of these two shapes.
ImprovementLucy (LuciadLightspeed)
TLcyKML22AddOn: Improved model content tree. Added new icons, including animated icons to show
that a NetworkLink
is loading. Also enhanced the tree model to prevent the tree from collapsing when a NetworkLink
refreshes.
ImprovementLuciadLightspeed
LMAP-3220
The following shapes now implement the ILcdRing or ILcdCurve interfaces:
- TLcdLonLatLine and TLcdXYLine
- TLcdLonLatEllipse and TLcdXYEllipse
- TLcdLonLatFloatPolyline and TLcdXYFloatPolyline
- TLcdLonLatFloatPolygon and TLcdXYFloatPolygon
ImprovementLuciadLightspeed
LMAP-4027
TLcdGXYCompositeCurvePainter now has a configurable line style.
ImprovementAdvanced GIS Engine
The standard implementations of ILcd2DAdvancedBinaryTopology now also support
arcs, circles, and ellipses.
ImprovementAdvanced GIS Engine
A new framework for constructive geometry and convex hull operations was added to the geometry
package. The interface ILcdConstructiveGeometry was added, with implementations TLcdCartesianConstructiveGeometry,
TLcdSphericalConstructiveGeometry and TLcdEllipsoidalConstructiveGeometry.
ImprovementDatabase Connectors
The encoder now supports automatically deleting old tables when new ones are
created, with the configuration property dropBeforeCreatingTable.
ImprovementDatabase Connectors
The encoder now supports automatically deleting old tables when new ones are
created, with the configuration property dropBeforeCreatingTable.
ImprovementDatabase Connectors
The encoder now supports automatically deleting old tables when new ones are
created, with the configuration property dropBeforeCreatingTable.
ImprovementDatabase Connectors
The encoder now supports automatically deleting old tables when new ones are
created, with the configuration property dropBeforeCreatingTable.
ImprovementDatabase Connectors
LMAP-4447
The decoder and encoder now support primary keys that are automatically
generated by the database, with the configuration property
primaryFeatureAutoGenerated.
ImprovementDatabase Connectors
LMAP-4447
The decoder and encoder now support primary keys that are automatically
generated by the database, with the configuration property
primaryFeatureAutoGenerated.
ImprovementDatabase Connectors
Models created by the TLcdDB2SpatialModelDecoder are now data object enabled.
This means that all model elements implement ILcdDataObject and that the
model descriptor implements ILcdDataModelDescriptor.
ImprovementDatabase Connectors
LMAP-4447
The decoder and encoder now support primary keys that are automatically
generated by the database, with the configuration property
primaryFeatureAutoGenerated.
ImprovementDatabase Connectors
LMAP-4447
The decoder and encoder now support primary keys that are automatically
generated by the database, with the configuration property
primaryFeatureAutoGenerated.
ImprovementDatabase Connectors
LMAP-4447
The decoder and encoder now support primary keys that are automatically
generated by the database, with the configuration property
primaryFeatureAutoGenerated.
ImprovementDatabase Connectors
Models created by the TLcdInformixGeodeticModelDecoder are now data object
enabled. This means that all model elements implement ILcdDataObject and that
the model descriptor implements ILcdDataModelDescriptor.
ImprovementDatabase Connectors
The TLcdOracleGeorasterModelDecoder now delays the loading of non-essential
raster meta-data. As a result, the initial delay when loading a large number
of rasters has been reduced significantly.
ImprovementDatabase Connectors
Models created by the TLcdPostGISModelDecoder are now data object enabled.
This means that all model elements implement ILcdDataObject and that the
model descriptor implements ILcdDataModelDescriptor.
ImprovementDatabase Connectors
Models created by the TLcdOracleSpatialModelDecoder are now data object
enabled. This means that all model elements implement ILcdDataObject and that
the model descriptor implements ILcdDataModelDescriptor.
ImprovementDatabase Connectors
When the SQL filter matched several rasters that had different geographical
references, the TLcdOracleGeorastermodelDecoder was only decoding a subset
of the matching rasters, all having identical references. In the new
implementation the decoder creates an ILcdModelTreeNode composed of several
submodels, one for each independent geographical reference.
ImprovementDatabase Connectors
LMAP-3061
The TLcdOracleGeorasterModelDecoder now supports the NODATA database field.
The corresponding raster pixels are set to full transparency.
ImprovementTerrain Analysis Engine
TLcdLOSCoverageFactory has a new createLOSCoverageContours method, which takes two arrays
of doubles instead of one. This allows giving a separate array of level values and special
values, so that it can treat contours around height values and special values differently.
The resulting contours are disjoint complex polygons instead of regular polygons. This allows
painting them with translucency because the complex polygons don't overlap.
ImprovementWeather & Environment Standards
TLcdGRIBModelDecoder now supports GRIB version 2.
ImprovementAviation Standards
A new concept has been introduced to make it easier to retrieve a useful time slice from an AIXM feature.
Quite often, application developers are confronted with the problem of having to determine a suitable time slice for
the visualization of features or properties of features. The new ILcdTimeSliceProvider interface can be used to
encapsulate such a strategy that can be used throughout the application.
To make the provider accessible at places where it is needed, two options are provided:
- A default time slice provider can be set on an AIXM 5.0 or 5.1 feature. This provider can be requested
from the feature whenever it is needed.
- A time slice provider can be passed onto the objects that need it; for instance, all AIXM painters and
XPath factories can now be configured with a time slice provider. When set, these time slice providers have
precedence over the default time slice providers on the features.
Two implementations are available that implement the currently most common strategies. The first one returns one
of the time slices in the list of time slices in the feature - normally this will be a baseline time slice,
assuming
that it is available. The second one can be configured with a date, and will return a snapshot time slice valid
for
that date, or no time slice if the feature does not have valid time slices for that date.
ImprovementAviation Standards
It is now possible to configure the styling of AIXM 5.0 and 5.1 features on the painter providers
TLcdAIXM5PainterEditorProvider and TLcdAIXM51PainterEditorProvider. The styling has to be defined
as an OGC SLD feature type style. SLD is a very powerful rule-based styling mechanism developed by the OGC,
and is defined as an XML format. LuciadMap already provided extensive support for OGC SLD,
but it is now also fully integrated with AIXM to style features.
The AIXM painters not only allow setting a style but also allow access to predefined styles. This makes it easier
for application developers to allow style customization, as they can allow their users to customize an existing
style
instead of having to write one from scratch.
ImprovementAviation Standards
Data types for the DAFIF and DAFIFT domain model objects are now available in the TLcdDAFIFDataTypes and
TLcdDAFIFTDataTypes classes. For each DAFIF/DAFIFT type, a specific class that contains
all properties has also been added (e.g., TLcdDAFIFAirspaceDataProperties).
DAFIF model decoders with a default configuration will now return objects that implement ILcdDataObject and
that have a DAFIF data type.
Existing users of the DAFIF/DAFIFT decoders that depend on specific properties of the ILcdFeatured-based implementation can
ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers.
An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will
result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.
This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality.
The most important example is the use of certain methods on the DAFIF/DAFIFT decoders that allow setting the features
to be decoded, such as the method setAerodromeFeaturesToBeDecoded.
These methods are still available, but in the new decoder configuration the decoded features will always have the same number
of features.
Also, the ordering of the features will no longer depend on the ordering of the feature names that are passed to this method.
These features will be fixed and determined by the data type. This behavior is not changed if you use the backwards
compatible mode described above.
ImprovementAviation Standards
Data types for the ARINC domain model objects are now available in the TLcdARINCDataTypes class. For each ARINC type,
a specific class that contains all properties has also been added (e.g., TLcdARINCAirspaceDataProperties).
ARINC model decoders with a default configuration will now return objects that implement ILcdDataObject and
that have a ARINC data type.
Existing users of the ARINC decoders that depend on specific properties of the ILcdFeatured-based implementation can
ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers.
An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will
result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.
This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality.
The most important example is the use of certain methods on the ARINC handlers that allow setting the features
to be decoded such as setAerodromeFeatureNamesToBeDecoded.
These methods are still available, but in the default decoder configuration the decoded features will always have the same
number of features.
Also, the ordering of the features will no longer depend on the ordering of the feature names
that are passed into this method. These attributes will be fixed and determined by the data type. This behavior is
not changed if you use the backwards compatible mode described above.
ImprovementAviation Standards
Data types for the AIXM domain model objects are now available in the TLcdAIXMDataTypes class. For each AIXM type,
a specific class that contains all properties has also been added (e.g. TLcdAIXMAirspaceDataProperties).
AIXM model decoders with a default configuration will now return objects that implement ILcdDataObject and
that have an AIXM data type.
Existing users of the AIXM decoders that depend on specific properties of the ILcdFeatured-based implementation can
ensure backwards compatibility by setting a custom implementation of the now deprecated ALcdAISObjectFactory on the handlers.
An example would be to set a very basic extension of the TLcdAISLonLatHeightObjectFactory on all decoders. This will
result in objects with an unknown data type that should only be accessed through the ILcdFeatured interface.
This backwards compatible mode is not recommended for general use, but might be necessary for users of certain functionality.
The most important example is the use of certain methods on the AIXM handlers that allow setting the features
to be decoded such as setAerodromeFeatureNamesToBeDecoded.
These methods are still available, but in the default decoder configuration the decoded features will always have the same
number of features.
Also, the ordering of the features will no longer depend on the ordering of the feature names
that are passed into this method. These attributes will be fixed and determined by the data type. This behavior is
not changed if you use the backwards compatible mode described above.
ImprovementAviation Standards
LMAP-2927
The AIS domain model now implements ILcdDataObject, the new interface in LuciadMap
to provide generic access to an object's properties. Corresponding data types for the AIS domain model
are now available in the TLcdAISDataTypes class.
New classes TLcdAISDataObjectFactory and ALcdAISGeometryFactory that fully support ILcdDataObject
have been introduced to create and initialize AIS domain objects. The existing class ALcdAISObjectFactory
and its implementations have been deprecated in favor of TLcdAISDataObjectFactory and ALcdAISGeometryFactory.
ImprovementAviation Standards
TLcdAIXM5AbstractAIXMTimeSlice and TLcdAIXM51AbstractAIXMTimeSlice now implement the ILcdTimeBounded interface.
ImprovementAviation Standards
The TLcdAIXM5ModelDecoder and TLcdAIXM51ModelDecoder now automatically merge features and sort timeslices when
decoding a message. This prevents some possible issues related to XLinks, and also properly prepares the message for
the most
common use cases when working with AIXM 5.x models. This behavior can be manually controlled with the new
setAutoSortTimeslices(boolean) and setAutoMergeFeatures(boolean) methods available on the model decoders.
ImprovementAviation Standards
TLcdAIXM5MessageUtil and TLcdAIXM51MessageUtil now only generate new messages and features in the sortMessage
and mergeFeatures methods if this is absolutely required.
ImprovementDefense Standards
LMAP-3123
Improved sample code by adding support for multi-databases. Sample 2 allows you to set a
directory as VPF root node that contains other VPF root nodes indirectly. This way, multiple
databases can be loaded at once. Their results can be shown separately or merged together, both
for the tree and the layer controls of the sample.
ImprovementDefense Standards
TLcdNITFModelDecoder now has a setting allowing it to create multi-level rasters instead of
single-level ones.
ImprovementDefense Symbology
Added support in both MS2525b/c and APP-6A/B for the new unified ILcdDataObject interface. The
data model, data types and data properties can be found in the TLcdMS2525bDataTypes and TLcdAPP6ADataTypes
The data model, data types and data properties can be found in the TLcdMS2525bDataTypes and
TLcdAPP6ADataTypes classes respectively. Additionally, both the TLcdMS2525bModelDescriptor and the
TLcdAPP6AModelDescriptor now implement the ILcdDataModelDescriptor interface.
Since the MIL-STD 2525b/c and APP-6A/B model descriptors now implement ILcdDataModelDescriptor,
all elements in such models are required to implement ILcdDataObject.
Custom domain objects wrapping the existing MIL-STD 2525b/c and APP-6A/B domain objects
will therefore need to implement ILcdDataObject as well, if they are contained
in a model with a MIL-STD 2525b/c or APP-6A/B model descriptor.
ImprovementInfrastructure Standards
The TLcdDGNModelDecoder now supports DGN V8 files.
ImprovementInfrastructure Standards
The TLcdDWGModelDecoder now supports DXF as well as DWG files. The decoder can load files
up to versions R2010 (including R13C3, R14, R2000, R2004, R2007 and R2010).
ImprovementMaritime Standards
Thread-safety of the S-52 rendering engine has been improved. An S-52 symbology instance can
now
be shared among different conditional symbologies / painter providers on different threads.
Conditional symbologies and S-52 painter providers should still be created per thread.
ImprovementMaritime Standards
The performance of the S-52 visualization engine has been improved. Especially the rendering
speed of ECDIS data during dragging has been increased significantly. To take fully
advantage of
these optimizations, applications should replaced existing ECDIS layer list hierarchies
(TLcdS52GXYCatalogueLayerList, TLcdS52GXYLevelLayerList) by the new TLcdS52GXYCatalogueLayer
class. This class provides similar configuration options as the
TLcdS52GXYCatalogueLayerList,
with the main difference that it is not a layer list. The EcdisLayerFactory provided with
the
samples illustrates the usage of this class.
ImprovementMaritime Standards
The S-57 data model now supports the unified generic model; all domain classes now implement
the
ILcdDataObject interface, the S-57 model descriptor now implements ILcdDataModelDescriptor.
Since the S-57 model descriptor now implements ILcdDataModelDescriptor, all elements in S-57
models are required to implement ILcdDataObject. Custom domain objects wrapping S-57 model
elements will need to implement ILcdDataObject as well, if they are contained in a model
with an
S-57 model descriptor.
ImprovementRadar Connectors
Updated ASDI classes to support ILcdDataObject interface. While ILcdFeatured is still supported,
it is recommended to use the ILcdDataObject interface instead. For more information, refer to
the developer's guide as well as the API reference of the new classes: TLcdASDIMessageDataTypes,
TLcdASDIDataTypes, TLcdASDIFlightPlanDataTypes, TLcdASDITrackTODataTypes and TLcdASDITrackTZDataTypes.
ImprovementRadar Connectors
Adjusted domain objects (tracks and trajectories) to support the unified ILcdDataObject interface. The
ILcdDataObject interface is an improvement over the ILcdFeatured interface. ILcdFeatured is still supported
for reasons of backwards compatibility.
On top of that, the ASTERIX Industry Specific Component now features a new class that can statically retrieve a data
model
for a given user application profile. The data model can also be retrieved through the ALcdASTERIXModelDescriptor,
which now implements ILcdDataModelDescriptor.
Bug fixLuciadLightspeed
LMAP-4815
ALcdGXYPen's hot points could permanently change the stroke of the graphics instance.
This has been fixed.
Bug fixLuciadLightspeed
LMAP-4738
Fixed issue in certain Linux distributions of Java that would cause the cursor icon to get stuck
on the default icon after closing a balloon.
Bug fixLuciadLightspeed
LMAP-4733
TLcdLonLatHeightPoint.interacts2D() now takes longitude wrapping into account. It now behaves
identical to TLcdLonLatPoint.interacts2D().
Bug fixLuciadLightspeed
LMAP-4720
TLcdLonLatPoint.interact2D() had an issue when one point was at longitude -180 and the other
at 180. The reverse already worked.
Bug fixLuciadLightspeed
LMAP-4749
The luciadmap.jar no longer contains classes from the specialized raster packages, so
obfuscation
no longer reports any warnings.
Bug fixLuciadLightspeed
LMAP-4781
TLcdTarModelListDecoder, TLcdZipModelListDecoder, and TLcdUSRPModelDecoder
returned an ILcdModelTreeNode with a null model reference, which could
lead to NullPointerExceptions.
These decoders have been adjusted.
The default model of the TLcdGXYLayerTreeNode had a null model reference. This has
been adjusted as well.
Bug fixLuciadLightspeed
LMAP-4736
When decoding a GML document that contains feature collections as children of the root
feature, the display name of
the model descriptor the child feature collections are now derived from the type name of the
root feature collection.
In older V10 releases, all these feature collections (the root
and all its children) used the source name of the decoded document.
Bug fixLuciadLightspeed
LMAP-4768
The filled part of the FILLED_TRIANGLE and OUTLINED_AREA TLcdSymbols did not stay within the
outline.
Bug fixLucy (LuciadLightspeed)
LUCY-2845
TLcyPreviewAddOn: when a simulator model filter is removed from the preview add-on, the add-on
now removes its change listener.
Bug fixLuciadLightspeed
LMAP-4754
Exporting a model to GML now properly uses the model reference formatter
set on the encoder.
Bug fixLucy (LuciadLightspeed)
LUCY-2577
Intersection plane sample: the colors of the intersected objects are now correctly restored
after workspace decoding.
Bug fixLucy (LuciadLightspeed)
The TLcyEarthOpenGLAddOn format now only accepts its own models. For example its layer factory
only accepts those models.
Bug fixLuciadLightspeed
LMAP-2132
The tool tip sample now uses ILcdGXYPainter.isTouched instead of ILcdShape.contains2D to
find out which object needs a tool tip. This makes it also work for points.
Bug fixLuciadLightspeed
Exporting a model to GML now properly takes the model reference into account
when deciding on dimension (2D vs 3D) and coordinate order (lat-lon vs lon-lat).
Bug fixLuciadLightspeed
LMAP-4169
TLcdContourFinder could not find some contours around certain configurations of values in the
grid.
This has been fixed.
Bug fixLuciadLightspeed
LMAP-4331
The GML model encoder can now export data object enabled models (that is models whose
elements implement
ILcdDataObject and whose model descriptor implements ILcdDataModelDescriptor).
Bug fixLuciadLightspeed
LMAP-4599
Correct the interpretation of angles (bearing) for arcs in a model reference
where the first coordinate axis is north (in such a reference, coordinates
are expressed as lat-lon).
Bug fixLuciadLightspeed
LMAP-4596
TLcdGXYLayer now better respects the layer, painter, and label painter paint modes.
Among others, the following issues are fixed:
- painters never got the ILcdGXYPainter.DEFAULT flag
- label painters never got the ILcdGXYLabelPainter.DEFAULT flag
- several inconsistencies regarding the ILcdGXYLayer.HANDLES flag
Bug fixLuciadLightspeed
LMAP-4103
TLcdXMLSchemaBasedEncoder and TLcdXMLSchemaBasedDecoder now only close OutputStream and
Inputstream instances that they create themselves. They used to close also streams that
were passed as input parameters.
Bug fixLuciadLightspeed
When using asynchronous painting and adding a new view (with an ILcdGXYEditableLabelsLayer),
it was possible that the ALcdLabelLocations of the wrapped layer were not synchronized correctly
initially.
Bug fixLucy (LuciadLightspeed)
LUCY-2695
All ILcySimulatorModelFactory instances now respect the documentation and throw an
IllegalArgumentException
in the createSimulatorModel method when they cannot create a simulator model for the specified
model.
Bug fixLuciadLightspeed
LMAP-4395
A minor bug was fixed in TLcdGXYLabelPainter's discrete placements.
Among others, the halo thickness was not taken into account.
Bug fixLuciadLightspeed
The intersection2DLSSFCT methods of TLcdEllipsoid compute the intersection point of two geodetic
lines accurately on the ellipsoid instead of using a spherical approximation.
Bug fixLuciadLightspeed
LMAP-4156
The following classes are now thread-safe for read-only access:
This also improves the thread-safety of the
ILcdModel
objects produced by
the following decoders:
Bug fixTerrain Analysis Engine
LMAP-4622
Fixed height line of sight could give a numerical problem when maximum vertical angle was a value
near 180 degrees.
Bug fixTerrain Analysis Engine
LMAP-4170
TLcdRasterMatrix: a numerical problem was fixed that caused row and column indices at certain
edges to be treated as being outside the matrix.
Bug fixWeather & Environment Standards
LMAP-4616
Lucy GRIB painter used to be inaccurate in some regions. This has been
resolved.
Bug fixWeather & Environment Standards
LMAP-4614
GRIB Bulletin model decoder can now decode GRIB1 files with alternative
header structure.
Bug fixWeather & Environment Standards
LMAP-4605
GRIB bulletin model descriptor now contains model descriptors of all
contained models in ModelTreeNode mode.
Bug fixWeather & Environment Standards
LMAP-4684
Decoded GRIB rasters now properly return unsigned integers for the internal
values (ILcdRaster#retrieveValue and ILcdTile#retrieveValue).
Bug fixWeather & Environment Standards
LMAP-4697
Decoded GRIB rasters that wrap around the globe no longer leave a narrow
vertical gap (typically right next to the meridian).
Bug fixDefense Symbology
LMAP-4816
The representation of the APP-6A decoy symbol (S*A*WD----*****, 2.X.2.2.2) was not correct and has been fixed.
Bug fixInfrastructure Standards
LMAP-3896
For some arcs, the sweep angle were reserved. The angles are now correct.
Bug fixInfrastructure Standards
LMAP-3888
TLcdDWGModelDecoder had an error in its decompression routine that caused some R2004 files
to fail.
Bug fixInfrastructure Standards
LMAP-3592
TLcdDGNModelDecoder can now handle files with certain ellipse shapes that previously failed.
Bug fixMaritime Standards
LMAP-4767
The orientation of edges in a S-57 line or area was not always taken into account.
Linestyles
which are asymmetric w.r.t. the line axis might therefore have been rendered incorrectly.
This
has been fixed now.
Upgrade considerationLuciadLightspeed
ELcdGML32NilReasonEnumeration and ELcdGML32TimeUnit have been renamed to use a TLcd prefix
and are now also regular
classes instead of enumerations. These new classes correspond better with the types that are
defined in the GML schema, and
the API that uses these types is now also clearer.
Existing users of these classes can simply use the new ones: TLcdGML32NilReasonEnumeration
and TLcdGML32TimeUnit. A method
is also available that allows retrieving a constant based on a String and allows iterating
over all known values. The
change also applies to the corresponding classes in GML 3.1.
In most cases, this change results in a compilation error. However, this is not the case
when
the NilReasonEnumeration type is used as part of another union and/or choice.
An example of this are for instance the nilReason and envelopeOrNull properties on
TLcdGML32BoundedShape. The type of these properties is Object.class because they are
a union/choice between TLcdGML32NilReasonEnumeration and another class (URI/Envelope).
As such, no compilation errors are generated when a String value would be assigned to these
properties. However, exceptions may occur at run-time because the property should not
contain a String object.
Upgrade considerationLuciadLightspeed
The classes TLcdSHPPointM, TLcdSHPPointZ, TLcdSHPPolygonZ and TLcdSHPPolylineZ no longer
implement ILcdDataObject. The interface was removed as geometry information for the SHP
format is no longer exposed through the ILcdDataObject API. In case applications require
access to the values contained in these geometries, the API exposed by the 4 before mentioned
classes should be used.
Upgrade considerationLuciadLightspeed
In XML, a number of providers (TLcdXMLSchemaBasedMarshallerProvider, TLcdXMLSchemaBasedUnmarshallerProvider,
TLcdXMLTypeMarshallerProvider, TLcdXMLTypeUnmarshallerProvider, TLcdXMLTypeObjectFactoryProvider,
TLcdXMLMarshallerProvider and TLcdXMLUnmarshallerProvider) have a type unsafe API. These providers
have public methods that return an object with a type parameter that is only used in the
return value. As a result, the Java compiler's type inference allows callers to specify the
type. This is incorrect and can lead to type unsafe code (this is code that compiles correctly
but yields ClassCastExceptions at run-time). This unsafe API has been changed to use a
wild-card type parameter as return type. This change may result in compilation errors. For type-safe
code, these compilation errors can be easily fixed by using appropriate type parameters.
Take the example ofILcdXMLUnmarshaller
. This class has a method
public <U, T extends U> ILcdXMLUnmarshaller<T> getUnmarshaller( QName aName, Class<U> aJavaClass )
.
This signature of this method is changed to
public <U> ILcdXMLUnmarshaller<? extends U> getUnmarshaller( QName aName, Class<U> aJavaClass )
.
Because of this change, the following code no longer compiles,
ILcdXMLUnmarshaller<X> m = provider.getUnmarshaller( ..., X.class );
and should be replaced by
ILcdXMLUnmarshaller<? extends X> m = provider.getUnmarshaller( ..., X.class );
Upgrade considerationLuciadLightspeed
The magnetic north model decoders TLcdWMMModelDecoder and TLcdGRFModelDecoder now create
TLcdValuedContour instances that contain ILcdPolyline shapes, instead of ILcdValuedPolygon
instances that contain ILcdPolygon shapes. The old behavior can still be reproduced by calling
the setCreateValuedPolygons() method (found in both model decoders) with parameter true. The
default
behavior will have this value set to false.
Upgrade considerationLuciadLightspeed
The behavior of the default model reference in TLcdDatabaseModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only be used when the method createModelReference of the ILcdDatabaseFactory associated
with the TLcdDatabaseModelDecoder returns null.
The old behavior can be accomplished easily by
wrapping the TLcdDatabaseModelDecoder and manually replacing the reference of the decoded model
with your model reference of choice (cast to ALcdModel and use setModelReference).
Upgrade considerationLucy (LuciadLightspeed)
Because labeling is now managed globally, individual layers no longer offer a "decluttering"
option.
This is due to the fact that Lucy now uses the new ILcdGXYViewLabelPlacer functionality (see
previous release note about labeling support in Lucy). If the pre-10.1 label painter
functionality
should still be used, there is a property to go back : TLcyMapAddon.useViewLabelPainter. This
property should be set to true in your map addon's configuration file.
Upgrade considerationLuciadLightspeed
ILcdPOLGeometry now implements ILcdDataObject. Any custom implementations of this interface will
have to implement this interface, using the POL data model found in TLcdPOLDataTypes.
Upgrade considerationLuciadLightspeed
ILcdDatabaseModelDescriptor now extends ILcdDataModelDescriptor. This change is a part
of the upgrade of all vector formats supported by LuciadMap to support ILcdDataObject.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2497
TLcyStringPropertiesCodec will now throw an exception when reading configuration files with
duplicate
keys. Having duplicate keys could cause confusion as only one of the values was actually used.
Upgrade considerationLuciadLightspeed
ILcdGXYEditableLabelsLayer now defines two new applyOnInteract() methods which take a
paint mode as argument. One of these methods can be used to query domain objects, the
other method can be used to query labels. These methods encapsulate the logic used to
decide which objects and labels are painted by the layer. Hence, they take into account
the labeled, scaleRange and labelScaleRange properties. For TLcdGXYLayer, the methods also
use the selectionLabeled and filter properties for example. So these methods remove the
need to do these checks externally, improving the encapsulation of the paint/applyOnInteract
behavior of the layer.
To see how these methods can be used to adjust the label painting behavior, see the
labels.offset sample. In this sample, a distinction is made between labels representing
bodies, and text labels. 'Body labels' are painted together with the bodies, and 'text
labels' are painted on top later.
This incompatible change impacts all user implementations of ILcdGXYEditableLabelsLayer.
In that case a compile error is triggered. This compile error can be solved by implementing
the two methods. For wrappers, the methods can be implemented by delegating to the wrapped
ILcdGXYEditableLabelsLayer. For other implementations, ILcdGXYLayer#applyOnInteract() can
be reused. However the implementation should take into account all settings that could
modify the painting behavior.
Upgrade considerationLuciadLightspeed
The public constant
UNKNOWN_TYPE
was moved from
TLcdCoreDataTypes to TLcdUnknownDataTypes. The type is now defined also in
TLcdUnknownDataTypes.getDataModel()
and no longer
inTLcdCoreDataTypes.getDataModel()
.
Upgrade considerationLuciadLightspeed
TLcdComplexPolygon no longer extends TLcdShapeList or implements
ILcdShapeList, since this extension was semantically not sound. Although
it was occasionally convenient, it was often causing unexpected behavior,
for instance when performing a series of instanceof tests. For backward
compatibility, the typical TLcdShapeList methods are still available in
TLcdComplexPolygon, but code that used to treat TLcdComplexPolygon as an
ILcdShapeList will no longer function properly. Notably:
- Assigning a TLcdComplexPolygon to an ILcdShapeList (local
variable, argument, or field) will fail at compile-time.
- Casting a TLcdComplexPolygon to an ILcdShapeList will fail at
run-time (with a ClassCastException).
- Performing an instanceof test of a TLcdComplexPolygon with
ILcdShapeList will now return false at run-time.
A possible symptom may be that complex polygons are not appearing in a
view, because shape list painters and editors no longer work.
The simple solution is to use complex polygon painters (like
TLcdGXYPointListPainter) instead, which paints polygons correctly (taking
into account any holes, unlike the shape list painters).
Another symptom may be that complex polygons are not being encoded in a
custom encoder, because they are no longer recognized. The encoder should
then be adapted to iterate over the contained polygons instead of over the
contained shapes.
Upgrade considerationLuciadLightspeed
Two new methods were added to the ILcdDataObject interface:
boolean hasValue( TLcdDataProperty aProperty );
boolean hasValue( String aPropertyName );
These methods return true if a value is set for the specified property, false otherwise.
They allow to test whether a multivalued property has a value, without triggering the creation
of the Collection instance holding the values of that property (in case the collection would be
empty and getValue() would lazily the collection).
Classes that implement ILcdDataObject and do not inherit their ILcdDataObject implementation
from
a LuciadMap API class will no longer compile and need to be updated.
The following code snippet provides a default implementation for these methods that is
sufficient for most applications:
public boolean hasValue(TLcdDataProperty aProperty ) {
Object value = getValue( aProperty );
if ( value != null ) {
TLcdDataProperty.CollectionType collectionType = aProperty.getCollectionType();
if ( collectionType != null ) {
switch ( collectionType ) {
case LIST:
case SET:
return ( ( Collection ) value ).size() > 0;
case MAP:
return ( ( Map ) value ).size() > 0;
}
}
// Single-valued.
return true;
}
// No value set.
return false;
}
public boolean hasValue( String aPropertyName ) {
return hasValue(getDataType().getProperty( aPropertyName ));
}
Only in cases where the data objects contain a large number of
multivalued properties of which many are empty, a more optimized implementation that does not
delegate to getValue() should be considered.
Upgrade considerationLuciadLightspeed
ILcdGXYEditableLabelsLayer now defines a new paint mode, PLACED_LABELS, which is used to
signal that already placed labels should be painted. This mode is only passed to the layer when
an ILcdGXYViewLabelPlacer is set on the view. When not using TLcdGXYLayer or an extension of it
and when using an ILcdGXYViewLabelPlacer, the implementation of ILcdGXYLayer#paint() should be
adjusted to support the ILcdGXYEditableLabelsLayer#PLACED_LABELS paint mode.
Upgrade considerationLuciadLightspeed
The return type of the following methods has been changed:
- TLcdKML22DocumentProvider.updateDocument: changed from boolean to TLcdKML22Kml
- TLcdKML22ImageProvider.updateImage: changed from boolean to Image
A true return value now corresponds to an object being returned, a false return value now
corresponds to null being returned.
Upgrade considerationLuciadLightspeed
The ILcdSVGModelDescriptor interface now implements ILcdDataModelDescriptor. If you
have a custom implementation of this interface, you can delegate the work of the new
interface methods to the TLcdSVGModelDescriptor class as a workaround. Another
option would be to extend from TLcdSVGModelDescriptor directly, which is the recommended
alternative.
Upgrade considerationLuciadLightspeed
LMAP-4574
The
ALcdBalloonManager
no longer wraps the content generated by its
ILcdBalloonContentProvider
in a
scrollpane. This allows for more flexibility while generating content. If you have any custom
balloon
content providers and would like to keep the scrollbar functionality, just wrap the content in a
JScrollPane
before returning it to the
ALcdBalloonManager
:
public JComponent getContent( ALcdBalloonDescriptor aBalloonDescriptor ) {
//generate content as before
JComponent contentPanel = generateContentPanel(aBalloonDescriptor);
//wrap the result in a scrollpane
JScrollPane scrollPane = new JScrollPane( contentPanel,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
return scrollPane;
}
Upgrade considerationLuciadLightspeed
LMAP-4584
The property names of the property change events (PropertyChangeEvent#getPropertyName())
fired when calling various setters of TLcdGXYLabelPainter now comply to the specification.
As such, the property names can easily be derived from the method names, avoiding any
confusion in the future.
Search your code for the below strings in the context of PropertyChangeListener's, and
rename them like this:
- TLcdGXYLabelPainter#setForeground: "foreGroundColor" -> "foreground"
- TLcdGXYLabelPainter#setBackground: "backGroundColor" -> "background"
- TLcdGXYLabelPainter#setFrame: "framed" -> "frame"
Upgrade considerationLucy (LuciadLightspeed)
TLcyDrawingAddOn: the default drawing model descriptors and domain objects now
implement ILcdDataModelDescriptor and ILcdDataObject
respectively (see TLcyDrawingDataModelDescriptor and TLcySLDDomainObject). This will affect
drawing models including custom domain objects which do not extend from TLcySLDDomainObject.
In such case, you can either adjust your custom domain objects to implement
ILcdDataObject as well,
or set the "TLcyDrawingAddOn.useDataModel" property to false in the configuration file.
Upgrade considerationLuciadLightspeed
TLcdGXYEditableLabelPainter has been deprecated in favor of
ILcdGXYLabelEditor. The latter interface has a cleaner separation
of concerns, and is independent of the ILcdGXYPainter used for the domain object.
Upgrade considerationLucy (LuciadLightspeed)
The JGoodies binding.jar and form.jar have been updated to version 2.0.6 and 1.3.0 respectively
Upgrade considerationLucy (LuciadLightspeed)
TLcyAsynchronousPaintHint now extends from TLcdGXYAsynchronousPaintHint, allowing to create a
paint
hint which places no restrictions on the corresponding paint queue. This change will
only affect code which performs its own asynchronous paint queue management based on the
TLcyAsynchronousPaintHint instances.
Such code should first verify whether the properties map of the paint hint is empty, before
considering the results of the getters of the paint hint, e.g.
TLcyAsynchronousPaintHint paintHint = ....
String mergeGroup = paintHint.getMergeGroup();
//do something based on the merge group
should be replaced by
TLcyAsynchronousPaintHint paintHint = ....
//first check whether the getters may be called
if ( !paintHint.getProperties().isEmpty() ){
//do something based on the merge group
} else {
//do something based on the fact that the merge group is not specified
}
Upgrade considerationLuciadLightspeed
ILcdMIFShape now extends the ILcdDataObject interface. The interface still extends the
ILcdFeatured
interface for backwards compatibility, but any custom implementations will have to implement the
new
interface as well.
Upgrade considerationLuciadLightspeed
LMAP-4378
TLcdDataTypeBuilder now constrains the names that can be used for properties. Names of
properties
can only consist of letters, digits and the '_' character. More elaborate property names
can be stored in the display name of the property.
Upgrade considerationLuciadLightspeed
ALcdLabelLocations has been modified to provide better support for the tracking of changes in
the painted status of TLcdLabelLocation objects. Two methods were adjusted to have an extra
argument denoting a fire event mode : setPainted() and clearAllPainted(). Classes extending
ALcdLabelLocations should be adjusted to implement these abstract methods. The implementations
of these methods can be facilitated by using TLcdLabelLocationEventSupport.
Three extra abstract methods were added : fireCollectedLabelPaintedChanges(),
addLabelPaintedListener()
and removeLabelPaintedListener(). TLcdLabelLocationEventSupport can also be used to implement
these methods.
When setPainted() of clearAllPainted() is called by user code, a compile error will be shown.
The fix is to add one of the following three modes as extra argument :
ILcdFireEventMode.FIRE_NOW,
ILcdFireEventMode.FIRE_LATER. Also note that when
ILcdFireEventMode.FIRE_LATER is passed to these methods, fireCollectedPaintedChanges() should
be called later.
Upgrade considerationDatabase Connectors
The behavior of the default model reference in TLcdPostGISModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only be used when no model reference can be created based on the properties file or database table.
The old behaviour can be accomplished easily by wrapping the TLcdPostGISModelDecoder and
manually replacing the reference of decoded models with your model reference of choice
(cast to ALcdModel and use setModelReference).
Upgrade considerationDatabase Connectors
The behavior of the default model reference in TLcdInformixSpatialModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only be used when no model reference can be created based on information from the properties file
or database.
The old behavior can be accomplished easily by wrapping the TLcdInformixSpatialModelDecoder and
manually replacing the reference of decoded models with your model reference of choice
(cast to ALcdModel and use setModelReference).
Upgrade considerationDatabase Connectors
The behavior of the default model reference in TLcdInformixGeodeticModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only when an unsupported SRID is specified in the properties file or in the database.
The old behavior can be accomplished easily by wrapping the TLcdInformixGeodeticModelDecoder and
manually replacing the reference of decoded models with your model reference of choice
(cast to ALcdModel and use setModelReference).
Upgrade considerationDatabase Connectors
The behavior of the default model reference in TLcdOracleSpatialModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only when an unsupported SRID is specified in the properties file or in the database.
The old behavior can be accomplished easily by wrapping the TLcdOracleSpatialModelDecoder and
manually replacing the reference of decoded models with your model reference of choice
(cast to ALcdModel and use setModelReference).
Upgrade considerationDatabase Connectors
The behavior of the default model reference in TLcdDB2SpatialModelDecoder has been changed.
Before, the default model reference was always used when set. Now, the default model reference
will only be used when no model reference can be created based on information from the properties file
or database.
The old behavior can be accomplished easily by wrapping the TLcdDB2SpatialModelDecoder and
manually replacing the reference of decoded models with your model reference of choice
(cast to ALcdModel and use setModelReference).
Upgrade considerationDatabase Connectors
If all the database rasters matching the ogr file or Properties object have
the same geographic reference, then the TLcdOracleGeorasterModelDecoder
returns an ILcd2DBoundsIndexedModel, as before. However, if the rasters
matching the ogr file or Properties object have different geographic
references, then the model decoder returns an ILcdModelTreeNode. The
ILcdModelTreeNode contains several ILcd2DBoundsIndexedModel sub-models, one
for each encountered geographic reference. Previously, the rasters that had
a different reference than the first one retrieved were discarded and a
warning message was logged.
Upgrade considerationGraph and Routing Engine
The GDF data model now supports the unified generic model; all domain classes now implement the
ILcdDataObject interface, the GDF model descriptors now implement ILcdDataModelDescriptor.
To support the unified generic model, the ILcdGDFFeature interface has been modified to extend
the ILcdDataObject interface. Classes implementing ILcdGDFFeature should be modified to
implement the
methods of ILcdDataObject. Wrappers around GDF domain classes can simply delegate these methods
to the corresponding methods in the wrapped class.
Since the GDF model descriptor now implements ILcdDataModelDescriptor, all elements in
GDF models are required to implement ILcdDataObject. Custom domain objects wrapping GDF
model elements will need to implement ILcdDataObject as well, if they are contained in a model
with an GDF model descriptor.
Upgrade considerationAviation Standards
All AIXM 5.1 methods that represent a value with a unit of measure, such as TLcdAIXM51ValDepth, now
have better accessors for the nilReason and the uom attributes. Both of these attributes can no longer
be set as a String but require an instance of a specific class. This makes the api more usable.
Existing users of these accessors that use String instances can simply use the constructors that are available
on the new types (TLcdGML32NilReasonEnumeration and TLcdAIXM51Uom*) to create an instance that corresponds to the
String.
The new types also have predefined constants that correspond to well known values.
Upgrade considerationAviation Standards
Getters and setters for the 'nilReason' attribute that occurs on various types have been adapted
to be compatible with the classes of the actual values of this attribute. Getters and setters that used
to work with a String now use a TLcdGML32NilReasonAnnotation or an Object. In case of an Object, the methods
support both instances of URI and TLcdGML32NilReasonAnnotation.
Existing uses of these methods that worked with a String should convert the String to either a URI or a
TLcdGML32NilReasonEnumeration when
using the setter. For the getter, both of these types can easily be converted to a String if required.
Upgrade considerationAviation Standards
The methods getDataObjectFactory() and setDataObjectFactory(TLcdAISDataObjectFactory) have
been added to ILcdDAFIFDecoder. These methods allow the decoder to create domain objects
that properly implement ILcdDataObject.
Upgrade considerationAviation Standards
The names of the AIXM 5.1 enumeration model classes representing units of measure
have the 'Type' suffix in their names dropped, and they now have a TLcd prefix.
For instance, the ELcdAIXM51UomDepthType class
has been renamed as such to TLcdAIXM51UomDepth. This is more consistent with their names in AIXM 5.0.
These classes have also been changed from enumerations to regular classes. This results in a better correspondence
with the AIXM 5.1 schema, and makes other API that uses these classes more usable. A method is available to retrieve
all known values for a given type.
This change will result in compile time errors for code that uses one of classes listed below. These
errors can be easily solved by also removing the 'Type' suffix.
All uses of the following class names should be replaced with the new names:
- ELcdAIXM51UomTemperatureType
- ELcdAIXM51UomDepthType
- ELcdAIXM51UomDistanceType
- ELcdAIXM51UomDistanceVerticalType
- ELcdAIXM51UomDurationType
- ELcdAIXM51UomFLType
- ELcdAIXM51UomFrequencyType
- ELcdAIXM51UomLightIntensityType
- ELcdAIXM51UomPressureType
- ELcdAIXM51UomSpeedType
- ELcdAIXM51UomWeightType
Upgrade considerationAviation Standards
The method TLcdARINCEnrouteCommunicationHandler#getKeyFeatureNames() has been removed. Applications
that need this information can always retrieve it using the TLcdAISKeyPropertiesAnnotation on the
EnrouteCommunication type in ARINC, TLcdARINCDataTypes#EnrouteCommunication.
Upgrade considerationAviation Standards
The 'name' and 'description' properties of time slices in the AIXM 5.0 and 5.1 domain model now use a prefix that
no longer contains 'TimeSlice', to make them more readable and convenient to use. This means that both property
constants and getters and setters for these properties now have a slightly different name.
Resulting compilation problems can be fixed easily by removing 'TimeSlice' from the affected methods or
property names. For instance, TLcdAIXM51AirportHeliportTimeSlice#getAirportHeliportTimeSliceName()
will need to be changed to getAirportHeliportName(). Also the corresponding constant
AIRPORT_HELIPORT_TIMESLICE_NAME_PROPERTY will need to be changed to AIRPORT_HELIPORT_NAME_PROPERTY.
This improvement will improve the readability of your code because these method names are now a bit shorter, and
it will avoid possible confusion as the previous naming might have suggested that it was the name or description of
the time slice instead of the name or description of the actual feature itself.
Upgrade considerationAviation Standards
New time slice classes have been added to the AIXM 5.0 and 5.1 domain model, making it easier
to access properties that are common between related time slice types (e.g., a runway marking and a taxiway
marking).
The new classes correspond to abstract feature types (e.g., a marking) that do not have a corresponding time slice
type in the AIXM schemas (e.g., a marking).
This is the list of added classes for AIXM 5.0; corresponding classes for 5.1 are also added:
- TLcdAIXM5AbstractMarkingTimeSlice
- TLcdAIXM5AbstractSegmentLegTimeSlice
- TLcdAIXM5AbstractServiceTimeSlice
- TLcdAIXM5AbstractTrafficSeparationServiceTimeSlice
- TLcdAIXM5AbstractAirportGroundServiceTimeSlice
- TLcdAIXM5AbstractAirportHeliportProtectionAreaTimeSlice
- TLcdAIXM5AbstractApproachLegTimeSlice
- TLcdAIXM5AbstractGroundLightSystemTimeSlice
- TLcdAIXM5AbstractNavaidEquipmentTimeSlice
- TLcdAIXM5AbstractNavigationSystemCheckpointTimeSlice
- TLcdAIXM5AbstractProcedureTimeSlice
- TLcdAIXM5AbstractRadarEquipmentTimeSlice
- TLcdAIXM5AbstractSurveillanceRadarTimeSlice
These classes are now also used in various getters and setters in the domain model. Existing code that
uses these methods might experience compilation problems that can easily be fixed by using the correct type.
Some of these classes also declare a 'name' and/or a 'description' property that used to be declared on the
subclasses with a class specific prefix. Due to the introduction of these super classes, the prefix has
changed. Resulting compilation problems can be fixed easily by simply changing the used method or
constant. For instance, a call to TLcdAIXM51InformationService#getInformationServiceTimeSliceName() will need to be
changed to
getServiceName(). Also the corresponding constant
TLcdAIXM51InformationService#INFORMATION_SERVICE_TIMESLICE_NAME_PROPERTY will
need to be changed to SERVICE_NAME_PROPERTY.
Upgrade considerationAviation Standards
Two methods have been added to ILcdAIXMHandler to get and set the handler's data object factory.
Handler implementations should use this data object factory to create domain objects.
The AIXM model decoder has been changed to use these methods to properly configure its registered handlers.
Upgrade considerationAviation Standards
Two methods have been added to ILcdARINCHandler to get and set the handler's data object factory.
Handler implementations should use this data object factory to create domain objects.
The ARINC model decoder has been changed to use these methods to properly configure its registered handlers.
Upgrade considerationAviation Standards
All interfaces in the AIS domain model now implement the ILcdDataObject interface. Existing implementations can either
choose to fully support this interface by using the new AIS data types, or they can simply fall back to an implementation
that returns TLcdUnknownDataTypes.UNKNOWN_TYPE for all data objects.
Upgrade considerationAviation Standards
Accessors on AIXM 5.0 and AIXM 5.1 model classes for properties that map on choices
in the AIXM 5.0 and 5.1 XML schema are now uniform with other accessors for association class
properties. This means that they hide the association class and directly expose the
object the association points to.
The following methods are affected in AIXM 5.0. In AIXM 5.1, the same methods are affected,
but note that small (name) differences can occur because of changes in the schema.
- ALcdAIXM5VerticalStructurePart#getHorizontalProjection()
- TLcdAIXM5ArrestingGearTimeSlice#getExtent()
- TLcdAIXM5MarkingElement#getExtent()
- TLcdAIXM5Obstruction#getObstruction()
- TLcdAIXM5RadioFrequencyArea#getEquipment()
- TLcdAIXM5AerialRefuelingPoint#getPointChoice()
- TLcdAIXM5TerminalSegmentPoint#getPointChoice()
- TLcdAIXM5EnRouteSegmentPoint#getPointChoice()
- TLcdAIXM5AngleIndicationTimeSlice#getPointChoice()
- TLcdAIXM5DistanceIndicationTimeSlice#getPointChoice()
- TLcdAIXM5SignificantPointInAirspaceTimeSlice#getLocation()
- TLcdAIXM5ObstacleAreaTimeSlice#getReference()
- TLcdAIXM5TerminalArrivalAreaTimeSlice#getIF()
- TLcdAIXM5TerminalArrivalAreaTimeSlice#getIAF()
- TLcdAIXM5NavigationAreaTimeSlice#getCentrePoint()
- TLcdAIXM5InstrumentApproachProcedureTimeSlice#getGuidanceFacility()
- TLcdAIXM5StandardInstrumentDepartureTimeSlice#getGuidanceFacility()
- TLcdAIXM5StandardInstrumentArrivalTimeSlice#getGuidanceFacility()
- TLcdAIXM5FinalLegTimeSlice#getFinalPathAlignmentPoint()
- TLcdAIXM5SafeAltitudeAreaTimeSlice#getCentrePoint()
- TLcdAIXM5HoldingPatterTimeSlice#getOutboundLegSpan()
- TLcdAIXM5DirectFlightSegment#getEnd()
- TLcdAIXM5DirectFlightSegment#getStart()
- TLcdAIXM5FlightRoutingElement#getPointElement()
- TLcdAIXM5FlightConditionElement#getSignificantPointCondition()
- TLcdAIXM5RoutePortion#getStart()
- TLcdAIXM5RoutePortion#getIntermediatePoint()
- TLcdAIXM5RoutePortion#getEnd()
- TLcdAIXM5ChangeOverPointTimeSlice#getLocation()
These methods now return the actual object instead of the XML choice object;
their return type is also adjusted to the most specific type (previously ILcdDataObjecT).
Upgrade considerationDefense Standards
The VPF domain model now supports the unified generic model; all domain classes now implement the
ILcdDataObject interface, the VPF model descriptor now implements ILcdDataModelDescriptor.
To support the unified generic model, the ILcdVPFFeature interface has been modified to extend
the ILcdDataObject interface. Classes implementing ILcdVPFFeature should be modified to implement the
methods of ILcdDataObject. Wrappers around VPF domain classes can simply delegate these methods
to the corresponding methods in the wrapped class.
Since the VPF model descriptor now implements ILcdDataModelDescriptor, all elements in VPF models
are required to implement ILcdDataObject. Custom domain objects wrapping VPF model elements will
need to implement ILcdDataObject as well, if they are contained in a model with an VPF model
descriptor.
Upgrade considerationInfrastructure Standards
The TLcdDGNModelDecoder now uses the ODA Teigha native library to perform the actual decoding. The old
decoder is still available and can be activated using the system property dgn.decoder.legacy=true.
Upgrade considerationInfrastructure Standards
DGN tags are now available through the Data Model API. Therefore, ILcdDGNShape now extends
ILcdDataObject and TLcdDGNModelDescriptor implements ILcdDataModelDescriptor.
Upgrade considerationInfrastructure Standards
DWG extented entities are now available through the Data Model API. Therefore, ILcdDWGShape now
extends ILcdDataObject and TLcdDWGModelDescriptor implements ILcdDataModelDescriptor.
Upgrade considerationRadar Connectors
The ILcdASDIMessageFilter has been changed to accommodate the new ILcdDataObject interface. The
accept method now accepts a single ILcdDataObject instance instead of an ILcdFeatured and an
ILcdFeaturedDescriptor. The properties for this ILcdDataObject can be found in the TLcdASDIMessageDataTypes
class. The filter still offers equivalent functionality, while being easier to use in an IDE with
auto-completion.
The TLcdASDIMessageInputStream.readMessage() method now returns an ILcdDataObject representation
of a message instead of an ILcdFeatured representation. The properties for this ILcdDataObject
match the one given in ILcdASDIMessageFilter. For more information, refer to the API reference
of TLcdASDIMessageDataTypes class.
10.0
10.0.19
ImprovementLucy (LuciadLightspeed)
LUCY-2807
TLcyAIXMAddOn, TLcyARINCAddOn: the layer labels of root nodes in 3D maps are now set to the file
name of the loaded data. This is similar to the behavior for 2D root nodes.
ImprovementLuciadLightspeed
LMAP-4734
Support use of urn:ogc:def:uom:EPSG codes for units of measure in GML.
ImprovementLuciadLightspeed
LMAP-4735
Default values for URI's are now shared; this reduces memory usage for large GML
models that contain for instance time geometric primitives.
ImprovementDefense Standards
LMAP-4579
The GeoSym provider now recognizes the VMAP2i product type; the symbology that is used for visualizing
the product is that of VMAP Level 2.
ImprovementMaritime Standards
TLcdS52GXYLevelLayerList can now handle model list structures that have one or more empty
model
lists.
ImprovementMaritime Standards
LuciadMap releases only contain resource files for the latest version of the S-52
presentation
library. The deprecated color schemes DAY_BLACK_BACK and DAY_WHITE_BACK which are no longer
supported by the latest version of the S-52 library can now be enabled again in LuciadMap by
including the old DAYBLACKBACK.DAT and DAYWHITEBACK.DAT files in the classpath.
ImprovementS-63
S-63 cell name look up is no longer case sensitive; this resolves a potential issue -
unfound
cell permits - in
places where the case of the file names would have changed during distribution of the data.
Bug fixLucy (LuciadLightspeed)
LUCY-2847
TLcyEarthOpenGLAddOn: the memory requirements could become excessive after some zooming and
panning, resulting
in a performance loss. This has been resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-2844
The date of the ASTERIX simulator models was not always correctly restored. This has been
resolved for new
workspaces.
Bug fixLuciadLightspeed
LMAP-4765
TLcdEarthGLShapeTileSet: no longer logs an error for some exceptions that are actually valid
scenarios.
Bug fixLuciadLightspeed
LMAP-4665
TLcdOGCFilterEvaluator now properly evaluates comparison operators with
operands that implement Comparable.
Bug fixLuciadLightspeed
LMAP-4745
The custom JAI cache implementation (mostly used by TLcdGeoTIFFModelDecoder)
suffered from memory leaks, which have been corrected now.
Bug fixLucy (LuciadLightspeed)
LUCY-2839
Fixed NullPointerException in the TLcyDataFormatManager which occurred when a model decoder
returned
null after canDecodeSource returned true.
Bug fixLucy (LuciadLightspeed)
LUCY-2837
TLcyDrawingAddon: customizer panels did not properly check whether they can handle a certain
object. This is now resolved.
Bug fixLuciadLightspeed
LMAP-3984
TLcdEarthElevationDataSplitter: fixed interpolation bug.
Bug fixLuciadLightspeed
Fix the IndexOutOfBoundsException that could occur when exporting certain complex polygons
to GML.
Bug fixLuciadLightspeed
LMAP-4732
Creating TLcdJULFileHandler programmatically threw an IllegalArgumentException.
Bug fixLuciadLightspeed
LMAP-4731
TLcdGXYCircleBy3PointsPainter and TLcdGXYSurfacePainter threw a NullPointerException
when painting with a null fill style.
Bug fixLuciadLightspeed
LMAP-4721
TLcdEllipsoidUtil.intersection2DLineSegments now detects all border cases.
Bug fixAviation Standards
LMAP-4737
The width feature of ILS localizers is now correctly decoded as a double instead of a float. This
makes the data consistent with the information in the feature descriptors.
Bug fixAviation Standards
ILcdAIXMAirspaceFeature: The name of the 'Airspace activity' feature that is common to most AIXM airspace types was incorrectly
spelled. The name of the feature has been corrected from 'Airspace acitivity' to 'Airspace activity'.
Bug fixMaritime Standards
LMAP-4766
A bug in the internal intersection computation algorithm of S-57 has been fixed. This issue
may
have resulted into an incorrect minimum or maximum depth computation of S-57 points and in
rare
cases an incorrect visualization of the affected point. The issue only affects a very small
amount of points (typically less than 0.01 per cent of the computed depths).
10.0.18
Bug fixLuciadLightspeed
LMAP-4719
TLcdSHPModelDecoder.setWithLazyFeaturing() was broken in LuciadMap 10.0. The
decoder always loaded the full contents of the .DBF file regardless of the
setting of the 'lazy featuring' property. The intended behavior has been
restored, i.e. if lazy featuring is on then object attributes are only read
from the .DBF file when they are first accessed by the application.
Bug fixLuciadLightspeed
LMAP-4724
The TLcdGML32ArcByBulge and TLcdGML31ArcByBule did not always compute a correct bulge when
using their LuciadMap interface.
Bug fixLuciadLightspeed
LMAP-4722
The array-based list implementations for native types (TLcdIntArray, TLcdDoubleArray, etc.)
now ensure their capacity (ensureCapacity) similar to java.util.ArrayList. This greatly
improves their performance when large lists need to grow.
Bug fixLuciadLightspeed
LF-4
Some georeferences caused an error when fusing.
10.0.17
ImprovementLuciadLightspeed
LMAP-4718
Improved the behavior of TLcdGXYNavigateControllerModel with rotation disabled.
Bug fixLucy (LuciadLightspeed)
LUCY-2826
Fixed a class cast exception when removing asynchronously painted layers from multiple views.
Bug fixLuciadLightspeed
LMAP-4663
The bounds of a TLcdLonLatFloatPolygon around the poles were not correct.
Bug fixLuciadLightspeed
LMAP-4703
TLcdSingleTileRaster now correctly handles rounding problems near its
border, which sometimes duplicated the first row and column of pixels.
Bug fixLuciadLightspeed
LMAP-4702
TLcdRPCProjection now correctly handles a non-zero image height that is set.
This corrects the model reference that is decoded for NITF files with
RPC00B extensions, for instance.
Bug fixLucy (LuciadLightspeed)
LUCY-2823
TLcyPrintAddOn: the configurable actions would only be inserted if the map component was
menuBarCapable. This has been
resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-2822
A NullPointerException could occur when using the zoom wheel controller on a 2D map. This has
been
resolved.
Bug fixLuciadLightspeed
LMAP-4691
Fixed gap/discontinuity on edges of elevation data assets.
Bug fixLuciadLightspeed
The TLcdEarthGLShapeTileSet did not properly select elements from a bounds indexed model. As a
result more data could be loaded than necessary during tile production.
Bug fixLucy (LuciadLightspeed)
LUCY-2810
TLcyMS2525bAddOn, TLcyAPP6AAddOn: the 3D layers now have a layer icon, similar to the 2D layers.
Bug fixLuciadLightspeed
When instant editing, switching from translating to reshaping in the middle of a mouse drag
caused the editing to stop. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4495
Fixed a bug in the TLcdGXYOffsetIconPainter when using instant editing.
Bug fixLuciadLightspeed
LMAP-4686
ALcdGXYPen's hot points are no longer affected by the painter style.
Bug fixLucy (LuciadLightspeed)
LUCY-2816
TLcyPreviewAddOn: the simulator is now paused during workspace encoding to avoid long workspace
encoding times. When
the simulator was running before encoding the workspace, it continues after the workspace is
encoded.
Bug fixLucy (LuciadLightspeed)
LUCY-2815
When loading a workspace with TEA visibility from point to polyline, an NPE occurred while
painting
the visibility layer, causing it and possible other layers to be not drawn. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2814
When using Lucy in DOCKING_MODE, creating a new application pane and adding it to the UI will
now
respect the minimum size of the contents.
Bug fixLuciadLightspeed
LMAP-4666
TLcdSHPModelEncoder no longer throws ClassCastExceptions when the input model
contains shape lists with elements that the SHP format cannot support (such as
arcs). Instead, such elements are skipped by the encoding process.
Bug fixLuciadLightspeed
LMAP-2718
ToolTipController sample sometimes did not display the intended tool tip from the first time.
10.0.16
ImprovementLuciadLightspeed
LMAP-4583
TLcdGML32ArcByCenterPoint and TLcdGML31ArcByCenterPoint now support the connect() method that
can correct
arcs which are not properly connected in a composite curve. This method corrects
the arc such that its begin and end point coincide with the next point in the
composite curve.
ImprovementAviation Standards
LMAP-4583
The AIXM 5.0 and AIXM 5.1 model decoders now automatically correct arc-by-center-points
of which the start/end point do not coincide with the end/start point of the previous/next
curve in the composite curve. Note that this correction does not change the original
data as stored in the model. See the TLcdGML32ArcByCenterPoint#connect method in
the API reference for more information.
Bug fixLuciadLightspeed
LMAP-4681
TLcdViewHeightProvider now also listens to model changes to update itself.
Bug fixLuciadLightspeed
LMAP-4429
The accuracy of bounds transformations in the standard implementations
of ILcdModelXYWorldTransformation has been further improved.
Bug fixLuciadLightspeed
TLcdInterpolatedRaster no longer interpolates with the default (unknown)
value, thus avoiding artifacts in elevation rasters and weather rasters.
Bug fixAviation Standards
Improved error handling for procedure legs that flyby a navaid onto an arc. This removes
certain erroneous geometries from the result.
10.0.15
ImprovementLucy (LuciadLightspeed)
LUCY-2801
TLcyPrintAddOn: the Print Preview frame now respects the unDecorated property of the main Lucy
frame.
ImprovementLucy (LuciadLightspeed)
LUCY-2789
TLcyGLMapAddOn.cfg now contains the TLcyGLMapAddOn.ruler.applicationPaneLocation property
allowing to
specify the location of the application pane of the ruler controller.
Bug fixLuciadLightspeed
LMAP-4675
Solved a NPE when using TLcdXMLEncoder (the xml encoder that doesn't rely on XML schema) to
encode objects that do not implement ILcdXMLElementInfo.
Bug fixLucy (LuciadLightspeed)
LUCY-2805
TableViewAddOn: the table view did not always respected the priorities of the registered
ILcyCustomizerPanelFactory
instances. This has been fixed by replacing the TableViewCustomizerPanelCache with a
CustomizerPanelFactoryWithCache,
and pass through this new class when the layer selection and/or active map component changes.
This change
added the CustomizerPanelFactoryWithCache class and removed the TableViewCustomizerPanelCache
class. The TableViewAddOn
and TableViewApplicationPaneOwner classes have been modified as well.
Bug fixLucy (LuciadLightspeed)
LUCY-2803
TLcyEarthOpenGLAddOn: when using the draping capabilities of the Earth OpenGL add-on for an
empty model,
it was possible all other terrain layers and/or draped layers became invisible. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-4672
TLcdMBeanPerformanceLogHandler now escapes its ObjectName values, allowing layers and
models with special characters in their name.
Bug fixLuciadLightspeed
The TLcdEarthTileRepositoryPreprocessor sometimes failed to start if the Oracle XML parser is on
the classpath.
Bug fixLucy (LuciadLightspeed)
LUCY-2795
When loading a workspace saved with Lucy V8 or earlier that contained a 3D view and camera
tracking,
in Lucy V9.1, then an unneeded second 3D view was created. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4657
TLcdColorMapCustomizer: could fire a change event while the TLcdColorMap was still in an
inconsistent state. This could break listeners that relied on that.
Bug fixLucy (LuciadLightspeed)
LUCY-2794
A NullPointerException could occur when passing an invalid model to the layer factory of the
DMED format. This has
been resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-2792
TLcyMapAddOn: the default ILcyGXYLayerOrderManager did not always respect the types specified in
the insertGXYLayer
method. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4655
In the geometry package topology calculations, if an arc was inside a polygon, the topology
check "interacts" returned false. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4627
TLcdFeatureIndexedVectorModel#retrieveByUniqueIndex() was incorrectly returning null in some
cases.
Bug fixLuciadLightspeed
The warping raster painters now correctly paint interpolated rasters
again (bug introduced with optimizations in version 10.0).
Bug fixLucy (LuciadLightspeed)
LUCY-2788
TLcyDrawingAddOn: the decoding of redlining models, embedded in workspace files, could lead to a
drawing model
with incorrect features and incorrect grouping of shapes. This has been resolved.
Bug fixLuciadLightspeed
LMAP-4141
Exporting a model without bounds with the GML encoder now properly adds the
srsName attribute to all exported features.
Bug fixAviation Standards
Improved support for procedure legs of type 'RF' in the procedure calculator.
Bug fixAviation Standards
LMAP-4673
Improved support for AIXM 5.0 and 5.1 features that contain no geometry and have a boundedBy property that is
explicitly set
to 'Null'.
Bug fixRadar Connectors
The featured descriptor of trajectory models now correctly indicate that the "ID" feature
returns an Integer instead of a String.
10.0.14
ImprovementLucy (LuciadLightspeed)
LUCY-2774
TLcyWMSClientAddOn: the layer selection dialog now uses the layer style name instead of the
layer style title in
the style chooser dialog, if the layer style title is empty.
ImprovementLuciadLightspeed
LMAP-4611
TLcdLambertConformal can now be serialized.
ImprovementLuciadLightspeed
LMAP-4600
The TLcdWKTModelReferenceParser recognizes "D_ETRS_1989" as a valid geodetic datum name.
ImprovementLuciadLightspeed
LMAP-4577
TLcdWCSClient has improved support to detect service exception reports sent by the server.
ImprovementLuciadLightspeed
LMAP-4577
TLcdWFSClient has improved support to detect service exception reports sent by the server.
ImprovementLuciadLightspeed
LMAP-4577
TLcdWMSClient has improved support to detect service exception reports sent by the server.
ImprovementAviation Standards
TLcdDAFIFTParachuteJumpAreaDecoder: the decoder no longer fails for parachute jump areas that contain arc segments
specified by two bearings and two distances.
ImprovementAviation Standards
The geometry calculation for procedure legs of type 'CR' now better handles erroneous legs,
resulting in an improved visualization of those legs.
ImprovementAviation Standards
TLcdDAFIFTNavaidDecoder: improved the decoding of collocated navaids such as VORTAC. As a result
of this improvement more navaids will be available in the decoded model.
Bug fixLucy (LuciadLightspeed)
LUCY-2661
TLcyPIMTrackAddOn: the customizer panel for a PIM track now allows to edit the text modifiers
of an MIL-STD 2525b symbol.
Bug fixLuciadLightspeed
Fixed a problem in TLcdGXYAsynchronousPaintQueue that could prevent state changes from
being propagated to the inner layer if asynchronous painting was ongoing.
Bug fixLuciadLightspeed
LMAP-4625
TLcdGeodetic2Geodetic bounds transformations were incorrect for bounds wider than 180 degrees.
Bug fixLuciadLightspeed
LMAP-4618
Selecting polylines or editing segments of polylines was broken when using the
TLcdGXYRoundedPointListPainter. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2770
A NullPointerException was thrown when wrapping an ALcyFormat with null style provider with a
TLcyGXYLayerTreeNodeFormatWrapper or TLcyGLLayerTreeNodeFormatWrapper.
This has been resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-2769
When saving a PNG image of the map, it was possible the created image was incorrect (e.g. too
dark).
This has been resolved.
Bug fixLuciadLightspeed
TLcdDatabaseGXYPainterProvider now also supports ILcd3DEditablePolygon
instances when used as an editor provider.
Bug fixLucy (LuciadLightspeed)
LUCY-2768
TLcyMapLayerControlFactory will no longer log error messages when switching of the creation of
a toolbar in the configuration file.
Bug fixLuciadLightspeed
LMAP-3620
TLcdHaloIcon now paints the delegate icon properly centered. In practice, this only affected
large halo sizes.
Bug fixLuciadLightspeed
LMAP-4606
Initializing the (A,B) or (A,1/F) coefficients of an TLcdEllipsoid was not resetting the default
ellipsoid name ("WGS_1984").
Bug fixLuciadLightspeed
LF-68
The models returned by the fusion model decoders did not fire correct model events.
Bug fixLuciadLightspeed
Added fallback zip decoding mechanism which was needed for some zip variants. This issue prevented
a few KMZ files from being decoded.
Bug fixLuciadLightspeed
LMAP-4624
Improved performance of xlink resolution.
Bug fixLuciadLightspeed
LMAP-4601
Fix decoding of global elements of a primitive type with a default value.
Bug fixLuciadLightspeed
LMAP-4520
When working with multiple tiles on a very small world area, the WCS proxy object TLcdWCSProxy did not always
correctly positioned the tiles in the resulting raster upon server response.
Bug fixDatabase Connectors
LMAP-4626
TLcdDB2SpatialModelEncoder did not accept short-form database connection URLs (jdbc:db2:DATABASE).
Bug fixTerrain Analysis Engine
LMAP-4634
The result of line of sight with TLcdLOSRadarPropagationFunction could be wrong behind the radar
if vertical radar tilt was used. This has been fixed.
Bug fixTerrain Analysis Engine
LMAP-4567
The progress counter status events of TLcdLOSCoverageFatory#createLOSCoverageRaster didn't go
correctly from 0% to 100% when the nearest neighbour method was used. This has been fixed.
Bug fixAviation Standards
TLcdDAFIFTProcedureDecoder: improved decoding of the recommended navaid which results in a more
accurate visualization for certain procedures.
Bug fixAviation Standards
TLcdDAFIFTProcedureDecoder: improved the decoding to include more procedures in the resulting model.
10.0.13
ImprovementLuciadLightspeed
TLcdGXYClippingPainterWrapper: does not use straight-line approximations by default. This
approximation can still be enabled by using the setClipPen method.
ImprovementAviation Standards
The AIXM 5.0 and AIXM 5.1 model decoders now use the application schema cache by default.
This property can be controlled through the method setUseApplicationSchemaCache(boolean)
in TLcdAIXM5ModelDecoder and TLcdAIXM51ModelDecoder. Using the application schema cache
improves decoding performance when multiple files are decoded using the same decoder.
ImprovementAviation Standards
The AIXM 5.0 and 5.1 painters now also support surfaces that use an arc-by-center-point in their exterior or
interior
ring.
Bug fixLuciadLightspeed
The implementations of ILcdProjection have been corrected to take into
account their central meridian when returning their boundary longitudes.
Bug fixLuciadLightspeed
LMAP-4429
The accuracy of bounds transformations in the standard implementations
of ILcdModelXYWorldTransformation has been improved, notably for bounds
crossing the edges of the model/world projections.
Bug fixLuciadLightspeed
LMAP-4504
TLcdGXYViewJPanelLightWeight sometimes did not update its labels correctly.
Bug fixLuciadLightspeed
Fixed bug that would add null to the end of an image url when it could not be parsed the first time.
Bug fixLuciadLightspeed
Fixed an issue that could cause a NullPointerException in case
of XPath resolution.
Bug fixLuciadLightspeed
TLcdDatabaseModel now more efficiently commits elements that have been
changed and subsequently deleted.
Bug fixLuciadLightspeed
LMAP-4585
TLcdGXYIconPainter#anchorPointSFCT() did not account for ILcdGXYContext#getDeltaX/Y() while
editing.
Bug fixLuciadLightspeed
TLcdGXYPolygonLabelPainter and TLcdGXYPolylineLabelPainter did not fire property change events
for all setters.
Bug fixLucy (LuciadLightspeed)
LUCY-2613
TLcyEarthAddOn and TLcyEarthOpenGLAddOn: fixed disposing of tile sets. Previously tile sets
could
get disposed too early which mostly resulted in an error dialog.
Bug fixLuciadLightspeed
LMAP-4572
TLcdGeoTIFFModelEncoder no longer throws a RasterFormatException when
trying to encode a raster model with buffered tiles, with short pixel
values that do not represent elevations.
Bug fixLuciadLightspeed
LMAP-4570
TLcdDTEDModelDecoder and TLcdDTEDDirectoryModelDecoder no longer incorrectly
return a geoid datum when when the flags applyGeoidDatums and
supportGeoidDatums are both set.
Bug fixLucy (LuciadLightspeed)
LUCY-2750
The label properties tab in the layer properties panel of MIF layers with polygons or polylines
did not work correctly.
Bug fixLuciadLightspeed
LMAP-4560
TLcdVVJPanel: in some cases, an exception could be thrown when using the vertical view's
controllers.
Bug fixLucy (LuciadLightspeed)
LUCY-2742
TLcyMapAddOn: replacing the TreeModel in the TLcyMapLayerControl to a TreeModel containing other
objects
then ILcdLayers could lead to a ClassCastException. This has been fixed.
Bug fixAviation Standards
Fixed the use of custom functions in the TLcdAIXM5XPathFactory.
Bug fixAviation Standards
LMAP-4223
The TLcdAIXM51Link constructor that takes a data object as parameter no
longer throws an exception when invoked with a data object for which a proper
link type can be deduced.
Bug fixAviation Standards
Improved the javadoc for a number of property constants defined on the
AIXM 5.0 and AIXM 5.1 domain objects.
Bug fixAviation Standards
Fixed an issue in the setters for various AIXM 5.0 and 5.1 domain objects,
causing an incorrect domain model. The issue resulted in exceptions
when trying to encode the domain model afterwards.
Bug fixAviation Standards
Snapshot generation no longer removes properties with schedules that do not have an associated schedule from
the snapshot timeslice.
10.0.09
ImprovementLuciadLightspeed
ALcdProjection (and consequently all projection classes) now implement the Cloneable interface.
ImprovementLuciadLightspeed
The TLcdEPSGReferenceFormatter and TLcdEPSGReferenceParser are now consistent with each other,
in the sense that formatting a reference produced by the parser results in the same EPSG code as
the original. Related to this, when the EPSG code is present in a WKT reference or when at least
the axes of coordinates are specified, the TLcdWKTReferenceParser will produce references that
give the correct EPSG code when parsed by TLcdEPSGReferenceParser.
ImprovementLuciadLightspeed
The clone methods of TLcdGeoidReference, TLcdGeoidReference, TLcdXYModelReference,
TLcdTopocentricReference, TLcdOrthorectifiedProjection, TLcdPerspectiveProjection,
TLcdPolyconic, now call super.clone().
ImprovementLuciadLightspeed
TLcdGridReference.clone() also copies the reference name.
ImprovementLuciadLightspeed
The TLcdEarthGXYViewTileSet now propagates exceptions that occur during painting of its layers.
This was not possible before the ILcdPaintExceptionHandler interface was introduced.
ImprovementLuciadLightspeed
You can now specify a texture matrix for a TLcdEarthTexturedVertexArray. This can for example be
used to only map a part of the texture on the vertex array data.
ImprovementLuciadLightspeed
TLcdFeaturedSingleShapeList and TLcdFeaturedMultiShapeList have been added
to the package com.luciad.format.database. They are useful for representing
shape lists that are identified by one of their features (typically a
primary key from a database).
ImprovementLucy (LuciadLightspeed)
LUCY-2677
ILcyLucyEnv: the documentation of the getDefault*Format methods has been improved.
ImprovementLuciadLightspeed
The TLcdXMLSchemaBasedEncoder now also supports the
weblogic.xml.stax.XMLStreamOutputFactory
xml output factory
implementation.
ImprovementLuciadLightspeed
Introduced TLcdPair as an immutable, generified key-value pair.
ImprovementLuciadLightspeed
The evaluation of bounding box operators against shapes that implement the ILcdShapeList interface is now more
accurate.
LuciadMap now evaluates each shape of the shape list against the bounding box instead of evaluating the bounds of
the shape
list against the bounding box.
ImprovementLucy (LuciadLightspeed)
TLcyFusionClientAddOn: this new addon allows to connect to the LuciadFusion platform,
by providing functionality to query and visualize the data sets offered by a LuciadFusion Data
Server.
ImprovementLuciadLightspeed
The TLcdEarthMetadataTerrainTileSet and TLcdEarthAssetTerrainElevationTileSet now also support
TLcdEarthClippedRasterAssets with ELEVATION as the coverage type.
ImprovementLuciadLightspeed
The 2D and 3D painters where updated to:
- Support updating tiles that are older than a certain age (enabled, with a 1 minute age, by default)
- Support using outdated tiles when retrieving an updated version fails (enabled by default)
The 3D painter was updated to:
- Simplify customizing the default tile set wrappers such as the asynchronous tile set
- Support soft caching of the tiles
- Support updating tiles on demand
The 3D terrain painter was also updated to:
- Automatically add the necessary tile set wrappers for combining
image and elevation tiles into terrain tiles. As a result it is now advised to no longer add
these yourself. You should for example use TLcdEarthRepositoryModelDecoder instead of the
TLcdEarthTerrainRepositoryModelDecoder.
- Support image and elevation tile sets with a different set of tiles (e.g. you no
longer need both an image and an elevation tile together). If a tile is missing, a tile at a
lower level will be used instead.
ImprovementLuciadLightspeed
A large number of tile set implementations have been updated to support asynchronous tile
operation. For example the TLcdEarthTexturedTerrainTileSet produces the elevation and
images tiles, needed for a terrain tile, asynchronously. As a result more requests can be
executed concurrently. This is especially important if a tile request involves network
communication, which can have a high latency. The threads in the TLcdEarthAsynchronousTileSet
now also support producing the delegate tiles asynchronously.
ImprovementLuciadLightspeed
LuciadFusion is a new software platform for the management, fusion, and storage of large spatial data sets in
networked environments.
The Fusion Client is the native LuciadMap connection to LuciadFusion for the retrieval of fused data from a central
Data Server.
ImprovementS-63
LMAP-4391
TLcdS63ModelDecoder can now always be instantiated, even if the license file does not
contain
the S-63 optional module. The canDecodeSource() method of this class can now be used to
check
whether the S-63 optional module is present.
Bug fixLuciadLightspeed
Fixed an issue that could cause a stack-overflow exception in case
a datamodel with a cyclic dependency was configured on a xml encoder
or decoder.
Bug fixLucy (LuciadLightspeed)
LUCY-2737
TLcyG4JAddOn: in the layer properties of terrain layers it is now possible to add texture layers
under JDK 1.4.
Bug fixLuciadLightspeed
LMAP-4536
Pin halo image cache was not validated often enough, sometimes causing label pins to be painted
in the wrong location.
Bug fixLuciadLightspeed
LMAP-4494
TLcdGeoTIFFModelDecoder now again correctly decodes GeoTIFFs with
transparency bitmasks.
Bug fixLuciadLightspeed
LMAP-4529
TLcdColorMapCustomizer: Enhancement LMAP-4452 could cause the gradient toggle to throw an
ArrayIndexOutOfBoundsException.
Bug fixLuciadLightspeed
LMAP-4534
TLcdGXYIconPainter#anchorPointSFCT() could produce a NullPointerException. This is fixed now.
Bug fixLuciadLightspeed
Fix an issue that caused incorrect decision on whether or not to
expand a choice that contains other choices. This might cause
exceptions during encoding and decoding.
Bug fixLuciadLightspeed
LMAP-4493
TLcdGXYPointListPainter: when paint cache was used and changing the projection a NPE could occur
while editing a polygon, and when adding a point to a polygon it could sometimes appear at the
wrong edge. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2725
Fixed a bug in the 2d map overlay panel, that caused components to be handled in the wrong order
by the TLcdOverlayLayout.
Bug fixLucy (LuciadLightspeed)
LUCY-2635
TLcyDrawingAddOn: the bounds of the group were not always updated when the shapes were modified
Bug fixLucy (LuciadLightspeed)
LUCY-2515
Due to a bug in the JIDE docking framework, a NullPointerException could be thrown during Lucy
startup when
adding ILcyApplicationPanes to the UI. This has been resolved by an upgrade of the JIDE libs.
Bug fixLucy (LuciadLightspeed)
LUCY-1654
Some values for the TEA Extreme Points addon were not translated.
Bug fixLuciadLightspeed
LMAP-4183
The samples now also build the GUI on the Event Dispatch thread when started as an applet.
Bug fixAdvanced GIS Engine
LMAP-4444
TLcdSphericalBasicBinaryTopology gave an exception that it didn't support certain shape combinations
even though they were supported according to the documentation. This is fixed to correctly support
those shapes.
Bug fixTerrain Analysis Engine
LMAP-4533
Fixed a contradiction in the Javadoc of ALcdTerrainElevationProvider.
Bug fixTerrain Analysis Engine
LMAP-4062
The Javadoc of TLcdProfileViewJPanel and ILcdProfileView is slightly updated.
Bug fixDefense Symbology
The APP-6A object customizer did not allow to configure the wind direction and speed for a Wind Barb symbol (3.X.4).
Bug fixRadar Connectors
LMAP-4549
TLcdASTERIXCategory48 : the featured descriptor of the tracks now labels the 'Mission Code' as such
instead of as 'Pin Code'.
Upgrade considerationLucy (LuciadLightspeed)
Due to the upgrade of the JIDE libs, the JIDE docking framework now respects the minimum
size of its contents. In order to keep the old resizing behavior, the DockableFrameAppPane
implementations have been adjusted.
This change will affect you in case you started from our dockable front-end, and
extended
the DockableFrameAppPane and/or the DockableFrameAppPaneFactory. In such case, you should
update
the sample code to the latest version. If not, it becomes impossible to resize the panels
below the minimum size of their contents by using the sliders.
Upgrade considerationLucy (LuciadLightspeed)
The JIDE libs are upgraded to version 2.9.5 to solve a NullPointerException (LUCY-2515)
Upgrade considerationLuciadLightspeed
The ILcdEarthModelDecoderFactory interface was changed to allow configuration of the created
model decoders. More specifically an extra java.util.Map parameter was added to its
createModelDecoder method.
Previously it was not possible to configure the created model decoder. As a result you could not
use a single factory, but instead had to create one for each specific use case. Another drawback
was that the creator had to know what configuration was optimal for each use case. By adding an
extra configuration parameter, the user of the model decoder can specify what configuration is
optimal in his use case. This is similar as the ILcdModelHeightProviderFactory.
As a result of this change you may get some compile errors. In most cases you can fix these by
using null or an empty map as the value for the new parameter.
10.0.08
ImprovementLucy (LuciadLightspeed)
LUCY-2527
TLcyEarthOpenGLAddOn: the Earth terrain is no longer rebuilt when adding non-terrrain related
layers.
ImprovementLucy (LuciadLightspeed)
LUCY-2526
Toggling the VPF panel's geosym box did not immediately update the icons of asynchronously
painted VPF layers.
This has been fixed.
ImprovementLuciadLightspeed
LMAP-4461
The WFS proxy sample now illustrates how an exception handler can be configured on
the TLcdWFSProxyModel to deal with servers that behave erroneously.
ImprovementLucy (LuciadLightspeed)
The mouse location readout in both 2d and 3d maps disappears now when the cursor moves outside
the map.
ImprovementLucy (LuciadLightspeed)
LUCY-2698
Opening an OpenFlight file (*.flt) will now show the status in the status bar.
ImprovementLuciadLightspeed
LMAP-4452
TLcdColorMapCustomizer now has API that allows to change its layout, or to modify or remove
the actions in the tool bar.
ImprovementLuciadLightspeed
LMAP-4440
The TLcdXMLSchemaBasedEncoder now allows document-specific schema locations
and prefixes to be used (see TLcdXMLSchemaBasedEncoder#getSchemaLocations( ILcdXMLDocumentContext )
and TLcdXMLSchemaBasedEncoder#getNamespacePrefixes( ILcdXMLDocumentContext ) ).
ImprovementOGC Server
The (unofficial) EPSG code 900913 used by Google Earth is now supported.
Bug fixLuciadLightspeed
LMAP-4517
Fixed the documentation of ILcdBalloonContentProvider.
Bug fixLuciadLightspeed
Overlays that have an icon with view refresh parameter "onRegion", but no Region element, will now be
refreshed once upon activation of the link.
Bug fixLuciadLightspeed
Implemented workaround for files that have a date using the year 0. This is not allowed according
to the XML Schema 1.0 specification, but we have made an exception because it was requested.
Bug fixLuciadLightspeed
LMAP-4502
TLcdColorMapCustomizer: Enhancement LMAP-4452 caused NullPointerExceptions on Java 1.4. It also
caused the gradient toggle button to misbehave.
Bug fixLuciadLightspeed
TLcdEarthTileRepository: fixed exception when opening/creating a repository in read-only mode
with JDK1.4 on Linux.
Bug fixLuciadLightspeed
LMAP-4506
A memory leak in TLcdModelElementBalloonDescriptor was fixed.
Bug fixLuciadLightspeed
ISO measures and units of measures are now properly converted to GML32
when using WFS-T.
Bug fixLucy (LuciadLightspeed)
LUCY-2689
Exporting to drawing files no longer generates files which cannot be decoded anymore.
Bug fixLucy (LuciadLightspeed)
LUCY-2611
Depending on the JDK versions, the overlay buttons in the lucy.glmap.tracking sample
sometimes did not work correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-2605
Some names in the color tab of the layers property panel were not translated.
Bug fixLucy (LuciadLightspeed)
LUCY-2332
The snapping property was disabled in the property panel of GML layers, while it was possible
to change this property when right clicking the layer in the list.
Bug fixLucy (LuciadLightspeed)
LUCY-2367
A possible memory leak, which could be caused by opening the Layer Properties panel, has been
resolved.
Bug fixLucy (LuciadLightspeed)
LUCY-2708
TLcyWFSAddOn: Fixed an exception that occurred when trying to save a workspace that contains a
WFS layer that
is configured with a server that fails to return data.
Bug fixLucy (LuciadLightspeed)
LUCY-2707
TLcyWFSAddOn: Fixed an issue that could block Lucy when an exception occurred while
asynchronously painting
data from a WFS server.
Bug fixLuciadLightspeed
The getModelElementTypes implementations of the GML model descriptors have been improved to
leave
out feature collection types.
Bug fixLuciadLightspeed
LMAP-4453
Fixed bug in the iterator of the set returned by TLcdDataModel#getTypes().
Bug fixLuciadLightspeed
LMAP-4413
Improved thread-safety for concurrent XML encoding, decoding and
XPath resolution.
Bug fixLuciadLightspeed
Files with recursive MultiGeometry elements are now correctly visualized.
Bug fixAviation Standards
Fixed an issue with the addElements method of TLcdAIXM5AbstractAIXMMessage and TLcdAIXM51AbstractAIXMMessage.
Features
that were added with this method could not be found in the XML structure.
Bug fixAviation Standards
LMAP-4435
ALcdAIXM51Code now ensures that the well known codes for all code classes
are always properly initialized.
Bug fixAviation Standards
LMAP-4449
TLcdDAFIFTHelipadDecoder: the decoding has been improved for certain types of helipads. This
results in more helipads being successfully decoded.
Bug fixRadar Connectors
Fixed exception that would occur when retrieving the orientation of a non-active TLcdASTERIXTrack.
The method now returns Double.NaN instead.
10.0.07
ImprovementLucy (LuciadLightspeed)
LUCY-2674
TLcyGridAddOn: the pen settings of the lon-lat grid can now be configured in the
dynamic_grid.cfg file.
ImprovementLuciadLightspeed
LMAP-4422
TLcdMapLonLatGridLayer now allows changing its pen.
ImprovementLuciadLightspeed
LMAP-4236
Made point Placemark painting in 2D consistent with 3D. When you zoom out and reach a certain
threshold, icons become smaller to prevent cluttering of large icon sets.
ImprovementLuciadLightspeed
Model change events because of asynchronous NetworkLink updates are now scheduled on the
AWT-EventQueue.
ImprovementLuciadLightspeed
Creating paintables for 3D painters now happens asynchronously in a background thread,
to prevent the AWT-EventQueue from being blocked.
ImprovementLuciadLightspeed
The asynchronous retrieve methods can now be supplied with null as a callback function. In this
case, no resource listener will be notified of the update, but the resource will be loaded in
the
background. To
ImprovementLuciadLightspeed
Added functionality for asynchronous updates in document and image providers. The new
asynchronous update methods work analogously to the asynchronous retrieve methods, except that
they force an update, even when the resource is cached.
The existing update methods have been deprecated; their return argument will change in V10.1 from
boolean to the updated value.
ImprovementLuciadLightspeed
Improved efficiency of various resource providers.
ImprovementLuciadLightspeed
Improved model content tree. Added new icons, including animated icons to show that a
NetworkLink
is loading. Also enhanced the tree model to prevent the tree from collapsing when a NetworkLink
refreshes.
ImprovementDatabase Connectors
Properly represent all standard sql types such as java.sql.Timestamp,
java.sql.Date and java.sql.Time in the data model returned by the
TLcdInformixSpatialModelDecoder.
Bug fixLuciadLightspeed
Fixed problem with scaling of non-square icons. Their aspect ratio is now properly respected.
Bug fixLucy (LuciadLightspeed)
LUCY-1838
"Label decluttering" property was not saved in workspace files.
Bug fixLuciadLightspeed
Fixed returned preferred reference in TLcdEarthTerrainElevationProvider when no elevation
has been retrieved yet.
Bug fixLucy (LuciadLightspeed)
LUCY-2683
Fixed some typos in the configurable pen settings: straightLineMode, angleThreshold,
viewDistanceThreshold
and worldDistanceThreshold are now written correctly.
Bug fixLuciadLightspeed
LMAP-4433
The TLcdFeaturedShapeList.canSetFeature() method was always returning true. Now it either
returns true - when the default constructor is used, or delegates to the aFeaturesObject
specified in the other constructors.
Bug fixLucy (LuciadLightspeed)
LUCY-2682
Loading a workspace containing nested ILcdGXYLayerList instances could result in broken
references
to the corresponding ILcdLayerTreeNode instances.This has been fixed.
Bug fixLuciadLightspeed
LMAP-4428
TLcdAdvancedMapRulerController did not respect the LabelFontBorder and LabelBackground
properties.
Bug fixLucy (LuciadLightspeed)
LUCY-2679
When removing the last child layer of an ILcdGXYLayerList contained in a view, it was possible
the
layer was not removed from the view. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2675
TLcyMapRadarViewAddOn : domain objects returning Double.NaN for their orientation no longer
break the map. This could happen, for instance, with ASTERIX tracks.
Bug fixDatabase Connectors
LMAP-4445
Solved ClassCastException which occurred when updating informix data
in the presence of data base connection pooling.
Bug fixOGC Server
LMAP-4439
Fixed an issue that could cause decoding of transaction requests to fail when the request contains a schemalocation
for a type defined by the WFS. We now ignore these schemalocations and use the schemas that are linked to the data.
10.0.06
ImprovementLuciadLightspeed
LMAP-4430
The GML2 model export (which is used by WFS-T) now also supports transformations from and to
ILcdShapeList. Note that for GML31 and GML32 this was already supported.
ImprovementLuciadLightspeed
LMAP-4424
The (unofficial) EPSG code 900913 used by Google Earth is now supported.
ImprovementLucy (LuciadLightspeed)
LUCY-2673
Several GUI components used their minimum size instead of their preferred size when showed.
Bug fixLucy (LuciadLightspeed)
LUCY-2676
TLcyMapAddOn: the layer order of workspaces containing layer lists, saved with V8 or lower,
could be
wrong when loading the workspace in V9 or higher. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2672
TLcyDrawingAddON: the input fields in the "Extrude shape" dialog were too small, especially when
using the Motif Look and Feel.
Bug fixTiling Engine
LF-79
The parameter to specify the levels to produce in TLfnEngineFactory#createRasterSession were not correctly
interpreted.
Upgrade considerationLuciadLightspeed
The class TLcdXLinkConstants was removed from the API as there is hardly any use for it.
10.0.05
ImprovementLucy (LuciadLightspeed)
LUCY-2669
Improved the javadoc of TLcyViewHeightProvider.
ImprovementLuciadLightspeed
LMAP-4285
The common GML model decoder now supports an additional constructor that takes a data model
as parameter. This allows custom data models to be used just as the version-specific GML
model decoders allow.
ImprovementLuciadLightspeed
TLcdJPEG2000ModelDecoder now provides a few additional settings for
positioning rasters based on tie points.
ImprovementLuciadLightspeed
The GML model export (which is used by WFS-T) now also supports transformations from and to
ILcdPolygon and ILcdShapeList.
ImprovementLuciadLightspeed
TLcdFeaturedSingleShapeList and TLcdFeaturedMultiShapeList now implement ILcdEditableShapeList.
ImprovementAdvanced Raster Connectors
LMAP-4382
TLcdDIMAPModelDecoder now also supports rasters in the JPEG-2000 format.
ImprovementDatabase Connectors
LMAP-4377
Models created by the TLcdInformixSpatialModelDecoder are now data object
enabled. This means that all model elements implement ILcdDataObject and
that the model descriptor implements ILcdDataModelDescriptor. This allows
the Informix model decoder to be used in WFS-T, for instance.
ImprovementAviation Standards
LMAP-4397
It is now possible to set the fill mode on the TLcdICAORunwayPainter. This allows you to paint a runway with a
fill even if no surface type is available. You can also disable the fill if desired.
ImprovementAviation Standards
LMAP-4397
It is now possible to set the fill mode of runways on the TLcdARINCLayerConfiguration. This allows you to paint a runway with
a
fill even if no surface type is available. The fill can also be disabled if desired.
ImprovementAviation Standards
LMAP-3040
TLcdICAONavaidLabelPainter: added class Javadoc to explain how to support custom navaids.
Bug fixLuciadLightspeed
LMAP-4380
TLcdGeoTIFFModelDecoder again correctly interprets binary transparency
masks, avoiding a ClassCastException from JAI (bug introduced in 10.0).
Bug fixLucy (LuciadLightspeed)
LUCY-2664
TLcyMapComponentFactory: The supported file types jgw and bpw now appear in the File|Open
dialog.
Bug fixLuciadLightspeed
LMAP-4392
TLcdInterpolatingRasterHeightProvider did not account for horizontal wrap-around of the raster.
Bug fixAdvanced Raster Connectors
LMAP-4381
TLcdDIMAPModelDecoder now correctly handles relative path names in all
metadata files.
Bug fixDatabase Connectors
The encoder now handles geodesic arcs and compound shapes more robustly.
Bug fixReal-time Engine
LMAP-4355
TLcdTrackModel.contains always returned false.
Bug fixAviation Standards
LMAP-4363
TLcdAIXM51GXYPainterEditorProvider: Corrected the xpath expressions that are used to lookup labels. This ensures
that labels works again for all AIXM 5.1 types if the referenced property is available in the data.
Bug fixAviation Standards
LMAP-4404
ILcdARINCATSRouteSegmentFeature: Corrected the feature name constants MINIMUM_ALTITUDE_1, MINIMUM_ALTITUDE_UNIT_1, MINIMUM_ALTITUDE_2
and MINIMUM_ALTITUDE_UNIT_2.
These names were set to the same string for 1 and 2, this was fixed by appending the index.
For example 'Minimum Altitude' has been changed to 'Minimum Altitude 1'.
Bug fixAviation Standards
LMAP-4400
ILcdDAFIFDMEFeature: corrected the feature name constant ILS_DME_BIAS_UNIT.
This was set to 'ILS/DME Bias', and has now been changed to 'ILS/DME Bias Unit'. This resolves a
name collision with ILS_DME_BIAS.
Bug fixAviation Standards
LMAP-4379
ILcdDAFIFMilitaryTrainingRoutePointFeature: corrected the feature name constant ENROUTE_ALTITUDE_1_UNIT.
This was set to 'Cross Altitude Two Unit', and has now been changed to 'Enroute Altitude One Unit'.
Bug fixAviation Standards
LMAP-4405
The featured descriptor for ARINC Aerodrome types now returns the correct class for the 'SPEED_LIMIT_ALTITUDE_VALUE' feature.
Previously the descriptor returned Float, this has now been changed into Double.
Bug fixAviation Standards
LMAP-4399
The featured descriptor for DAFIF GlidePath and Marker types now returns the correct class for the 'COMPONENT_TYPE' feature.
Previously the descriptor returned String, this has now been changed into Character.
Bug fixAviation Standards
LMAP-4396
TLcdICAORunwayPainter: Changing the selection color now also works for runways without a surface type.
Upgrade considerationLuciadLightspeed
LMAP-4352
TLcdGML31MultiLineString and TLcdGML31MultiPolygon no longer implement ILcd2DEditableShape
or ILcd3DEditableShape.
These interfaces are fairly generic and have no useful meaning on this level of the GML
domain model.
10.0.04
ImprovementLuciadLightspeed
LMAP-4306
TLcdSHPModelEncoder now encodes the model reference in WKT format as a ".prj" file, instead of
a ".ref" (Java properties) file. This allows the SHP models encoded by LuciadMap to be directly
opened in ArcGIS.
ImprovementLuciadLightspeed
The string "Ok" has been replaced with the more commonly used "OK".
ImprovementLuciadLightspeed
LMAP-4280
TLcdDataPropertyBuilder now supports a getName() and a getDeclaringTypeBuilder()
method that returns respectively the name and the declaring type builder of the
property that is being built.
ImprovementLuciadLightspeed
LMAP-4225
TLcdGeoTIFFModelEncoder now supports encoding rasters with transparency
using JPEG compression, by ignoring the transparency (JPEG compression
only supports grayscale or RGB images without transparency).
ImprovementLuciadLightspeed
TLcdGeoTIFFModelEncoder is now more efficient when encoding rasters with
multiple rendered image tiles, for instance when encoding a regular grid
of GeoTIFFs into a single GeoTIFF.
ImprovementLuciadLightspeed
The standard implementations of bounds now compute intersections and unions
slightly more efficiently. Since these are fundamental operations, this
also improves the efficiency of other operations, like transformations of
bounds and construction of spatial models.
ImprovementLuciadLightspeed
TLcdDTEDModelDecoder now also decodes DTED files that do not have the
standard 1 degree by 1 degree size.
Bug fixLuciadLightspeed
LMAP-4383
TLcdDataTypeBuilder#primitive(aBoolean) now only makes the type primitive if the argument is
true. A
type set to primitive will also get TLcdCoreDataTypes#OBJECT_TYPE as super type unless another
super
type was already set before.
Bug fixLuciadLightspeed
TLcdDataPropertyBuilder#annotate(aBoolean) incorrectly annotated the first property of the type
instead of the
property being built by the property builder. This has been fixed.
Bug fixLuciadLightspeed
LMAP-4358
TLcdGXYPointListPainter and TLcdGXYSurfacePainter could draw erroneous line segments when
drawing an ILcdComplexPolygon or multiple surfaces containing a point list, respectively,
if the paint cache was enabled. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3822
TLcdGeoTIFFModelDecoder now correctly interprets the SampleFormat tag
for identifying elevation data (bug introduced in 8.3.13).
Bug fixLuciadLightspeed
LMAP-4351
All stamp label painters cleared the image caches on a property change, even when the property
remains the same.
Bug fixLuciadLightspeed
LMAP-4347
TLcdGXYArcBandPainter was incorrectly using the "creationOrientation" property during editing
operations. As a consequence, arcbands created programmatically were sometimes swapped
around the first time they were edited with the edit controller.
Bug fixLuciadLightspeed
LMAP-4346
TLcdLonLatHeightPolygon computed its bounds using spherical computations instead of ellipsoidal,
which was inconsistent with TLcdLonLatPolygon and other geodetic shapes. An ellipsoid can now be
specified (by default WGS_84).
Bug fixTiling Engine
LF-86
Decoding of models during Fusion would fail when the temporary folder was full, without a clear message.
Fusion can now handle a situation where the temporary folder is full.
Upgrade considerationLuciadLightspeed
LMAP-4337
ILcdDataObject.getValue(String) and TLcdDataType.getProperty(String) should use
the property defined in the most specialized type in case
more than one property with the given name exists in the type's hierarchy.
10.0.03
ImprovementLucy (LuciadLightspeed)
LUCY-2646
The intersection calculations in the TLcyDrawingAddOn have been made more accurate.
ImprovementLucy (LuciadLightspeed)
LUCY-2645
It is now possible to disable the usage of the Luciad JIDE license and use your own license. In
order
to disable the Luciad license, add
-Dcom.luciad.lucy.verifyJIDELicense=false
as JVM parameter
ImprovementLuciadLightspeed
LMAP-4326
Improved the TLcdXMLSchemaBased(Un)MarshallerProvider such that it can also return (un)marshallers
for elements of simple types.
ImprovementLucy (LuciadLightspeed)
LUCY-2637
TLcyKML22AddOn: The button for the KML content tree has been moved to the Tools menu. The KML
content
tree will now display a message when there is no KML content available on the active map.
ImprovementLuciadLightspeed
Improved performance of parsing XML schema's, in particular for large schema's.
ImprovementLucy (LuciadLightspeed)
LUCY-2438
The datum chooser for the TLcyMagneticNorthAddOn has been improved. A button has been added
between the textfield and the slider that opens a date chooser dialog.
ImprovementLuciadLightspeed
LMAP-4350
Increased model decoder flexibility for incorrectly formatted dates. The model decoder now
accepts any separator between numbers, and allows any amount of numbers in the dates
themselves.
ImprovementLuciadLightspeed
The WFS client sample TransactionHandler class was slightly improved to allow easier customization of the
TLcdWFSProxyModelFactory
and to always return the transaction response which allows users to evaluate the result of a transaction.
ImprovementLucy (LuciadLightspeed)
Throughout Lucy, the string "Ok" has been replaced with the more commonly used "OK".
ImprovementLuciadLightspeed
Added support for the deprecated Url element of a NetworkLink or AbstractOverlay.
ImprovementLucy (LuciadLightspeed)
LUCY-2586
The TreeTableViewCustomizerPanel's renderer is improved for grid references.
ImprovementLuciadLightspeed
The KML decoder now correctly decodes files containing address nodes with
child elements (note that according to the KML schema, such nodes should only contain plain
text).
ImprovementLucy (LuciadLightspeed)
LUCY-2634
TLcyDWGDecoderAddOn: the pen settings are now configurable in the configuration file of the
addon.
ImprovementOGC Server
By default support special versions of EPSG codes and some specific srs names like CRS84.
ImprovementOGC Server
LMAP-4312
Improved handling of certain bad filters, this will now result in a WFS service exception.
ImprovementAviation Standards
Improved performance for handling AIXM5 and AIXM5.1 extension schemas (reduced creation time for the
extension datamodels, reduced configuration time for the decoder and reduced static initialization time
of the AIXM data model).
ImprovementAviation Standards
LMAP-4164
Added logging to snapshot generation to inform users that a BASELINE timeslice does not contain a start time
which probably indicates bad data.
All timeslices without start times are ignored during snapshot generation.
ImprovementAviation Standards
TLcdAIXM51AbstractPropertiesWithSchedule: Javadoc was added to this class.
ImprovementAviation Standards
LMAP-4190
The decoder now also supports decoding features that do not contain timeslices. This only affects data
that is incomplete.
ImprovementAviation Standards
LMAP-4191
Improved the robustness when calculating aggregated airspaces that have no sequence numbers. This only affects data
that is incomplete.
Bug fixLuciadLightspeed
LMAP-4384
Fixed TLcdXMLSchemaBasedEncoder such that it always encodes using UTF-8. Before this fix, the
context would use the default encoding. This works fine using the wstx XML parser. But when using
Xerces (included in Java6), this produced incorrect XML documents when non ASCII characters are present
in string content.
Bug fixLucy (LuciadLightspeed)
LUCY-2653
TLcyMIFFormat: Fixed typo in default_decoders.cfg: MIFFormat.defaulStyle corrected into
MIFFormat.defaultStyle.
Bug fixLuciadLightspeed
The TLcdKML22DynamicModel#applyOnInteract2DBounds method now correctly returns an integer that
represents
the amount of elements the given function has been applied on, keeping in mind the elements that
were
filtered out due to a custom filter, such as the time bounds.
Bug fixLuciadLightspeed
The TLcdEarthSeparateAlphaImageTileDataCodec now handles images with pre-multiplied alpha
correctly.
Bug fixLuciadLightspeed
The OGC filter encoder now encodes java.util.Date literals using ISO8601 date format. This is compatible
with the behaviour of the old deprecated filter encoder.
Bug fixLuciadLightspeed
TLcdXMLDataObjectMappingLibrary now correctly registers element information for elements defined
in global model groups that are referred to by other model groups.
Bug fixLuciadLightspeed
LMAP-4338
Several GML32, GML31 and GML Model classes that implement ILcdShapelist (for instance the
model classes that
represent MultiGeometry, MultiCurve, Surface and MultiPoint) now properly update there
bounds when one of their elements changes.
Bug fixLuciadLightspeed
Fixed exception that occurred for certain rotated ScreenOverlay elements in the
TLcdKML22GXYPainterProvider.
Bug fixLuciadLightspeed
TLcdXMLDataModelBuilder now properly allows the creation of datamodels for
cases where an XML schema is split over multiple documents (each with the same namespace)
and no single schema document exists that imports all other documents.
Bug fixLuciadLightspeed
Improved the flexibility of the model decoder to allow KMZ files with deflated entries.
Bug fixLucy (LuciadLightspeed)
LUCY-2571
TLcyDafifAddOn: Not all layers were automatically updated when changing the colors, this has
been fixed.
Bug fixLuciadLightspeed
LMAP-4344
The TLcdEarthGXYRasterPainter did not log a warning when the cache size is too small and did not
automatically increase its cache size, if this feature is enabled.
Bug fixLuciadLightspeed
AbstractOverlay elements inside an updating NetworkLink will now force a new query to the server
to support
updating images.
Bug fixLuciadLightspeed
Fixed issue with draw orders for ScreenOverlay elements in 2D layers.
Bug fixLuciadLightspeed
LMAP-4286
Adding or removing one or more elements from a GML model now properly throws model change
events.
Bug fixLuciadLightspeed
Fixed the exception that would arise when a NetworkLink didn't contain its mandatory Link
element.
Bug fixLuciadLightspeed
LMAP-4309
The dateStamp property of TLcdISO19115MetaData can now be properly set (used to throw
a NullPointException) using the property setter. This also fixes the same issue for
the setters for a number of similar properties on metadata domain objects.
Bug fixAdvanced GIS Engine
LMAP-4311
In some cases a ClassCastException was thrown when checking a topological relation between
an ILcdCompositeCurve and an ILcdShape instance.
Bug fixDatabase Connectors
LMAP-4307
TLcdDB2SpatialModelDecoder was creating
Cartesian shapes even when the model had a geodetic reference.
Bug fixDatabase Connectors
LMAP-4202
TLcdDB2SpatialModelDecoder was throwing a NullPointerException when using
the ESRI shape representation.
Bug fixTerrain Analysis Engine
LMAP-4200
Line of sight: in rare cases a numerical precision problem caused the last angle of a LoS coverage
matrix to be not calculated. This has been fixed.
Bug fixTerrain Analysis Engine
LMAP-4056
Line of sight fixed height: when the maximum vertical angle was set to 180, an erroneous half circle
of cone of silence values was produced.
Bug fixAviation Standards
LMAP-4176
TLcdICAORunwayPainter: fixed painting artifacts that occurred when panning runways that are painted with a pattern.
Bug fixAviation Standards
TLcdAIXM51AbstractPropertiesWithSchedule: Improved support for custom extensions of this class.
Bug fixAviation Standards
LMAP-3807
The DAFIF data preparator sample now uses a TLcdLonLatBounds instead of a TLcdXYBounds to avoid
invalid bounding box coordinate values.
Bug fixAviation Standards
LMAP-4054
TLcdDAFIFVFRRouteDecoder: the optional aerodrome submodel is now split up in one 'airport' model and one 'heliport' model.
This fixes an inconsistency between the model descriptor and the actual data in the model that could cause issues.
Bug fixDefense Symbology
LMAP-4091
The representation of a set of tactical symbols in APP-6A/B and MIL-STD 2525b/c have been corrected,
following the latest version of the standards.
The following set of symbols have an updated number of points and/or point order:
- Relief In Place (APP-6A/B 2.X.1.1.18, MIL-STD 2525b/c 2.X.1.18) uses 4 points to define the polyline,
instead of 3.
- Support By Fire Position (APP-6A/B 2.X.2.1.5.3.4, MIL-STD 2525b/c 2.X.2.5.3.4) uses point 1 and 2 to
define the straight line, and point 3 and 4 to define the tips of the arrowheads.
- Gap (MIL-STD 2525b/c 2.X.3.1.6.3) uses 4 points to define the gap, with an updated order.
- Assault Crossing Area (APP-6A/B 2.X.2.2.2.2.1, MIL-STD 2525b/c 2.X.3.2.2.1) uses 4 points to define the
area, with an updated order.
- Bridge Or Gap (APP-6A/B 2.X.2.2.2.2.2, MIL-STD 2525b/c 2.X.3.2.2.2) uses 4 points to define the
bridge/gap, with an updated order.
The following set of arrow symbols now use point 1 to define the tip of the arrowhead position and point 2 to define
the rear,
instead of reversed:
- Fix (APP-6A/B 2.X.1.1.11, MIL-STD 2525b/c 2.X.1.11)
- Follow And Assume (APP-6A/B 2.X.1.1.12, MIL-STD 2525b/c 2.X.1.12)
- Follow And Support (APP-6A/B 2.X.1.1.12.1, MIL-STD 2525b/c 2.X.1.12.1)
- Direction Of Attack For Feint (APP-6A/B 2.X.2.1.3.3, MIL-STD 2525b/c 2.X.2.3.3)
- Aviation (APP-6A/B 2.X.2.1.5.2.2.1/2/3/4, MIL-STD 2525b/c 2.X.2.5.2.2.1)
- Main Attack (APP-6A/B 2.X.2.1.5.2.2.8, MIL-STD 2525b/c 2.X.2.5.2.2.2.1)
- Supporting Attack (APP-6A/B 2.X.2.1.5.2.2.7, MIL-STD 2525b/c 2.X.2.5.2.2.2.2)
- Moving Convoy (APP-6A/B 2.X.2.4.2.1.1, MIL-STD 2525b/c 2.X.5.2.1.1)
- Halted Convoy (APP-6A/B 2.X.2.4.2.1.2, MIL-STD 2525b/c 2.X.5.2.1.2)
The following set of arrowhead symbols now use point 1 to define the vertex of the symbol, and point 2 and 3 to
define the endpoints:
- Screen (APP-6A/B 2.X.1.1.21.1, MIL-STD 2525b/c 2.X.1.22.1)
- Guard (APP-6A/B 2.X.1.1.21.2, MIL-STD 2525b/c 2.X.1.22.2)
- Cover (APP-6A/B 2.X.1.1.21.3, MIL-STD 2525b/c 2.X.1.22.3)
- Search Area/Reconnaissance Area (APP-6A/B 2.X.2.1.1.3.2.5, MIL-STD 2525b/c 2.X.2.1.3.9)
- Dummy (Deception/Decoy) (APP-6A/B 2.X.2.1.3.1, MIL-STD 2525b/c 2.X.2.3.1)
- Principal Direction Of Fire (PDF) (APP-6A/B 2.X.2.1.4.2.2, MIL-STD 2525b/c 2.X.2.4.2.2)
- Attack By Fire Position (APP-6A/B 2.X.2.1.5.3.3, MIL-STD 2525b/c 2.X.2.5.3.3)
- Ambush (APP-6A/B 2.X.2.1.6.1.2, MIL-STD 2525b/c 2.X.2.6.1.1)
Upgrade considerationLuciadLightspeed
LMAP-4353
TLcdKML22MultiGeometry no longer implements ILcd3DEditableShape as this interface should never
have been
there.
10.0.02
ImprovementLuciadLightspeed
LMAP-4317
The TLcdWKTModelReferenceDecoder now recognizes the "ETRF_1989" datum name.
ImprovementLuciadLightspeed
The constructor of the TLcdDatabaseModelDescriptor now sets the source name to the JDBC
connection URL.
ImprovementLucy (LuciadLightspeed)
It's now possible to use the property "TLcyASTERIXDecoderAddOn.ASTERIXFormat.timeOffset" in
"asterixdecoderaddon.cfg" to change the default time offset for Asterix data. This number should
be
a long and is interpreted as the number of milliseconds since January 1, 1970. The default value
is
-1 which means the Asterix decoder will use today as the time offset.
ImprovementLucy (LuciadLightspeed)
LUCY-2626
TLcySelectionEditorAddOn: the title of the application pane is now configurable (see
selectioneditor.cfg)
ImprovementLucy (LuciadLightspeed)
LUCY-1660
TLcyExtremePointAddOn: Extreme Points can now be copied and pasted into different layers.
ImprovementLuciadLightspeed
LMAP-4186
The convolution halo algorithm now supports translucent halo colors.
ImprovementLucy (LuciadLightspeed)
LUCY-2518
TLcyDrawingAddOn: the "alwaysChangeDefaultStyle" flag has been added to TLcyDrawingAddOn.cfg,
which
determines whether the default style is changed when changing the style of selected objects.
ImprovementDatabase Connectors
LMAP-4313
The TLcdOracleSpatialModelDecoder now includes a workaround for Oracle bug
4745776 (Incomplete results for spatial query).
ImprovementMaritime Standards
The S-52 presentation library has been upgraded to version 3.4.
ImprovementMaritime Standards
The S-57 object and attribute catalogues have been upgraded to include the latest changes.
Bug fixLucy (LuciadLightspeed)
LUCY-2557
ALcyWorkspaceCodec could throw a StackOverflowError when reading workspaces that had a very
deeply nested structure.
Bug fixLuciadLightspeed
LMAP-4314
In certain cases TLcdGeocentric2Grid.modelBounds2worldSFCT() did not throw an
TLcdNoBoundsException when it should.
Bug fixLucy (LuciadLightspeed)
LUCY-2630
In the absence of the JPEG2000 optional package Lucy was throwing a NoClassDefFoundError when
saving a workspace containing a drawing layer.
Bug fixLuciadLightspeed
LMAP-4307
The TLcdDataBaseModelDecoder was creating models with Cartesian bounds (TLcdXYBounds) even
if the model reference was geodetic.
Bug fixLucy (LuciadLightspeed)
LUCY-2620
The eclipse integration sample can now find the background data again.
Bug fixLucy (LuciadLightspeed)
LUCY-2614
Vertical view could work incorrect when using several layers with height data.
Bug fixLucy (LuciadLightspeed)
LUCY-2606
The over terrain mode of the ruler controller didn't work on Earth repositories. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-4184
TLcdSelectionSupport#selectObjects fired a TLcdSelectionChangedEvent even if NO_EVENT was
indicated.
Bug fixLucy (LuciadLightspeed)
LUCY-2608
The look and feel of the color chooser is now updated as well when changing the look and feel of
Lucy.
Bug fixLucy (LuciadLightspeed)
LUCY-2530
Fixed a bug that prevented saving a workspace with fixed height line of sight coverage vector
layer.
Bug fixLuciadLightspeed
LMAP-4189
The filled part of the FILLED_CIRCLE TLcdSymbol did not stay within the outline.
Bug fixLucy (LuciadLightspeed)
LUCY-2579
TLcyWorkspaceAddOn: a deadlock could occur when opening a workspace. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2616
TLcyGXYLayerEncoderHolder, TLcyGXYLayerDecoderHolder and TLcyCompositeBalloonContentProvider
have been
added to the API.
Bug fixLuciadLightspeed
LMAP-4185
TLcdLayer could throw a NPE when calling fireCollectedSelectionChanges. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2762
Applying TLcdEPSGReferenceFormatter to an ILcdModelReference or an ILcdXYWorldReference that did
not implement ILcdGeoReference resulted in a ClassCastException instead of
IllegalArgumentException.
Bug fixLucy (LuciadLightspeed)
LUCY-2604
lucy.tableview sample: the renderer of second column in the TreeTableViewCustomizerPanel was no
longer replaced, as
is stated in the readme. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2194
In some cases, TLcdGXYMagnifierController would display an empty window on systems running
Windows.
Bug fixLucy (LuciadLightspeed)
LUCY-2573
Loading workspaces with 3D layers in certain data formats could result in a NullPointerException
if the file from which the data was decoded, did not exist anymore.
Bug fixLuciadLightspeed
LMAP-4108
TLcdGXYIconPainter sometimes returned incorrect bounds when using an ILcdAnchoredIcon combined
with rotated icons.
Bug fixLuciadLightspeed
LMAP-4044
Sometimes labels were painted too often using the TLcdGXYViewLabelPainter and
TLcdGXYLayerLabelPainter.
Bug fixLucy (LuciadLightspeed)
The images used for the navigation controls are now stored in the format they are displayed in.
This means the performance is slightly improved because no conversions are necessary.
Bug fixDatabase Connectors
When not set by the user, the "preferredBand" property of the decoder was
being loaded from the first OGR file and kept as a valid setting for
subsequent invocations of the decoder.
Bug fixDatabase Connectors
Rasters for which the database block size was larger than twice the raster's
own size (width and height in pixels) were incorrectly decoded.
Bug fixDatabase Connectors
LMAP-4195
The TLcdOracleGeorasterModelDecoder referred to a hard-coded column name.
10.0.01
Bug fixLuciadLightspeed
The ALcdEarthGLTiledClipmapLevel, used in all earth 3D painters, could throw an exception when
updating for a tile set that does not cover the entire earth surface.
Bug fixTiling Engine
The layer factories of the default ALfnFormat's did not support ILcdModelTreeNode's. As a result
sub-models of such models were not fused by the engine.
10.0
ImprovementLuciadLightspeed
The OGC filter model now implements ILcdDataObject and can as such be accessed
in a generic way.
ImprovementLucy (LuciadLightspeed)
Updated the TLcyToteAddOn and the TableViewAddOn sample to provide support for ILcdDataObject
domain
objects.
ImprovementLuciadLightspeed
For USB iButton hardware keys on Linux, the suggested udev configuration
file 45-ds2490.rules has been renamed to ds2490.rules. This gives it
precedence over the default configuration, which is required for some
recent versions of Linux (for example Ubuntu 9.10).
ImprovementLuciadLightspeed
The internal EPSG database has been updated to version 7.5.
ImprovementLuciadLightspeed
The TLcdEarthTileRepositoryPreprocessor will now inform its progress listener more regularly and
respond more quickly to cancellation.
ImprovementLucy (LuciadLightspeed)
ILcyGenericMapComponent: Contains methods to get and set a ALcdBalloonManager on a
generic map component. Also updated TLcyMapComponentFactory to create a default
balloon manager for every map component.
ImprovementLuciadLightspeed
The new sample samples.decoder.raster.hgt decodes the SRTM HGT format using
a custom raster model decoder.
ImprovementLuciadLightspeed
LMAP-4096
An icons sample was added in samples.gxy.icons.basic. This sample demonstrates the use of icons and
the TLcdGXYIconPainter. It shows the use of ILcdAnchoredIcon, rotated icons and icons scaling.
ImprovementLucy (LuciadLightspeed)
The vertical view add-on no longer depends on the TEA specialized package. The add-on also no
longer shows a dialogue window when no elevation data was found.
ImprovementLucy (LuciadLightspeed)
New addon: TLcyHyperlinkAddOn. This addon registers a default hyperlink listener as a service.
It
opens activated hyperlinks in the default browser of the running operating system.
ImprovementLuciadLightspeed
LMAP-4052
It is now possible to choose an interrupt mode when interrupt painting is enabled for
asynchronous painting. The available modes are ALWAYS and NON_OVERLAPPING_PAINTS_ONLY. When
using the second mode ongoing paint jobs are only stopped when a new paint job is scheduled and
when its contents are completely outside the view. The modes can be set using
TLcdGXYAsynchronousPaintQueue.setInterruptMode( InterruptMode aInterruptMode ).
ImprovementLuciadLightspeed
LMAP-3184
The TLcdEarthGXYRasterPainter has been improved significantly. Some of the improvement and fixes
are:
- The painting is significantly faster when the raster data must be transformed to a
different reference
- The tiles at the center of the view are now requested first
- The cached tiles can be updated to make changes in the tile set visible
- The view no longer becomes blurry when panning
- The painter no longer runs out-of-memory due to cached tiles that are outside the
view
ImprovementLuciadLightspeed
Introduced the domain class TLcdXMLXPathString to represent an XPath expression as
a string with a name space context.
ImprovementLuciadLightspeed
A number of new classes have been introduced to facilitate the use of xlink. See
the com.luciad.format.xml.bind.xlink package and its sub packages.
ImprovementLuciadLightspeed
The com.luciad.format.xml.bind.schema.dataobject package is introduced. This package provides support
to bind XML schema automatically to a Java domain model. The domain classes of such a model
implement com.luciad.datamodel.ILcdDataObject.
More information about this new API can be found in the LuciadMap developer's guide.
ImprovementLuciadLightspeed
Introduced ALcdXMLModelDecoder and ALcdXMLModelEncoder as common base class for model decoder and
encoder implementations that are based on XML schema. TLcdXMLModelDecoderWrapper and TLcdXMLModelEncoderWrapper
are concrete extensions of these abstract classes that implement their functionality through
delegation. These classes are introduced to facilitate the creation of an ILcdModelEncoder
and ILcdModelDecoder for model based on XML schema.
ImprovementLuciadLightspeed
Introduced TLcdXMLXPathFactory that supports the use of XPath expressions on data object enabled
domain models that are derived from an XML schema.
ImprovementLucy (LuciadLightspeed)
LUCY-2532
Best practice sample : default and selection colors of a FlightPlan layer were added
to the layer style.
ImprovementLucy (LuciadLightspeed)
Layer styles can now be used in combination with asynchronous painting.
Also see the best practices sample.
ImprovementLuciadLightspeed
LMAP-3146
Many painters now have a getter and setter for a 'minimum edit delta' property. This property
represents the minimum pixel distance the input device (a mouse, for example) must move before
editing the
shape. A larger
value ensures that the object easily snaps back in place, a small value allows fine editing.
ImprovementLuciadLightspeed
LMAP-3038
TLcdETOPOModelDecoder now also decodes the ETOPO1 product (an elevation
raster covering the entire world at 1-minute resolution, distributed by the
NOAA's National Geophysical Data Center).
ImprovementLucy (LuciadLightspeed)
The on map navigation controls introduced in Lucy 9.1 are now also available in the LuciadMap
Foundation. As a consequence the default values in 'map_addon.cfg' and 'TLcyGLMapAddOn.cfg' for
the
navigationControls.imagePath property have been changed, to point to the new location of the
default
set of images. See the documentation in Foundation for more details.
ImprovementLuciadLightspeed
TLcdISO19103MeasureAnnotation is introduced. This allows data properties to be annotated
with an ISO19103 unit of measure.
ImprovementLuciadLightspeed
The new com.luciad.datamodel package introduces support for the new unified approach taken in
LuciadMap for
the definition and interaction with domain objects. This approach provides a common API to
access
all
domain objects, independent of their specific domain. In addition,
this API makes information about the static structure of the domain objects available.
This is the information that typically can be found in UML class diagrams.
This package is designed to be a replacement forILcdFeatured
.
It is the preferred way to model domain objects as from LuciadMap V10. For backwards
compatibility
reasons,
ILcdFeatured
will remain supported. But no new features will be added to it.
The main classes from this package are the following.
- ILcdDataObject
- TLcdDataModel, TLcdDataType and TLcdDataProperty
- ILcdAnnotation
The class
com.luciad.model.ILcdDataModelDescriptor
was added for models of which the elements
implement
ILcdDataObject
.
More information about this new API can be found in the developer's guide.
ImprovementLuciadLightspeed
LMAP-3872
The class TLcdGMLSrsRepository allows application developers to add additional model
reference parsers
and formatters to deal with custom srsNames that are not recognized by the default
implementation.
ImprovementLuciadLightspeed
New classes are provided for rendering balloons on top of maps: ALcdBalloonManager,
TLcdGXYBalloonManager, ILcdBalloonContentProvider. In addition, the 3D optional package provides
an equivalent balloon manager implementation for integration with 3D views.
Please refer to the developer's guide for more information on the use of balloons.
ImprovementLuciadLightspeed
LMAP-3925
SLD now also supports 2D painting of extruded shapes. Painting of such shapes is done by
painting
their base shapes.
ImprovementLucy (LuciadLightspeed)
The configuration prefixes for the AIXM, ARINC and DAFIF addons changed into "TLcyAIXMAddOn.",
"TLcyARINCAddOn." and "TLcyDAFIFAddOn." respectively, to bring them more in line with the other
addons.
The old prefixes, "aixm.", "arinc." and "dafif.", are still parsed correctly for backwards
compatibility.
ImprovementLucy (LuciadLightspeed)
TLcyKML22AddOn, TLcyKML22OpenGLAddOn, TLcyKML22RealtimeAddOn: these 3 new addons provide support
for the KML format.
The first provides support for displaying KML on a 2D map, the second for displaying KML on a 3D
map, the third for
integration of time-dependent KML data with the previewer addon.
ImprovementLuciadLightspeed
A new package com.luciad.format.metadata has been added. This package is split up in two parts:
- The com.luciad.format.metadata.model package and subpackages provide a Java class
representation of the ISO Metadata domain model.
- The com.luciad.format.metadata.xml package provide an ISO19139 compliant XML decoder,
encoder and XML libraries.
This new package now supports the final version of the ISO 19139 Metadata XML encoding standard.
The domain model of the new package also supports the new unified domain access (all domain
classes implement ILcdDataObject). An encoder for exporting metadata to ISO 19139 compliant XML
is also provided. Both the decoder and encoder are now based on the XML Binding framework,
allowing easy integration with other XML formats that use metadata.
ImprovementLuciadLightspeed
LMAP-4001
An ILcdEarthTileSet can now have an uneven amount of rows and columns at level 0. (ex. 1 tile
at level 0).
ImprovementLucy (LuciadLightspeed)
Removed the unused version numbers from the configuration files.
ImprovementLuciadLightspeed
The TLcdEarthGXYViewTileSet now also supports production of tiles with a different number of
horizontal and vertical pixels.
ImprovementLucy (LuciadLightspeed)
The GXY and GL map add-ons, and all add-ons that allow interactive creation of shapes
can now be configured to use touch controllers.
A new Lucy touch sample has been added to demonstrate this behavior.
Please refer to the developer's guide for more information on touch input in Lucy.
ImprovementLuciadLightspeed
Support has been added to allow dispatching custom input events to GUI components and,
in particular, LuciadMap views and controllers. See TLcdAWTEventDispatcher, TLcdAWTEvent and
ILcdAWTEventSource, and/or the developer's guide for more information.
In addition, a new TLcdTouchEvent type has been defined that enables multi-touch user input.
Touch events are automatically generated for Windows 7 Touch
compatible devices when using Sun's 1.5 and 1.6 JDK implementations, and you can also create
and dispatch touch events yourself.
The following new controllers work exclusively with touch-based user input:
- TLcdGXYTouchEditSelectController
- TLcdGXYTouchNewController
- TLcdGXYTouchNavigateController
- TLcdMapTouchRulerController
Also, several new touch samples have been added to illustrate the use of this new
functionality. Please refer to the developer's guide and the samples section for more
information on this new functionality.
ImprovementLuciadLightspeed
LMAP-3737
TLcdOGCXPath now also support the descendent-or-self (//) axis.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now decodes ARGB color models in such a way that
they are optimized for rendering to the screen. If this introduces a
platform-dependency that you want to avoid, you can set the Java system
property
optimize.raster.color.model
tofalse
.
ImprovementLucy (LuciadLightspeed)
TLcyEarthAddon: the texture of a trn file is now visualized in a 2D view instead of the bounds
of the terrain.
ImprovementLuciadLightspeed
TLcdSHPModelDecoder logs a less severe message if it cannot find a .dbf file
next to a .shp file.
ImprovementLuciadLightspeed
Added a new property retriever provider (see class TLcdDataModelPropertyRetrieverProvider)
that supports models whose elements implement ILcdDataObject.
ImprovementLuciadLightspeed
The OGC filter model now implements ILcdDataObject. This enables generic access
to the filter objects. The TLcdOGCFilterDataTypes class provides direct access to the filter data model
and the types it declares.
ImprovementLuciadLightspeed
LMAP-3646
The on map navigation controls introduced for Lucy in V9.1 are now available in LuciadMap.
See the package "com.luciad.gui.swing.navigationcontrols".
ImprovementLuciadLightspeed
A new fill style was added that allows to fill surfaces with stripes: TLcdGXYStripedFillStyle.
ImprovementLuciadLightspeed
The new package com.luciad.format.kml22 introduces support for the KML (Keyhole Markup Language)
format. The current supported version is 2.2 (OGC specification OGC 07-147r2).
The package provides support for decoding KML data, as well as painters to visualize KML data
on both 2D and 3D maps.
The samples included in the release provide an implementation of a Swing-based model content
tree, allowing tree-based browsing of KML files.
Please refer to the developer guide for an introduction to this package.
ImprovementLuciadLightspeed
The default value of the elevation tiles produced by the TLcdEarthTerrainElevationTileSet and
TLcdEarthTerrainHeightTileSet can now be configured.
ImprovementLuciadLightspeed
The asset based tile set (TLcdEarthMetadataTerrainTileSet, TLcdEarthAssetGXYViewTileSet and
TLcdEarthAssetTerrainElevationTileSet) implementations can now use a model decoder factory to
create the model decoders for the assets instead of using the (optional) model decoder
associated with each asset.
ImprovementLuciadLightspeed
The WFS client API now supports creating and sending the following WFS-T requests:
- Transaction
- LockFeature
- GetFeatureWithLock
ImprovementLuciadLightspeed
The GML models now implement ILcdIntegerIndexedModel.
ImprovementLuciadLightspeed
The internal EPSG database has been updated to version 7.4.1.
ImprovementLucy (LuciadLightspeed)
The extension of the default splash screen of Lucy has been changed from jpg to png.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder new sets up a global optimized cache for the Java
Advanced Imaging library. If you want to disable this optimization, you
can set the Java system property
optimize.jai.tile.cache
to
false
.
ImprovementLuciadLightspeed
The performance of the raster painters has been improved for a number of
common cases (rasters with rendered images, rasters with single tiles,
rasters that cover a small part of the view).
ImprovementLucy (LuciadLightspeed)
LUCY-2492
Added methods in ALcyFormat and ALcyGLFormat to allow custom creation of workspace object codecs
for customizer panel factories.
ImprovementLuciadLightspeed
The performance of the view has been improved when firing PropertyChangeEvents and
TLcdViewInvalidationEvents.
ImprovementLuciadLightspeed
LMAP-3748
TLcdGXYContext has been extended to allow multiple input points.
ImprovementLuciadLightspeed
The TLcdEarthGLTerrainPainter now operates better with low JVM heap sizes.
ImprovementLucy (LuciadLightspeed)
Enabled new line of sight view in the profile panel of the 2D map profile controller.
ImprovementLuciadLightspeed
LMAP-3803, LMAP-3801
The TLcdWKTReferenceFormatter is now able to encode ILcdGridReference objects having a non-zero
rotation. This results in a FITTED_CS reference system with an affine mapping that defines a
pure rotation. The TLcdWKTReferenceParser has also been updated to correctly reconstruct the
original rotated grid reference from the WKT.
ImprovementLucy (LuciadLightspeed)
TLcyAIXM51Addon, TLcyAIXM51OpenGLAddon, TLcyAIXM51RealTimeAddon: These addons add support for
the aeronautical format AIXM 5.1.
ImprovementLucy (LuciadLightspeed)
LUCY-2412
Added missing height provider factory documentation in the developer guide and the javadoc.
Also a sample was added that demonstrates the integration of height provider (factories)
in Lucy and TEA (lucy.heightintegration).
ImprovementLuciadLightspeed
The TLcdEarthGLAboveGroundTileSet tileset also supports putting objects at ground level
(e.g.
replacing their own altitude by the ground altitude).
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn: the LuciadMap APP-6A specialized package now offers support for the military
standard
APP-6B. By default, APP-6B support is disabled. To enable it, the following
Java VM property must be used when starting Lucy: -Dcom.luciad.symbology.app6a.app6b=true.
Afterwards, the APP-6B symbology becomes available in the hierarchy tree of the APP-6A
customizer.
ImprovementLuciadLightspeed
The TLcdGXYArcPainter, TLcdGXYArcBandPainter and TLcdGXYGeoBufferPainter now offer more
alternatives for computing the anchor point:
- TLcdGXYArcPainter: middle of the arc bounds, middle of the cord, middle of the arc.
- TLcdGXYArcBandPainter: middle of the bounds, middle of the arc band.
- TLcdGXYGeoBufferPainter: middle of the bounds, middle of the buffer.
ImprovementLucy (LuciadLightspeed)
LUCY-2149
The Lucy services and managers have been streamlined. Consult the javadoc of
ILcyLucyEnv#addService( Object, int )
for a detailed description on the new possibilities of the service mechanism.
ImprovementLuciadLightspeed
LMAP-3779
The performance of TLcdGXYPointListPainter#isTouched is improved by caching original points
in a smarter way.
ImprovementLuciadLightspeed
TLcd3DEditablePointList now implements ILcdCloneable.
ImprovementLuciadLightspeed
TLcdPerspectiveProjection now has a getter for the "right" vector of its
projection plane (in addition to the "up" vector).
ImprovementLuciadLightspeed
LMAP-3665
TLcdGeoTIFFModelEncoder and TLcdGeoTIFFModelDecoder now encode and decode
a grid reference with a perspective projection using GeoTIFF's 4x4
homogeneous matrix in a geocentric reference.
ImprovementLucy (LuciadLightspeed)
LUCY-2162
TableViewAddOn: the popup menu of the TableViewAddOn is now registered by the
TLcyActionBarManager
with the map component as active context.
ImprovementLucy (LuciadLightspeed)
LUCY-1637
The TEA AddOns can now save the content of new layers in the workspace. This can be configured
using the 'saveDataInWorkspace' property in the configuration file of the TEA AddOn. The data
is by default saved in separate files.
ImprovementLucy (LuciadLightspeed)
LUCY-2376
TLcyDrawingAddOn - TLcyPimTrackAddOn: the default pen settings have been changed, resulting in a
increased accuracy compared to the default ALcdGXYPen settings. These pen settings can be
adjusted
in TLcyDrawingAddOn.cfg and pim_addon.cfg respectively.
ImprovementLucy (LuciadLightspeed)
LUCY-1140
TLcyMapAddOn: the 'scale to raster level' action of the map layer control is now enabled when
the
selected raster layer overlaps with the visible part of the view. When performing the action on
a layer which does not overlap with the center of the view, a fit on the layer is performed
prior
to changing the scale of the view.
ImprovementLucy (LuciadLightspeed)
LUCY-2393
TLcyGLMapAddOn: an active settable has been added to the TLcyGLMapComponentFactory,
responsible for adding a camera to the view that always keeps the north upwards
(TLcdGLNorthAlwaysUpCamera),
or restoring the regular camera when disabled.
ImprovementLuciadLightspeed
LMAP-1213
TLcdGeoTIFFModelDecoder now no longer throws unexpected RuntimeExceptions.
ImprovementLuciadLightspeed
LMAP-3663
TLcdGeoTIFFModelencoder and TLcdGeoTIFFModelDecoder now support the tag
for orthorectification based on Rational Polynomial Coefficients (RPC).
ImprovementLuciadLightspeed
LMAP-2374
TLcdNoWarpRasterPainter and TLcdNoWarpMultilevelRasterPainter (and
TLcdRasterPainter and TLcdMultilevelRasterPainter) have been optimized to
produce a lot less temporary arrays when painting rasters that are
decoded and cached by Java Advanced Imaging (like GeoTIFFs). This eases
the burden on garbage collection, resulting in markedly better performance
for large rasters.
ImprovementLucy (LuciadLightspeed)
LUCY-2238
DrawingHippodromeAddOn: the customizer panel now only accepts positive values for the hippodrome
width.
ImprovementLucy (LuciadLightspeed)
LUCY-2184
ALcyGUIFactory: the setup method now inserts all actions and active settables using
the TLcyActionBarUtil#insertInConfiguredActionBars method.
ImprovementLucy (LuciadLightspeed)
LUCY-2375
TLcyActionBarUtil#insertInConfiguredActionBars will now respect empty properties
of actions and active settables.
ImprovementLucy (LuciadLightspeed)
LUCY-2314, LUCY-2346
Extreme Points layers from Terrain Analysis are now drawn in 3D as 3D icons with the correct
altitude and with labels. A bug with drag and drop for this type of layer is also fixed: the bug
made it impossible to drag and drop using the root node of this layer, only the child layer
could be moved to other maps.
ImprovementLucy (LuciadLightspeed)
LUCY-1748, LUCY-1251
TableViewAddOn: the export functionality of data from the (tree) table view has been
improved.
-
An export to CSV file action has been added to the table view.
-
Copying data from the (tree) table view to the clipboard now uses the String values as
provided by the
renderer instead of the toString() method.
ImprovementLucy (LuciadLightspeed)
LUCY-1520
TLcySelectionEditorAddOn: the title of the application pane now includes the map name.
ImprovementLucy (LuciadLightspeed)
LUCY-1075
TLcyCopyPasteAddOn: the copy, cut and paste action are now available from the right click popup
menu of every
map component.
ImprovementLucy (LuciadLightspeed)
LUCY-1685
TLcyPrintAddOn: the accelerator key for the showPrintDialogAction can now be removed through the
config file.
ImprovementLucy (LuciadLightspeed)
LUCY-2210
When choosing projections (e.g. Map|Projection|Edit current), these are now also available:
TLcdEckertIV, TLcdEckertVI, TLcdGeneralPerspective, TLcdMollweide, TLcdPerspectiveProjection,
TLcdPolyconic.
ImprovementLuciadLightspeed
The GML domain model now has a public API defined in the packages
com.luciad.format.gml2.model, com.luciad.format.gml31.model and com.luciad.gml32.model.
This API defines domain classes for all types concerning geometry and features defined
by the GML schema (version 2, 3.1 and 3.2). These domain classes implement
com.luciad.datamodel.ILcdDataObject.
ImprovementAdvanced GIS Engine
LMAP-2910
A developer's guide was added to the Geometry package.
ImprovementAdvanced GIS Engine
A new framework based on the dimensionally extended nine intersection matrix (DE9IM) model
was added to the geometry package. This framework allows to test a large number
of binary topological relationships and fine tune the particular relationship being tested.
TLcdEllipsoidalAdvancedBinaryTopology, TLcdShpericalAdvancedBinaryTopology and
TLcdCartesianAdvancedBinaryTopology provide an implementation of this framework in the ellipsoidal,
spherical and cartesian case, respectively.
ImprovementDatabase Connectors
LMAP-3882
The performance of TLcdDatabaseModel#applyOnInteract2DBounds has been
improved for bounds that encompass the entire model, by omitting the
unnecessary spatial filters in the corresponding database queries.
ImprovementOGC Server
LMAP-1175
The WFS server now correctly takes the 'srsName' attribute of incoming queries into account to convert
bounding box operators to the coordinate system of the model that is being filtered.
ImprovementOGC Server
The WFS server now provides api to convert incoming XPath expressions to the native format that is provided to the
WFS. A default implementation exists that relies on the
ILcdDataObject interface to support this conversion automatically, assuming that the default WFS client model
encoders are used to generate the GML schemas.
ImprovementOGC Server
The WCS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
giving access to the capabilities of the server. When starting the server sample through the startup script
ogc.server.start, the front-end can be accessed through the URL http://localhost:8080/LuciadMapWCS.
ImprovementOGC Server
The WFS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
It gives access to the capabilities of the server, and provides a convenient way to test HTTP POST requests.
When starting the server sample through the startup script ogc.server.start, the front-end
can be accessed through the URL http://localhost:8080/LuciadMapWFS.
ImprovementOGC Server
The WMS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
giving access to the capabilities of the server. When starting the server sample through the startup script
ogc.server.start, the front-end can be accessed through the URL http://localhost:8080/LuciadMapWMS.
ImprovementOGC Server
The support for locking and transactions has been improved, and is also WFS 1.1.0 and WFS 1.0.0 compliant. These
features
can be controlled through a parameter in the servlet configuration file. More information can be found in
the developer guide.
The transactional improvements rely on the new ILcdDataObject interface that is introduced in LuciadMap V10. Users
should ensure that
the elements of the models provided to the WFS server implement this interface.
Additional api was added that allows you to customize how locking and transactions are handled. This makes
it possible to support any kind of data backend.
ImprovementOGC Server
The WFS server implementation is now fully WFS 1.1.0 compliant. This results in some changes:
- The result of a GetFeature request is now a wfs:FeatureCollection
- The server now performs more strict input checking, invalid input will result in an exception report.
- Improved filtering capabilities.
ImprovementTerrain Analysis Engine
The profile view is updated with the ability to draw a 2D representation of the line of sight
around a point. The new line of sight behaviour can be enabled or disabled with setLineOfSightEnabled.
The old line of sight behaviour, which was activated with a right mouse click, can be enabled or
disabled with setSimpleLineOfSightEnabled. By default, the old behaviour is enabled and the new
behaviour is disabled.
ImprovementTerrain Analysis Engine
LMAP-2390
TLcdLOSCoverageFactory: the raster creation in nearest neighbor mode now uses the center point
of the raster pixel instead of the lower left corner to find the raster value. To revert to the
old behavior, use the system properties 'com.luciad.tea.TLcdLOSCoverageFactory.useLowerLeftCorner'
and set it to 'true'.
ImprovementTerrain Analysis Engine
LMAP-3401
The hypsometric sample has been extended to show how to access hypsometry values directly.
ImprovementAviation Standards
The existing package com.luciad.format.aixm5.model now provides an API for the
complete domain model of AIXM 5.0. Classes are available to work directly with messages,
features and timeslices, for all aeronautical types defined in AIXM 5.0.
The package is subdivided into different subpackages that each represent a subset of the AIXM 5.0 format,
corresponding to the AIXM 5.0 UML and XML Schema model.
ImprovementAviation Standards
An AIXM 5 and 5.1 model decoder can now be created for a custom data model that extends
from the AIXM data model. This decoder is then automatically configured for that data model.
ImprovementAviation Standards
The AIXM 5 and 5.1 model encoder/decoder now have a model reference formatter/parser that can be
used to format/parse custom model references into/from srs names.
ImprovementAviation Standards
The new package com.luciad.format.aixm51 introduces support for the aeronautical data format
AIXM 5.1. The package provides support for decoding and encoding AIXM 5.1 data, as well as
painters and other tools to visualize and use AIXM 5.1 data in an application. The API
of the new AIXM 5.1 package is similar to the existing AIXM 5.0 API. Please refer to the
developer guide for an introduction to this package.
ImprovementAviation Standards
LMAP-3089
The AIXM5 model decoder now supports decoding of ISO 19115 Metadata which can be included in
messages, features and timeslices.
ImprovementAviation Standards
The AIXM5 model decoder now provides a mechanism to support application-specific resolution of
Xlinks.
ImprovementDefense Standards
TLcdNITFModelDecoder supports JPEG2000 compression, as specified by the MIL-STD-2500C standard.
ImprovementDefense Symbology
Support has been added for the military standard APP-6B. This standard can be used through the regular
APP-6A API, by using the following Java VM property when starting an application:
-Dcom.luciad.symbology.app6a.app6b=true. Afterwards, the APP-6B symbology becomes available in the hierarchy
tree of the APP-6A customizer and the domain object TLcdEditableAPP6AObject accepts APP-6B symbol
id codes.
ImprovementTiling Engine
LuciadFusion is a new software solution for the management, fusion, and storage of large spatial data sets in
networked environments.
The Fusion Engine efficiently processes and fuses data from various sources at any resolution.
Bug fixLuciadLightspeed
TLcdPolyconic did not return a deep clone, making the copy potentially unsafe.
Bug fixLuciadLightspeed
TLcdPolarStereographic did not return a deep clone, making the copy potentially unsafe.
Bug fixLuciadLightspeed
The
clib_jiio_sse2.dll
native library has been removed from the
release, as it is known to cause stability problems.
Bug fixLuciadLightspeed
LMAP-3833
The method ALcdGXYPen#getHotPointSize used to return the maximum of the width and height of an
icon set as HotPointIcon. Now it returns the maximum divided by two. Since this property is used
as a sensitivity to evaluate whether or not a the representation of an object is touched by a
certain pixel, all handles used to have an sensitive region twice as big as the icon
representing
the handle. Now the region is exactly as big as the icon. For small icons/handles, this might
make
it more difficult to select or edit them. However it is now possible to increase the sensitivity
for interaction directly by passing it in the ILcdGXYContext (see
ILcdGXYContext#getSensitivity).
This is for instance used by the select and edit controller models
(See TLcdGXYEditControllerModel2#setSensitivity for example).
Bug fixLuciadLightspeed
LMAP-3988
Asynchronous painting now remains working correctly after calling
TLcdGXYLayer#setLabelLocations().
Bug fixLuciadLightspeed
LMAP-4051
The following errors are prevented for a number of painters :
- ClassCastException could be thrown if painter is changed at runtime.
- Caching would not work if multiple painters of the same type were used on the same
layer.
Bug fixLucy (LuciadLightspeed)
LUCY-2526
Toggling the VPF panel's Geosym option did not always immediately update the VPF layers' icons.
Bug fixLucy (LuciadLightspeed)
The MaxPermSize command line arg has been increased from 80 MB to 128 MB. On 64 bit JDKs the 80
MB was
not sufficient.
Bug fixLuciadLightspeed
LMAP-4002
Fixed several issues in the 3D painters:
- The painter will no longer request the same tile multiple times if the view does not change.
- The painter will always paint the tiles at level 0 if they fit in the configured clip
region size.
Bug fixLuciadLightspeed
LMAP-2610, LMAP-3398
The Data files and the resource files used by the samples have all moved to the
samples/resources
directory. This simplifies modifying and
running the samples from an IDE such as Eclipse or IntelliJ. How to set up an
IDE project is now also better explained in the Getting Started page in these
documentation pages.
Bug fixLuciadLightspeed
LMAP-3797
When formatting a grid reference based on the equidistant cylindrical projection, the
TLcdEPSGFormatter now returns the code 32663 instead of 32662 (which has been deprecated).
Bug fixLuciadLightspeed
TLcdGXYEditControllerModel2#paintEditing: calling this method with EDIT_WHAT_NO_CHANGE
or EDIT_HOW_NO_CHANGE will do nothing, and no longer call the (label) painter. The new
TLcdGXYMultiPointEditControllerModel class has the same behavior.
Bug fixLuciadLightspeed
TLcdGUIIcon: the icon for ID ROTATE_3D_16 now matches the documented one.
Bug fixLuciadLightspeed
LMAP-3875
The OGC filter decoder now properly sets the shapeGeoReference property for spatial
operators (before this fix, the shapeGeoReference property would not be set).
Bug fixLucy (LuciadLightspeed)
TLcyCompositeModelEncoder: removing an ILcdModelEncoder by calling removeModelEncoder(
ILcdModelEncoder )
will remove the associated ALcyFileTypeDescriptor as well.
Bug fixLuciadLightspeed
The GL painter could not paint tilesets with more than 30 levels.
Bug fixLuciadLightspeed
LMAP-3784
TLcdGXYLayer did not respect the label scale range for selected labels.
Bug fixLucy (LuciadLightspeed)
LUCY-2324
Drag and drop of VPF layer nodes from 2D to 3D is now possible.
Bug fixDatabase Connectors
LMAP-4160
The decoder no longer throws a NullPointerException after having decoded the
last object of a query.
Upgrade considerationLuciadLightspeed
The TLcdGMLxxAbstractFeature classes for GML version 2, 3.1 and 3.2 no longer implement
ILcd2DEditableShape or ILcd3DEditableShape.
These interfaces are fairly generic and have no useful meaning on this level of the GML
domain model.
Upgrade considerationLuciadLightspeed
TLcdOGCFilter now supports feature ids next to GML object ids. These feature ids are
deprecated in the OGC Filter 1.1.0 standard but are required to pass the compliancy tests. The old
implementation automatically converted feature ids into gml object ids.
Upgrade considerationLuciadLightspeed
The
clib_jiio_sse2.dll
native library has been removed from the
release, as it is known to cause stability problems.
Upgrade considerationLuciadLightspeed
The classes TLcdGXYEditController, TLcdGXYSelectController, TLcdGXYSelectControllerModel and
TLcdGXYSelectControllerModelSW have been deprecated. Their functionality will remain present
as is. It is advised to use their more flexible and powerful alternatives :
TLcdGXYEditController2,
TLcdGXYSelectController2 and TLcdGXYSelectControllerModel2.
Upgrade considerationLuciadLightspeed
The
ILcdGXYContext
interface has been extended with support for multiple
input points (to allow for instance touch based editing with more than one finger) and a
built-in
sensitivity, a tolerance used by painters and editors when interacting with objects. Because
this interface might be further extended in the future, it is strongly discouraged to implement
it from scratch. Extend
TLcdGXYContext
for custom implementations or extend
ALcdGXYContextWrapper
to create a wrapper for a
ILcdGXYContext
. These classed will always be kept consistent with the
interface.
Upgrade considerationLuciadLightspeed
The getPaintExceptionHandler() method was added to ILcdGXYView to improve the painting
exception handling. All our ILcdGXYView implementations now also contain a
setPaintExceptionHandler()
method. When a painter throws an exception during painting, and it is caught somewhere, it is
up
to the exception handler returned by the view to handle this exception. This makes it possible
for example to log the exception, and continue painting, but it also makes it possible to add
fail-fast behavior, i.e. to pass the exception to the outer application.
The addition of the getPaintExceptionHandler() to ILcdGXYView affects all custom
implementations of ILcdGXYView. It also affects classes that wrap an ILcdGXYView. In both
cases
a compile error is generated. In the former case the getPaintExceptionHandler() method needs
to
be implemented, see example code below, in the latter case the getPaintExceptionHandler() can
delegate to the wrapped ILcdGXYView.
public class CustomGXYView implements ILcdGXYView {
// Create a default paint exception handler, getPaintExceptionHandler() should never return
null.
private ILcdPaintExceptionHandler fPaintExceptionHandler = new
TLcdLoggingPaintExceptionHandler();
public ILcdPaintExceptionHandler getPaintExceptionHandler() {
return fPaintExceptionHandler;
}
public void setPaintExceptionHandler( ILcdPaintExceptionHandler aPaintExceptionHandler ) {
fPaintExceptionHandler = aPaintExceptionHandler;
}
// ...
}
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2461
TLcyPreviewAddOn : by default, the pauseOnMousePressed functionality is now disabled instead of
enabled. To enable this functionality again, you can create following addon and add it to your
addons.xml file:
public class PreviewCustomizerAddOn extends ALcyAddOn {
@Override
public void plugInto( ILcyLucyEnv aLucyEnv ) {
//make sure to load this addon after the TLcyPreviewAddOn.
aLucyEnv.retrieveAddOnByClass( TLcyPreviewAddOn.class ).setPauseOnMousePressed( true );
}
@Override
public void unplugFrom( ILcyLucyEnv aLucyEnv ) {
//nothing needs to be done here.
}
}
Upgrade considerationLuciadLightspeed
The com.luciad.format.xml.bind.schema.featured package has been dropped. The functionality of
this package is now provided by the com.luciad.format.xml.bind.schema.dataobject package.
More information about this can be found in the LuciadMap developer's guide.
Upgrade considerationLuciadLightspeed
TLcdXMLSchemaTypeIdentifier and TLcdXMLSchemaElementIdentifier have been extended to properly
support the use of global xsd model groups. Elements defined in such groups were previously
treated just like local elements. As a result, multiple different type (element) identifiers
could point to the same schema type (element).
Upgrade considerationLucy (LuciadLightspeed)
ILcyLayerStyle has been made cloneable by extending ILcdCloneable. This change only affects
extensions and custom implementations of ILcyLayerStyle, resulting in a compile error when
clone is not implemented. Note that when implementing the clone method, change listeners
should not be copied to the cloned style.
Upgrade considerationLuciadLightspeed
The xml binding framework now maps xsd:union types like choices: a single property that can contain values of different
types. In previous versions, union types were considered strings and any interpretation was left
to the application. Note that TLcdXMLSchemaTypeIdentifier has been extended for this such that
anonymous types within a union type can be properly identified.
Upgrade considerationLuciadLightspeed
The com.luciad.metadata package has been removed and replaced by a new package
com.luciad.format.metadata. The domain classes of the new package have been made consistent with
the LuciadMap conventions for mapping XML Schema based data onto Java classes. As a consequence,
although both domain models describe the same data, the new API for accessing the data in the
model differs from the old API: most classes of the old API still exist in the new API, but have
been moved to another package and can have slightly different accessor methods. Users that would
have used the metadata API in their projects will need to review and upgrade their code.
Upgrade considerationLuciadLightspeed
Three methods in ALcdGXYNewControllerModel2 (#shouldCommit, #shouldEdit, and #shouldUndo)
explicitly relied on MouseEvent information and have been moved to equivalent methods in
TLcdGXYNewController2, to allow reusing the model for other input types.
Because #shouldCommit uses the previously protected #getCreationStatus,
the latter has been made public.
Upgrade considerationLuciadLightspeed
Three methods in TLcdGXYSelectControllerModel2 (#selectHowMode, #selectByWhatMode, and
#applySelection) explicitly relied on MouseEvent information and have been deprecated
to allow reusing the model for other input types.
#applySelection has been replaced by an equivalent but MouseEvent-independent alternative.
The other methods have been moved to equivalent methods in TLcdGXYSelectController2.
Upgrade considerationLuciadLightspeed
Two methods in TLcdGXYEditControllerModel (#editWho and #editWhatMode) explicitly relied on
MouseEvent information and have been deprecated to allow reusing the model for other input
types.
Instead, these methods have been moved to equivalent methods in TLcdGXYEditController2.
Upgrade considerationLuciadLightspeed
An extra exception parameter was added to the tileNotAvailable method in the
ILcdEarthTileSetCallback interface.
Previously this method only had a String parameter to
indicate the reason why the tile is not available. As a result the call back could not easily
distinguish the case where a tile was not available because it did not exist or because an error
occurred. This also resulted in considerably more difficult debugging if an exception occurred
during tile production as its stack trace was not readily available in the tile consumer.
As a result of this change any implementations of the ILcdEarthTileSetCallback interface will
need to be updated. In most cases this only requires a small effort:
- Delegate to another call back: this is typically the case if the call back is part
of an ILcdEarthTileSet implementation that delegates to another tile set such as an
implementation of ALcdEarthTileSetWrapper.
- Handle the exception: this is typically the case if the call back is part of a tile
consumer such as a painter for ILcdEarthTileSets.
Upgrade considerationLuciadLightspeed
TLcdXMLTypeMarshallerProvider, TLcdXMLTypeUnmarshallerProvider and TLcdXMLTypeObjectFactoryProvider
now expose all registered type identifiers for a certain class as a java.util.Set while before
it was a java.util.List. In a similar vein, all registered classes for a certain type identifier
are now also exposed as a Set while before it was a List. This change was made to improve
performance.
Upgrade considerationLuciadLightspeed
LMAP-3779
The method TLcdGXYPointListPainter#getTouchedSegment(ILcdGXYPen, int, int, boolean,
ILcdModelXYWorldTransformation, ILcdGXYViewXYWorldTransformation)
was deprecated in favor of TLcdGXYPointListPainter#getTouchedSegment( Graphics, int,
ILcdGXYContext ).
If you override the old getTouchedSegment method and want the new getTouchedSegment to use its
behavior, then
override the
new getTouchedSegment as well and call the old method as follows:
int x_origin = aGXYContext.getX() - aGXYContext.getDeltaX();
int y_origin = aGXYContext.getY() - aGXYContext.getDeltaY();
return getTouchedSegment( aGXYContext.getGXYPen(), x_origin, y_origin, false,
aGXYContext.getModelXYWorldTransformation(), aGXYContext.getGXYViewXYWorldTransformation() );
Upgrade considerationLuciadLightspeed
LMAP-3740, LMAP-3109
The ALcd2DEditableFloatPolypoint and ALcd3DEditableFloatPolypoint no longer use a shared pool of
points and are now thread-safe for read-only access. To achieve this goal, the classes require
the user to implement two abstract methods called createPoint() and createBounds(),
which must create points/bounds of the appropriate type (geodetic or Cartesian).
The change affects all classes extending ALcd2D/3DEditableFloatPolypoint:
TLcdLonLatFloatPolypoint, TLcdLonLatFloatPolyline, TLcdLonLatFloatPolygon,
TLcdXYFloatPolypoint,
TLcdXYFloatPolyline, TLcdXYFloatPolygon, TLcdXYZFloatPolypoint, TLcdXYZFloatPolyline,
TLcdXYZFloatPolygon.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2143
ALcyDefaultAddOn and ILcyAddOnDecoder have been deprecated and it is suggested to extend
ALcyAddOn directly.
As a result, all add-ons extending ALcyDefaultAddOn now extend ALcyAddOn. This will only
affect code which casted such an add-on to ALcyDefaultAddOn or to ILcyAddOnDecoder, e.g.
ALcyDefaultAddOn addOn = new TLcySelectionEditorAddOn();
or
ILcyAddOnDecoder addOn = new TLcySelectionEditorAddOn();
Such calls will result in a compile error and can easily be fixed by replacing
ALcyDefaultAddOn with
ALcyAddOn.
Add-ons on which the decodeAddOn or canDecodeAddOn method of ILcyAddOnDecoder is called
will also generate
a compile error. Such calls
ALcyDefaultAddOn addOn = new TLcySelectionEditorAddOn();
// or ILcyAddOnDecoder addOn = new TLcySelectionEditorAddOn();
if ( addOn.canDecodeAddOn( aConfigurationSourceName ) ){
ALcyAddOn decoded = addOn.decodeAddOn( aConfigurationSourceName );
}
can be replaced with
ALcyAddOn addOn = new TLcySelectionEditorAddOn();
addOn.setConfigSourceName( aConfigurationSourceName );
Converting an existing add-on to extend ALcyAddOn instead of ALcyDefaultAddOn can easily
be
achieved by moving the code in decodeAddOn( String aConfigSourceName ) to the plugInto method.
The
configuration source name can be retrieved by calling ALcyAddOn#getConfigSourceName().
The code in AFrontEnd which plugs in the ILcyAddOnDecoder instances has been commented
out. Uncomment
this code if you use AFrontEnd and still have add-ons implementing ILcyAddOnDecoder.
Upgrade considerationLuciadLightspeed
The TLcdGML32Constants, TLcdGML31Constants and TLcdGML2Constants that defined public
constants derived from the GML XML schema's have been removed from the API as they
are no longer needed. The domain model has no longer a direct dependency on XML.
Upgrade considerationLuciadLightspeed
The signature of the constructor of the existing model classes that were already available
in V9
(TLcdGMLxxAbstractFeature, TLcdGMLxxShapeFactory and TLcdGMLxxModelDescriptor) has changed
to incorporate the implementation of ILcdDataObject.
Upgrade considerationLuciadLightspeed
The model classes for GML version 3.2 no longer implement ILcdFeatured.
The model classes for GML version 2 and version 3.1 still implement
ILcdFeatured. The generic view provided by ILcdFeatured of these model classes is largely
the same as it was in version 9. Only properties that are the result from mapping an
xsd:choice or a xsd:union are different. The section on the XML format in the
LuciadMap developer's guide provides more details on this.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
The metadata API that was available in com.luciad.metadata has been replaced with an improved implementation in
com.luciad.format.metadata.
Related to this change, the old metadata interfaces that were implemented by some OWS domain model classes have been
removed from these classes.
The change will have no or very little impact on existing implementations as the affected classes are mostly used
internally.
Methods that were available on these interfaces can still be found in the OWS domain model.
Upgrade considerationOGC Server
The ILcdWFSFeatureType interface has been extended with two methods to indicate that the type supports transactions
and/or locking.
Most existing implementations will want to return false for these methods, which is also the case for
implementations that use the TLcdWFSFeatureType class.
The getModelObjectFactory() method of ILcdWFSFeatureType has been removed. The ILcdDataObject interface is now used
to create new instances for specific feature types. This means that servers that wish to support transactions are
required to use ILcdDataObject enabled models. Existing transactional WFS implementations should take this into
consideration before upgrading.
Upgrade considerationOGC Server
The ILcdDataObject interface is now used throughout the WFS if it is available, but it is only required for servers
that wish to support transactions.
It is recommended to use data formats that support ILcdDataObject with the WFS. For backwards compatibility,
ILcdFeature objects can also be
supported, but this might disable some of the features that are available to ILcdDataObject based types.
The WFS requires that each ILcdWFSFeatureType corresponds with at most one TLcdDataType. This means that
if the elements of an ILcdModel returned by an ILcdOGCModelProvider implement ILcdDataObject, the TLcdDataType
of these data objects should be the same for all elements.
Upgrade considerationAviation Standards
All painters in the com.luciad.format.aixm5.view.gxy.painter package have been moved
to the com.luciad.format.aixm5.view.gxy package. The TLcdAIXM5MessageUtil class has been moved
from the com.luciad.format.aixm5.model to the com.luciad.format.aixm5.util package, all its methods
have been made static and the class itself is no longer instantiatable.
The classes TLcdAIXM5DecoderLibrary, TLcdAIXM5EncoderLibrary and TLcdAIXM5MappingLibrary
from the com.luciad.format.aixm5.xml package have been removed,
as they are no longer needed with the new implementation.
Upgrade considerationAviation Standards
The AIXM 5 domain model defined in the com.luciad.format.aixm5.model package has been upgraded
and now provides an API for the complete domain model of AIXM 5.0. As a result, the existing
model classes (TLcdAIXM5AbstractAIXMFeature, TLcdAIXM5AbstractAIXMMessage and
TLcdAIXM5AbstractAIXMTimeSlice) changed incompatibly.
- The domain classes now implement ILcdDataObject; ILcdFeatured is no longer implemented.
- The domain classes are now much less dependent on XML. XML element names for instance no longer
have to be filled in. As a result, the TLcdAIXM5Constants class is no longer need and has been removed from the
API.
- The model descriptor is no longer an ILcdFeaturedDescriptorProvider.
Please refer to the developer guide for more information about the AIXM 5 domain model classes.
Upgrade considerationMaritime Standards
The ILcdS52Symbology interface now extends the Cloneable interface and has an additional
clone()
method. Cloning an existing symbology instead of decoding a new one allows to reuse the
immutable part of the symbology's internal state (lookup tables, icon tables, color tables,
...), resulting in better performance and lower memory usage. A valid clone() method should
be
added to all custom implementations of this interface.
9.1
9.1.23
ImprovementLucy (LuciadLightspeed)
LUCY-2576
lucy.intersectionplane.sh and lucy.intersectionplane.bat have been added to the samples
directory.
ImprovementLuciadLightspeed
TLcdCADRGModelDecoder.canDecode() now returns false for the WMM magnetic North
files, since they are obviously not CADRG files.
ImprovementAdvanced GIS Engine
The precision of line with arc intersections in the ellipsoidal topology was increased.
Bug fixLuciadLightspeed
LMAP-4135
TLcdGXYRoundedPointListPainter did not use the roundness to verify its cached paths. This caused
the roundness of the painted point list to remain unchanged after calling
TLcdGXYRoundedPointListPainter#setRoundness().
Bug fixLucy (LuciadLightspeed)
LUCY-2582
Fixed a bug where Asterix format addon couldn't read the properties of the addon config file.
Bug fixLuciadLightspeed
LMAP-4140
The TLcdLonLatHeightDome.contains3D() method could return incorrect results.
Bug fixLucy (LuciadLightspeed)
LUCY-2578
The World and Grid layers of TLcyGridOpenGLAddOn now save their label and visibility correctly
to a workspace.
Bug fixLuciadLightspeed
LMAP-4137
TLcdLayerTreeNodeCellRenderer now adapts to changes in the look and feel.
Bug fixLuciadLightspeed
LMAP-4136
The TLcdMapModelDecoder was failing to detect that ".map" files shorter than 512 bytes are not
actually MapInfo files. As a consequence, it was returning empty models.
Bug fixLuciadLightspeed
LMAP-4132
TLcdDatabaseReadOnlyModel was not thread-safe (even if the underlying database was unmodified).
Bug fixLucy (LuciadLightspeed)
In some cases, using the mouse wheel after a mouse drag would not zoom to the correct location.
Bug fixLuciadLightspeed
LMAP-4105
Fixed inaccurate fit of TLcdGXYViewFitAction when using unbounded models. Also fixed some
other cases where no good fit could be found. Furthermore the performance is better in most
cases.
Bug fixInfrastructure Standards
TLcdDWGModelDecoder now correctly swaps points of solids, when necessary.
Bug fixInfrastructure Standards
LMAP-3573
Spline shapes are now decoded correctly.
9.1.22
Bug fixLucy (LuciadLightspeed)
LUCY-2566
TLcyMapOverviewOpenGLAddOn threw exceptions when opening a 3D map with a grid reference.
Bug fixLucy (LuciadLightspeed)
LUCY-2561
TLcyMapAddOn: saving a workspace including a map containing an ILcdGXYLayerList could result in
a
NullPointerException when loading and re-saving the workspace. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2560
TLcyMain#setActive( true ) did not restore the Lucy application correctly when using
DOCKING_MODE. This has
been fixed.
9.1.21
ImprovementLuciadLightspeed
LMAP-4115
The construction time of TLcdTransverseMercator objects has been improved.
ImprovementLuciadLightspeed
LMAP-4113
TLcdArrayList now implements java.util.RandomAccess, allowing the Java collections framework
to choose the most suitable algorithms for sorting etc.
Bug fixLuciadLightspeed
LMAP-4063
The TLcdLonLatCircle, TLcdLonLatHeightDome and TLcdLonLatHeightSphere were not
thread-safe. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3975
TLcdGXYEditController2: since the fix for LMAP-3443, switching from reshaping to translating
within a single edit (by no longer pressing CTRL) would always result in a reshaping operation.
Bug fixLucy (LuciadLightspeed)
LUCY-2548
When using TABBED_PANE mode, it was possible that TLcyMapManager fired a "activeMapComponent"
PropertyChangeEvent before the corresponding MAP_COMPONENT_ADDED event was sent to all
ILcyMapManagerListeners.
9.1.20
ImprovementLuciadLightspeed
LMAP-4089
An ILcdAnchoredIcon interface was added, extending ILcdIcon with an anchor point. Also an
implementation, TLcdAnchoredIcon, is provided. TLcdGXYIconPainter was adapted to make use
of anchor points if an icon implements ILcdAnchoredIcon.
ImprovementLuciadLightspeed
LMAP-4080
Empty shape lists return a default bounds at 0,0. As a result, a shape list that contains other
shape lists of which some are empty always included 0,0 in its bounds.
The bounds calculation code of ALcdShapelist has been improved to ignore empty sub-shape lists.
ImprovementDatabase Connectors
The model decoder now supports table names with aliases when decoding
database properties.
Bug fixLucy (LuciadLightspeed)
LUCY-2543
Overriding TLcyGLMapComponentFactory#createMenuBar to return null could cause a
NullPointerException. This
has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2542
The default value for TLcyLOSCoverageAddOn.layer.tea.coverage.defaultValues.maxRadius in
TLcyLOSCoverageAddOn.cfg is set to 20000 meters instead of 200000 meters.
Bug fixLuciadLightspeed
LMAP-3939
TLcdGXYEditControllerModel2 would register undoable listeners without removing them when
editing labels using EDIT_WHAT_FIRST_TOUCHED_LABEL in combination with label editors
implementing ILcdUndoableSource.
Bug fixLuciadLightspeed
LMAP-3890
Fixed a null pointer exception in TLcdGXYLabelPainter, TLcdGXYPolylineLabelPainter and
TLcdGXYPolygonLabelPainter when using the halo functionality in combination with null labels.
Bug fixLuciadLightspeed
Inserting a 3D point in an existing direct position list no longer corrupts the position
list. This
scenario can occur for instance during editing of airspaces in AIXM5.
Bug fixLuciadLightspeed
LMAP-4074
TLcdRenderedImage#dispose() now always properly releases the source file.
GeoTIFF files would otherwise remain locked under Windows, until garbage
collection.
Bug fixLucy (LuciadLightspeed)
LUCY-2538
TLcyEarthOpenGLAddOn: the trn model decoder no longer throws a NPE when decoding fails.
Bug fixLuciadLightspeed
LMAP-4050
Solved a possible memory leak when using TLcdGXYPolygonStampLabelPainter.
9.1.19
ImprovementLuciadLightspeed
LMAP-4003
The string "Powered by LuciadMap" has been replaced by "Powered by Luciad" throughout LuciadMap.
ImprovementLucy (LuciadLightspeed)
LUCY-2528
TLcyDWGDecoderAddOn: the config property 'sortLayers' now also applies to the order of the items
in the layer selector dialog. This dialog appears if the 'showLayerSelector' is set to true.
ImprovementLuciadLightspeed
LMAP-3904
A few enhancements were made to the TLcdAdvancedMapRulerController :
- TLcdAdvancedMapRulerController now allows multiple measures. This can be enabled
using setAllowMultipleMeasurements(). It is possible to start a new measurement starting
at a point of an old measurement by setting the edit controller to null, see
setGXYEditController().
- It is now possible to add the measurement layer to the view in order to keep painting
measurements after terminating interaction. This can be enabled using
setAddGXYLayerToGXYView().
- To give control over the removal of measurements, the measurement layer is exposed
using the getGXYLayer() method.
- A factory method to create a new TLcdGXYLayer is exposed. This method can be
overridden to provide the TLcdAdvancedMapRulerController with a custom TLcdGXYLayer.
Bug fixLucy (LuciadLightspeed)
LUCY-2533
The default icon size for PIM Preview, APP6A and MS2525b layers in a 3D view was adjusted to
use view scaling and the same pixel size as the default size of these icons in a 2D view.
Bug fixLuciadLightspeed
LMAP-4060
The copy constructor and clone() method of TLcdGXYViewLabelPainter did not copy all
properties.
Bug fixLuciadLightspeed
LMAP-3861
If the width, height or depth set on an ILcdBounds object has a negative value, then the bounds
location is shifted by that (negative) value and the input width/height/depth is considered to
be positive. This change affects the main ILcdBounds implementations: TLcdLonLatBounds,
TLcdLonLatheightBounds, TLcdLonLatFloatBounds, TLcdXYBounds, TLcdXYZBounds, TLcdXYFloatBounds,
TLcdXYZFloatBounds.
Bug fixLuciadLightspeed
LMAP-4049
Panning the view fired a view invalidation event before the world origin was actually
adjusted. Now it fires the event after the changes to the view are made.
Bug fixLuciadLightspeed
LMAP-4047
Some samples could throw a NullPointerException when trying to open a file.
Bug fixLuciadLightspeed
LMAP-4045
Improved the legibility of the haloed text displayed by TLcdAdvancedMapRulerController.
Bug fixLuciadLightspeed
LMAP-3607
ALcdGXYStampLabelPainter, TLcdGXYHaloPainter, TLcdGXYHaloLabelPainter, TLcdGXYIconPainter,
TLcdLonLatGridPainter, TLcdHaloIcon: halo painting now takes into account rendering hints
such as anti-aliasing.
Bug fixLucy (LuciadLightspeed)
LMAP-4038
Fixed a NPE that occurred when using the Earth addon in combination with the old 3D addon.
9.1.18
ImprovementLucy (LuciadLightspeed)
LUCY-2512
Lucy now supports earth repositories without height data.
ImprovementLucy (LuciadLightspeed)
LUCY-2519
The Lucy samples which require a custom workspace no longer try to load the default workspace
first. In some cases,
this could prevent the custom workspace to be loaded.
Bug fixLuciadLightspeed
LMAP-4029
TLcdLonLatArc.getTangent2D() and TLcdXYArc.getTangent2D() were returning incorrect results.
Bug fixLuciadLightspeed
LMAP-4030
Fixed issue with TLcdResizeableIcon throwing an exception for certain icons.
Bug fixLucy (LuciadLightspeed)
LUCY-2520
The lucy.heightintegration sample used to contain corrupted data files.
Bug fixLuciadLightspeed
LMAP-4028
TLcdGXYCircularArcPainter's line style was called with the wrong object.
Bug fixLuciadLightspeed
LMAP-4012
TLcdLonLatFloatPolygon.contains2D(double, double) returned incorrect results.
Bug fixDatabase Connectors
LMAP-4016
The Oracle ULTCoordinates field was not correctly interpreted, which could have resulted in
rasters being wrongly referenced on the map.
Bug fixReal-time Engine
LMAP-4007
TLcdContinuousDeclutteringLabelPainter could throw a NoSuchElementException when using it as
a layer label painter.
9.1.17
ImprovementAviation Standards
LMAP-4017
It is now possible to specify the preferred departure position for procedures decoded from an ARINC file. A new method 'setPreferredDeparturePosition'
has been added
to the TLcdARINCProcedureHandler class that takes one of the constants RUNWAY_START or RUNWAY_END as an argument. The default
setting is RUNWAY_END which
is compatible with the older behaviour.
ImprovementDefense Symbology
It is now possible in APP-6A to render the following symbols with more than two points:
- Minimum Risk Route (MRR) (2.X.2.1.2.2.2
- Unmanned Aerial Vehicle (UAV) Route (2.X.2.1.2.2.4)
- Low Level Transit Route (LLTR) (2.X.2.1.2.2.5)
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: improvements to the workspace to save subtypes. Fixes to open workspace files
with DAFIF data on different
machines.
Bug fixLucy (LuciadLightspeed)
LUCY-2508
Fixed a problem introduced by LUCY-2453 that prevented exporting to a terrain repository.
Bug fixDefense Symbology
The APP-6A symbol Final Protective Fire (FPF), 2.X.2.3.2.3.1, now uses two or more points to define the base
polyline,
instead of a fixed set of three points. This is more in line with the APP-6A specification.
9.1.16
ImprovementLuciadLightspeed
The valid bounds of the TLcdCassini projection now cover the entire globe.
ImprovementLuciadLightspeed
LMAP-3778
Added missing documentation of the height providers in the LuciadMap developer guide.
Also a sample was added that demonstrates the use of height providers (samples.gxy.height).
ImprovementLuciadLightspeed
LMAP-3682
TLcdGXYCircularArcPainter now has a method #setCreationOrientation to customize the orientation
of created arcs.
ImprovementMaritime Standards
TLcdS57ModelDecoder now supports S-57 files containing features with geometric primitive
type
point, line or area, but without any geometry attached. These features will be decoded as
TLcdS57FeatureObject instances.
Bug fixLucy (LuciadLightspeed)
LUCY-2205
TLcyDAFIFAddOn: the workspace support has been improved. Creating a new DAFIF layer after
loading
a workspace containing DAFIF layers resulted in two DAFIF layer structures in the layer control.
This has now been fixed.
Bug fixLucy (LuciadLightspeed)
LMAP-3698
Fixed the inaccurate positioning of handles of text objects that are rendered using SLD. The
prime example of these
are text objects in a drawing layer.
Bug fixLuciadLightspeed
LMAP-3862
The srsName is now properly set on each feature when encoding a document that contains
multiple features but doesn't
have a bounding box. Before this fix, the srsName name would be set only on the first
feature.
Bug fixLuciadLightspeed
LMAP-4000
The codes given to ALcdGXYSmartController#setZoomInCodes and #setZoomOutCodes were not
registered.
Bug fixLuciadLightspeed
LMAP-3991
The TLcdGXYPolylineLabelPainter copy constructor did not copy all fields ( VerticalGap,
LabelOnPath and MaxNumberPossibilities ). This also caused
TLcdGXYFeaturedPolygonLabelPainter#clone() to work incorrectly.
Bug fixLuciadLightspeed
LMAP-3856
The bounds of TLcdLonLatGeoBuffer were not accurate.
Bug fixLuciadLightspeed
LMAP-3985
TLcdEllipsoidUtil.computeBufferContour2D could throw IllegalArgumentException in certain cases.
Bug fixLuciadLightspeed
LMAP-3589
TLcdEllipsoid.intersection2DLSSFCT() was throwing an IllegalArgumentException when the input
points defined identical great circles.
Bug fixLuciadLightspeed
LMAP-3827
The TLcdCassini.world2lonlatOnSphereSFCT returned incorrect results when the latitude of the
origin point was not 0.
Bug fixLuciadLightspeed
LMAP-1775
The bounds of a TLcdLonLatPolygon around the poles were not correct.
Bug fixLuciadLightspeed
LMAP-1795, LMAP-1796
The bounds of TLcdLonLatArcBand were not correctly set when they contained the North or South
pole.
Bug fixLuciadLightspeed
LMAP-3938
Rotated text performance dropped considerably when using TLcdGXYLayer#paintFromOverlaps.
Bug fixLuciadLightspeed
LMAP-3690
TLcdGXYCircularArcPainter did not allow snapping the center point when creating arcs.
Bug fixLuciadLightspeed
LMAP-3650
TLcdIconImageUtil: the input stream of loaded images was not closed.
Bug fixReal-time Engine
LMAP-3983
TLcdTrackModel no longer throws exceptions when it is serialized.
9.1.15
ImprovementLuciadLightspeed
LMAP-3962
TLcdLonLatGrid, TLcdLonLatGridPainter and TLcdLonLatBorderGridPainter now also
support a grid origin.
ImprovementLucy (LuciadLightspeed)
LUCY-2498
The model of a PIM track layer now has an ILcdModelDescriptor where the source name equals
the source name of the model descriptor of the corresponding PIM model.
ImprovementLucy (LuciadLightspeed)
LUCY-2496
ALcyTool#getLongPrefix would throw a NullPointerException when called with a Class object which
does not have any package information available. The method now throws an
IllegalArgumentException
in this case, with a clear error message.
ImprovementLucy (LuciadLightspeed)
LUCY-1131
TLcyMapManager: the documentation of the addMapComponent and removeMapComponent method has been
improved. They
now properly document the limitation that removed ILcyMapComponents may not be re-added
afterwards.
ImprovementLuciadLightspeed
LuciadMap now provides USB iButton support for 64-bit Mac OS X.
ImprovementLuciadLightspeed
LMAP-3663
TLcdGeoTIFFModelencoder and TLcdGeoTIFFModelDecoder now support the
NODATA tag for specifying a transparent index in a color map.
Bug fixLuciadLightspeed
LMAP-3824
The getBounds() method of TLcdLonLatHeightSphere and TLcdLonLatHeightDome were returning 2D
bounds instead of 3D bounds. Also, the contains3D methods did not take the z axis into account.
Bug fixLuciadLightspeed
Properly decode GML documents with coordinates expressed in a mix of reference systems with
both lon-lat
and inverse lon-lat coordinate orders.
Bug fixLuciadLightspeed
LMAP-2670
A bug in the rendering of rotated labels with halo's, causing the labels to be partly invisible,
has been fixed.
Bug fixLuciadLightspeed
LMAP-3891
The width of the bounds returned by TLcdGeodetic2Grid.worldBounds2ModelSFCT() was 360 degrees
whenever the
actual width was >180 (but smaller than 360) and both Poles were visible.
Bug fixLuciadLightspeed
TLcdEarthCompositeImageTileSet could still produce a tile if the ALL_IMAGES tile production
mode was enabled (default) and one of the added tile sets did not have a tile. If this
behavior is desired the ONE_OR_MORE_IMAGES tile production mode should be used instead.
Bug fixLuciadLightspeed
LMAP-3969
TLcdGeneralPerspective.world2lonlatOnEllipsoidSFCT() could return points having Double.NaN as
the X coordinate.
Bug fixLuciadLightspeed
LMAP-3966
TLcdLonLatGridPainter sometimes did not draw a meridian/parallel.
Bug fixLuciadLightspeed
LMAP-3965
TLcdLonLatGridPainter painted incorrectly placed meridians in some cases.
Bug fixLuciadLightspeed
LMAP-3964
TLcdLonLatGridPainter did not always label the borders correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-2500
TLcyStringPropertiesCodec: when using includeConftlcybilltlcyig in properties files in a diamond
shaped
structure, some overridden values (of the included files) could get lost.
Bug fixLuciadLightspeed
LMAP-3716
TLcdInputStreamFactory: added a workaround for a bug in Java which could cause a ZipException
with
message 'ZipFile closed'.
Bug fixLuciadLightspeed
Fixed altitude exaggeration in TLcdEarthGLTerrainPainter when the updateTiles feature was
enabled.
Bug fixOGC Server
LMAP-3960
The INTERSECT constant of the TLcdOGCSpatialFilterCapabilities evaluator had the incorrect value "Intersect"
where it should have been "Intersects". As a result, encoding capabilities containing such a spatial filter
capability resulted in an invalid xml document.
Bug fixDefense Symbology
LMAP-3973
The turn, airfield zone and decoy mined area symbols could not be visualized in APP-6A.
Bug fixDefense Symbology
LMAP-3934
All calls to System.err and System.out have been replaced by the use of the LuciadMap logging mechanism,
allowing the user to customize the logging behavior.
Bug fixInfrastructure Standards
LMAP-3573
Issue LMAP-3573 (decoding of spline shapes) had been fix in previous LuciadMap versions but was
incorrectly merged into version 9. The issue is now solved in version 9 as well.
Bug fixInfrastructure Standards
LMAP-3945
TLcdDWGModelDecoder did not correctly handle block inserts containing other inserts.
Bug fixMaritime Standards
A bug in the rendering of traffic junctions has been fixed: traffic junctions are now
rendered
without a direction indication.
Bug fixMaritime Standards
A bug in the rendering of symbols (some embedded symbols were not rendered) has been fixed.
9.1.14
ImprovementLuciadLightspeed
LMAP-3936
The performance of the TLcdDefaultModelXYZWorldTransformation class has been improved.
ImprovementLucy (LuciadLightspeed)
LUCY-2487
TLcyLOSCoverageAddOn: Made the K-factor configurable. The default value
can be changed in the configuration file with the property
TLcyLOSCoverageAddOn.layer.tea.coverage.defaultValues.kFactor. It is also possible to create
a GUI component to edit this property by extending TLcyLOSCoverageGUIFactory and adding a
component to edit the value of the property
"TLcyLOSCoverageAddOn.layer.tea.coverage." + TLcyLOSCoverageBackEnd.K_FACTOR_KEY.
ImprovementLucy (LuciadLightspeed)
LUCY-2486
TLcyMapAddOn: an internal mediator for the selected layers of the TLcyMapComponent instances
reacted on every PropertyChangeEvent originating from the TLcyMapComponent instead of reacting
only on the relevant events. For example changing the name of the map
(TLcyMapComponent#setMapName)
triggered a call to TLcyMapComponent#getSelectedLayers . The mediator now only reacts on the
relevant events.
ImprovementReal-time Engine
TLcdContinuousDeclutteringLabelPainter now has a forced painting priority threshold. When the
priority of a label is higher than this threshold, it is always drawn., even when it should be
dropped because of the max label coverage option.
ImprovementReal-time Engine
TLcdContinuousDeclutteringLabelPainter now can use a label priority provider that can make
a distinction between labels with different label and sublabel indices. This is done by passing
a ALcdGXYLabelPriorityProvider to TLcdContinuousDeclutteringLabelPainter#setLabelPriorityProvider().
Bug fixLucy (LuciadLightspeed)
LUCY-2491
TLcyGXYLayerOrderManager: Adding and immediately moving an ILcdGXYLayer could result in an
ILcdGXYLayer
at the wrong index, because the TLcyGXYLayerOrderManager would move it to a new position. This
has been fixed.
Bug fixLuciadLightspeed
LMAP-3944
TLcdGXYIconPainter: fixed snapping when creating icons.
Bug fixLuciadLightspeed
LMAP-3935
TLcdGeoTIFFModelEncoder now correctly encodes RGB and ARGB colors of custom
tiles.
Bug fixLuciadLightspeed
LMAP-3918
Writing xml content of type xsd:QName with an empty namespace no longer generates an empty
namespace declaration.
This issue only occurred when not using the (default) woodstocks XML libraries.
Bug fixLuciadLightspeed
LMAP-3924
Taking the intersection of two valid TLcdXYBounds, TLcdXYZBounds, TLcdLonLatBounds or
TLcdLonLatHeightBounds objects could produce a result with negative width, height or depth.
Bug fixLucy (LuciadLightspeed)
LUCY-2453
TLcyEarthOpenGLAddOn: the tileset used by the TLcyEarthOpenGLAddOn had some threading issues,
which could
stop the painting of this tileset. These issues have been resolved.
Bug fixLuciadLightspeed
LMAP-3923
TLcdCompositeModelXYZWorldTransformation.modelBounds2worldSFCT() could return world bounds with
an incorrect Z coordinate. This also affected the TLcdDefaultModelXYZWorldTransformation class.
Bug fixAviation Standards
LMAP-3943
TLcdDAFIFRegionChooser: fixed a NullPointerException when no ILcdStringTranslator was set.
9.1.13
ImprovementLucy (LuciadLightspeed)
LUCY-2148
Docking front end: the sliders, separating the different ILcyApplicationPane instances, now
respect the preferred sizes of their content instead of being just in half.
ImprovementLuciadLightspeed
LMAP-3867
TLcdLonLatGridPainter now has more label styling options, such as drawing labels with a frame,
and/or with a filled background.
Bug fixLucy (LuciadLightspeed)
LUCY-2485
TLcyWorkspaceAddOn: the TLcyWorkspaceAddon.numberOfRecentWorkspaces property in the
workspace_addon.cfg
configuration file contained a typo, which has been fixed. The capital 'O' in AddOn has been
replaced by
a lower case 'o'.
Bug fixLuciadLightspeed
Features of type TLcdGML3Measure can now be properly retrieved using the
ILcdFeatured#getFeature(int) method.
Before this fix, null was always returned. This issue only occurred when using the old
deprecated
TLcdGML3ModelDecoder.
Bug fixLuciadLightspeed
LMAP-3920
Offset icon painting was slow when lots of offset icons are drawn.
Bug fixLucy (LuciadLightspeed)
LUCY-2482
GML layers weren't always painted in 3D.
Bug fixLuciadLightspeed
3D points created with the GML shape factory now properly keep track of their Z coordinate.
Bug fixLuciadLightspeed
LMAP-3864
During encoding, srsNames are now properly set on each feature in case no envelope is
present.
Bug fixLucy (LuciadLightspeed)
LUCY-2481
TLcyMapComponentFactory: when overriding the createGXYView() method and using the independent
layer
order mode, adding a layer to the view would first add it at the wrong position and only move it
to its correct position afterwards.
Bug fixLuciadLightspeed
LMAP-3916
The logging framework could not be configured to use a different logging framework in the
context of a web application container.
Bug fixLuciadLightspeed
TLcdEarthGLVectorPainter no longer unconditionally enables texture mapping from its
paintClipmap() method. If texture mapping is needed, it should be enabled by the
TLcdEarthGLVectorPainter's delegate painter.
Bug fixLucy (LuciadLightspeed)
LUCY-2480
TLcyG4JAddOn : some files which could be opened with the TLcyG4JAddOn prior to V9.1, could not
be opened with version V9.1 using the TLcyG4JAddOn.
Bug fixLuciadLightspeed
LMAP-3914
TLcdGeoTIFFModelDecoder now correctly encodes 16-bits rasters decoded by
Java Advanced Imaging (for example GeoTIFF files).
Bug fixLuciadLightspeed
LMAP-3823
TLcdGeoTIFFModelDecoder was sometimes setting an incorrect model reference when the
coordinate system from the GeoTIFF file was user-defined.
Bug fixLuciadLightspeed
LMAP-3907
TLcdGXYAsynchronousPaintQueue#setBorderFactor was not always ignored for labels,
causing placement problems when labels have absolute coordinates or when labels are placed at
the edge.
Bug fixLucy (LuciadLightspeed)
LUCY-2466
TLcyEarthOpenGLAddOn: the ILcdGLLayerFactory for the TLcyEarthOpenGLAddOn now only accepts
ILcdModel
instances for which it can actually create an ILcdGLLayer.
Bug fixLuciadLightspeed
LMAP-3900
TLcdLonLatGridPainter did not respect the labelEdgeOffset property.
Bug fixLuciadLightspeed
LMAP-3887
In some cases, TLcdLonLatGridPainter could try to paint the entire grid instead of only
the visible part. This resulted in a performance problem.
Bug fixLuciadLightspeed
LMAP-3894
ILcdEditableShapeList implementations are now notified by TLcdGXYShapeListPainter via the
shapeChanged() method when one or more of their shapes has been edited.
ALcdShapeList.invalidateBounds() is now also called whenever a shape in a shape list has been
edited by TLcdGXYShapeListPainter.
Bug fixLuciadLightspeed
LMAP-3889
A performance bug in the halo rendering algorithm has been fixed.
Bug fixDefense Symbology
LMAP-3901
The nuclear, biological and chemical area symbols could not be visualized in APP-6A.
Bug fixInfrastructure Standards
LMAP-3909
TLcdCellGXYPainter now also handles holes correctly when printing.
9.1.12
Bug fixLuciadLightspeed
LMAP-3418
TLcdGeoTIFFModelEncoder now again correctly writes out large index color
models of elevation rasters that have single tiles.
9.1.10
ImprovementLuciadLightspeed
The use of automatic mipmap generation in TLcdEarthGLTerrainPainter can now be disabled by
setting the system property "com.luciad.view.opengl.extensions.GL_SGIS_generate_mipmap" to
"false". This may be desirable on graphics cards or drivers where this feature is poorly
implemented, resulting in instability. Intel integrated graphics chipsets are a notable
example for which mipmap generation may need to be disabled.
ImprovementDefense Symbology
LMAP-3885
The FEBA symbols in APP-6A that show the actual trace (2.X.2.1.4.2.1.1 and 2.X.2.1.4.2.1.2)
now support more than two points.
ImprovementDefense Symbology
LMAP-3873
All symbols in the minefield group in APP-6A (category 2.X.2.2.1.6) are now represented as areas.
More specifically, the following symbols have received an updated representation:
- AP minefield (G*C*BOAIL-*****, 2.X.2.2.1.6.3) is now an area instead of a line,
- AP minefield with gap (G*C*BOAIG-*****, 2.X.2.2.1.6.4) is now an area instead of a line,
- AP minefield reinforces with self-destruct DTG (G*C*BOAIH-*****, 2.X.2.2.1.6.7) is now an area instead of
a point,
- Scatterable minefield with self-destruct DTG (G*C*BOAID-*****, 2.X.2.2.1.6.8) is now an area instead of a
point.
Bug fixLuciadLightspeed
LMAP-3886
TLcdWKTReferenceParser did not support the Swiss Oblique Mercator projection.
Bug fixLucy (LuciadLightspeed)
LUCY-2386
TLcyMain: it could happen that the application exited before the error dialog for an invalid
license file was displayed.
Bug fixLuciadLightspeed
The TLcdEarthTexturedTerrainTileSet did not support updateTile for its geometry and image
coverages.
Bug fixLucy (LuciadLightspeed)
LUCY-2447
The center action now correctly uses the bounds of the selected object.
Bug fixLuciadLightspeed
LMAP-3884
Database models (for example DB2) no longer throw an ArrayIndexOutOfBoundsException when the
maximum cache size is set to 0.
Bug fixLucy (LuciadLightspeed)
LUCY-2474
Corrected rendering behavior of icons with respect to transparent objects in the 3D view.
Bug fixLuciadLightspeed
LMAP-3881
TLcdBILTileDecoder no longer ignores the number of band row bytes when
reading tiles without sub-tiling.
Bug fixLuciadLightspeed
LMAP-3874
TLcdGXYMultiFontLabelPainter could print out stack traces when the object to label was not
visible.
9.1.09
Bug fixLuciadLightspeed
LMAP-3879
TLcdEarthRepositoryModelDecoder could not open repositories with PNG data. As a result it
was
for example not possible to open such repositories in Lucy, while this was supported in
earlier
versions.
Bug fixLucy (LuciadLightspeed)
LUCY-2473
TLcyMapAddOn: a ClassCastException could be thrown when disposing an ILcyGenericMapComponent.
This has been solved.
Bug fixLuciadLightspeed
TLcdEarthAsynchronousTileSet did not clean up its resources when its dispose method was not
called. This could for example result in a number of unused threads when using the
TLcdEarthGLTerrainPainter.
Bug fixLucy (LuciadLightspeed)
LUCY-2471
TLcyMapAddOn: the TLcyMapAddOn.sortLayerListLeafs property in the map_addon.cfg file was no
longer
respected. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2469
TLcyMapComponentFactory: under certain circumstances the construction of the actions
(TLcyMapComponentFactory#createAction)
for the IDs CENTER_SELECTION_ACTION and FIT_SELECTION_ACTION could throw a NullPointerException.
This has been fixed.
Bug fixLuciadLightspeed
LMAP-3865
TLcdGXYCirclePainter and TLcdGXYEllipsePainter's paint direction was inconsistent, causing
problems when using advanced strokes.
9.1.08
ImprovementLuciadLightspeed
LMAP-3835
Previously TLcdModelXYWorldBoundsCalculation#worldBounds2modelLLH could return bounds starting
at lon 180. Now the bounds start at -180 instead.
ImprovementLuciadLightspeed
When an unknown unit of measure is encountered, a warning message is logged
to inform the user that the uom is unknown and that the default unit is used.
ImprovementLuciadLightspeed
TLcdEarthGLTerrainPainter uploaded more terrain texture tiles to the graphics card
per repaint than strictly necessary. This has been addressed, which may result in
smoother rendering especially on lower-end hardware.
ImprovementDatabase Connectors
The Oracle JDBC drivers have been updated to version 11.2.0.1.0.
ImprovementAviation Standards
Improved logging of errors which occur during the geometry calculation of association based airspaces. These errors
indicate that the geometry of an association based airspace is invalid, or that some information is missing. Increase
the logging level to get more information in case such an error occurs.
ImprovementAviation Standards
LMAP-3655
The DAFIF decoders will now show a warning instead of a "severe" error in case a model has no bounds. The error
message will now also refer to the specific DAFIF file which resulted in the empty model.
ImprovementDefense Symbology
LMAP-2202
The width of the air corridor and flight route symbols in APP-6A (category 2.X.2.1.2.2)
and MIL-STD 2525b/c (category 2.X.2.2.2.1) can now be adjusted.
Bug fixLuciadLightspeed
The bounds of TLcdXYArc, TLcdLonLatArc, TLcdXYArcBand no longer include
the center point of these shapes (previous change has been reverted).
Bug fixLuciadLightspeed
LMAP-3860
In the geometry package intersection calculations, in some rare cases it did not find all
intersection points between two arcs.
Bug fixLuciadLightspeed
LMAP-3851
The LuciadMap hardware key now also works on Windows if a different user has
installed the .msi 1-Wire drivers.
Bug fixLuciadLightspeed
LMAP-3828
TLcdGXYDragRectangleController: an invalid selection rectangle was painted if the map loses
focus while dragging.
Bug fixLuciadLightspeed
Geodetic GML envelopes now correctly deal with situations where the longtitude of the
lower corner is larger than the longtitude of the upper corner.
Bug fixLuciadLightspeed
LMAP-3832
Issues with geometry topology calculations with points were fixed. Point interacting with
polygon test could give incorrect results, points on points now return true for both inside and
contains, and lines cannot intersect points anymore now.
Bug fixLuciadLightspeed
LMAP-3855
The bounds of a geobuffer are now invalidated when the axis has been changed by the
TLcdGXYGeoBufferPainter, or when an axis is set on the buffer.
Bug fixLucy (LuciadLightspeed)
LUCY-2222
TreeTableViewCustomizerPanel: this customizer panel could throw IllegalArgumentException when
displaying the properties of an ILcdFeatured instance with null as feature value. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-3818
The line intersection topology calculation with arc band shapes sometimes returned wrong points
in the ellipsoidal case.
Bug fixLuciadLightspeed
LMAP-3825
TLcdGXYContinuousPanController did not respect the view's clip bounds.
Bug fixLuciadLightspeed
LMAP-3826
TLcdAWTUtil.resetGraphics no longer resets the Graphics object's transformation.
Bug fixLuciadLightspeed
LMAP-3802
The TLcdWKTReferenceFormatter does not support rotated grid references (the rotation parameter
was silently discarded). An exception is now thrown when attempting to format a rotated grid
reference.
9.1.07
ImprovementLuciadLightspeed
LMAP-3792
GML32 and GML31 documents containing geometries with coordinates expressed
using the deprecated gml:coordinates element can now also be decoded and visualized.
ImprovementLuciadLightspeed
LMAP-3845
Srs names matching urn:ogc:def:crs:EPSG:*:4326 are now recognized as references
which have their coordinates in inverse order (first lat, then lon).
ImprovementLucy (LuciadLightspeed)
LMAP-3842
TLcyAIXM5GLAddOn: AIXM5 airspace usages with a status of 'INACTIVE' are now also painted in 3D,
this is similar to the 2D behaviour.
ImprovementLuciadLightspeed
LMAP-3811
TLcdDatabaseModel and TLcdDatabaseReadOnlyModel now throw an
IllegalStateException from ILcdModel methods, if the operation requires
access to the database and fails. Such failures are now consistently
logged with the standard logging mechanism.
ImprovementLuciadLightspeed
TLcdEarthAsynchronousTileSet did not set the priority of the threads it created,
resulting in potentially poor performance on single-core machines. Threads are now
initialized with minimum priority to ensure that they do not interfere with the
event dispatch thread.
ImprovementLucy (LuciadLightspeed)
LMAP-3806
TLcyDafifAddOn: the label of the 'Update' button, the 'Types' label and the 'ICAO Regions' label
in the DAFIF panel can now be translated.
ImprovementAviation Standards
TLcdProcedure3DGeometryCalculator: Improved the initial altitude setting for SID procedures. This results
in a better discretization of certain leg types.
ImprovementAviation Standards
LMAP-3806
TLcdDAFIFLoader: added a constructor with an ILcdStringTranslator to allow for translation of the label on the 'Update' button
and the 'Types' list.
TLcdDAFIFRegionChooser: added a constructor with an ILcdStringTranslator to allow for translation of the label on the 'ICAO
Regions' list.
Bug fixLucy (LuciadLightspeed)
LUCY-1287
TLcyEarthAddon: can now also open trn files whose source name is a file URI (e.g.
file:///path/to/terrain.trn).
Bug fixLuciadLightspeed
XML schema type identifiers for locally defined attribute types are now correctly
represented (i.e. with the attribute name filled in). They used to be presented
similar to locally defined element types, (i.e. with the attribute name as an
element name).
Bug fixLuciadLightspeed
LMAP-3834
TLcdGXYPolylineStampLabelPainter#anchorPointSFCT: in some cases, an
ArrayIndexOutOfBoundsException was thrown for polylines with zero-length segments.
Bug fixLucy (LuciadLightspeed)
LUCY-2429
PIM trajectories and waypoints were no longer painted asynchronously.
Bug fixLucy (LuciadLightspeed)
LUCY-2335
TLcyPreviewAddOn: switching between maps in the customizer panel could cause a
NullPointerException.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelEncoder now takes into account the index color model of the
raster if it overrides the color model of the tile.
Bug fixLuciadLightspeed
LMAP-3822
TLcdGeoTIFFModelDecoder now correctly interprets the SampleFormat tag
for identifying elevation data (bug introduced in 9.1.01).
Bug fixLucy (LuciadLightspeed)
LUCY-2446
TLcyMapComponentFactory: overriding the createComponent method for the LAYER_CONTROL_COMPONENT
id
and returning an object which does not implement ILcyMapLayerControl will now correctly display
that object in the ILcyApplicationPane reserved for the layer control of the map.
Bug fixLuciadLightspeed
LMAP-3817
When loading TEA files from a workspace some paths could not be loaded because "null/"
was added to the filename.
Bug fixDatabase Connectors
LMAP-3776
TLcdOracleGeoRasterModelDecoder may consider that database rasters have different references, even
though the references may be equivalent.
Bug fixReal-time Engine
LMAP-3846
The realtime.offsetIcon sample no longer tries to declutter before the previous declutter
operation is finished, preventing several exceptions.
Bug fixMaritime Standards
LMAP-3446
Ecdis models and model decoder are now thread-safe.
9.1.05
Bug fixLucy (LuciadLightspeed)
LUCY-2510
Paths in *.tea.los files could not be opened sometimes.
Bug fixLucy (LuciadLightspeed)
LUCY-2445
TLcyGLMapComponentFactory: every ILcdAction and ILcyActiveSettable was inserted in the
configured
action bars using TLcyActionBarUtil#insertInConfiguredActionBars. This is now documented in the
TLcyGLMapComponentFactory#setup method. From now on, only the actions and/or active settables
actually containing
the TLcyActionBarUtil#ID_KEY key-value pair are inserted instead of all actions and active
settables.
Bug fixLuciadLightspeed
LMAP-3700
The TLcdResizeableIcon used to result in a infinite loop when the target width was greater
than the width of the original icon while the target height was smaller than the height of the
original icon or vice versa. This has been solved.
Bug fixLuciadLightspeed
LMAP-3769
The NO_LAYOUT option for the TLcdOverlayLayout works as expected now.
Bug fixLucy (LuciadLightspeed)
LUCY-2444
Earth OpenGL: Layers were rendered very slow if GML or POL layers were included
on the 3D map. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2336
Area of interest customizer panel: the chosen scale of the scale combobox is now respected when
pressing the
Fit Map button after changing the scale of the view.
Bug fixLuciadLightspeed
LMAP-3788
TLcdDTEDTileDecoder no longer skews the image when used in a raster model (.rst file).
Bug fixLuciadLightspeed
LMAP-3800
When formatting the TLcdLambert1972BelgiumGridReference as a well-known-text (WKT), the
projection name is now "Lambert_Conformal_Conic_2SP_Belgium" instead of
"Lambert_Conformal_Conic_2SP".
Bug fixLuciadLightspeed
LMAP-3371
TLcdGXYZoomWheelController now zooms correctly when dragging.
Bug fixLuciadLightspeed
LMAP-3798
TLcdBILTileDecoder (used by TLcdBILModelDecoder and TLcdETOPOModelDecoder)
now avoids skipping past the end of its input stream, to avoid infinite
loops for some input stream implementations.
Bug fixLucy (LuciadLightspeed)
LUCY-2425
ILcyLucyEnv#addService: removed the incorrect documentation stating the TEA add-ons use
the registered ILcdModelFactory instances to create new ILcdModels to display results in.
If you would like a specific TEA atedd-on to use your ILcdModelFactory instead of the
default one, it is always possible to override the ALcyFormat#createModelFactory() method in
the
ALcyFormat registered by the add-on (see for example TLcyContourAddOn#createBaseFormat() ).
Bug fixLucy (LuciadLightspeed)
LUCY-2432
TLcyDrawingAddOn: when saving and loading a workspace, the icons of the selected points are now
correctly restored.
Upgrade considerationLucy (LuciadLightspeed)
TLcyG2DFillStyle: this class - which documented it could disappear without notice - has been
removed. Its functionality is available in TLcdGXYStripedFillStyle.
9.1.04
ImprovementLuciadLightspeed
Added support for capabilities files which have the MaxScaleDenominator element before the MinScaleDenominator.
Although this is not valid according to the WMS specification, it sometimes occurs in practice.
ImprovementLuciadLightspeed
The bounds of TLcdXYArc, TLcdLonLatArc, TLcdXYArcBand and TLcdLonLatArcBand have been extended
to include the center point of these shapes.
ImprovementAviation Standards
LMAP-3794
TLcdAIXM5XPathExpressionFactory: added the possibility to register additional schemas and prefixes with
the XPath expression factory.
Bug fixLucy (LuciadLightspeed)
TLcyAIXM5OpenGLAddOn: improved the robustness of the painter in case unsupported AIXM5 features
are
added to the 3D map.
Bug fixLucy (LuciadLightspeed)
LUCY-2436
TLcyGLFormatTool: the ILcyLayerStyleProvider is now unplugged when unplugging the format.
Bug fixLucy (LuciadLightspeed)
LUCY-2435
TLcyGLFormatTool: the ALcyWorkspaceObjectCodec were not plugged in when the associated
ALcyGLFormat
had a null ILcdGLLayerFactory. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2434
TLcyFormatTool: the format tool now also unplugs the ILcdModelHeightProviderFactory and
the ILcyLayerStyleProvider of the format.
Bug fixLucy (LuciadLightspeed)
LUCY-2391
The on-map mouse location used to always show the location in the WGS-84 coordinate system, also
when a coordinate system was chosen by the user. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3786
The result of TLcdGXYRoundedPointListPainter#clone could throw a null point exception for
subsequent method invocations.
Bug fixLuciadLightspeed
Rotation sample: RotationSupport now works correctly for grid references.
Bug fixLuciadLightspeed
LMAP-3536
TLcdGXYPointListPainter#getCreationClickCount did not return -3 for filled polygons,
making it possible to create polygons of 2 points.
Bug fixAviation Standards
LMAP-3790
TLcdICAORunwayPainter: Fixed an issue which caused runways to be drawn with a doubled width.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2427, LUCY-2326
TLcyAsynchronousPaintAddOn's paint queue strategies could cause exceptions in code that
relied on the correct order of ILcdLayered events dispatched by the view.
TLcyAsynchronousPaintAddOn now uses a single paint queue strategy
that respects the correct order of these ILcdLayered events.
Hence, the configuration flag TLcyAsynchronousPaintAddOn.paintQueueStrategy is no longer used.
The used strategy does not impose any constraints on the layer order.
9.1.03
ImprovementLuciadLightspeed
LMAP-3102
The hash code for the following shapes has been improved: ALcdBounds, ALcdPoint, TLcdLonLatArc,
TLcdLonLatArcBand, TLcdLonLatBuffer, TLcdLonLatCircle, TLcdLonLatEllipse, TLcdXYArc,
TLcdXYArcBand, TLcdXYCircle, TLcdXYEllipse, TLcdXYText, TLcdExtrudedShape,
TLcdLonLatHeightBuffer, TLcdLonLatheightDome, TLcdLonLatheightSphere,
ALcd2DEditableFloatPolypoint, ALcd3DEditableFloatPolypoint.
ImprovementLucy (LuciadLightspeed)
LMAP-3480
The TLcyMagneticNorthAddOn now supports dates in the period 2010-2015. The newest WMM and
IGRF coefficients are available so that the magnetic north information is as accurate as
possible.
ImprovementLuciadLightspeed
LMAP-3487
The performance of TLcdCompositeCurve.getLength2D() has been improved.
ImprovementLuciadLightspeed
LMAP-3661
The TLcdXMLSchemaBasedDecoder now also uses the XMLResolver set on the XMLInputFactory
during resolution of XML schemas.
ImprovementLuciadLightspeed
LMAP-3480
The magnetic north data files for WMM and IGRF have been updated to cover the period 2010-2015.
Also, TLcdWMMMagneticNorthMap and TLcdWMMModelDecoder have been adjusted to support
multiple consecutive WMM data files.
ImprovementAdvanced GIS Engine
LMAP-1948, LMAP-3551
TLcdEllipsoidalBasicBinaryTopology, TLcdSphericalBasicBinaryTopology and TLcdCartesianBasicBinaryTopology
now provide support for ILcdComplexPolygon instances.
ImprovementAviation Standards
LMAP-3774
The AIXM5 model decoder now has public accessors to get and set its entity resolver. This
allows the application to determine how references to external schemas are resolved.
ImprovementInfrastructure Standards
TLcdCellGXYPainter now more robustly handles recursive invocations.
Bug fixLuciadLightspeed
The elevations retrieved from a (multilevel) raster could be incorrect if its reference is
WGS84 and its bounds cross the 180 degrees meridian.
Bug fixLuciadLightspeed
The TLcdEarthTerrainRepositoryModelDecoder could not decode repositories with a non-geodetic
model reference that contain elevation data.
Bug fixLuciadLightspeed
The TLcdEarthElevationDataTileDataCodec could not encode elevation data with NaN values.
Bug fixLuciadLightspeed
LMAP-2157
The TLcdXYPolygon.contains2D() now returns true for its corner and edge points, which is
consistent with the behavior of TLcdLonLatPolygon.
Bug fixLuciadLightspeed
LMAP-2067
The TLcdXYArcBounds.getBounds() method was returning bounds that were too large.
Bug fixLuciadLightspeed
LMAP-2868
Classes derived from ALcd2DEditablePolypoint and ALcd3DEditablePolypoint can not always create
a deep clone if the internal point list is specified by the user. If a shallow clone is
returned the implementation now issues a warning.
Bug fixLucy (LuciadLightspeed)
LUCY-2422
TLcyDataRepositoryAddOn: fixed a ClassCastException which could occur when disposing a
ILcyMapComponent.
Bug fixLucy (LuciadLightspeed)
LUCY-2418
Polyline SHP layers are made snappable again.
Bug fixLuciadLightspeed
LMAP-3759
The TLcdRPCModelReferenceDecoder now tries automatically to derive the name of the file
containing the RPC parameters by replacing the suffix of the input file with "_rpc.txt".
Bug fixLucy (LuciadLightspeed)
LUCY-2414
TLcyMapComponentFactory: fixed a NullPointerException when overriding the createComponent method
for the LAYER_CONTROL_COMPONENT ID.
Bug fixLuciadLightspeed
LMAP-3497
TLcdXYArc.getLength2D() was returning incorrect results.
Bug fixLucy (LuciadLightspeed)
LUCY-2409
When saving the layer style of layers in the 3D map, they now use the same prefix as the
corresponding layers in a 2D map in the .sty file. This means the prefix usually begins with
"layer." instead of the name of the add on.
Bug fixLucy (LuciadLightspeed)
LUCY-2411
TLcyAIXM5OpenGLAddOn: the toolbar of the table view of AIXM5 layers in 3D now contains the same
actions
and active settables as in 2D.
Bug fixLucy (LuciadLightspeed)
LUCY-2410
TLcyLOSCoverageBackEnd, TLcyVisibilityBackEnd: the documentation has been extended to improve
the usability.
Bug fixLuciadLightspeed
LMAP-3754
The accuracy of TLcdLonLatArc.getBounds() has been improved, especially for arcs
belonging to very elongated ellipses.
Bug fixLuciadLightspeed
LMAP-1784
TLcdLonLatArc.updateForCornerPoint2D() was incorrect when called with
ILcdArc.MINOR_RADIUS_OPPOSITE_CORNER as argument.
Bug fixLuciadLightspeed
LMAP-2123
TLcdXYArc.getBounds() was not always returning correct results. This has been fixed.
Bug fixLuciadLightspeed
LMAP-1794, LMAP-3060
TLcdXYArc.getBounds() now contains the start/end points of the arc in all cases.
Bug fixDatabase Connectors
TLcdOracleSpatialModelEncoder now correctly encodes polylines that are also
polypoints (like TLcdXYPolyline, which extends TLcdXYPolypoint).
Bug fixInfrastructure Standards
LMAP-3649
TLcdCellGXYPainter now handles holes that have outlines and that may not
be filled.
9.1.02
ImprovementLuciadLightspeed
LMAP-3768
TLcdIndependentOrderTreeLayeredSupport now provides a hook to alter the index at which layers
are added to the flat list representation.
ImprovementLuciadLightspeed
TLcdWCSGeoTiffCoverageTileDecoder now supports decoding of service exception reports.
ImprovementLuciadLightspeed
LMAP-3679
TLcdWFSGetFeatureRequest no longer includes the XML declaration within an OGC Filter Encoding
when encoding KVP requests, as it was not supported by some WFS servers.
Bug fixLucy (LuciadLightspeed)
LUCY-2403
TLcyMapAddOn - TLcyGXYLayerOrderManager: several fixes have been made to the default
ILcyGXYLayerOrderManager of the TLcyMapAddOn when the
TLcyMapAddOn.independentOrderTreeLayeredSupport
property is changed to true. The behaviour of the ILcdGXYLayerOrderManager has remained
unchanged for the
default value of this property (=false). Those fixes are listed below:
- In certain situations it used to be possible that an ILcdLayeredListener received a
move
event before the add event when a layer was added directly to the ILcdGXYView. For example
the
asynchronous paint addon and the height provider would throw exceptions.
- It is no longer possible to move an empty ILcdLayerTreeNode between the realtime
layers.
- Empty ILcdLayerTreeNodes are now always inserted at the bottom of the view and no
longer
between real time layers at the top of the view.
- It is now possible to insert an ILcdLayerTreeNode containing realtime layers directly
into
the view. It is no longer needed to go through ILcyGXYLayerOrderManager#insertGXYLayer.
- Using ILcyGXYLayerOrderManager#insertGXYLayer with a certain layer and model content
type now
respects those types.
Bug fixLuciadLightspeed
LMAP-3771
TLcdGXYPolygonLabelPainter and TLcdGXYPolylineLabelPainter now respect the anti-aliasing
rendering hints from the passed Graphics instance.
Bug fixLuciadLightspeed
TLcdLonlatCircularArcbyBulge.getBounds() was returning bounds in Cartesian coordinates (XY)
instead of geodetic (lon/lat).
Bug fixLucy (LuciadLightspeed)
LUCY-2400
The Decluttering option in the layer context menu and properties panel is now only available
when the layer supports
labels, otherwise it's greyed out.
Bug fixLuciadLightspeed
The threads of the TLcdEarthAsynchronousTileSet could prevent its delegate tileset from
being
garbage collected after the TLcdEarthAsynchronousTileSet is garbage collected.
Bug fixLuciadLightspeed
LMAP-3544
TLcdLonLatCircularArcBy3Points.getLineSegmentIntersectionCount() was returning incorrect results
in some limit cases.
Bug fixLucy (LuciadLightspeed)
LUCY-2280
Copying layers from one map to another will now add the layers to the new map in the order that
they
were in the old map, instead of in the order the layers were read from the GUI component in
which they
were selected. In relation to this fix, TLcyMapDataFlavor is extended with a new data flavor
constant
VIEW_DATA_FLAVOR. This constant can be used to transfer a generic ILcdView.
Bug fixLuciadLightspeed
The TLcdEarthAsynchronousTileSet did not report all exceptions that occur during its
asynchronous operation.
Bug fixLuciadLightspeed
LMAP-3760
WCS client data is now correctly shown in case the projection requires warping.
Bug fixLuciadLightspeed
LMAP-3676
TLcdOWSHttpTransport#sendData did not close the OutputStream of the connection in case of POST requests.
Bug fixAdvanced GIS Engine
In some cases a ClassCastException was thrown when checking a topological relation between
an ILcdPolygon and an ILcdPolyline instance.
Bug fixTerrain Analysis Engine
LMAP-1979
The hypsometric painters now also use the unit of measure to compute the elevation scale.
This scale is a rough estimate for computing the normals, based on the transformed bounds.
9.1.01
ImprovementLuciadLightspeed
LMAP-3657
To allow additional configuration on the layer and painter level of a WMS proxy model,
two new classes have been introduced: TLcdWMSProxyGXYLayer and TLcdWMSProxyGXYPainter.
The existing layer factory, TLcdWMSProxyGXYLayerFactory, now returns layers of type
TLcdWMSProxyGXYLayer, configured with a TLcdWMSProxyGXYPainter instance as painter provider.
ImprovementLuciadLightspeed
LMAP-3755
The TLcdWFSModelDecoderDecorator now supports a boolean flag to turn GML application schema
caching on. This is typically used when many small documents need to be decoded from the
same WFS server.
ImprovementLuciadLightspeed
LMAP-3755
A new flag 'useApplicationSchemaCache' has been added to the TLcdGMLModelDecoder.
Turning this flag on will ensure that the decoder cache all application schemas
it encounters. This reduces memory usage in case many files have to be decoded
for the same application scheme.
ImprovementLuciadLightspeed
TLcdRPCProjection now has getters and setters for its parameters.
ImprovementLucy (LuciadLightspeed)
LUCY-2268
TLcyDrawingAddOn: arc-by-center creation now occurs clockwise, consistent with other shapes.
Please refer to the "custom painter" sample to customize this.
ImprovementLucy (LuciadLightspeed)
LUCY-2379
TLcyDrawingAddOn - TLcyPIMTrackAddOn: the default pen of the layers created by the layer factory
is now configurable through the addons configuration file.
ImprovementLuciadLightspeed
LMAP-3738
TLcdDatabaseModelEncoder now supports automatic periodic commits when
exporting a model to a database. This may be useful to avoid overflow of
transaction logs.
ImprovementLuciadLightspeed
Updated the raster sample to use the repository model decoder introduced in 9.1.
ImprovementLuciadLightspeed
TLcdSHPModelDecoder allows the user to specify a model factory. This may be useful for example
if the user wants to set a filter for adding elements to the output model.
ImprovementLucy (LuciadLightspeed)
The clone(Object aDomainObject, ILcdModel aSourceModel, ILcdModel aTargetModel) method of
samples.lucy.drawing.DomainObjectConverter is now private.
ImprovementLucy (LuciadLightspeed)
LUCY-2231
ALcyDomainObjectConverter: added some code snippets to the class javadoc, illustrating the usage
of this class.
ImprovementLucy (LuciadLightspeed)
LUCY-2065, LUCY-2066, LUCY-2068, LUCY-2343
Lucy Developer Guide: several enhancements were made to the developer guide:
- The list of available action bars has been updated.
- The list of native libs has been updated.
- The TLcyGLMapAddOn has been added to the list of customizer containers.
- Some wrong references have been corrected.
ImprovementLuciadLightspeed
The elevation of the shapes in the above ground sample now updates when the terrain is
changed (ex. they become flat if it is removed).
ImprovementLuciadLightspeed
LMAP-3678
The TLcdEarthGLTrnTileSet, TLcdEarthAssetGXYViewTileSet and
TLcdEarthAssetTerrainElevationTileSet
are now thread-safe.
ImprovementLucy (LuciadLightspeed)
LUCY-2223
The point format is now case-insensitive.
ImprovementLuciadLightspeed
LMAP-3695
TLcdAdvancedMapRulerController, TLcdGRIBGXYController, TLcdGXYCenterRasterController,
TLcdGXYMagnifierController and TLcdMagneticNorthGXYController now extend from
ALcdGXYSmartController.
ImprovementLuciadLightspeed
LMAP-3514
Layer control sample: the layer control of the samples now has an extra button, allowing to
change the label of the layers.
ImprovementLucy (LuciadLightspeed)
LUCY-2182
TLcyDrawingAddOn: the validation in the fields of the customizer panels has been improved.
Values
which were previously clamped behind the screens are no longer accepted by the formats. Negative
values for distances (e.g. radius of a circle) are now rejected by the format and no longer
throws an InternalError.
ImprovementLuciadLightspeed
LMAP-3647
The TLcdEarthGLTerrainClipmapLevel now uses older versions of some OpenGL methods (e.g.
gl*ARB
instead of gl*) for hardware compatibility reasons. The performance on hardware that was
previously supported should not be affected.
ImprovementDatabase Connectors
LMAP-3738
TLcdDB2ModelEncoder now supports automatic periodic commits when
exporting a model to a database, with the new property autoCommitCount.
This may be useful to avoid overflow of transaction logs.
ImprovementDatabase Connectors
LMAP-3738
TLcdPostGISModelEncoder now supports automatic periodic commits when
exporting a model to a database, with the new property autoCommitCount.
This may be useful to avoid overflow of transaction logs.
ImprovementDatabase Connectors
LMAP-3738
TLcdInformixGeodeticModelEncoder now supports automatic periodic commits when
exporting a model to a database, with the new property autoCommitCount.
This may be useful to avoid overflow of transaction logs.
ImprovementDatabase Connectors
LMAP-3738
TLcdInformixSpatialModelEncoder now supports automatic periodic commits when
exporting a model to a database, with the new property autoCommitCount.
This may be useful to avoid overflow of transaction logs.
ImprovementDatabase Connectors
LMAP-3738
TLcdOracleSpatialModelEncoder now supports automatic periodic commits when
exporting a model to a database, with the new property autoCommitCount.
This may be useful to avoid overflow of transaction logs.
ImprovementTerrain Analysis Engine
LMAP-3658
TLcdProfileViewJPanel: the left altitude label of the profile view could overlap with the
minimum or maximum label.
ImprovementAviation Standards
LMAP-3671
The AIXM5 sample now automatically adds the ".xml" extension to the file name if it is not present.
This ensures that saved files can always be found in the open file dialog which filters on this extension.
Bug fixLucy (LuciadLightspeed)
LUCY-2374
Made the SyncStyleAddOn sample support layers with tree structure.
Bug fixLuciadLightspeed
LMAP-3751
TLcdFeaturedShapeList.getFeature() now throws an IndexOutOfBoundsException instead of
NullPointerException when the feature list has not been initialized.
Bug fixLucy (LuciadLightspeed)
The arguments of the methods of the ILcyActiveContextListener are no longer obfuscated, allowing
clients to create implementations of this listener. The interface now also has JavaDoc.
Bug fixLuciadLightspeed
LMAP-3745
The maxy attribute of the LatLonBoundingBox element of a WMS 1.1.1 layer was not decoded correctly,
resulting in an incorrect value when the height of the bounding box was retrieved
(ALcdWMSLayer#getWGS84LonLatBounds).
Bug fixLucy (LuciadLightspeed)
LUCY-2263
When loading or copying layers into 3D maps, the layers could end up with the label "no_name".
Bug fixLucy (LuciadLightspeed)
LUCY-2384
Sometimes the camera linking didn't correctly use the selected objects on the map, resulting in
confusing behaviour where multiple radio buttons in the camera linking popup menu could be
active. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2383
Fixed a NullPointerException which occurred when attempting to fit or center on a layer
containing
ILcdBounded objects with null bounds.
Bug fixLuciadLightspeed
LMAP-3744
TLcdGeoTIFFModelDecoder now also sets the elevation flag on the model
descriptors of decoded raster models if the elevation rasters have color
maps.
Bug fixLuciadLightspeed
LMAP-3743
TLcdGeoTIFFModelEncoder now also creates signed GeoTIFFs from elevation
rasters if saveLargeColorMaps is set to true. As a result, it no longer
fails with a type exception on elevation rasters that have single tiles.
Bug fixLuciadLightspeed
LMAP-3661
Fixed TLcdXMLSchemaBasedDecoder such that it also works with the Xerces XML parser.
This issue manifested it self by discarding during
decoding all values for attributes defined without an xml namespace.
Bug fixLucy (LuciadLightspeed)
TLcyMenuBar: a memory leak in the menubar has been fixed. It is now possible to dispose the
menubar
when an active settable or action which has been inserted in the menubar previously still
exists.
Bug fixLucy (LuciadLightspeed)
LMAP-3698
SLD-styled text objects (such as for instance from a drawing model) now have all their handles
correctly positioned during editing.
Bug fixLuciadLightspeed
LMAP-3540
TLcdEllipsoid.geodesicPointSFCT was inaccurate for points very close to each other.
Bug fixLuciadLightspeed
LMAP-3736
The OGC filter decoder and encoder now support OGC literals with child elements (as opposed
to only supporting plain text literals).
Bug fixLuciadLightspeed
Fixed race condition in TLcdEarthTileRepository.addTileDataCodec.
Bug fixLuciadLightspeed
LMAP-3687
TLcdRectifiedProjectiveProjection has been corrected, fixing a mathematical
error that was introduced in LuciadMap 9.1.
Bug fixLucy (LuciadLightspeed)
LUCY-2366
An internal exception could occur when decoding a workspace containing a selection.
Bug fixLuciadLightspeed
LMAP-3732
TLcdGXYFeaturedLabelPainter: Fixed an issue which could cause the feature indices to be reset
when
using the clone method.
Bug fixLuciadLightspeed
LMAP-3694
Fixed TLcdXMLDecoder such that it also works with other XML parsers then xerces. This issue manifested it self for
instance when starting lucy by showing a dialog box asking for the xsd for XMLSchema when running
with java 1.4 (which does not include xerces).
Bug fixLucy (LuciadLightspeed)
LUCY-1681
GARSGridAddon: included the TLcyMapOverViewAddOn in the config file to avoid workspace warnings
about missing codecs.
Bug fixLucy (LuciadLightspeed)
LUCY-2231
TLcySLDDomainObjectSupplier: the ALcyDomainObjectConverter created by this class is now less
strict for extruded shapes.
Bug fixLuciadLightspeed
The internal queue of the TLcdEarthAsynchronousTileSet does not overflow as quickly anymore.
As a result the related warning message should only be logged if there might be a problem (
e.g. similar to the behaviour in LuciadMap 9.0 and older).
Bug fixLuciadLightspeed
The TLcdEarthMetadataTerrainTileSet now logs a warning if the asset model contains
unsupported
assets.
Bug fixLucy (LuciadLightspeed)
LUCY-2281
When using the selection controller on the 3D map, the selection used to change when you panned
the view using the middle mouse button. This has been fixed.
Bug fixLucy (LuciadLightspeed)
When using the selection controller on the 3D map, the rotation icon only appears when you drag
your mouse with the right button pressed. When you click to open the context menu, it doesn't
show.
Bug fixLucy (LuciadLightspeed)
LUCY-2275
When using the selection controller on the 3D map, the selection used to change when you rotated
the view using the right mouse button. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2340
TLcyMapOverviewAddOn-TLcyGLMapAddOn: opening a new 3D map and clicking the map overview would
result in a
NullPointerException when the TLcyMapOverviewOpenGLAddOn was not loaded. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3697
The TLcdSHPModelDecoder was not using the input stream factory for decoding the index file
(.shx).
Bug fixLuciadLightspeed
LMAP-3696
The classes TLcdEPSGReferenceParser and TLcdReferenceFormatter were not correctly synchronizing
the access to the internal EPSG database, making them unsafe for multi-threading.
Bug fixLucy (LuciadLightspeed)
LUCY-2273
TLcyGLMapAddOn: the workspace codec, responsible for decoding workspaces created with the
TLcyG4JAddOn
now correctly restores the elevation layer in case the workspace contained an "in-memory terrain
layer".
Bug fixLuciadLightspeed
LMAP-3597
TLcdLayerTree: a workaround for Swing bug 4199956 has been implemented.
Bug fixLucy (LuciadLightspeed)
LUCY-2336
Area of interest customizer panel: the 'Fit map' button now works more than one time.
Bug fixLuciadLightspeed
LMAP-3674
TLcdGeoReference2GeoReference is now always updated properly when resetting
it with different source and destination references.
Bug fixLucy (LuciadLightspeed)
LUCY-2257
Saving workspaces in tabbed pane mode no longer produces warnings.
Bug fixLuciadLightspeed
LMAP-3672
TLcdGXYMultiFontLabelPainter now takes the selection color into account.
Bug fixLucy (LuciadLightspeed)
LUCY-2254
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: added proper version negotiation
to determine the version to be used when communicating with a server.
Bug fixLucy (LuciadLightspeed)
LUCY-2252
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: fixed support for proxy servers
that require authentication.
Bug fixLucy (LuciadLightspeed)
LUCY-2251
Uncaught exceptions that occurred during drag and drop operations could result in a dead-lock in
Sun code. A work-around is now in place.
Bug fixLucy (LuciadLightspeed)
LUCY-1807
TLcyG4JAddOn: closing the application while the 3D view was active could sporadically result
in a NullPointerException.
Bug fixLuciadLightspeed
Fixed rare bug in TLcdEarthGLTrnTileSet which could cause an infinite wait.
Bug fixLuciadLightspeed
LMAP-3735
TLcdGXYMultiFontLabelPainter could print out stack traces when the object to label was not
visible.
Bug fixGraph and Routing Engine
A bug in the implementation of ILcdGDFLineFeature.getPoint(int) has been fixed.
Bug fixTerrain Analysis Engine
LMAP-3660
TLcdDensityBasedRasterElevationProvider: the raster cache was not always updated when required.
Bug fixAviation Standards
Fixed a possible NullPointerException when painting airspace labels.
Bug fixDefense Standards
LMAP-3687
Positioning of rasters with a projective transformation has been corrected,
by fixing a mathematical error that was introduced in
TLcdRectifiedProjectiveProjection in LuciadMap 9.1.
Bug fixMaritime Standards
S-57 lines and areas are now thread-safe for reading access.
Upgrade considerationDefense Standards
LMAP-3110
The following methods were removed from TLcdVPFGeoSymProvider, since their signature contained
obfuscated classes:
- getPointLabel
- getLineLabel
- getAreaLabel
- getStyleProvider
The first three shouldn't be used because GeoSym labeling is not supported. If the last method
should be used somewhere, it should be replaced by TLcdVPFGeoSymProvider.getInstance(String).
Upgrade considerationMaritime Standards
LMAP-3539
Support for S-52 styles with multiple symbol rotations has been added. This improvement
resolves
the incorrect rendering of Deep Water symbols. In order to implement this improvement, the
ILcdS52Style interface has been changed: the getIcon(), setIcon(), getIconRotation() and
setIconRotation() methods have been replaced by respectively getIcons(), setIcons(),
getIconRotations() and setIconRotations(), which work with arrays of icons/rotations,
instead of
a single icon/rotation. Users implementing or wrapping the ILcdS52Style interface should
update
their implementations accordingly.
9.1
ImprovementLuciadLightspeed
LMAP-3578
The asset model is now saved with the repository. This allows determining the contents of a
repository without testing all its tiles.
ImprovementLucy (LuciadLightspeed)
LUCY-693, LUCY-694, LUCY-695, LUCY-696
The Lucy user guide was completely re-written and re-structured to be task oriented rather than
add-on oriented.
ImprovementLuciadLightspeed
The OGC filter encoder (both the old and the new implementation) now correctly handle filters
containing binary operators or binary logic operators with only a single operand. In such cases,
only the operand of the binary (logic) operator is encoded resulting in a correct xsd-compliant
document.
ImprovementLuciadLightspeed
LMAP-3612
TLcdPolyconic has been added to the default list of projections of TLcdProjectionCustomEditor.
ImprovementLucy (LuciadLightspeed)
LUCY-2164
Some file types are no longer incorrectly identified as possible ARINC files. This reduces the
number of
files that require the user to explicitly specify the format.
ImprovementLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: now throws exception with clear message when add-on class name is not
configured.
ImprovementLucy (LuciadLightspeed)
ILcdModelHeightProviderFactory can now be registered as service to the Lucy backend, allowing
to work with elevation data in Lucy. TLcyViewHeightProvider has been introduced which is a
height provider
for an ILcdView based on all registered ILcdModelHeightProviderFactory-s.
ImprovementLucy (LuciadLightspeed)
samples.lucy.syncviewbounds: this new sample demonstrates how to synchronize the view bounds
of a 2D and a 3D map.
ImprovementLucy (LuciadLightspeed)
samples.lucy.syncstyle: this new sample demonstrates how to synchronize the style of layers
from the same format in a 2D and a 3D map.
ImprovementLucy (LuciadLightspeed)
samples.lucy.glmap.tracking: this new sample demonstrates how to use tracking cameras with
custom
buttons.
ImprovementLucy (LuciadLightspeed)
samples.lucy.glmap.guifactory: this new sample demonstrates how to customize the GUI of a 3D
map.
ImprovementLucy (LuciadLightspeed)
New interface ILcyLayerStyleProvider: provides operations to retrieve and copy a layer's style.
To register a style provider, add it as a service to the Lucy backend. A layer's style should be
contained in a ILcyLayerStyle and can be used to describe its visibility, painter settings, ...
Layer styles can be used to copy the style of the layer within layers of the same format.
ImprovementLucy (LuciadLightspeed)
TLcyGridOpenGLAddOn: this new addon adds the Grid and World layer to the 3D map.
ImprovementLucy (LuciadLightspeed)
DockableFrameAppPaneFactory: switching the active map component is now done on all focusOwner
changes
instead of permanentFocusOwner changes, and only after a slight delay.
ImprovementLucy (LuciadLightspeed)
LUCY-2134
TLcyDrawingAddOn: the format of the iconsfile has been extended. It is now possible to add
comments and tooltips. An example is given in orbat_iconsfile.cfg .
ImprovementLucy (LuciadLightspeed)
LUCY-2130
The appearance of the bounds in the Map Overview has been enhanced. The bounds of the Active Map
are in the original light blue, but the other ones are grey. You can modify these colors by
changing the properties TLcyMapOverviewAddOn.boundsColors.* in 'mapoverview_addon.cfg'.
For the bounds of 3D Maps, the appearance is controlled by the properties similar properties
( TLcyMapOverviewOpenGLAddOn.boundsColors.*) in 'TLcMapOverviewOpenGLAddOn.cfg'. Note that
these keys have changed since 9.1. The line width property has been removed as well to make it
more consistent with the TLcyMapOverviewAddOn.
A related enhanced is that, when changing the active map, the overview now immediately centers
on it.
ImprovementLucy (LuciadLightspeed)
The on-map navigation controls for 2D and 3D views have an associated active settable. By
default, you
can find it in Map | Show Navigation Controls. The settings of this active settable can be
adapted by
modifying the properties TLcy(GL)MapAddOn.navigationControlsActiveSettable.menuBar.*
in 'map_addon.cfg' and 'TLcyGLMapAddOn.cfg'.
ImprovementLucy (LuciadLightspeed)
The on-map mouse location for 2D and 3D views has an associated active settable. By default, you
can find it in Map | Show Mouse Location. The settings of this active settable can be adapted by
modifying the properties TLcy(GL)MapAddOn.mouseLocationActiveSettable.menuBar.* in
'map_addon.cfg'
and 'TLcyGLMapAddOn.cfg'.
ImprovementLuciadLightspeed
TLcdLayer now invalidates itself for filter changes when the filter implements ILcdChangeSource.
ImprovementLucy (LuciadLightspeed)
ALcyGUIFactory and subclasses: createGUIContent is protected instead of public.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: generics are added to the retrieveAddOnByClass method.
ImprovementLuciadLightspeed
TLcdOverlayLayout has been introduced, which is a LayoutManager, specifically designed for
Containers
that contain a map (with a view) and other components that should hover above the map.
ImprovementLucy (LuciadLightspeed)
ILcyMapComponent - TLcyMapComponent: Due to the introduction of ILcyGenericMapComponent, the
get*ContentPane methods have
been deprecated. Use the get*Panel methods instead. This allows to use the same methods for both
2D and 3D map components. TLcyMapComponent now also has consistent getters and setters (e.g.
setNorthPanel
and getNorthPanel instead of getNorthContentPane and setNorhtPanel).
ImprovementLucy (LuciadLightspeed)
TLcyDataFormatManager: an ALcyMapComponentChooser is introduced, allowing to choose another map
component when opening the data on the specified map component fails.
ImprovementLuciadLightspeed
The WFS client now has support for the 'RESULTTYPE' attribute in GetFeature requests, allowing clients
to choose the desired result type.
ImprovementLuciadLightspeed
LMAP-3146
TLcdGXYPointListPainter has a new property minimumEditDelta to control how much the mouse should
move before an edit operation is initiated.
ImprovementLucy (LuciadLightspeed)
LUCY-603
When dragging layers from one map to the other, they are now copied instead of reused; the layer
style is copied using a ILcyLayerStyleProvider. As a result, the layer properties such as
'visible' now behave independently on both maps, and layers with asynchronous painting or
interactive labels are now better supported.
ImprovementLuciadLightspeed
TLcdCodecException and TLcdNoBoundsException now have additional
constructors that allow to pass the cause of the exception. Exceptions
thrown by LuciadMap now more consistently contain such causes, providing
better feedback when debugging problems.
ImprovementLuciadLightspeed
LMAP-3578
The asset model used to create a repository is now saved with the repository. These assets
can for example be used to determine in which regions a repository has data. To open a
repository with this data you can use the TLcdEarthRepositoryModelDecoder, to create one
you can use the TLcdEarthTileRepositoryFactory. The preprocessor sample demonstrates its
usage. The TLcdEarthTerrainRepositoryModelDecoder also loads the asset information if it is
available and make it available through an ILcdEarthAssetBasedModelDescriptor.
ImprovementLuciadLightspeed
TLcdEllipsoidRhumblineUtil and TLcdSphereRhumblineUtil: their public default constructor
has been removed as these classes only contain static methods.
ImprovementLucy (LuciadLightspeed)
The 'preventClosingLastMap' config property in the 'map_addons.cfg' file has been set to false.
The new property 'preventClosingLastMap' in 'TLcyGenericMapAddon.cfg' takes over, and makes sure
that 3D maps are treated in the same way as 2D Maps. Note that when they are both set to true,
inconsistent behaviour can emerge. Closing the last but one 2D map when there are still 3D maps
will make it impossible to close the remaining 2D map for example.
ImprovementLuciadLightspeed
The TLcdGeoTIFFModelEncoder has a new method that allows the user to specify an external
ILcdModelReferenceEncoder.
ImprovementLucy (LuciadLightspeed)
samples/lucy/util/SwingUtil was removed, its functionality moved to TLcdAWTUtil.
ImprovementLuciadLightspeed
The interfaces ILcdCollection and ILcdList have been added, introducing event-firing Collections
and Lists.
ImprovementLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: only a single line warning is printed instead of a stack trace if a
dependent add-on isn't found. E.g. if the TLcyAIXM5AddOn is not loaded, the
TLcyAIXM5OpenGLAddOn (which needs that add-on) only prints a single line.
ImprovementLucy (LuciadLightspeed)
LUCY-2008
The 2D and 3D views now feature an on-map mouse location. The old mouse location (for 2D Views)
in the status bar is disabled by default. It can be reactivated with the property
TLcyMapAddOn.statusBarMouseLocation in 'map_addon.cfg'. For 2D views, the new mouse location can
be modified
by the properties TLcyMapAddOn.mouseLocation.* in 'map_addon.cfg'. For the 3D view you can
modify
the properties TLcyGLMapAddOn.mouseLocation.* in 'TLcyGLMapAddOn.cfg'.
ImprovementLucy (LuciadLightspeed)
LUCY-2008
The 2D and 3D views now feature on-map navigation controls. The properties of the
controls can be adapted by changing corresponding properties in the cfg files, 'map_addon.cfg'
and 'TLcyGLMapAddOn.cfg' : TLcy(GL)MapAddOn.navigationControls.*.
ImprovementLuciadLightspeed
LMAP-3584
TLcdDIMAPModelDecoder now supports setting a custom raster referencer.
ImprovementLuciadLightspeed
The performance of TLcdGeoTIFFModelEncoder has been improved.
ImprovementLuciadLightspeed
The elevation data can now be stored instead of the geometry when preprocessing a terrain.
This
results in a significantly smaller repository at the cost of a small performance penalty
when
visualizing it in a 3D view. The new classes in the API related to this are:
TLcdEarthElevationDataTileDataCodec and TLcdEarthElevationDataCombiner. The
TLcdEarthTexturedTerrainTileSet,
TLcdEarthTerrainRepositoryModelDecoder and preprocessor sample were also updated to support
this
improvement.
ImprovementLuciadLightspeed
LMAP-3568
The warping raster painters can now also avoid opaque borders if the
raster has a color map of which the transparent index is not the default raster
value.
ImprovementLuciadLightspeed
LMAP-3477
The TLcdEarthGLTrnTileSet now also contains an image (e.g. texture) and elevation coverage.
This
allows visualizing a .trn terrain in a 2D view by using an earth GXY painter.
ImprovementLuciadLightspeed
Updated the ogc.filter.xml sample to use the TLcdOGCFilterEncoder and TLcdOGCFilterDecoder in stead
of the old deprecated encoder and decoder.
ImprovementLuciadLightspeed
LMAP-3491
The TLcdEarthTerrainElevationProvider now also supports Earth models.
ImprovementLuciadLightspeed
LuciadMap now supports the Rapid Positioning Capability Extension (RPC00B) of the
NITF format. The RPC
parameters can be used to construct a model reference by using the TLcdRPCModelReferenceDecoder
class. The projection used by this reference is called TLcdRPCProjection.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the grid lines are now partially transparent by default.
ImprovementLucy (LuciadLightspeed)
LUCY-1800, LUCY-1743
TLcyGenericMapAddOn, TLcyLayerControlAddOn: these new add-ons offer a number of services when
working with multiple map types (such as 2D
and 3D). TLcyGenericMapAddOn adds selection synchronization across all maps, and workspace
support for the currently active map.
TLcyLayerControlAddOn adds an application pane that displays the layer control of the active (2D
or 3D) map.
ImprovementLucy (LuciadLightspeed)
LUCY-1993
TLcyEarthOpenGLAddOn: this add-on now adds on-the-fly 3D visualization of all 2D raster and
elevation formats,
if used with the new GL map add-on.
ImprovementLucy (LuciadLightspeed)
Drag and drop behavior has been improved: layers can now be dropped on the layer control, the
active map component
automatically changes, and dragging layer tree nodes is now also supported.
ImprovementLucy (LuciadLightspeed)
LUCY-685
TLcyCameraLinkAddOn: this new add-on enables object camera tracking with 1st and 3rd person
perspectives.
ImprovementLucy (LuciadLightspeed)
LUCY-1557, LUCY-1542, LUCY-1526, LUCY-1204, LUCY-1055, LUCY-997, LUCY-996, LUCY-660, LUCY-659, LUCY-658, LUCY-613, LUCY-629,
LUCY-571, LUCY-113
TLcyGLMapAddOn: this new add-on provides multiple 3D maps that are presented much like the 2D
maps.
Also, the formats supported in 3D have been made more consistent with their 2D counterparts.
The 3D map extents are visualized in the existing map overview by a new add-on,
TLcyMapOverviewOpenGLAddOn.
ImprovementLuciadLightspeed
The TLcdEarthTerrainRepositoryModelDecoder can now also decode models from a sourcename that
is
relative to the classpath.
ImprovementLuciadLightspeed
LMAP-2707
The samples.encoder.gml3 sample now has a .bat and .sh file to easily run it.
ImprovementLucy (LuciadLightspeed)
LUCY-2132
Workspace support has been added for Magnetic North Declination layers and models.
ImprovementLucy (LuciadLightspeed)
LUCY-1944
The style of the declination lines in Magnetic North Declination layers can be adapted using the
layer customizer panel.
ImprovementLucy (LuciadLightspeed)
LUCY-172
In the Magnetic North Declination tab, the slider for the variation degrees has a finer level of
granularity. Instead of 1°, the granularity is now 15'.
ImprovementLucy (LuciadLightspeed)
LUCY-1170
Magnetic North Controller Tooltip no also shows the used magnetic model and the used date.
ImprovementLucy (LuciadLightspeed)
ALcyActionBar: the action bar has now an 'autoHide' property, which makes the action bar
invisible
when it contains no components.
ImprovementLuciadLightspeed
The GML model decoder now has public accessors to get and set its entity resolver. This
allows the application to determine how references to external schemas are resolved.
ImprovementLuciadLightspeed
The TLcdEarthCompositeImageTileSet can now also abort or fall back if one of the tilesets
does
not have a specific image tile instead of ignoring this.
ImprovementLuciadLightspeed
Updated the documentation of ILcdEarthTileSet to explain the policy w.r.t. thread-safety.
The
existing implementations in Earth were also updated to implement this policy.
ImprovementLuciadLightspeed
Added ILcdEarthIterableTileSet interface to allow iteration over all tiles in a tileset.
ImprovementLuciadLightspeed
TLcdSingleTileRaster is a new specialized implementation of ILcdRaster that
only contains a single tile. As a result, it has a smaller computational
overhead than TLcdRaster for retrieving raster values. It is already used
by standard raster model decoders when possible.
ImprovementLuciadLightspeed
TLcdWarpRasterPainter and TLcdWarpMultilevelRasterPainter now offer the
possibility to supersample the painted rasters, in order to improve their
visual quality.
ImprovementLuciadLightspeed
LuciadMap now supports parametric orthorectification - rectification based on information about
the imaging sensor and the terrain elevation. Parametric orthorectification is implemented by
the following new interfaces and classes:
- TLcdPerspectiveProjection - describes the projection corresponding to a real imaging
sensor. This
class
is an improvement over the existing TLcdGeneralPerspective - the point of perspective is no
longer
required to be
outside the Earth ellipsoid. The origin of the projection plane and the set of input
parameters are also
different,
being designed specifically for the convenient representation of a real imaging sensor.
- TLcdOrthorectifiedProjection - adjusts an existing projection by taking terrain
elevation into
account.
- ILcdHeightProvider - an interface for providing elevation information at a given
point.
- TLcdFixedHeightProvider - basic implementation of a height provider that returns the
same height
for any point.
- TLcdRasterHeightProvider - returns elevation data from a raster.
- TLcdTransformedHeightProvider - returns elevation data in a different geographical
reference than
the original provider.
- TLcdCompositeHeightProvider - combines a list of other height providers.
- TLcdViewHeightProvider - retrieves heights from elevation layers in a view.
The new samples samples.gxy.orthorectification.parametric and
samples.gxy.orthorectification.corrected illustrate these concepts,
respectively without and with additional manual rectification.
ImprovementLuciadLightspeed
Added TLcdEarthSeparateAlphaImageTileDataCodec that encodes the alpha channel of images
separately. This allows using JPEG compression for the color data when the tile images have
transparency instead of format with a lower compression rate (ex. PNG).
ImprovementLuciadLightspeed
Added a tileset that caches tiles in memory (TLcdEarthMemoryCachingTileSet) and updated
the TLcdEarthAsynchronousTileSet to use an ExecutorService.
ImprovementLuciadLightspeed
LMAP-3485
TLcdInputStreamFactory now avoids unnecessarily opening file descriptors, by
only checking the content type for HTTP URLs.
ImprovementLucy (LuciadLightspeed)
TLcyPOLDecoderAddOn: The altitude values of POL files are now used to display the data in 3D.
ImprovementLucy (LuciadLightspeed)
ALcyActionBar: when logging is enabled for this class, the (menu) items now get tool tips that
show their group descriptors.
ImprovementLucy (LuciadLightspeed)
TLcyGroupDescriptorComparator: now throws a clear exception when duplicate groups are provided.
ImprovementLucy (LuciadLightspeed)
LUCY-207
TLcyMapEditUnitAddOn: support has been added for a default DateTime and Duration format.
ImprovementLuciadLightspeed
TLcdLonLatCoord: improved performance of the normalizeLon method.
ImprovementLucy (LuciadLightspeed)
LUCY-1884
VPF AddOn:
- All feature classes had to be selected one-by-one. Now a checkbox is shown in all
tree nodes,
making it possible to select multiple feature classes at once.
ImprovementLucy (LuciadLightspeed)
LUCY-285
Grid Coordinate AddOn:
- Point selection mode did not take in account layers created/added after opening the
GC tab.
- Point selection mode now also works on ILcdModel elements that are an ILcdShapeList
with an
ILcdShapeList with ..., with eventually exactly one ILcdPoint. If the shape list contains
multiple points or other objects, it should be refused.
- Order of DMS (Lon Lat) was different from the map status bar (Lat Lon)
ImprovementLuciadLightspeed
LMAP-3322
ALcdWMSProxy: added a getter boolean isInvertXYForEPSG4326() and setter setInvertXYForEPSG4326( boolean
aInvertXYForEPSG4326 ).
This has to be used by implementations of this class to determine whether the bounding box coordinates
for WMS version 1.3.0 and reference EPSG:4326 should be specified as x=lon and y=lat which is the default,
or x=lat and y=lon which is inverted.
For WMS version 1.1.1, the order is defined as x=lon, y=lat. In version 1.3.0 it was decided that
the order should be consistent with the order defined in the EPSG:4326 reference which is lat/lon.
Consequently, some WMS 1.3.0 servers have changed their interpretation of EPSG:4326 coordinates,
while others sticked to the old (WMS 1.1.1) interpretation.
ImprovementLuciadLightspeed
TLcdEarthMetadataTerrainTileSet: now loads the assets lazily and offers better performance
if
a lot of assets are used by using the TLcdEarthAssetGXYViewTileSet and
TLcdEarthAssetTerrainElevationTileSet.
ImprovementLuciadLightspeed
The sample samples.encoder.raster.geotiff can now compose a regular grid
of input rasters into a single GeoTIFF file.
ImprovementLuciadLightspeed
LMAP-2437
TLcdSelectionSupport: isSelected(Object) now works faster.
ImprovementLuciadLightspeed
LMAP-1619
TLcdWMSProxyGXYLayerFactory: layers created with this layer factory now use a special painter which supports
reprojection of WMS layers.
If the world reference of the client is not supported by the WMS server, the painter will select an optimal
reference, and
reproject the resulting image to the current world reference.
ImprovementLuciadLightspeed
LMAP-3377
TLcdGXYHaloPainter now offers the possibility to cache the halo images, making use of ILcdCache
domain objects
when
available.
ImprovementLuciadLightspeed
LMAP-651
TLcdMagneticNorthGXYController: now tries to rotate the ILcdGXYView using the
ILcdRotationCapableGXYView interface if it is available, instead of by rotating the world
reference.
ImprovementLuciadLightspeed
LMAP-2259
TLcdModelContainerEvent, TLcdLabelLocationEvent and TLcdUndoableEvent now have human readable
toString implementations, useful for debugging purposes.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn: the LuciadMap MIL-STD 2525b specialized package now offers support for the
military standard
MIL-STD 2525c. By default, MIL-STD 2525c support is disabled. To enable it, the following
Java VM property must be used when starting Lucy:
-Dcom.luciad.symbology.milstd2525b.ms2525c=true.
Afterwards, the MIL-STD 2525c symbology becomes available in the hierarchy tree of the MIL-STD
2525b customizer.
ImprovementLuciadLightspeed
The DMED and DTED model decoders now support an additional sampling
strategy that performs bilinear interpolation across decoded elevation
rasters. The strategy is implemented with the help of new classes
TLcdInterpolatedRaster and TLcdTruncatedTile, which provide basic support.
ImprovementLuciadLightspeed
LMAP-3309
A new class TLcdBNGUtil supports formatting and parsing coordinates in the British National Grid
notation (for example "HU 396 753")
ImprovementLuciadLightspeed
LMAP-1783
Throughout LuciadMap, threads no longer inherit the priority of the creating thread but specify
it explicitly.
ImprovementLuciadLightspeed
LMAP-3335
TLcdLayer now filters the selection when a filter has been set to the layer.
In addition, the selection is kept up to date if the filter in question implements
ILcdChangeSource.
This was already implemented for TLcdGXYLayers (see LMAP-2455) and has now been moved from
TLcdGXYLayer to the
super class TLcdLayer.
ImprovementLuciadLightspeed
LMAP-3324
The database package now provides shape list implementations of which the
identities are determined by their primary features. In concrete terms this
means that "equals" and "hashCode" are now implemented based on the
primary feature. The caching mechanism has been updated to ensure that it
always provides the same object instance for any given database object, in
order to minimize any possible confusion about its identity.
ImprovementLuciadLightspeed
The database package now offers improved caching for queries based on
a query window (with TLcdDatabaseModel#applyOnInteract2DBounds). If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementLucy (LuciadLightspeed)
LUCY-1904
TLcyGridAddOn: the names of the grid layers can now be configured. UTM/UPS layers now mention
MGRS in their name.
ImprovementLucy (LuciadLightspeed)
LUCY-2006
TLcyAIXMAddOn,TLcyDAFIFAddOn,TLcyARINCAddOn,TLcyWCSAddOn:Added a correct model content type
provider
for these addons. This can be used to determine the correct layer order.
ImprovementLuciadLightspeed
The offset icon sample now allows enabling and disabling the labels of the offset icons.
ImprovementLuciadLightspeed
LMAP-3289
The ALcdWMSNamedLayer class in the WMS client API has three new methods:
- boolean isNoSubsets()
- Returns the value of the noSubsets parameter.
- int getFixedWidth()
- Returns the value of the fixedWidth parameter.
- int getFixedHeight()
- Returns the value of the fixedHeight parameter.
This allows users of the API to check whether these limitations are set on a layer.
ImprovementLuciadLightspeed
LMAP-3088
The WFS client now has support for requesting a sorted list of features from a WFS server that supports the sortBy
element.
This can be done by setting a TLcdOGCSortBy on a TLcdWFSGetFeatureRequest.
ImprovementLucy (LuciadLightspeed)
LUCY-2016
Support for ILcdCurve and ILcdRing shapes is added in the different TEA addons.
ImprovementLuciadLightspeed
LMAP-3286
TLcdGXYIconPainter can now use ILcdOriented objects to rotate icons.
In addition, the painter now supports fixed and dynamic icon scaling.
ImprovementLuciadLightspeed
LMAP-2072
The WMS client API has been extended with new functionality to connect with a WMS service:
- A new class TLcdWMSClient has been introduced that facilitates direct communication with a WMS service,
by offering functionality to create and send custom requests, and interpreting their result.
- Requests are modeled by the existing interface ILcdOWSRequest, of which default implementations
exist to represent the existing WMS requests: TLcdWMSGetCapabilitiesRequest, TLcdWMSGetFeatureInfoRequest,
TLcdWMSGetMapRequest, TLcdWMSDescribeLayerRequest and TLcdWMSGetLegendGraphicRequest.
- The result of a GetCapabilities request is an ALcdOGCWMSCapabilities instance. The result of the other
requests is
modeled by a TLcdOWSInputStream. This existing class is an extension of InputStream with the addition of a
content type property and some metadata.
- To allow control over the communication platform used to connect with a service, the interface
ILcdOWSTransport can be used.
This interface is used by TLcdWMSClient for its communication. A default implementation TLcdOWSHttpTransport
exists with support for the HTTP protocol.
The existing API, consisting of a TLcdOGCWMSProxyModelDecoder to create an ALcdWMSProxy object for a given WMS URL,
has been adapted to use the new TLcdWMSClient class.
ImprovementLuciadLightspeed
LMAP-1454
The WMS client now fully supports SLD enabled servers:
- GetMap requests can be initialized with an SLD and sent as a KVP or XML request.
- Support for DescribeLayer and GetLegendGraphic requests with KVP encoding has been added.
ImprovementLucy (LuciadLightspeed)
LUCY-1977
TLcyDataRepositoryAddOn is now deprecated. A similar functionality is provided by the new
DataRepositorySample.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn: The MIL-STD 2525b implementation has been upgraded to comply
with MIL-STD 2525b Change 2 2007, the most recent specification.
Please refer to the release notes of the MS2525b specialized package for more details.
ImprovementAdvanced GIS Engine
The topology and intersection calculation implementations TLcdEllipsoidalBasicBinaryTopology and
TLcdSphericalBasicBinaryTopology now provide support for ILcdPolygon and ILcdPolyline instances with
rhumbline properties. This functionality can be applied to custom ILcdPolygon and ILcdPolyline implementations
if they also implement the ILcdCurve interface and return ILcdCurve.INTERPOLATION_RHUMB as interpolation method.
ImprovementAdvanced Raster Connectors
The MrSID MG3 format is now supported, on 32-bits and 64-bits Windows, on
32-bits and 64-bits Linux, and on 32-bits and 64-bits SPARC Solaris.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementDatabase Connectors
The bundled JDBC driver has been updated to the most recent patch release
(8.1-414).
ImprovementDatabase Connectors
The caching for queries based on a query window (with
TLcdDatabaseModel#applyOnInteract2DBounds) has been improved. If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementDatabase Connectors
The caching for queries based on a query window (with
TLcdDatabaseModel#applyOnInteract2DBounds) has been improved. If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementDatabase Connectors
The caching for queries based on a query window (with
TLcdDatabaseModel#applyOnInteract2DBounds) has been improved. If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementDatabase Connectors
The caching for queries based on a query window (with
TLcdDatabaseModel#applyOnInteract2DBounds) has been improved. If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementDatabase Connectors
The caching for queries based on a query window (with
TLcdDatabaseModel#applyOnInteract2DBounds) has been improved. If all
objects inside the query window are known to be cached from a previous
query, access to the database can be avoided.
ImprovementGraph and Routing Engine
LMAP-3526
The implementation of ILcdGDFLineFeature has been adjusted to make its getPoint(int) and
getPointCount() methods thread-safe.
ImprovementGraph and Routing Engine
TLcdClusteredPartitioningAlgorithm now provides additional API for configuring the algorithm in
case the default settings do not result in a suitable partitioning schema.
ImprovementGraph and Routing Engine
Support was added for Cross-Country-Movement (CCM) calculations. CCM allows computing the shortest
route, through the field, between any two points in a geographical area.
The algorithm is available in the Network API via the TLcdCrossCountryShortestRouteAlgorithm
class. A custom cost function can be implemented and plugged in in the algorithm via the
com.luciad.network.function.ILcdCrossCountryDistanceFunction interface.
ImprovementGraph and Routing Engine
A new package, com.luciad.network.graph.numeric, has been added to the API. This packages provides
functionality for working with numerical graphs. Numerical graphs provide better performance
(graph queries, memory usage) than traditional graphs, and provide direct support for working
with very large, partitioned graphs.
ImprovementOGC Server
The JGenerator library used by TLcdGXYViewSWFEncoder to generate maps in the SWF (Flash) format
has been upgraded from version 1.3.1 to version 2.2.
ImprovementOGC Server
The EPSG code 3395 is now supported by default.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WCS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP server and servlet container. A startup script ogc.server.start in the directory samples starts
a Jetty web server on port 8080, predeployed with the WCS server sample available in the directory
LuciadMapWCS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WFS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP
server and servlet container. A startup script ogc.server.start in the directory samples starts a Jetty web server
on port 8080, predeployed with the WFS server sample available in the directory LuciadMapWFS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WMS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP
server and servlet container. A startup script ogc.server.start in the directory samples starts a Jetty web server
on port 8080, predeployed with the WMS server sample available in the directory LuciadMapWMS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3322
An option can now be specified in the WMS servlet configuration file (web.xml) to invert the bounding box
coordinates in case the request version is 1.3.0 and the reference is EPSG:4326. If these conditions hold,
and the option is set, the x coordinates will be interpreted as latitudes and the y coordinates as longitudes.
For WMS version 1.1.1, the order is defined as x=lon, y=lat. In version 1.3.0 it was decided that
the order should be consistent with the order defined in the EPSG:4326 reference which is lat/lon.
Consequently, some WMS 1.3.0 servers have changed their interpretation of EPSG:4326 coordinates,
while others sticked to the old (WMS 1.1.1) interpretation.
Use the configuration option if you want to comply with the WMS 1.3.0 specification. Do note that the EPSG:4326
reference
is officially deprecated, so the problem can be circumvented by not supporting this reference.
Add the following to your WMS web.xml file to enable inversion:
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>true</param-value>
</init-param>
ImprovementOGC Server
LMAP-3289
The ALcdWMSLayer class in the WMS server API has three new methods:
- boolean isNoSubsets()
- Returns the value of the noSubsets parameter.
- int getFixedWidth()
- Returns the value of the fixedWidth parameter.
- int getFixedHeight()
- Returns the value of the fixedHeight parameter.
The TLcdWMSLayer class that extends this abstract class also has corresponding setter methods for these parameters.
If set, these parameters will also be encoded in the server capabilities, and the server will take them into account
when validating an incoming GetMap request.
These parameters can also be set in the capabilities configuration file of the WMS server sample.
ImprovementOGC Server
LMAP-3088
The WFS server now supports the sortBy parameter in KVP and XML requests. The features returned by the server will
be sorted in the requested order. In case a maximum number of features has been set, the sorting will be applied
before applying the feature limit.
ImprovementReal-time Engine
TLcdSimulator: when the endDate changes to a later date, the date is no longer updated to the new
endDate when it used to be at the old endDate. This applies for the beginDate as well.
ImprovementReal-time Engine
LMAP-3381
TLcdContinuousDeclutteringLabelPainter: now has a new property setMaxLabelCoverage to allow
dropping labels when they start to occupy too much of the view's surface.
ImprovementTerrain Analysis Engine
TLcdViewBasedTerrainElevationProvider has been introduced, which is exactly the same as
TLcdGXYViewBasedTerrainElevationProvider but works with ILcdView's instead of ILcdGXYView's.
As a consequence, TLcdGXYViewBasedTerrainElevationProvider no longer extends ALcdRasterTerrainElevationProvider
directly but extends TLcdViewBasedTerrainElevationProvider.
ImprovementWeather & Environment Standards
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementWeather & Environment Standards
The GRIB model decoders now support different sampling strategies for
retrieving GRIB values from decoded rasters. Notably, it is now possible to
let decoded rasters perform bilinear interpolation between samples.
ImprovementDefense Standards
ImprovementDefense Standards
TLcdNITFModelDecoder now supports the SENSRB extension.
ImprovementDefense Symbology
The object customizers for MIL-STD 2525b and APP-6A now fire property change events with name
TLcdMS2525bObjectCustomizer.PROPERTY_MS2525B_HIERARCHY_CHANGED and
TLcdAPP6AObjectCustomizer.PROPERTY_APP6A_HIERARCHY_CHANGED, to indicate a hierarchy change
when a new element in the symbol tree is selected.
ImprovementDefense Symbology
Support has been added for the military standard MIL-STD 2525c. This standard can be used through the regular
MIL-STD 2525b API, by using the following Java VM property when starting an application:
-Dcom.luciad.symbology.milstd2525b.ms2525c=true. Afterwards, the MIL-STD 2525c symbology becomes available in the
hierarchy
tree of the MIL-STD 2525b customizer and the domain object TLcdEditableMS2525bObject accepts MIL-STD 2525c symbol
id codes.
ImprovementDefense Symbology
The MIL-STD 2525b implementation has received an upgrade to comply with MIL-STD 2525b Change 2 2007, the most recent
specification.
The most important changes in the Change 2 specification are:
- New ground vehicle and subsurface symbols in the 'Warfighting' symbol category (1.X).
- Improvements in the 'Tactical Graphics' symbol category (2.X).
- New symbols in the 'MOOTW' symbol category (5.X).
Next to this list, various other small improvements have been made to comply with Change 2.
ImprovementInfrastructure Standards
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementInfrastructure Standards
Exceptions that are thrown now consistently contain their root causes, if any.
ImprovementMaritime Standards
LMAP-3122
A new model decoder, TLcdS57DirectoryModelDecoder, was added to the API. This decoder allows
loading of sets of S-57 cells in cases where no catalogue (.031) file is available.
ImprovementMaritime Standards
Support for visualization of AML was added. The AML sample illustrates how to use the new
AML
symbology. The implementation is based on the UKHO's AML Symbology Guidance, version 1.0.
Bug fixLucy (LuciadLightspeed)
lucy.drawing.customdomainobject sample: Layers containing a custom domain object
could not be saved.
Bug fixLucy (LuciadLightspeed)
LUCY-2241
TLcyDrawingAddOn: changing the style of custom drawing domain object could result in
ClassCastExceptions being thrown.
Bug fixLuciadLightspeed
The matchCase attribute of a binary comparison operator for an OGC filter is now
properly encoded.
Bug fixLucy (LuciadLightspeed)
LUCY-2212
DockableFrameAppPane: when the floating hint is set to true before content was added to the
application pane, the initial application pane used to be too small.
Bug fixLuciadLightspeed
LMAP-3620
TLcdHaloIcon did not paint its delegate icon centered, which was mainly visible for larger
values of halo thickness.
Bug fixLuciadLightspeed
LMAP-1851, LMAP-3565
LuciadApplet: the applet LookAndFeel was not always correctly initialized.
Bug fixLuciadLightspeed
LMAP-3616
The XML encoding of the requests created by the TLcdWFSClient now have valid schema locations
for the WFS, OWS and OGC schemas.
Bug fixLuciadLightspeed
LMAP-3565
LuciadMapApplet: the static initializer is removed from the sample code.
Bug fixLucy (LuciadLightspeed)
LUCY-1656
TEA AddOns: the right click actions are now configurable from addons configuration file.
Bug fixLuciadLightspeed
LMAP-3585
TLcdGeoTIFFModelDecoder no longer prints out a stack trace when decoding a
GeoTIFF in a planar format.
Bug fixLuciadLightspeed
LMAP-3518
TLcdGeoTIFFModelEncoder now correctly encodes the color model of the
raster if its tiles do not have a color model.
Bug fixLuciadLightspeed
LMAP-3542
The TLcdLonLatCompositeRing.contains2D test now returns correct results in limit cases.
Bug fixLuciadLightspeed
LMAP-1929
TLcdPOLModelDecoder: the canDecode method could throw an OutOfMemoryError.
Bug fixLuciadLightspeed
LMAP-2855
The JAI core library has been updated to fix the problems with TIFF files
larger than 2 GB (up to the maximum of 4 GB specified by TIFF).
Bug fixLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: the actions to follow an object are now configured to be in the map popup
menu. If you would like to remove them, just remove the config file entries from
resources/lucy/map/mapradarviewaddon.cfg that refer the popupMenu.
Bug fixLuciadLightspeed
ALcdEarthGLTiledClipmapLevel now correctly handles tile updates that indicate that the tile
is
no longer available.
Bug fixLuciadLightspeed
ALcdEarthGLTiledClipmapLevel instances that automatically update tiles upon each paint now
ignore tile update callbacks that return the same tile.
Bug fixLucy (LuciadLightspeed)
LUCY-2103
TLcyGXYLayerTreeNodeFormatWrapper now uses backwards compatible UID's.
Bug fixLucy (LuciadLightspeed)
LUCY-2098
British National Grid notation added in TLcyMapEditUnitAddOn and TLcyLocationFormatPanel.
Bug fixLucy (LuciadLightspeed)
LUCY-1874
The constructors that took a Class parameter in ALcyGeneralFormat, ALcyApplicationPaneTool
and TLcyPreferencesTool are now deprecated to avoid any confusion about the long and short
prefixes. ALcyTool has a new method to derive the prefix based on the fully qualified class
name.
Bug fixDatabase Connectors
In the db2 properties file, when the table name contained an alias, and the model bounds were not
explicitly given, the model decoder was incrorectly creating very large model bounds. This has
been fixed.
Bug fixDatabase Connectors
The identity of a database shape is now properly based on its primary key.
To avoid any confusion over its identity, the caching mechanism ensures that
the same object instance is returned for any given database object.
Bug fixDatabase Connectors
The identity of a database shape is now properly based on its primary key.
To avoid any confusion over its identiry, the caching mechanism ensures that
the same object instance is returned for any given database object.
Bug fixDatabase Connectors
The identity of a database shape is now properly based on its primary key.
To avoid any confusion over its identiry, the caching mechanism ensures that
the same object instance is returned for any given database object.
Bug fixDatabase Connectors
The identity of a database shape is now properly based on its primary key.
To avoid any confusion over its identiry, the caching mechanism ensures that
the same object instance is returned for any given database object.
Bug fixDatabase Connectors
The identity of a database shape is now properly based on its primary key.
To avoid any confusion over its identiry, the caching mechanism ensures that
the same object instance is returned for any given database object.
Bug fixGraph and Routing Engine
When a node or edge is removed from a graph, the actual node or edge that is contained in the
graph is now passed to the graph listeners, instead of the object which was passed to the
removeNode/removeEdge method.
Bug fixReal-time Engine
TLcdContinuousDeclutteringLabelPainter: no longer throws IndexOutOfBoundsExceptions when multiple
obstacle providers are added.
Bug fixTerrain Analysis Engine
LMAP-3651
The line-of-sight computation could produce a ArrayIndexOutOfBoundsException, due to a
rounding error computing the number of angular steps.
Bug fixAviation Standards
LMAP-3466
TLcdDAFIFAerodromeModelDescriptor, TLcdDAFIFHeliportModelDescriptor: these classes now correctly implement
the getFeatureElementClass method from ILcdCollectionFeaturedDescriptor. This means they will return null in
case the feature index does not correspond to a feature which is a collection.
Bug fixAviation Standards
LMAP-3466
TLcdARINCControlledAirspaceModelDescriptor, TLcdARINCRestrictiveAirspaceModelDescriptor: these classes now correctly implement
the getFeatureElementClass method from ILcdCollectionFeaturedDescriptor. This means they will return null in
case the feature index does not correspond to a feature which is a collection.
Bug fixDefense Symbology
LMAP-3625
The aviation line symbol Standard-Use Army Aircraft Flight Route (SAAFR) in APP-6A (2.X.2.1.2.2.3)
and MIL-STD 2525b (2.X.2.2.2.3) did hot have the correct labeling.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-2228
The TLcyEarthAddOn.fOtfTerrainGXYLayerFactory field is no longer part of the API.
Upgrade considerationLuciadLightspeed
LMAP-3506
The TLcdEarthCompositeImageTileSet now disposes all the tilesets added to it when it is
disposed.
This behaviour is consistent with the TLcdEarthCompositeTileSet.
Upgrade considerationLucy (LuciadLightspeed)
ALcyGUIFactory: this class was generified. In the highly unlikely event you've directly
inherited from it (instead of from one of its subclasses, which is the typical use case), this
might result in a compile error. Simply using 'Component' for the generics type will solve it.
Upgrade considerationLucy (LuciadLightspeed)
samples.lucy.bestpractice.opengl: this sample was updated to use the new 3D map addon
instead of the old one.
Upgrade considerationLucy (LuciadLightspeed)
Drawing add-on: TLcyDrawingFormat and TLcyGLDrawingFormat: both formats now extend from
ALcyFormatWrapper and
ALcyGLFormatWrapper. This should not influence the API.
Also, ALcyGLShapeSupplier has a new method createSelectedShapePaintableFactory to
visualize selected shapes differently.
Upgrade considerationLuciadLightspeed
LMAP-3098, LMAP-3258
The unit of measure of ILcdGridReference instances is now taken into account for the
z-coordinate
as well. Previously, transformations involving an ILcdGridReference assumed that the
z-coordinate
was expressed in meters. Note that the scale parameter of an ILcdGridReference instance
is only applied to the (x,y) grid coordinates as before.
Upgrade considerationLucy (LuciadLightspeed)
TLcyDrawingOpenGLAddOn: an extra non abstract method is added to ALcyGLShapeSupplier allowing to
set a separate
style for selected objects. The impact of this change should be minimal since
ALcyGLShapeSupplier provides a default implementation of this method. Note that the wrapper base
class
ALcyGLShapeSupplierWrapper has been adjusted as well.
Upgrade considerationLucy (LuciadLightspeed)
The old TLcyCameraTrackingAddOn has been deprecated and removed by default. To re-enable it
remove the new TLcyCameraLinkAddOn from your addons.xml file and add the following section:
<!--This add-on cannot be combined with TLcyCameraLinkAddOn -->
<addon>
<name>3D Fly Through</name>
<class>com.luciad.lucy.addons.cameratracking.TLcyCameraTrackingAddOn</class>
<configFile>lucy/cameratracking/cameratrackingaddon.cfg</configFile>
<luciadMapOptions>3D</luciadMapOptions>
</addon>
Upgrade considerationLuciadLightspeed
The model decoder attribute of ILcdEarthAssets is now optional. This allows using the assets
to just describe the contents of an ILcdEarthTileSet. To get the old behaviour you can use
the TLcdEarthRasterAssetCodec.setModelDecoderOptional method.
Upgrade considerationLucy (LuciadLightspeed)
The old MapRotation add-on has been removed by default. The new on-map navigation controls
contain an integrated compass icon that allows you to rotate maps. If you want to re-enable it,
add the following section to your addons.xml file.
<addon>
<name>Map Rotation</name>
<class>com.luciad.lucy.addons.map.TLcyMapRotationAddOn</class>
<configFile>lucy/map/map_rotation_addon.cfg</configFile>
</addon>
Upgrade considerationLuciadLightspeed
TLcdAWTUtil: now has convenient invoke* methods that first check if they are running on the
Event Dispatch thread. The signature of invokeAndWait was changed to no longer throw
checked exceptions. This should not cause any issues as the method was documented as
"Internal LuciadMap util method". In the very unlikely event that you are affected, it will
cause a compiler error. You can then simply replace any calls to TLcdAWTUtil.invokeAndWait with
EventQueue.invokeAndWait.
Upgrade considerationLuciadLightspeed
The lcd_ogc_schema_resources.jar has been split in 3 separate jars: lcd_xml_resources.jar (containing
the schemas for XML), lcd_gml3_resources.jar (gml schemas) and lcd_ogc_resources.jar (ogc schemas such
as filter and sld). Applications should update their classpath accordingly.
Upgrade considerationLucy (LuciadLightspeed)
TLcySelectionEditorAddOn now follows the selected object of the active map component.
Upgrade considerationLucy (LuciadLightspeed)
Description
The old 3D add-on (TLcyG4JAddOn) has been removed by default, in favor of the new
TLcyGLMapAddOn. Note that the new 3D add-on requires the Earth add-on (and hence the Earth
specialized package of LuciadMap) for displaying for example terrain data. If you don't have
the Earth specialized package, it might therefore be best to keep on using the old 3D add-on.
Re-enabling the TLcyG4JAddOn
To re-enable the old one, remove the new GL map-addon from your addons.xml file and add
the
following section:
<!--This add-on cannot be combined with TLcyGLMapAddOn -->
<addon>
<name>3D</name>
<class>com.luciad.lucy.addons.g4j.TLcyG4JAddOn</class>
<configFile>lucy/g4j/g4j.properties</configFile>
<luciadMapOptions>3D</luciadMapOptions>
</addon>
The active settable activating the Earth terrain wizard has been removed by default
since it only
works with the TLcyG4JAddOn. This active settable can be reactivated by changing the
"TLcyEarthAddOn.newEarthTerrainAction.menuBar.insert" property in the earth_addon.cfg file to
true.
Updating your code to be independent of TLcyG4JAddOn
If you relied on the TLcyG4JAddOn with the following construct:
addon = lucyEnv.retrieveAddon( TLcyG4JAddOn.class );
if ( addon != null ) {
...
}
You can replace this for the following usages:
- adding an ILcdGLLayerFactory can be done using ILcyLucyEnv#addService, instead of
TLcyG4JAddOn#addLayerFactory. This is
required
for thenew add-on, and also works with the old add-on.
- accessing the ILcdGLView's can be done using
ILcyLucyEnv#getService(TLcyGLMapManager.class). This only works when using the new add-on.
For the old add-on, you can still use TLcyG4JAddOn directly.
Upgrade considerationLucy (LuciadLightspeed)
TLcyLayerControlAddOn: this add-on requires that the map add-on does not automatically
insert its
layer control. You can ensure this by adding the line "mapLayerControl.insert=false" to your
map add-on
configuration file. Note that this flag is not used by the TLcyMapOverviewAddon.
For restoring the old behavior, remove the TLcyLayerControlAddOn entry from the
addons.xml file and
set the "mapLayerControl.insert" property to true in the map_addon_layer_control.cfg file.
Upgrade considerationLucy (LuciadLightspeed)
A new map interface ILcyGenericMapComponent allows treating 2D and 3D maps in the same way for
many aspects.
The following classes have been adjusted to use this interface instead of ILcyMapComponent:
- TLcySelectionEditorAddOn
- TLcyDataFormatManager
- TLcyDataSourceEvent
If you have overridden one of the affected methods it will result in a compile error.
Replace
the ILcyMapComponent parameters with ILcyGenericMapComponent instances.
This also has an impact if you have a custom frontend. Previously only the 2D view could
have
an active map component, but now this is also the case for 3D view. An example on how to
mediate the
active map is given in the
samples.lucy.frontend.dockableframes.DockableFrameAppPaneFactory.ActiveMapMediator class.
Upgrade considerationLuciadLightspeed
The TLcdEarthTerrainElevationProvider now throws an exception if a a model that it does not
support is added instead of ignoring the model. See
TLcdEarthTerrainElevationProvider.isSupportedElevationModel for more details on which models
this elevation provider supports.
Upgrade considerationLuciadLightspeed
ILcdLayerTreeNode: the methods addHierarchySelectionListener and
removeHierarchySelectionListener have been added to the interface.
The impact of this change should be minimal.
Only nodes which directly implement this interface will result in compile errors. Notice that
the
support class to create such nodes (TLcdLayerTreeNodeSupport) has been adjusted.
Implementations
could delegate the call for these extra methods to the support class.
Upgrade considerationLuciadLightspeed
ILcdView: the autoUpdate property has been moved from ILcdGXYView and ILcdGLView to
ILcdView, and
methods
are added to add or remove a PropertyChangeListener to the view.
The behavior of the standard views has been slightly modified with respect to the
autoUpdate property:
when switching the property from false to true, a repaint of the view is triggered, which was
not the case
in earlier versions. Also, all our ILcdView implementations now fire a PropertyChangeEvent
when
altering the autoUpdate property.
The impact of this change should be minimal.
The added methods were actually moved from ILcdGXYView and ILcdGLView, so all existing views
implementing
these
interfaces can remain unchanged. Views implementing ILcdView directly will cause a compile
error.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapDataFlavor: made its constructor private. This shouldn't cause any issues as it only
contained static final constants.
Upgrade considerationLuciadLightspeed
LMAP-3379
TLcdGXYHaloLabelPainter and TLcdGXYHaloLabelPainter2, and TLcdGXYHaloPainter
now allow wrapping ILcdGXYLabelPainterProvider and ILcdGXYPainterProvider instances,
respectively.
This will cause compilation errors if you used these classes with an ILcdGXYPainter or
ILcdGXYLabelPainter
instance
that also implements ILcdGXYPainterProvider or ILcdGXYLabelPainterProvider.
Simply casting your argument to ILcdGXYPainter or ILcdGXYLabelPainter will solve these errors.
Upgrade considerationLucy (LuciadLightspeed)
The SwingX library, used by the TOTE addon and the TableView sample, has been upgraded
from version 0.8 to version 1.0.
Some classes have been removed between version 0.8 and version 1.0, leading to the following
changes.
- The class HighlighterPipeline has been removed. For the alternate row highlighting
in the table we have replaced
table.setHighlighters( new HighlighterPipeline( new Highlighter[]{ new
AlternateRowHighlighter() } ) );
by
table.setHighlighters( HighlighterFactory.createAlternateStriping( ));
-
The extension of JXTable, MyJXTable, no longer needs a mouse listener to determine whether
the
sort operation may be applied or not (the sort operation was not applied on the column with
the visibility checkbox). It is now possible to set the sortable property on individual
columns.
This is achieved as follows:
//avoid that clicking on the checkbox column header would trigger a sort operation
fTable.getColumnExt( DisplayColumnTableModelDecorator.DISPLAY_COLUMN_INDEX ).setSortable(
false );
-
The method getSorter( int aColumnIndex) no longer exists on a JXTable. Instead one can
retrieve a
SortOrder object containing all the necessary information. The codec, which stored and
restored the sorted
columns, now uses this SortOrder, e.g. in the encoding step
Sorter sorter = table.getSorter( i );
if ( sorter != null ) {
sorted_columns.add( table.getModel().getColumnName( table.convertColumnIndexToModel( i ) )
);
sorted_columns_order.add( sorter.isAscending() ? SORT_ASCENDING : SORT_DESCENDING );
}
has been replaced by
SortOrder sortOrder = table.getSortOrder( i );
if ( sortOrder != null && sortOrder.isSorted() ){
sorted_columns.add( table.getModel().getColumnName( table.convertColumnIndexToModel( i ) )
);
sorted_columns_order.add( sortOrder.isAscending() ? SORT_ASCENDING : SORT_DESCENDING );
}
A similar change has been made to the decoding step.
-
AbstractTreeTableModel no longer has methods to fire events. Instead it has a protected
TreeModelSupport
instance which is a support for change notification. All calls to the fire* methods in
TreeTableFeaturedModel have been replaced by calls to modelSupport.fire* .
-
DefaultTreeTableModel no longer has a field askAllowsChildren, and the corresponding
constructor has
also been removed.
-
TreeTableDefaultMutableNode now extends AbstractMutableTreeTableNode in order to
work with the DefaultTreeTableModel.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-1974
The package com.luciad.lucy.map.painter, which has always been documented as "it's subject to
disappear without notice", has been removed.
Upgrade considerationDatabase Connectors
The package com.luciad.format.db2.spatial.shp, containing specialized shapes for the DB2 module
has been made non-public.
Upgrade considerationGraph and Routing Engine
The classes in the com.luciad.network.* packages have been generified. This mainly includes adding
generic types for nodes and edges to all graph interfaces, implementations and helper classes.
Upgrade considerationGraph and Routing Engine
The signature of the following method of ILcdLimitedEditablePartitionedGraph and its implementations have been changed:
- void removeBoundaryEdge( S aEdge, int aPartitionedGraphFireEventMode, int aGraphFireEventMode )
- void removeBoundaryEdges( ILcdGraph aPartition, int aPartitionedGraphFireEventMode, int aGraphFireEventMode )
These methods now return the edge(s) that has/have been removed, instead of void.
Custom implementations of the ILcdLimitedEditablePartitionedGraph interface should be extended accordingly.
Upgrade considerationGraph and Routing Engine
The signature of the following methods of ILcdEditableGraph and its implementations have been changed:
- void removeNode(Object, int)
- void removeEdge(Object, int)
These methods now return the object that has been removed, instead of void.
Custom implementations of the ILcdEditableGraph interface should be extended accordingly.
Upgrade considerationAviation Standards
The following QName constants are no longer available in TLcdAIXM5Constants.AIXM5.Name: codeSpace_unqual,
id_unqual, uuid_unqual and uuidref_unqual. These are names of attributes that are not included in the AIXM 5
namespace. The original inclusion was erroneous and could cause confusion. Uses of these QName constants should
be replaced with local constants representing these names. They can simply be created for instance like
'new QName("codeSpace")'.
Upgrade considerationAviation Standards
The lcd_aixm_schema_resources.jar has been renamed to lcd_aixm_resources.jar. Applications that
depend on this jar should update their classpath accordingly. In addition, the schemas inside
that jar are now in a 5.0 folder (to prepare for the upcoming 5.1 version). Applications that
rely on the location of these schemas in the classpath to get hold of the schema should update
the path to these schemas (for instance replace someClass.getResource( "AIXM_features.xsd" )
by someClass.getResource( "5.0/AIXM_features.xsd" ) ).
Upgrade considerationMaritime Standards
The AML attribute and object class resource files have been moved from the
com/luciad/format/s57
package to the com/luciad/format/aml package. The file names no longer contain the 'AML'
infix.
All paths to these AML resource files should be updated accordingly.
9.0
9.0.22
ImprovementLuciadLightspeed
TLcdJULFileHandler automatically creates the directory containing the log files, if it does not
exist.
Bug fixLucy (LuciadLightspeed)
TLcyTabbedPaneLucyEnvFactory : decoding two workspaces in rapid succession no longer leads to
dangling application panes.
Bug fixLucy (LuciadLightspeed)
LUCY-2225
TLcyG4JAddOn: the view creation is now always performed on the event dispatch thread (EDT).
Bug fixLucy (LuciadLightspeed)
LUCY-2213
TLcyPreviewAddOn: a NullPointerException could occur when switching between maps in the preview
panel.
This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2205
TLcyDAFIFAddOn: the workspace support has been improved. Creating a new DAFIF layer after
loading a workspace containing DAFIF layers resulted in two DAFIF layer structures in
the layer control. This has now been fixed.
Bug fixLuciadLightspeed
LMAP-3607
ALcdGXYStampLabelPainter, TLcdGXYHaloPainter, TLcdGXYHaloLabelPainter, TLcdGXYIconPainter,
TLcdLonLatGridPainter, TLcdHaloIcon: halo painting now takes into account rendering hints
such as anti-aliasing.
Bug fixLucy (LuciadLightspeed)
LUCY-2215
TLcyMapAddOn: The paste actions of the transfer handler of the layer control are undoable again.
Bug fixDefense Symbology
LMAP-3623
A set of MIL-STD 2525b tactical symbols have received a new unique code in the MIL-STD 2525b Change 1 2004
specification,
but the old code was still used. More specifically, the following list of symbols has been corrected:
- G*F*PS----****X, 2.X.4.1.2.1, FIRE SUPPORT STATION is now identified by G*F*PCF---****X
- G*F*LS----****X, 2.X.4.2.1.1, LINEAR SMOKE TARGET is now identified by G*F*LTS---****X
- G*F*LF----****X, 2.X.4.2.2.1, FIRE SUPPORT COORDINATION LINE (FSCL) is now identified by
G*F*LCF---****X
- G*F*LC----****X, 2.X.4.2.2.2, COORDINATED FIRE LINE (CFL) is now identified by G*F*LCC---****X
- G*F*LN----****X, 2.X.4.2.2.3, NO-FIRE LINE (NFL) is now identified by G*F*LCN---****X
- G*F*LR----****X, 2.X.4.2.2.4, RESTRICTIVE FIRE LINE (RFL) is now identified by G*F*LCR---****X
The old codes can still be used in TLcdEditableMS2525bObject: when an old code is detected, it will be
automatically converted to the correct MIL-STD 2525b Change 1 2004 code.
Note that the method getMS2525Code() always returns the new code in that case.
Bug fixRadar Connectors
Changed the unit display name of angle features to 'Degrees' to be more consistent with the rest of LuciadMap.
Upgrade considerationRadar Connectors
TLcdASTERIXCategory62 was updated for changes between edition 1.3 and edition 1.9 of the category 62 specification.
9.0.21
ImprovementMaritime Standards
Methods were added to TLcdS57AttributeClassMap and TLcdS57ObjectClassMap that allow to
retrieve
all attribute or object classes in the class map.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: selection of PIM preview units can again be restored from the workspace.
Bug fixLucy (LuciadLightspeed)
LUCY-2201
Workspace decoding is now more robust when some files or other services are missing during the
decoding process.
Bug fixLucy (LuciadLightspeed)
LUCY-2196
TLcyLOSCoverageAddOn: a null pointer could occur when deleting a shape from the map.
Bug fixLucy (LuciadLightspeed)
LUCY-2194
TLcyWMSClientAddOn: no longer throws a NullPointerException when clicking ok in the dialog
without being connected to a WMS.
Bug fixLuciadLightspeed
LMAP-3600
The TLcdSVGModelDecoder was not always correctly decoding paths. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3599, LMAP-3581
TLcdCADRGModelDecoder#canDecodeSource now only returns true for A.TOC files,
not for all *.TOC files, in order to avoid confusion with other formats.
The name A.TOC is available as a new constant
TLcdCADRGModelDecoder#TOC_NAME.
Bug fixLucy (LuciadLightspeed)
LUCY-2193
TLcyDrawingAddOn: the original point icons are now correctly restored when loading a legacy
redlining file (.red).
Bug fixLuciadLightspeed
LMAP-3590
TLcdDEMModelDecoder no longer throws an exception for DEM files containing
Real4 fields in scientific notation ("123D+45").
Bug fixLuciadLightspeed
Fixed incorrect move2D for GML points with a grid reference.
Bug fixLuciadLightspeed
LMAP-3561
In disagreement with the API documentation, the default value of the
TLcdWarpRasterPainter#isReuseInternalBuffer
property was true and did not depend on the paintCache property. Both issues have been fixed.
Bug fixLuciadLightspeed
Fixed race condition in TLcdEarthAsynchronousTileSet.
Bug fixLuciadLightspeed
LMAP-3586
Clicking on an uninitialized TLcdVVJPanel could trigger a null pointer exception.
Bug fixLuciadLightspeed
LMAP-3582
The pixeldensity of ILcdEarthRasterTileSetCoverage could overflow too soon.
Bug fixLuciadLightspeed
LMAP-3576
TLcdLayerTreeNodeUtil: the isEmptyNode( ILcdLayer aLayer ) method now checks whether aLayer
is an ILcdLayerTreeNode and has an empty model.
9.0.20
ImprovementLucy (LuciadLightspeed)
LUCY-2008
The drawing addon now supports intersection calculations for rhumblines.
ImprovementLuciadLightspeed
LMAP-3345
The GML model encoders now longer claim that they can export raster formats.
ImprovementAviation Standards
LUCY-2164
TLcdARINCDecoder: the canDecodeSource method has been improved to reduce the number of files that are falsily
recognized as containing ARINC data.
ImprovementAviation Standards
LMAP-3105
The performance of the ARINC decoder has been improved by up to 30%.
ImprovementMaritime Standards
Upgraded AML resource files to the latest official version as specified by UKHO.
ImprovementMaritime Standards
Linestyles can now have text as a centered symbol.
ImprovementMaritime Standards
LMAP-3499
Areas can now be selected when their centered symbol is selected.
Bug fixLucy (LuciadLightspeed)
LUCY-2187
TLcyActionBarItemComparator: Sorting menu items didn't work for sub-menus, for example
specifying 'MapSubMenuGroup;sort=abc' in lucy.cfg did not sort the sub-menus like 'Controls' and
'Projection'.
Bug fixLucy (LuciadLightspeed)
LUCY-2186
The Lucy sample shell files now have the proper shebang: #!/bin/bash
Bug fixLuciadLightspeed
LMAP-3541
TLcdEllipsoid.intersects2DLS returns consistent results when three of the segment ends
are colinear (the segments are now always considered to be intersecting).
Bug fixLuciadLightspeed
LMAP-3558
TLcdTiled2DBoundsIndexedModel.applyOnInteract2DBounds was applying the given function to all the
sub-models, even after the function returned false (indicating a stop condition). This has
been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2183
TLcyFormatBarAddOn: fixed a NullPointerException that could occur when loading a workspace
containing drawing files.
Bug fixLuciadLightspeed
LMAP-3097
TLcdGeoTIFFModelEncoder no longer swaps colors when saving rasters with an INT_ARGB color model.
Bug fixLuciadLightspeed
LMAP-3549
Fixed a performance problem with TLcdAdvancedMapRulerController.
Bug fixLuciadLightspeed
LMAP-3531
create and edit with mouse sample: fixed a NullPointerException when trying to snap to
the surface while creating a composite curve.
Bug fixLucy (LuciadLightspeed)
LUCY-2178
TLcyGotoAreaOfInterestAddOn: no longer throws a ClassCastException when associating the current
view scale with a selected area of interest.
Bug fixLucy (LuciadLightspeed)
LUCY-2177
TLcyPimTrackAddOn: the editor of the over-fly type column in the PIM track object customizer is
reverted to a drop down menu instead of a regular text field.
Bug fixLucy (LuciadLightspeed)
LUCY-2171
ILcyMapComponent: inserting a layer list structure containing only empty layer lists will no
longer
add empty nodes to the view.
Bug fixLucy (LuciadLightspeed)
LUCY-2174
TLcyEarthAddon: the terrain elevation layer created with the terrain wizard did not contain
any data when the preprocessing option and both layer options were selected.
Bug fixLucy (LuciadLightspeed)
Fixed a dependency of the TLcyEarthAddOn on the 3D specialized package (the Earth addon also
works without this specialized package).
Bug fixLucy (LuciadLightspeed)
LUCY-2173
MS2525b and APP6A format bars: adding symbology was not always undoable.
Bug fixLuciadLightspeed
The TLcdEarthTileSetElevationProvider now properly checks the input parameters of its
setters.
Bug fixLucy (LuciadLightspeed)
LUCY-2153
TLcyDAFIFAddOn: The DAFIF addon now correctly saves the DAFIF subtypes in the workspace.
Bug fixLuciadLightspeed
LMAP-3495
The format name of TLcdEarthTileFormat is now case insensitive.
Bug fixLuciadLightspeed
LMAP-3511
The GL painters now properly dispose the resources (ex. OpenGL buffers) they allocate.
Bug fixLuciadLightspeed
LMAP-3528
The GL painters could sometimes not paint anything if the view was empty and the ADAPTIVE
clipcenter mode was used.
Bug fixLuciadLightspeed
LMAP-3522
The TLcdEarthTerrainElevationProvider and TLcdEarthTileSetElevationProvider could return an
elevation of 0 instead of NaN when no data was available.
Bug fixLuciadLightspeed
Removed TLcdLineType#readResolve from API.
Bug fixLuciadLightspeed
LMAP-2993
TLcdEarthTerrainRepositoryModelDecoder: the coverages that only contain fallback data are no
longer available. This makes it possible to determine whether a repository had geometry or
textures if the fallback option(s) are enabled.
Bug fixLucy (LuciadLightspeed)
LUCY-2163
ILcyLucyEnv#getServices no longer returns services that were removed.
Bug fixLuciadLightspeed
LMAP-3515
samples.gxy.grid.multilevel.gars.CGRSCoordinateFormat did not correctly format cell columns.
Bug fixMaritime Standards
When selecting a complex linestyle, sometimes the selection visualization mismatched the
non-
selected visualisation. This problem has been fixed.
Bug fixMaritime Standards
Linestyles can now have a gap in between them when their pivot point is out of the bounding
box
region.
Bug fixMaritime Standards
Fixed support for text in lookup entries. Text can now be aligned horizontally and
vertically.
Text can also be made italic, bold and the font can be resized at command.
9.0.19
ImprovementLuciadLightspeed
LMAP-3487
The performance of the TLcdCompositeCurve.computePointSFCT() method has been improved.
ImprovementTerrain Analysis Engine
LMAP-3484
TLcdExtremePointFinder: the performance of the extreme point computation has been improved.
ImprovementMaritime Standards
The TLcdS57ObjectClassMapDecoder now throws an exception when the ECDIS resource files are
not
consistent, that is, whenever an object class refers an attribute for which no description
is
available.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewComponentFactory: the map overviews created by this factory now have a better
(smaller) preferred size.
Bug fixLuciadLightspeed
The native reference of the elevation coverage in the TLcdEarthTextureTerrainTileSet is now
the
tileset reference.
Bug fixLuciadLightspeed
LMAP-3006
TLcdEarthTileRepositoryPreprocessor: Elevation data was sometimes not preprocessed at their
most detailed resolution. This would result in less detailed geometry data in the repository
then the original source data. As a result of this fix the repository size may increase
w.r.t.
versions before this fix when preprocessing elevation data.
Bug fixLuciadLightspeed
LMAP-3490
TLcdEarthTerrainElevationProvider: Fixed exception when adding models with no supported
elevation data and will now log a warning if this occurs.
Bug fixLucy (LuciadLightspeed)
LUCY-2160
TLcyMapColorAddOn: Map color add-on didn't change background color if configured layer (e.g.
world) could not be found.
Bug fixLuciadLightspeed
LMAP-3478
GARSCoordinateFormat did not correctly parse cell rows.
Bug fixAviation Standards
LMAP-3494
The feature class for ILcdAIXMProcedureFeature.ROUTE_TYPE is now correctly set to TLcdProcedureRouteType in TLcdAIXMProcedureTrajectoryModelDescriptor.
Bug fixAviation Standards
LMAP-3481
The ARINC decoder now correctly sets the recommended navaid on FD procedure legs; this results in a
more correct visualization of procedures which contain FD legs.
Bug fixAviation Standards
LMAP-3483
The ARINC decoder now successfully decodes more procedures due to an improved validity check.
Bug fixAviation Standards
LMAP-3482
The geometry calculation for FD type procedure legs has been made more robust, which results in improved visualization
for some procedures containing an FD leg.
Bug fixDefense Symbology
LMAP-3493
The aviation line symbols in APP-6A and MIL-STD 2525b were not painted with a dashed linestyle
when the symbol status was set to anticipated/planned.
Bug fixMaritime Standards
Some missing AML entries where added to the AML resource files.
9.0.18
Bug fixLucy (LuciadLightspeed)
LUCY-2159
Drawing hippodrome: prevented "unbound namespace URI" error that occured when saving hippodrome
models.
Bug fixLucy (LuciadLightspeed)
LUCY-2099
TLcyMapRadarViewAddOn: now no longer listens to models of previously tracked domain objects.
Bug fixLucy (LuciadLightspeed)
LUCY-2157
TLcyMapRadarViewAddOn: prevented an NullPointerException when all objects were removed from
the model of the tracked domain object.
Bug fixLucy (LuciadLightspeed)
LUCY-2158
TLcyMain: the default uncaught exception handler could eat an exception that occurred
during early Lucy initialization because it threw a NullPointerException itself.
Bug fixLuciadLightspeed
TLcdGXYPolylineStampLabelPainter sometimes mistakenly used the location index when
a label location was set, which could result in an ArrayIndexOutOfBoundsException.
Bug fixLuciadLightspeed
TLcdEarthCompositeImageTileSet: Added support for non-geodetic references.
9.0.17
ImprovementLuciadLightspeed
LMAP-3113
TLcdXMLDecoder no longer resolves external DTD's, as these were not used by the decoding process.
ImprovementLuciadLightspeed
Improved application schema generation for GML export (improved minOccurs and maxOccurs
attributes for child elements). Improved resolution of featured descriptors
during GML export. Support for export of TLcdISO19103Measure.
ImprovementLuciadLightspeed
LMAP-2702
Multi format sample: the opened file is now selected by default.
ImprovementLucy (LuciadLightspeed)
LUCY-2024
The drawing sample now has a nicer icon on the map, and its selection behavior has been
improved.
ImprovementLuciadLightspeed
The shell scripts for the samples now also support 32-bits JRE's on 64-bit operating systems.
ImprovementLuciadLightspeed
The shell scripts for the samples now work properly on 64-bits Windows systems.
ImprovementLucy (LuciadLightspeed)
LUCY-1705
The launcher scripts now also support 32-bits JRE's on 64-bit operating systems.
ImprovementLucy (LuciadLightspeed)
LUCY-1972
The launcher scripts now work properly on 64-bits Windows systems.
ImprovementLuciadLightspeed
LMAP-2040
The class TLcdTopocentricCoordSysTransfo2 has been deprecated in favor of
TLcdTopocentricCoordSysTransformation.
ImprovementLucy (LuciadLightspeed)
LUCY-835
TLcyPreviewAddon: workspace support is added for the TimeSeek simulator settings.
ImprovementAviation Standards
LMAP-3467
TLcdProcedureTrajectory now has a valid implementation for getFocusPoint(), by returning
the middle of the trajectory bounds instead of null.
ImprovementMaritime Standards
LMAP-3442
The checksum verification is no longer performed by default by the
TLcdS57CatalogueModelDecoder.
An API flag is provided now on the decoder, to enable or disable it.
ImprovementMaritime Standards
LMAP-3273
Additional AML resource files with object and attribute metadata and descriptions were added
to
the lcd_ecdis_resources.jar.
Bug fixLucy (LuciadLightspeed)
LUCY-2155
TLcyFormatBarAddOn: if no ALcyDefaultModelDescriptorFactory could be found in ILcyLucyEnv when
activating Map|Drawing Bar, the active settable now still enables.
Bug fixLucy (LuciadLightspeed)
LUCY-2154
TLcyOBJDecoderAddOn: can now read OBJ files packaged in a jar file.
Bug fixLuciadLightspeed
LMAP-3469
ALcdEarthGLTiledClipmapLevel: Fixed rare race condition when tile updating is enabled.
Bug fixLuciadLightspeed
TLcdEarthTileRepository: fixed isGeoReferenceSupported and related exceptions when the
addTileSetCoverage method with overriding georeference parameter is used.
Bug fixLuciadLightspeed
ILcdLayerTreeNode: calling removeHierarchyPropertyChangeListener did not always remove the
listener from
the whole subtree. This is now resolved.
Bug fixLuciadLightspeed
TLcdEarthTileSetElevationProvider: improved performance and added some methods to manage the
tile cache size.
Bug fixLucy (LuciadLightspeed)
LUCY-2150
TLcyAIXMAddOn, TLcyDAFIFAddOn, TLcyARINCAddon: the layerfactories for these addons now
check whether they support the given model before creating a layer. If not they return null.
Bug fixLucy (LuciadLightspeed)
LUCY-2145
Area of interest: the object customizer panel now indicates the correct scale after pressing the
"Fit Map" button and the current scale of the combobox is kept in sync with the scale of the
map.
Bug fixLuciadLightspeed
LMAP-3453
Performance logging no longer throws an exception when the layer name contains a ':' character.
Bug fixLuciadLightspeed
TLcdEarthGLTerrainPainter: improved tile retrieval performance significantly.
Bug fixLuciadLightspeed
TLcdEarthCompositeTileSet: Fixed some composite operations (o.a. update and cancel) and
added
some extra API for mananging the composed tilesets.
Bug fixLucy (LuciadLightspeed)
Adding empty layer nodes could cause asynchronous paint queues to be split.
Bug fixLuciadLightspeed
LMAP-3443
TLcdGXYSelectControllerModel2/TLcdGXYEditControllerModel2: a workaround was applied for Sun bug
4421515. As a result, objects (and labels) can now be edited using the middle mouse button.
Bug fixLuciadLightspeed
ALcdEarthGLAltitudeExaggerationTileSet: Added altitude exaggeration support for synchronous
tile production and synchronous/asynchronous tile updating.
Bug fixLucy (LuciadLightspeed)
LUCY-2135
TLcyDrawingAddOn: the polygon customizer panel now only activates the delete point action when
the
polygon contains more than 3 points.
Bug fixLucy (LuciadLightspeed)
LMAP-3432
Fixed a NPE that only occurs when showing a table under the aero look on Windows Vista.
Bug fixLuciadLightspeed
Fixed compilation error in xml sample that only occurs when compiling using eclipse, java5 under linux.
Bug fixLucy (LuciadLightspeed)
TLcyEarthOpenGLAddOn: fixed error when loading a repository with a non-geodetic reference.
Bug fixLucy (LuciadLightspeed)
LUCY-2023
The drawing sample now displays the domain object icon on non-Windows platforms too.
Bug fixLucy (LuciadLightspeed)
LUCY-2042
TLcyWMSClientAddOn: the layer selection dialog erroneously allowed to select layers that
didn't contain any data.
Bug fixLuciadLightspeed
LMAP-583
TLcdSHPModelEncoder now supports features of type Long.
Bug fixLuciadLightspeed
LMAP-3399
TLcdSHPModelEncoder was not correctly encoding 3D points if they were not TLcdSHPPointZ
instances. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-2787
TLcdMIFModelEncoder.canExport was returning true even though when it could not handle the
reference
of the model. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2752
The setExcludedSources method of the TLcdStatusInputStreamFactory class was not working when
used
in combination with the TLcdSHPModelDecoder. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2555
Some vertical grid lines were disappearing when zoomed out until the whole world was visible
and the Mercator projection was used. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2789
The TLcdMIFModelEncoder was incorrectly accepting rotated ellipses, which are not supported by
the MIF format.
The encoder now returns false when the "canExport" method is called with a rotated ellipse.
Bug fixLuciadLightspeed
LMAP-2239
The Swiss Oblique Mercator projection was incorrect at very small scales. This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-1936
TLcyRedliningAddOn: the possibility to calculate the intersection between a parallel and
a great circle is now independent of the order in which both are selected.
Bug fixLucy (LuciadLightspeed)
LUCY-2044
TLcyHypsometryAddon: The layer visibility is now taken into account when determining whether
to enable the "Based on selected elevation layer" radiobutton or not.
Bug fixLucy (LuciadLightspeed)
LUCY-2059, LUCY-2031, LUCY-2032
TEA AddOns: It could occur that the link between the objects on the map and the objects in the
different TEA panels was removed.
Bug fixMaritime Standards
LMAP-3394
TLcdS57CatalogueModelDecoder.canDecodeSource now returns true for catalogues in which one or
more ENC cells are missing (but still referred to from within the catalogue file).
9.0.16
ImprovementLuciadLightspeed
LMAP-3395
Updated the javadoc of ILcdEarthTileSet and ILcdEarthRasterTileSetCoverage to solve some
ambiguity w.r.t. the georeference in which the tileset bounds and raster coverage
pixeldensity
are expressed.
ImprovementAviation Standards
TLcdDAFIFLoader now has two new methods String[] getSelectedSubTypes( String aType ) and void setSelectedSubTypes( String
aType, String[] aSubTypes ).
This allows users to retrieve and set the state of the DAFIF sub types correctly.
Bug fixLuciadLightspeed
TLcdEarthTextureTerrainTileSet: The elevation coverage and isGeoReferenceSupported now
properly
support non-geodetic references.
Bug fixLuciadLightspeed
LMAP-3395
TLcdEarthGXYViewTileSet: The copyright message is no longer disabled when using this
tileset.
Bug fixAviation Standards
The result of the getSelectedTypes method no longer contains an entry with the name of the parent type for each selected sub
type.
9.0.15
ImprovementLuciadLightspeed
TLcdEarthGXYViewTileSet: Improved performance when using an oversampling factor of 1.
ImprovementLuciadLightspeed
TLcdEarthGLTerrainClipmapLevel: Improved performance when using textures in varying formats.
ImprovementLuciadLightspeed
LMAP-3389
TLcdEarthTerrainElevationProvider: Added API to add/remove elevation models.
ImprovementLucy (LuciadLightspeed)
LUCY-2100
TLcyMapRadarViewAddOn: compass grids can now be added to points created by the drawing add-on.
ImprovementAviation Standards
LMAP-3396
The decoder logs returned by TLcdAIXMModelDecoder#getErrorMessage() after decoding a file
have been improved. They now include more information about the affected aeronautical entities in the data.
Bug fixLucy (LuciadLightspeed)
TLcyGXYLayerOrderManager: the layer order manager no longer causes
ConcurrentModificationException's
when the TLcyMapAddOn.independentOrderTreeLayeredSupport flag in the map_addon.cfg file is set
to true.
Bug fixLuciadLightspeed
LMAP-3399
TLcdSHPModelEncoder now correctly encodes the Z value of the points when the export3D property
is enabled.
Bug fixLuciadLightspeed
LMAP-3391
TLcdEarthTerrainElevationTileSet: Fixed null native georeference for terrain geometry
coverage.
Bug fixLucy (LuciadLightspeed)
LUCY-2110
Create new layer actions are now properly shown again on the MS2525b, APP6A and PIM format bars.
Bug fixLucy (LuciadLightspeed)
LUCY-2111
ALcyTool: now throws a proper exception if unplugFrom is called without every being plugged
before.
Bug fixAviation Standards
LMAP-3403
The procedure calculator will no longer exceed the minimum or maximum altitudes of a leg when trying to
reach the minimum or maximum altitude of the next leg. This means that when a leg is followed by a leg
with a minimum altitude higher then the current maximum altitude, the trajectory will climb until
the current maximum altitude is reached. The remainder of the climb will be done during the next leg.
A robustness fix was also applied to prevent an exception when calculating procedure geometry.
Bug fixAviation Standards
LMAP-3397
The distance unit FT was not decoded correctly when used for a runway length or width.
9.0.14
ImprovementLuciadLightspeed
TLcdWFSProxyModel has become more robust. It can now also handle situations where the WFS server does not
include a schema-import in the XML encoding of GetFeature results.
ImprovementLuciadLightspeed
LMAP-3378
To improve the robustness, the WMS client now adds 'SERVICE=WMS' to all GetMap requests.
This is not required by the WMS specification, but some servers do check for it.
Bug fixLuciadLightspeed
TLcdEarthGLTerrainClipmapLevel: Added support for textures in varying formats.
Bug fixLuciadLightspeed
TLcdEarthImageCombiner: Added support for combining images opaque and translucent images.
Bug fixLuciadLightspeed
ALcdEarthTileSetMultilevelRaster: Added support for non-geodetic tileset references.
Bug fixLucy (LuciadLightspeed)
LUCY-2108
TLcyFormatBarAddOn: when a layer was added (but not selected), the format bar didn't always pass
this layer to the active ALcyFormatBar.
9.0.13
ImprovementLuciadLightspeed
LMAP-3212
EPSG codes using the Polar Stereographic projection variants B and C are now supported.
ImprovementAviation Standards
LMAP-3375
The decoder for routes and route segments, com.luciad.format.aixm.decoder.TLcdAIXMRouteHandler,
now removes route segments with unresolved referred points from decoded routes.
Any unresolved referred points are still logged by the decoder, as described in enhancement LMAP-3148.
Bug fixLucy (LuciadLightspeed)
LUCY-2085
Choosing a color could rarely cause the application to deadlock due to a Java bug, a workaround
has been applied.
Bug fixLuciadLightspeed
Fixed exceptions during painting of certain GML linear rings. Improved schema resolution
for GML2 model decoder.
Bug fixLucy (LuciadLightspeed)
LUCY-2107
Fixed incorrect 3D visualization of SHP data.
Bug fixLucy (LuciadLightspeed)
TLcyGXYLayerTreeNodeFormatWrapper registered a layer factory that did not check if the model
belonged to the format.
Bug fixLuciadLightspeed
LMAP-3374
GARSCoordinateFormat now obeys super-class contract when parsing
fails.
Bug fixLucy (LuciadLightspeed)
LUCY-2105
TLcyFormatBarAddOn: now respects the priorities of the ALcyFormatBarFactories registered to
ILcyLucyEnv, even if a format bar was already shown.
Bug fixLuciadLightspeed
LMAP-3382
TLcdUtmMgrsUtil.lonlat2UtmMgrs was producing incorrect results for points very close to the
boundaries of a southern latitude zone band. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2510
TLcdSymbol: now always paints inside its bounds, defined by icon width and height.
Bug fixLuciadLightspeed
LMAP-3361
firstExample.pro now by default includes the Java library jce.jar.
Bug fixLuciadLightspeed
LMAP-2635
TLcdCADRGModelDecoder no longer uses the length field in the location section.
Bug fixLuciadLightspeed
LMAP-3372
In TLcdPolarStereographic setting a negative latitude of true scale (for the southern
hemisphere)
was producing incorrect results. This has been fixed.
9.0.12
Bug fixLuciadLightspeed
LMAP-3370
TLcdEarthTerrainRepositoryModelDecoder: The model decoder can now (optionally) fallback to
default geometry or textures if the repository does not contain the proper data. This is
disabled by default.
Bug fixLuciadLightspeed
LMAP-3368
TLcdEarthTextureTerrainTileSet: Changed the name of the combined geometry/texture coverage
to
'Texture terrain geometry' to avoid name conflicts.
Bug fixLucy (LuciadLightspeed)
LUCY-2129
TLcyDrawingAddOn: Fixed painting of ILcdText objects with 0 size in the 3D view.
Bug fixLucy (LuciadLightspeed)
TLcyMapComponent: using the insertGXYLayer method with an ILcdGXYLayerList now inserts the
created ILcdLayerTreeNode at the correct position in the view.
Bug fixLucy (LuciadLightspeed)
LUCY-2094
TLcyDrawingAddOn: Restored the original behavior of creating a sphere with the mouse: it
creates a sphere with initial height equal to the radius of the sphere. As a consequence, the
sphere is located
completely above the ellipsoid.
Bug fixLuciadLightspeed
LMAP-3347
TLcdGXYStampLabelPainter: the isLabelTouched method now works correctly if the mode contains
the TRANSLATING bit.
Bug fixAviation Standards
LMAP-3353
TLcdDAFIFTRefuelingTrackDecoder: added support for the assigned ATC and scheduling unit fields in the ARF/ARF_PAR.TXT file.
This fixes a crash when loading newer DAFIFT data which contains these fields.
Bug fixDefense Symbology
LMAP-3352
The arrow symbols in APP-6A and MIL-STD 2525b were erroneously translated if the world reference of the view
was changed.
9.0.11
ImprovementLuciadLightspeed
TLcdEarthAssetModelCodec: Improved error reporting.
ImprovementLucy (LuciadLightspeed)
When in docking mode, and trying to set an ILcyApplicationPane to be non resizable using
setResizable(false), a warning is now printed as this isn't supported.
ImprovementLucy (LuciadLightspeed)
LUCY-2089
TLcyMapEditUnitAddOn: it is now possible to add custom speed, distance and altitude units in the
configuration file. More information can be found there (resources/lucy/map/map_units.cfg).
ImprovementLuciadLightspeed
The EPSG codes database has been upgraded to version 7.1.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn configuration file: the active settables to change the projection can now be
removed from the toolbar
using "toolBar.insert=false" entries.
ImprovementLuciadLightspeed
The TLcdMIFModelEncoder now encodes the line style (pen) of TLcdMIFPLine and TLcdMIFRegion model
elements.
ImprovementLuciadLightspeed
LMAP-3305
The TLcdWKTReferenceParser is now able to decode projected systems that use the polyconic
projection.
Bug fixLucy (LuciadLightspeed)
LUCY-2091
An internal exception occured when trying to save the layer style of a terrain analysis layer.
Bug fixLuciadLightspeed
LMAP-3342
TLcdGUIIcon: a few icons were not present in the javadoc.
Bug fixLuciadLightspeed
TLcdEarthTileSetElevationProvider: Added support for non-geodetic tileset references.
Bug fixLucy (LuciadLightspeed)
Fixed an error that caused disposed map components to be used as active action bar context.
Bug fixLuciadLightspeed
LMAP-3338
TLcdGXYPolylineStampLabelPainter: fixed the label positioning for setRotationAllowed(false).
Bug fixLuciadLightspeed
LMAP-3235
TLcdGXYPolylineStampLabelPainter: in some cases, an ArrayIndexOutOfBoundsException was thrown
for degenerate
point lists.
Bug fixLuciadLightspeed
LMAP-3334
TLcdMapGeorefGridLayer: getLabel now returns the last value set by setLabel.
Bug fixLucy (LuciadLightspeed)
LUCY-2087
MS2525b, APP6A and PIM formats now use the correct configuration prefixes.
Bug fixLuciadLightspeed
LMAP-3328
ALcdGXYPen allows to draw very long geodesics and rhumblines.
Bug fixLuciadLightspeed
LMAP-3331
Added a workaround for JDK regression 6789982 that caused the ignoring of selection clicks
after opening a popup menu when using Sun's JDK 1.6.0_10 and higher on Windows.
This also fixes and replaces workaround LMAP-2871.
Bug fixLucy (LuciadLightspeed)
TLcdMapGeorefGridLayer: getLabel now returns the last value that was set in setLabel
Bug fixLuciadLightspeed
TLcdEarthGXYRasterPainter: Fixed race condition when clearing the cache or changing the
cache size.
Upgrade considerationLuciadLightspeed
The TLcdWKTReferenceFormatter now formats the TLcdLambertAzimuthalEqualArea as a spherical
projection,
which corresponds to the current implementation. The projection's parameters
"latitude_of_center" and
"longitude_of_center" are now saved as "latitude_of_origin" and "longitude_of_origin".
9.0.10
ImprovementAviation Standards
LMAP-2206
The class which calculates the height of a procedure leg, com.luciad.ais.model.procedure.TLcdProcedure3DGeometryCalculator,
now uses a more efficient approximation in beginAngleArc to calculate the start and end height of the arc. This results in
a performance improvement in case the radius of the arc is not very large.
ImprovementAviation Standards
LMAP-2206
Due to a change in the geometry calculation of procedures, the performance of decoding files containing procedures
has increased with up to 50%.
Bug fixLucy (LuciadLightspeed)
LUCY-2083
Worked around Sun bug 6713352 that could cause the application to freeze when working with
the file chooser, e.g. in File|Open or File|Save Workspace As.
Bug fixLuciadLightspeed
LMAP-3294
When using label decluttering, TLcdGXYOffsetIconPainter#setDisplayLabels(false) would cause the
offset icons to
disappear as well.
Bug fixAviation Standards
LMAP-3326
TLcdProcedureGeometryCalculator's handling of CF (Course to Fix) legs has been improved. A new algorithm
was introduced which is capable of finding routes where the previous algorithm failed, it also solves issues
that were hard to fix with the previous algorithm.
Bug fixAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMProcedureHandler now sets the recommended navaid
on the procedure legs if it is available.
Bug fixAviation Standards
The list of ICAO regions now includes YZ and KZ.
9.0.09
ImprovementDatabase Connectors
The DB2 optional package provides decoding and encoding of DB2 Spatial and
Geodetic data.
9.0.07
ImprovementLucy (LuciadLightspeed)
TLcyMIFFormat now also handles multilevel tiled models (MTM) containing MIF files.
ImprovementLucy (LuciadLightspeed)
LUCY-2079
The dialog showing unexpected exceptions now nicely wraps long exception messages.
ImprovementLuciadLightspeed
Two new utility classes TLcdSphereRhumblineUtil and TLcdEllipsoidRhumblineUtil have been added
to the package
com.luciad.geodesy to support topology calculations with rhumblines on a spherical and
ellipsoidal model of the
Earth,
respectively.
ImprovementDefense Symbology
LMAP-3318
It is now possible to partially fill the frame of icon symbols, e.g. to indicate the damage status of units.
Through the method ILcdMS2525bStyle#setFillPercentage(double) in MIL-STD 2525b,
the fill coverage can be specified through a percentage. Additionally, the color with which
the uncovered part of the frame must be filled can also be configured, through the method
ILcdMS2525bStyle#setAlternateFillColor(Color). Similar functionality has been introduced in APP-6A.
Bug fixLucy (LuciadLightspeed)
LUCY-2080
TLcyAIXM5Format: Fixed exception when showing table view on AIXM5 parent node.
Bug fixLuciadLightspeed
Preprocessor sample: fixed bug when using a non-geodetic reference.
Bug fixLucy (LuciadLightspeed)
LUCY-2081
TLcyDrawingAddOn: fixed StringIndexOutOfBoundsException that occurs while reading a drawing file
using
some XML parser implementations.
Bug fixLuciadLightspeed
LMAP-3319
Fixed clone methods of TLcdGXYLabelPainter, TLcdGXYHaloLabelPainter, TLcdGXYStampLabelPainter
and
TLcdLonLatGridPainter.
Bug fixLuciadLightspeed
LMAP-3308
Added halo enabled, halo color and halo thickness to the *LabelPainterBeanInfo classes. As a
result, the TLcdBeanEditAction used on a corresponding label painter shows the halo properties.
Bug fixLuciadLightspeed
LMAP-3293
TLcdGXYOffsetIconPainter no longer throws NullPointerExceptions when the delegate label painter
does not implement ILcdGXYLabelPainter2, as is the case for the MS2525b/APP6a label painters.
Bug fixLuciadLightspeed
LMAP-3291
The TLcdSphereUtil.polygonContains2D was sometimes returning the wrong results
if one of the polygon edges was along the Equator. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3292
The license server now correctly handles failed UDP communication on
Windows 2000.
9.0.06
ImprovementLuciadLightspeed
TLcdPolyconic provides an implementation of the polyconic projection.
ImprovementLuciadLightspeed
Improved support for namespace prefixes during encoding. Prefixes set using TLcdXMLSchemaBasedEncoder.registerNamespaceURI
now override the default prefixes. Also, the encoder libraries for many formats (GML, AIXM, XLink, ...) have been adapted
to have a
suitable default namespace prefix. The TLcdXMLFeaturedEncoderLibrary class now supports a new constructor with an
additional namespace prefix argument.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddon: fixed bug in the layer control were the visibility checkbox of the layer was not
in
sync with the visibility of the layer after programmatically changing the visibilty of the
layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1926
TLcyDrawingAddOn: fix warnings when saving a workspace containing a drawing layer.
Bug fixLuciadLightspeed
LMAP-3278
Filter encoder and decoder libraries now register proper object factories for
all their domain classes. This enables other XML schema based libraries to correctly
refer to these classes.
Bug fixLuciadLightspeed
LMAP-3278
SLD encoder and decoder libraries now register proper object factories for
all their domain classes. This enables other XML schema based libraries to correctly
refer to these classes.
Bug fixLucy (LuciadLightspeed)
LUCY-2075
TLcyMapRadarViewAddOn: a reference to the map component remained when the map component was
disposed, which
caused a memory leak. This has been solved.
Bug fixLucy (LuciadLightspeed)
LUCY-2074
Corrected some typos in the French translations.
Bug fixLucy (LuciadLightspeed)
LUCY-2070
TLcyUSRPDecoderAddOn: saving and loading of a workspace containing hierarchical data now
restores
the hierarchical data structure correctly.
Bug fixAviation Standards
LMAP-3091
The geometry of association based airspaces containing arcs has been improved. A union of two geometries
could contain holes where arcs overlapped.
9.0.05
ImprovementAviation Standards
LMAP-3234
TLcdICAORunwayPainter now also supports runway model with a grid reference.
Bug fixLuciadLightspeed
TLcdEarthTileRepositoryPreprocessor: fixed bug in preprocessor that would cause it to wait
indefinitely in some cases.
Bug fixAviation Standards
LMAP-3284
TLcdDAFIFProcedureDecoder: NullPointerException when decoding procedures while a decoding bounds is set.
Bug fixAviation Standards
LMAP-3227
ALcdDAFIFAerodromeDecoder: handling incorrect DAFIF data could throw a NumberFormatException.
9.0.04
ImprovementLucy (LuciadLightspeed)
TLcyOBJDecoderAddOn: the OBJ addon configuration file can now include two optional properties
for
3D mesh painting customization.
The first property (TLcyOBJDecoderAddOn.painter3D.cullFace) enables face culling (values: back,
front or none).
The second property (TLcyOBJDecoderAddOn.painter3D.twoSidedLighting) enables/disables two-sided
lighting (values: true or false).
ImprovementLuciadLightspeed
TLcdGXYShapeListPainter now more robustly handles recursive invocations.
ImprovementLuciadLightspeed
Added support for preprocessing in non-geodetic references to preprocessor sample.
ImprovementLuciadLightspeed
TLcdEarthCompressorTileDataCodec: Releasing some memory earlier.
Bug fixLuciadLightspeed
Fixed a bug which might cause an XMLStreamException in some StAX implementations, due to
the http://www.w3.org/2001/XMLSchema-instance namespace being bound incorrectly.
Bug fixLuciadLightspeed
TLcdEarthGXYElevationRasterPainter: fixed the tile format used for the tile production
request
if a repository is used.
Bug fixLucy (LuciadLightspeed)
LUCY-2069
TLcyUSRPDecoderAddOn: the addon can now handle the ILcdModelTreeNodes originating from the USRP
model decoder. The corresponding layer factory now creates ILcdLayerTreeNodes instead of
TLcdGXYLayerLists.
Bug fixLuciadLightspeed
TLcdEarthGLVectorPainter: fixed the tile format used for the tile production request if a
repository is used.
Bug fixLuciadLightspeed
LMAP-3269
TLcdRectifiedProjectiveProjection no longer produces mapping artifacts when the distortion is
large.
Bug fixLuciadLightspeed
LMAP-3274
TLcdDMEDTileDecoder now decodes spaces in DMED files as unknown elevations
instead of 0 elevations.
Bug fixDefense Standards
LMAP-3272
TLcdNITFModelDecoder now no longer incorrectly shifts images that have image
locations in addition to geographic locations, which may occur in NITF files
that have multiple unattached images.
Bug fixDefense Standards
LMAP-3259
TLcdNITFModelDecoder now correctly decodes large uncompressed images.
9.0.03
ImprovementLuciadLightspeed
TLcdDatabaseModelDescriptor now has the database URL as source name (instead
of null).
ImprovementLucy (LuciadLightspeed)
LUCY-2063
TLcyMapAddOn: The layer control panel now shows a + and - sign before the root node allowing to
expand/collaps
the root node.
Bug fixLuciadLightspeed
Fixed a NullPointerException when encoding nested binary operators.
Bug fixDatabase Connectors
LMAP-3277
Polylines are no longer closed when they are encoded.
9.0.02
ImprovementLuciadLightspeed
LMAP-3270
Support has been added for SLD external graphics that use the unofficial MIME type image/jpg.
ImprovementLucy (LuciadLightspeed)
LUCY-2048
TLcyGridAddOn: when activating an action of the Map|Grid menu, the layer is now always made
visible before it is added to the map.
ImprovementLuciadLightspeed
The transient memory usage during XML decoding has been reduced. The memory footprint of an XML
model has also been reduced.
ImprovementLucy (LuciadLightspeed)
LUCY-1999
TLcyMapAddOn:drag and drop of a ILcdLayerTreeNode from the map layer control and map overview
layer
control now includes the child layers instead of only the node itself.
ImprovementLuciadLightspeed
LMAP-1607
The TLcdUPSMgrsUtil allows the transformation from MGRS UPS coordinates back to geodetic
coordinates.
ImprovementLucy (LuciadLightspeed)
LUCY-1991
Double clicking on childless layer nodes in the layer control now fits on that node. Double
clicking
on a layer node with children still expands/collapses that node.
ImprovementLucy (LuciadLightspeed)
LUCY-2011
Added default background and foreground color to ValidatingTextField for the case where
ILcyLucyEnv
was not set.
ImprovementLucy (LuciadLightspeed)
LUCY-2012
TLcyDefaultDecodersAddOn: explained the relation between the GMLFormat, GML2Format, GML3Format
and GML32Format in the
default_decoders.cfg config file.
ImprovementLucy (LuciadLightspeed)
LUCY-2013
TLcyAIXM5AddOn: Added support for saving an AIXM5 parent node in the layer tree.
ImprovementLuciadLightspeed
LMAP-3048
The XML encoding of a GetFeature request generated by TLcdWFSGetFeatureRequest#getXMLEncoding()
did not take into account the 'MAXFEATURES' attribute. This is now supported, allowing
to set a maximum amount of features when using WFS XML POST requests.
ImprovementLucy (LuciadLightspeed)
LUCY-1986
The comboboxes in the date picker of the previewer are now editable and properly format
hours/minutes/seconds
below 10.
ImprovementLucy (LuciadLightspeed)
LUCY-1964
The standard toolbar of the drawing addon is now more robust for adapted SLD files. It will not
throw exceptions when valid but unsupported SLD is used. The toolbar buttons can however behave
oddly (for
example not showing the line size when a line size of 20 is used).
ImprovementLuciadLightspeed
TLcdWFSProxyModel now uses internally cached XML Schemas for well-known OGC schemas when
parsing DescribeFeatureType request results, which results in a better performance.
ImprovementAdvanced Raster Connectors
The ECW format is now also supported on 64-bits Windows and on 64-bits SPARC
Solaris.
ImprovementDatabase Connectors
The memory footprint of the models returned by TLcdOracleGeorasterModelDecoder has been reduced significantly.
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder now supports a hints property, which can be
specified to tune Oracle SQL queries.
Bug fixLucy (LuciadLightspeed)
LUCY-2062
TLcyPreviewAddOn: fixed NullPointerExceptions in date chooser dialog.
Bug fixLucy (LuciadLightspeed)
LUCY-2035
TLcyDrawingAddon: the fill opacity is now correctly set to the shapes.
Bug fixLucy (LuciadLightspeed)
LUCY-2053
TLcyDrawingAddon: loading from drawing files, containing a SLD parameter with an OGC literal,
no longer throws ParseExceptions.
Bug fixLuciadLightspeed
LMAP-3271
The TLcdWarpRasterPainter could throw an ArrayIndexOutOfBoundsException under certain
circumstances. This has
been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-2029
TLcyDrawingAddon: the width and height of a rectangle can now correctly be changed through the
customizer panel.
Bug fixLucy (LuciadLightspeed)
LUCY-2055
TLcyDrawingAddOn: the object properties panel for a buffer now displays the correct but capp
style.
Bug fixLucy (LuciadLightspeed)
LUCY-2051
TLcyLOSCoverageAddOn: the gradient setting of the color map is now removed when switching to
vector data.
Bug fixLucy (LuciadLightspeed)
LUCY-1646
TLcyMapAddOn: When running on Java 1.4, and having used the cancel button of the layer
properties dialog, closing Lucy caused a "Can't dispose InputContext while it's active"
exception.
Bug fixLuciadLightspeed
Incorrect schema locations for the GML 2 and GML 3.2 schemas were corrected.
Bug fixLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: now again prints a debug message if an add-on can't be loaded.
Bug fixLuciadLightspeed
ILcdGXYView implementations: When a model listener or a layer selection listener removed itself
as
a listener from the ILcdGXYView the next listener is no longer skipped.
Bug fixLuciadLightspeed
A bug in the decoding of GML 3.2 document by the TLcdGMLModelDecoder was fixed.
Bug fixLuciadLightspeed
LMAP-3159
The labels in the editable labels sample were not legible on some operating systems.
Bug fixLuciadLightspeed
LMAP-3251
TLcdGXYHaloLabelPainter did not paint halo's for selected labels.
Bug fixLuciadLightspeed
LMAP-3257
TLcdMAPModelDecoder now correctly decodes (lon,lat) coordinates that are
specified with an internal offset that is swapped.
Bug fixLucy (LuciadLightspeed)
LUCY-2028
TLcyPrintAddOn: the 'Print Preview...' action used to generate an undoable when nothing was
changed.
Bug fixLuciadLightspeed
LMAP-3253
In some cases, after an interactive label was dismissed, the non-interactive label was not
immediately rendered.
This has been fixed.
Bug fixLuciadLightspeed
LMAP-3249
TLcdGXYArcPainter and TLcdGXYArcBandPainter: arc(band) center points can now be snapped while
editing.
Bug fixLucy (LuciadLightspeed)
LUCY-1953
TLcyDAFIFAddOn: the layer order in the tree layer control now corresponds to the order in the
DAFIF panel.
Bug fixLucy (LuciadLightspeed)
LUCY-2023, LUCY-2024
lucy.drawing.customdomainobject.sh: now uses a nicer icon and selection icon.
Bug fixLucy (LuciadLightspeed)
LUCY-1992
TLcyDAFIFAddOn: a DAFIF layer tree node should not have a source name, only the DAFIF leaf nodes
have one.
Bug fixLuciadLightspeed
LMAP-3166
TLcdGXYSelectController2: mouse drags performed immediately after displaying a mouse-pressed
triggered
popup menu started from the wrong coordinates.
Bug fixLuciadLightspeed
Fixed: TLcdGXYAsynchronousLayerWrapper needed a paint queue, even when asynchronous painting was
deactivated.
Bug fixLuciadLightspeed
LMAP-286
TLcdSphereUtil.orientation2D() was sometimes returning wrong results for
polygons containing duplicate points. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3232
TLcdGXYOffsetIconPainter: specifying null as delegate label painter and mapping all labels to
sub-labels no longer produces NullPointerExceptions.
Bug fixLuciadLightspeed
LMAP-3225
The TLcdLayerTreeNodeCellRenderer now disables the tooltip when no source name is set on the
model
descriptor of the layer instead of setting an empty string as tooltip.
Bug fixLuciadLightspeed
LMAP-3231
If a license is tied to a MAC address, all MAC addresses on the host are
accepted, instead of only the first one (requires Java 1.6).
Bug fixLuciadLightspeed
LMAP-3196
The XML encoding framework now ignores schema locations that are invalid but not used. Only
a warning message is logged that an invalid location was encountered.
Bug fixLuciadLightspeed
LMAP-3226
TLcdGXYViewLabelPainter and TLcdGXYLayerLabelPainter now allow for different possible
location counts per sub-label.
Bug fixLucy (LuciadLightspeed)
LUCY-1919
Added missing package javadoc for the package com.luciad.lucy.addons.drawing.model
Bug fixLuciadLightspeed
LMAP-2987
Support for fixed label placement in TLcdGXYOffsetIconPainter now works correctly.
Bug fixLuciadLightspeed
LMAP-3188
Geocentric to geodetic transformations performed by TLcdEllipsoid.geoc2llhSFCT() were producing
incorrect height
values
for points located very close to the North/South Pole. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3188
Geocentric to geodetic transformations performed by TLcdEllipsoid.geoc2llhSFCT() were producing
incorrect height
values
for points located very close to the North/South Pole. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3168
The TLcdPolarStereographic projection now writes and reads correctly the central meridian from
the given
properties.
Bug fixReal-time Engine
LMAP-2746, LMAP-2962
TLcdSimulatorTimeSlider: the slider internally no longer uses the full Integer range as that
was susceptible to integer overflows. The minimum and maximum of the slider are now only
Integer.MAX_VALUE / 2 apart.
Bug fixAviation Standards
LMAP-3137
TLcdProcedureGeometryCalculator's handling of CI (Course to Intercept) - AF (Arc to Fix) leg
transitions has been improved.
9.0.01
ImprovementLuciadLightspeed
TLcdXMLSchemaBasedEncoder (TLcdXMLSchemaBasedDecoder) now has a TLcdXMLSchemaBasedMarshallerProvider
(TLcdXMLSchemaBasedUnmarshallerProvider). This provider is an extension to the TLcdXMLMarshallerProvider
(TLcdXMLUnmarshallerProvider) that also provides (un)marshallers for a given schema element
and Java class. This is typically used to retrieve child (un)marshallers for local elements.
ImprovementLuciadLightspeed
LMAP-3215
TLcdOWSHttpTransport#configureConnection now sets a connect and read timeout
of 30s to avoid having to wait infinitely on a non-responsive server.
ImprovementOGC Server
LMAP-3223
A default logging.properties file has been added to the WEB-INF/classes directory of the sample server,
to setup java.util.logging on Apache Tomcat servers. This logs all messages from the server to a separate file
in the logs folder of the Apache Tomcat distribution.
Bug fixLuciadLightspeed
LMAP-3224
When saving (or exporting) a GML model, the name of the generated application schema is
now properly encoded. This allows for instance one or more spaces in the name of the
model file or directory where the model is saved to.
Bug fixLuciadLightspeed
Optimized the loading of XML schemas by the XML encoder and decoder.
Bug fixLuciadLightspeed
Fixed painting of an arc-by-bulge with a bulge of 0.
Bug fixLucy (LuciadLightspeed)
LUCY-1996
Removed the incorrect log message that 3D support is not supported for the text shape from the
drawing toolbar.
Bug fixAviation Standards
TLcdDAFIFSpecialUseAirspaceDecoder did not disable subtype filtering by default,
which was inconsistent with the other implementations of ILcdDAFIFSubTypeFilteringDecoder.
Upgrade considerationLuciadLightspeed
Introduction of the class TLcdXMLMapping for schema-less encoding and decoding. This makes
the schema-less interface much more compatible with the schema-based interface. As a result,
the method TLcdXMLDecoder#getJavaClassResolver() was removed. Applications that rely on this
method should be adapted to use TLcdXMLDecoder#getMapping()#getJavaClassResolver().
9.0
ImprovementLucy (LuciadLightspeed)
PIM AddOn now allows configuration of default speeds for the different types of units (ground,
sea surface, rotary wing, ...).
Consult the pim_addon.cfg for more details.
ImprovementLucy (LuciadLightspeed)
LUCY-1683
TLcyMapAddOn: the world layer icon in the layer control is now immediately updated when changing
the map
color to Airtrack and/or Marine.
ImprovementLucy (LuciadLightspeed)
TLcyCreateGXYLayerAction: now also selects the newly inserted layer.
ImprovementLucy (LuciadLightspeed)
LUCY-140
TLcyDrawingAddOn: rectangles and text are now displayed in 3D as well.
ImprovementLuciadLightspeed
A new interface, ILcdSelfDescribedFeatured, is added to the API. It is an extension of
ILcdFeatured that provides direct access to its ILcdFeaturedDescriptor and its features via
their name (instead of feature index).
ImprovementLuciadLightspeed
LMAP-825
TLcdMultivaluedRasterPainter now rotates the multi-valued icon if it
implements ILcdOriented.
ImprovementLuciadLightspeed
TLcdRotatingIcon has been introduced, which is an implementation of ILcdIcon that uses the
decorator design pattern to rotate another given ILcdIcon.
ImprovementLuciadLightspeed
An extra property, with a getter and a setter for it, is added to several ILcdModelDecoders
to switch between TLcdModelLists and ILcdModelTreeNodes. The default behavior is left
unchanged: by default none of the decoders returns an ILcdModelTreeNode. The decoders with this
extra
property are:
- TLcdTarModelListDecoder
- TLcdZipModelListDecoder
- TLcdGRIBBulletinModelDecoder
- TLcdRaveGeoModelDecoder
- TLcdUSRPModelDecoder
ImprovementLuciadLightspeed
Improved performance of TLcdEarthTileSetElevationMultilevelRaster.
ImprovementLuciadLightspeed
The XML binding framework has been extended with support for automatic binding of XML data to
ILcdFeatured instances.
The following new packages and classes provide functionality for this new feature:
- com.luciad.format.xml.bind.schema.featured.*
- com.luciad.format.xml.bind.schema.TLcdXMLBuiltInConstants
- com.luciad.format.xml.bind.schema.TLcdXMLBuiltInDatatypeConverter
- com.luciad.format.xml.bind.schema.TLcdXMLBuiltInDecoderLibrary
- com.luciad.format.xml.bind.schema.TLcdXMLBuiltInEncoderLibrary
- com.luciad.format.xml.bind.schema.TLcdXMLBuiltInMappingLibrary
- com.luciad.format.xml.bind.schema.TLcdXMLFeatured
- com.luciad.format.xml.bind.schema.TLcdXMLFeaturedDescriptor
See the Javadoc package documentation of these packages and classes for more information about
their usage.
ImprovementLucy (LuciadLightspeed)
LUCY-1896
TLcyDrawingToolBarFactory: now has a protected method that exposes the creation of the new
controller model, allowing to tweak its behavior.
ImprovementLuciadLightspeed
A new encoder (TLcdOGCFilterEncoder) and decoder (TLcdOGCFilterDecoder)
has been added. They integrate with the new XML format framework.
ImprovementLuciadLightspeed
A new encoder (TLcdSLDStyledLayerDescriptorEncoder) and decoder
(TLcdSLDStyledLayerDescriptorDecoder)
has been added. They replace the existing encoder and decoder which have become deprecated.
ImprovementLucy (LuciadLightspeed)
The GML format now shows hierarchical GML models with layer tree nodes.
ImprovementLucy (LuciadLightspeed)
The initial content of the speed drop down menu in the format bar of the PIMTrackAddOn can
now be configured using the TLcyPIMTrackAddOn.setSpeedAction.defaultSpeeds property
in the pim_addon.cfg configuration file.
ImprovementLucy (LuciadLightspeed)
The PIMTrackAddOn can now save the content of new layers in the workspace. This can be
configured using the
TLcyPIMTrackAddOn.saveDataInWorkspace property in the pim_addon.cfg configuration file.
The default is to save data in separate files.
ImprovementLuciadLightspeed
LMAP-2833
TLcdModelList now throws TLcdModelContainerEvents when models are added or removed by
implementing
ILcdModelContainer.
ImprovementLuciadLightspeed
ALcdGXYController now supports sending out status events.
ImprovementLuciadLightspeed
Improved performance of TLcdEarthGXYRasterPainter and TLcdEarthGXYElevationRasterPainter
significantly.
ImprovementLuciadLightspeed
LMAP-2333
LuciadMap now provides drivers and native libraries for 64-bits Vista, for
licenses based on MAC addresses and on iButton hardware keys.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: airspace and special use airspace data can now be filtered based on
the specific airspace type (e.g. CTA, CTR, ...). To enable this functionality, change
the property "dafif.dafifLoaderSubTypeFiltering" to "true" in dafifAddOn.cfg.
ImprovementLuciadLightspeed
ALcdGXYSmartController now has setters to configure if it should fire undoables for pan and/or
zoom operations.
ImprovementLuciadLightspeed
TLcdHaloIcon: new class to allow adding halo around an ILcdIcon.
ImprovementLuciadLightspeed
LMAP-3133
Support for the WMS GetFeatureInfo request through the class com.luciad.wms.client.model.ALcdWMSProxy
did not correctly work for WMS versions prior to 1.3.0.
ImprovementLuciadLightspeed
TLcdEarthGLTerrainPainter is now able to handle texture tiles which are not all
of the same resolution. It should be noted, however, that this may result in
somewhat reduced rendering performance.
ImprovementLuciadLightspeed
LMAP-3125
TLcdWMMModelDecoder, TLcdIGRFModelDecoder and ALcdMagneticNorthModelDescriptor: the property
'degreesBetweenLines' is now deprecated and replaced with 'step', which supports doubles instead
of only ints. In TLcdMagneticNorthGXYPainter the property 'emphasizeDegrees' is now deprecated
and replaced with 'emphasizedDegrees', which supports doubles instead of only ints.
ImprovementLuciadLightspeed
TLcdGXYArcPainter now allows manipulation of the handles without having to use CTRL.
ImprovementLuciadLightspeed
LMAP-2781
ALcdGXYRasterPainter and implementations now support selection and snapping.
To support selection, the ALcdGXYRasterPainter#isTouched implementation has been redefined.
To support snapping, the ALcdGXYRasterPainter#snaptarget now returns one of the bounds points
if they are touched.
ImprovementLucy (LuciadLightspeed)
The menu items to create new maps, vertical views and table views have moved to the 'File|New'
sub-menu. Revert the properties as described below to get back to how it was in v8.2:
-
In resources/lucy/map/map_addon.cfg
- TLcyMapAddOn.createMapAction.menuBar.item = Tools, New, Map
- TLcyMapAddOn.createMapAction.menuBar.groups = ToolsGroup, ToolsSubMenuGroup,
DefaultGroup
-
In resources/lucy/tote/tote_addon.cfg
- TLcyToteAddOn.tableViewAction.menuBar.item = Tools, Table View
- TLcyToteAddOn.tableViewAction.menuBar.groups = ToolsGroup, TableViewGroup
-
In resources/lucy/vertical/verticalview_addon.cfg
- TLcyVerticalViewAddOn.addVerticalViewAction.menuBar.item = Tools, New, Vertical
View
- TLcyVerticalViewAddOn.addVerticalViewAction.menuBar.groups = ToolsGroup,
ToolsSubMenuGroup, DefaultGroup
ImprovementLuciadLightspeed
LMAP-3118
TLcdGXYEllipsePainter now allows manipulation of the handles without having to use CTRL.
ImprovementLucy (LuciadLightspeed)
LUCY-1932
Asynchronously painted layers with intermediate updates are now painted by the same paint queue
when appropriate.
ImprovementLuciadLightspeed
LMAP-3117
TLcdGXYIconPainter#getCursor now returns a translation cursor when appropriate.
ImprovementLuciadLightspeed
TLcdDTEDTileDecoder now supports the additional sampling strategies
MINIMUM, MAXIMUM, and AVERAGE.
ImprovementLuciadLightspeed
ALcdEarthGLPainterBase has a new method setClipCenterMode(), which gives users
some control over how the clip center is chosen. Options include the camera eye
point and reference point, as well as a new "adaptive" mode in which the clip
center is moves in between the eye and reference points in function of the
pitch of the camera.
ImprovementLuciadLightspeed
LMAP-3072
TLcdGeoTIFFModelDecoder and related decoders now support standard Projected
Coordinate Systems with explicitly specified units of measure for their
coordinates, as used in some non-standard data sets like the 15 cm aerial
JPEG2000 images of NY state.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelEncoder, TLcdGeoTIFFModelDecoder, and related decoders now
support grid coordinate systems with more units of measure.
ImprovementLucy (LuciadLightspeed)
The TEA addons in subpackages of com.luciad.lucy.addons.tea now extend from ALcyFormatAddOn.
It doesn't change their behavior in any way.
ImprovementLuciadLightspeed
LuciadMap now offers support for performance monitoring. The following operations
can be measured:
- Painting time of the 2D and 3D views
- Painting time of the 2D and 3D layers
- Decoding time of the following formats: SHP, CGM, Database, GML, IGRF, WMM, MIF, POL,
BCI, BIL, CADRG Directory, CADRG, DEM, DIMAP, DMED, DTED Directory,DTED, ECW, ETOPO,
GeoSPOT,
GeoTIFF, JAIRaster, JPEG2000, MrSID, NITF, Raster, SwissDHMMatrix, TAB, TFW, USRP, SVG,
DWG, DWG model list, DGN, DGN model list, Oracle GeoRaster, Oracle spatial,
Informix Geodetic, PostgreSQL, GDF, GRIB, GRIB Bulletin.
Details about the usage of performance monitoring can be found in the LuciadMap and 3D
developer guides.
ImprovementLuciadLightspeed
LMAP-2525
A new class called TLcdEPSGGeodeticDatumFactory allows to create a geodetic datum based
on its WKT name. The datums supported by this class are a subset of the datums from the current
EPSG database (v6.18.2).
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the delete action that is present in the map pop-up menu is now configured to use
the 'delete' button as its accelerator key (see resources/lucy/map_addon.cfg).
ImprovementLucy (LuciadLightspeed)
resources/lucy/*.xml: these files are no longer part of the Lucy release as they were no longer
used. One exception is when the system property
-Dcom.luciad.lucy.addons.map.TLcyMapAddOn.fallbackOnGeneratedCustomizers=true is set. If so,
these files should not be removed when upgrading.
ImprovementLuciadLightspeed
The logging class TLcdLog and the associated ILcdLogListener implementations TLcdSystemLog and
TLcdOutputFrame
have been deprecated. Users are now encouraged to use the TLcdLoggerFactory class and the
ILcdLogger interface.
Details about the new framework can be found in the "Logging and performance monitoring"
appendix of the LuciadMap developer's guide.
ImprovementLuciadLightspeed
LMAP-2560
TLcdGXYEditController(2): edit controller now only performs snapping when there is a single
object to edit. This prevents multiple points to snap to the same location, giving the
impression that some points disappeared.
ImprovementLuciadLightspeed
ILcdGXYView#addGXYLayer(ILcdGXYLayer): the documentation now allows implementations to add
layers at indices other than the top most index.
ImprovementLucy (LuciadLightspeed)
LUCY-1304
The asynchronous paint indication in the layer control panel is now rendered differently for
layers that are
waiting for other layers to repaint. Also, the paint indication is now visible on all tree
levels.
ImprovementLucy (LuciadLightspeed)
LUCY-1741
TLcyPreferencesManager: now has a key SCROLL_UP_ZOOM_OUT_KEY to access the scrollUpZoomOut
property that is normally configured in lucy.cfg.
ImprovementLuciadLightspeed
A new package, com.luciad.util.collections, was introduced. It provides
support for collections of primitive types (boolean, byte, char, double, float,
int, long, short). Both interfaces and array-based implementations are provided for
each of these types.
ImprovementLuciadLightspeed
LMAP-2945
TLcdGXYStampLabelPainter#setHaloPinColor can now be used to set the halo color for label pins,
even when the label itself does not have a halo.
ImprovementLuciadLightspeed
The new class TLcdGeoidGeodeticDatumFactory can create geodetic datums of which the
vertical datums are geoids, for example EGM96, EGM84, NAVD88, NGVD29, and so on.
ImprovementLuciadLightspeed
A set of new shape interfaces and implementations have been added to com.luciad.shape,
to support open and/or closed shapes consisting of a connected combination of lines and arcs.
For this purpose, a new interface ILcdCurve has been added to com.luciad.shape, providing a
general
representation of a continuous, one-dimensional shape. Examples of curves are lines, arcs,
or any connected combination thereof. The following extensions and implementations
of this interface are introduced:
- ILcdRing: a closed curve (i.e., begin and end point are the same),
- ILcdCompositeCurve, TLcdCompositeCurve: a connected sequence of curves,
- TLcdLonLatCompositeRing, TLcdXYCompositeRing: a closed, connected sequence of curves,
- TLcdLonLatRhumbPolyline: a polyline consisting of rhumbline segments (i.e., constant
bearing),
- TLcdLonLatRhumbPolygon: a polygon consisting of rhumbline segments (i.e., constant
bearing),
- ILcdCircularArcByBulge: a circular arc defined by a start point, end point, a bulge
direction and a
bulge factor,
- ILcdCircularArcBy3Points: a circular arc defined by a start point, end point, and a
third point on
the arc,
- ILcdCircularArcByCenterPoint: a circular arc defined by a center point, radius, start
angle and arc
angle,
- ILcdCircleBy3Points: a circle defined by 3 points.
To support the visualization and editing of newly introduced shape types, the following
painter/editor
implementations have been introduced:
- TLcdGXYCompositeCurvePainter: paints and enables visual editing of ILcdCompositeCurve
objects,
- TLcdGXYCompositeRingPainter: paints and enables visual editing of
ILcdCompositeCurve/ILcdRing
objects,
- TLcdGXYCircularArcPainter: paints and enables visual editing of
ILcdCircularArcByBulge,
ILcdCircularArcBy3Points
and ILcdCircularArcByCenterPoint objects.
- TLcdGXYCircleBy3PointsPainter: paints and enables visual editing of
ILcdCircleBy3Points objects.
Shapes of type TLcdLonLatRhumbPolyline or TLcdLonLatRhumbPolygon are supported by
the existing TLcdGXYPointListPainter class.
To ensure the connectivity between different curves in an ILcdCompositeCurve, the interface
ILcdCurveConnector is introduced. By means of an ILcdCurveConnectorProvider, it is used by
painter/editor
implementations TLcdGXYCompositeCurvePainter and TLcdGXYCompositeRingPainter to ensure
connectivity while
editing.
All new shapes are illustrated in the "create and edit with mouse" sample.
ImprovementLuciadLightspeed
LMAP-2639
TLcdInputStreamFactory: now creates buffered input streams.
ImprovementLuciadLightspeed
LMAP-2521
A new class TLcdGXYNewController2 offers more flexibility and functionality
when creating new objects. Amongst others, the controller allows reverting initialization steps
and customization of the entire creation process through the class ALcdGXYNewControllerModel2.
The controller is used extensively in the "create and edit with mouse" sample.
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddon, TLcyARINCAddon, TLcyDAFIFAddon: These addons now also support 3D visualization of
their respective formats.
ImprovementLucy (LuciadLightspeed)
TLcyAIXM5Addon, TLcyAIXM5OpenGLAddon: These addons add support for the aeronautical format AIXM
5.0.
ImprovementLuciadLightspeed
TLcdExtrudedShape now implements ILcdCache.
ImprovementLuciadLightspeed
The raster model decoders TLcdDMEDModelDecoder, TLcdDTEDModelDecoder,
TLcdDTEDDirectoryModelDecoder, TLcdDEMModelDecoder, and
TLcdGeoTIFFModelDecoder now support geodetic datums based on geoids.
Depending on the new property supportGeoidDatums, they create geodetic
datums based on ellipsoids (the default, for example WGS84) or based on geoids
(if applicable, for example EGM96). The DMED/DTED model decoders also provide a
new property applyGeodeticDatums, which lets the decoders automatically
add the geoid heights to the elevation values of the rasters themselves.
ImprovementLuciadLightspeed
Using interactive labels has been simplified: the layout manager of the ILcdGXYView (for example
TLcdMapJPanel) no longer needs to be set to null because this is the default now. The
CellRendererPane is now added to the Swing tree inside the SwingGXYLabelStamp.
ImprovementLucy (LuciadLightspeed)
Opening data files now works in the background: it no longer blocks the user interface.
ImprovementLuciadLightspeed
com.luciad.earth.tileset.opengl.shape.TLcdEarthGLShapeTileSet now outputs tiles
which contain TLcdEarthObjectMappedIndexedVertexArray. This new class, which
extends TLcdEarthIndexedVertexArray, contains a mapping which associates
segments of the vertex array with the domain objects that these segments
represent. TLcdEarthGLVertexArrayPainter has been modified to take this
information into account, making it possible to apply different styling to
different domain objects within a TLcdEarthGLShapeTileSet or
TLcdEarthGLAboveGroundTileSet.
ImprovementLuciadLightspeed
TLcdEarthAssetModelCodec now supports the use of an ILcdInputStreamFactory and
ILcdOutputStreamFactory.
ImprovementLuciadLightspeed
TLcdStatusInputStreamFactory and TLcdStatusOutputStreamFactory now have a 'blockingHint'
property to allow to set the blocking hint of the fired TLcdStatusEvents.
ImprovementLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: the display of a compass grid around a point is now determined by a
single active settable rather then by two mutually exclusive actions.
ImprovementLucy (LuciadLightspeed)
LUCY-1892
TLcyMapRadarViewAddOn: you can now center a domain object in the view without tracking
its orientation. The menu items have also moved to the 'Tools' menu, instead of the 'Tracks'
menu. Search and replace 'Tools' with 'Tracks' in resources/lucy/map/mapradarviewaddon.cfg
to put them back in the tracks menu.
ImprovementLucy (LuciadLightspeed)
The default customizer panel for ILcdFeatured objects now provides functionality to
only show the features that are not empty, instead of showing all features.
ImprovementLuciadLightspeed
LMAP-3008
A new class TLcdDefaultModelXYWorldTransformation aggregates the existing
ILcdModelXYWorldTransformation
implementations, and is now used as default transformation class in TLcdGXYLayer. As a result,
setting it manually (setModelXYWorldTransfoClass) is no longer required (except when not using
the
build-in model references).
ImprovementLucy (LuciadLightspeed)
When a workspace is saved, MS2525b and APP6A can now save layer changes either in the
workspace or in separate files. The default is to save data in separate files.
The configuration parameter saveDataInWorkspace controls
this behaviour.
ImprovementLuciadLightspeed
A new sample "Label stamp" shows how to create a simple textual label stamp and use it in
TLcdGXYStampLabelPainter, TLcdGXYPolygonStampLabelPainter, and TLcdGXYPolylineStampLabelPainter.
ImprovementLucy (LuciadLightspeed)
LUCY-1054
The Lucy user interface now allows to fit onto multiple layers.
ImprovementLuciadLightspeed
TLcdWKTReferenceParser can now be used to create a geodetic datum or an
ellipsoid from a well-known-text (WKT).
ImprovementLuciadLightspeed
LMAP-2649
The asynchronous paint sample now shows how to safely access the wrapped layers.
ImprovementLuciadLightspeed
LMAP-2591, LMAP-2229
TLcdGXYPolygonLabelPainter and TLcdGXYPolylineLabelPainter now support freely placed, editable,
and interactive
labels.
Also, these classes now extend TLcdGXYPolygonStampLabelPainter and
TLcdGXYPolylineStampLabelPainter,
respectively. These new stamp-based painters allow complete customization of the label
rendering.
ImprovementLucy (LuciadLightspeed)
LUCY-1615
The Lucy docking system is enhanced to allow some extra tuning, for example to start a panel
minimized or floating.
This can be achieved by setting some extra layout hints using ILcyApplicationPane.putValue. The
following hints are
added: HINT_AUTO_HIDE, HINT_FLOATING and HINT_FLOATING_BOUNDS.
ImprovementLucy (LuciadLightspeed)
LUCY-1658
TLcyVisibilityAddOn: adding buttons to swap the FROM and TO shapes.
ImprovementLuciadLightspeed
LMAP-1425
TLcdEPSGReferenceFormatter contains 2 new methods to format an ILcdEllipsoid or an
ILcdGeodeticDatum as an EPSG
code.
ImprovementLuciadLightspeed
LMAP-2265
The retrieveLabels methods of TLcdGXYLabelPainter and TLcdGXYFeaturedLabelPainter now return
null if the label
is empty, so as to skip drawing it.
ImprovementLuciadLightspeed
LMAP-2985
License error messages in the samples are now more specific.
ImprovementLuciadLightspeed
LMAP-2404, LMAP-2784
TLcdGXYEditControllerModel2: now supports a new mode EDIT_WHAT_FIRST_TOUCHED_LABEL, that only
edits one touched label. This is especially useful when objects can have multiple labels, that
should be edited independently.
ImprovementLucy (LuciadLightspeed)
LUCY-1088
Toolbars of both MS2525b and APP6A are now included as sample code and can be fully customized.
A new custom_ms2525b example has also been added.
ImprovementLucy (LuciadLightspeed)
LUCY-1022
Added undo and redo functionality to the vertical view.
ImprovementLuciadLightspeed
LMAP-2618
A new sample samples.gxy.rotation shows how to add rotation to an existing painter/editor.
ImprovementLuciadLightspeed
LMAP-2656
ALcdAction#setDisplayName() was deprecated.
ImprovementLucy (LuciadLightspeed)
LUCY-1552
The ruler controller now uses a hot point (handle to modify the line after it is created) that
is visible on any type of background.
ImprovementLuciadLightspeed
LMAP-2777
TLcdSpeedFormat, TLcdAltitudeFormat and TLcdDistanceFormat now use spaces between the number and
the unit when formatting, as the 'International System of Units' (SI) specifies. The units of
speed, altitude and distance were corrected for casing (for example km instead of Km).
ImprovementLucy (LuciadLightspeed)
LUCY-1004
The GARS multigrid sample now allows to zoom in or out by using the scroll wheel when the color
controller is active.
ImprovementLucy (LuciadLightspeed)
LUCY-1682
The CGRS multigrid sample now allows to zoom in or out by using the scroll wheel when the color
controller is active.
ImprovementLucy (LuciadLightspeed)
LUCY-1535
The pop-up dialog for the layer selection, which appears when importing a dwg file, has now a
select all/select none checkbox.
ImprovementLucy (LuciadLightspeed)
LUCY-739
The Lucy user interface no longer allows to delete the Overview and Grid layer from the map
overview.
ImprovementLucy (LuciadLightspeed)
LUCY-1546
The names of the addons in the splash screen during the start-up of Lucy are now translated.
ImprovementLucy (LuciadLightspeed)
LUCY-200
TLcyMagneticNorthAddOn: the Graphical User Interface was simplified.
ImprovementLucy (LuciadLightspeed)
samples.lucy.guifactory: this sample now shows how to add an (interactive) overlay component on
the map.
ImprovementLuciadLightspeed
TLcdAdvancedMapRulerController: now has a method setHotPointIcon to change the icon of the
handles.
ImprovementLucy (LuciadLightspeed)
LUCY-1622
ALcyActionBar: Added support for controlling the order of the (menu) items within a certain
group descriptor. They can now for example be automatically sorted alphabetically. Consult
lucy.cfg for a more detailed explanation and some examples.
ImprovementLuciadLightspeed
LMAP-2968
TLcdGXYPanController has a new method setDragViewOnPan. If enabled, the entire view is repainted
while dragging.
This behavior is activated by default in the LuciadMap samples.
ImprovementLucy (LuciadLightspeed)
LUCY-1735
TLcyActionBarUtil now offers new methods to remove an action from all action bars in which it
was inserted through configuration. A new method also has been added that allows to get
the wrapper action for a given action and a given action bar.
ImprovementLucy (LuciadLightspeed)
LUCY-1137
Added a list of recently used files to the file menu similar to the existing list
of recently used workspaces.
ImprovementLucy (LuciadLightspeed)
LUCY-879
Dockable panels now also have a 'close all' and 'close others' menu when
appropriate.
ImprovementLucy (LuciadLightspeed)
LUCY-1514
The location of the configuration file for the lon lat grid can now be configured in
the TLcyMapAddOn (map_addon.cfg) and the TLcyMapOverviewAddon (mapoverview_addon.cfg).
ImprovementLucy (LuciadLightspeed)
LUCY-1758
Choose font action in the drawing addOn now shows an improved dialog box that also allows the
transparency of
the color to be chosen.
ImprovementLucy (LuciadLightspeed)
LUCY-1849
An unextrude action has been added to the drawing tool bar.
ImprovementLucy (LuciadLightspeed)
A 'copy style from' action has been added to the drawing tool bar.
ImprovementLucy (LuciadLightspeed)
LUCY-1687
The TLcyMS2525bAddOn and TLcyAPP6AAddOn now allow the object customizers used to edit their
domain objects to be changed. This can be done using the
TLcyEditableMS2525bObjectCustomizerPanelFactory
and TLcyAPP6AObjectCustomizerPanelFactory instances that are created by the format of this
addon.
ImprovementLucy (LuciadLightspeed)
LUCY-1738
The Lucy formats now support specifying the minimum thread priority for asynchronous painting.
This priority is set in each format's configuration file.
TLcyAsynchronousPaintHint now also has a method getMinimumThreadPriority to specify this
priority
for your own format.
If the priority is not specified, a default priority is used. This value can be changed in the
asynchronous paint addon's configuration file.
ImprovementLucy (LuciadLightspeed)
The format bar addon now displays a drop-down button to create a new layer of the desired type.
The action to toggle the visibility of the format bar is now configured to be in the menu bar
only. This makes it easier to use when multiple formats use the format bar.
ImprovementLucy (LuciadLightspeed)
LUCY-1745
Actions can be configured to be 'default' actions. These actions are
typically triggered on double click. See selectioneditor.cfg for an example of
how the selectionEditorAction is made the default action. This action
shows the customizer for the selected object in a separate panel.
Note that the TLcySelectionEditorAddOn.openOnDoubleClick=true property
has been removed as it has been replaced by
TLcySelectionEditorAddOn.selectionEditorAction.popupMenu.default. For
compatibility, the old property still works as well.
ImprovementLucy (LuciadLightspeed)
TLcyLOSCoverageAddOn: support is added for the ABOVE_GROUND fixed height propagation function.
ImprovementLucy (LuciadLightspeed)
LUCY-1836
Customizer for PIM domain objects now supports looser formatting
(just like the customizers for the domain objects in the drawing layer).
ImprovementLucy (LuciadLightspeed)
LUCY-1775
The TableViewAddOn now allows it menu item to be configured in its configuration
file. See TableViewAddOn.cfg for more details.
ImprovementLucy (LuciadLightspeed)
LUCY-1833
Only preferences that are different from the defaults are stored persistently.
TLcyPersistentPreferencesAddOn can now also store system properties.
A number of configuration items in preferences_addon.cfg have been
added that allow to configure this. The default is not to store these preferences.
ImprovementLucy (LuciadLightspeed)
LUCY-1540
Preferences are now stored per version. As such each Lucy version can have its own
set of preferences. When a new version of Lucy is started for the first time, the
preferences of the newest version that is still older than the current and that
can be found are imported and copied to the preferences for this new version.
As a result, an older version of Lucy will no longer try to read a default workspace
(File|Set default workspace...) that was set in a newer version.
ImprovementLucy (LuciadLightspeed)
LUCY-1765
TLcyMain/AFrontEnd: the status bar now uses animation to attract the users attention on new
messages.
ImprovementLucy (LuciadLightspeed)
LUCY-1755
Sample class CodecProperties is removed in favour of ALcyProperties.
ImprovementLucy (LuciadLightspeed)
TLcyMain: now displays a cancel button for lengthy operations that aren't blocking
(TLcdStatusEvent.setBlockingHint == false).
ImprovementLucy (LuciadLightspeed)
LUCY-1461
TLcyToteAddOn: the table view item is now also added to the right click menu of the layer
control
ImprovementLuciadLightspeed
LMAP-2928
ToolBarSW#addGXYController now adds pan and zoom behavior
for the middle mouse button and mouse wheel, respectively.
It makes use of two new wrapper classes MouseButtonFilteringController and
MouseButtonMappingController.
ImprovementLuciadLightspeed
LMAP-2786
TLcdMIFModelDecoder was always decoding the features of the shapes as String
objects. The types of the features is now more appropriate.
ImprovementLucy (LuciadLightspeed)
LUCY-1716
ILcyCustomizableRepresentationAction and ILcyCustomizableRepresentationActiveSettable: provide a
hook to customize the default tool bar and menu bar buttons.
ImprovementLucy (LuciadLightspeed)
ALcyActionBar: Inserting an instance that implements both ILcdAction and ILcyActiveSettable
now throws a clear exception where it used to cause obscure problems.
ImprovementLucy (LuciadLightspeed)
LUCY-1536
Added a Toggle visibility action to the pop up menu in the map layer control.
ImprovementLucy (LuciadLightspeed)
TLcyActionBarUtil: now also supports to mediate two ILcyActionBar's in only a single direction.
ImprovementOGC Server
A new encoder (TLcdSLDFeatureTypeStyleEncoder) and decoder (TLcdSLDFeatureTypeStyleDecoder) for feature
type styles has been added. They replace the existing encoder and decoder which have been made deprecated.
ImprovementReal-time Engine
LMAP-3046
TLcdSimulator: the simulator no longer unnecessarily stops when the begin- or end-date of the
associated ILcdSimulatorModel changes. If the current date is still within the timeframe
of the changed begin- and endtime, the current date no longer changes.
ImprovementTerrain Analysis Engine
TLcdCoverageAltitudeMode: the altitude modes ABOVE_ELLIPSOID and ABOVE_GEOID have been added
to represent heights relative to a reference ellipsoid or geoid.
ImprovementTerrain Analysis Engine
TLcdLOSPropagationFunctionFixedHeight: support is added for an ABOVE_GROUND fixed height.
ImprovementAviation Standards
LMAP-3148
The decoder for routes and route segments, com.luciad.format.aixm.decoder.TLcdAIXMRouteHandler,
now logs missing referred points within a route segment.
ImprovementAviation Standards
TLcdDAFIFLoader has been extended with the ability to filter airspaces and special
use airspaces based on their subtype (e.g. CTA, CTR, ...). The interface ILcdDAFIFSubTypeFilteringDecoder
defines this functionality at the decoder level, whereas TLcdDAFIFLoader itself has a
constructor with a boolean parameter to switch this feature on or off.
ImprovementAviation Standards
The new package com.luciad.format.aixm5 introduces support for the aeronautical data format AIXM 5.0.
The package provides support for decoding and encoding AIXM 5.0 data, as well as painters and other tools
to visualize and use AIXM 5.0 data in an application. Please refer to the developer guide for an
introduction to this package.
ImprovementDefense Symbology
The TLcdGXYNewController implementations for MIL-STD 2525b and APP-6A, TLcdMS2525bShapeGXYNewController
and TLcdAPP6AShapeGXYNewController, have been made deprecated in favor of the new TLcdGXYNewController2
in LuciadMap and corresponding controller model implementations ALcdMS2525bGXYNewControllerModel and
ALcdAPP6AGXYNewControllerModel. The samples illustrate how the new controller and controller model
implementations are used to create MIL-STD 2525b and APP-6A symbols on a map.
Bug fixLucy (LuciadLightspeed)
LUCY-1742
TLcyMapAddOn: Starting a drag on an already selected layer now works.
Bug fixLuciadLightspeed
LMAP-3191
The SHP model decoder was creating a 2D indexed model, even if the model had invalid bounds (for
example, if
it contained a single point the bounds had 0 width/height). In such a case the decoder now
returns a
non-indexed model.
Bug fixLucy (LuciadLightspeed)
LUCY-1988
The File | Open dialog no longer throws exceptions when a previously used directory has been
removed from the file system.
Bug fixLucy (LuciadLightspeed)
The ILcyModelContentType for MIF layers containing polygons is now correctly set to
ILcyModelContentType#POLYGON instead of ILcyModelContentType#AREA.
Bug fixLucy (LuciadLightspeed)
LUCY-1984
TLcyMS2525bAddOn: the customizer panel for the MS2525b shapes will now only be used for
domain objects created by this addon. MS2525b shapes in models of other addons will no longer
be shown in that customizer panel.
Bug fixLuciadLightspeed
TLcdGXYViewLabelPainter and TLcdGXYLayerLabelPainter would sometimes use the same label location
for different
sublabels.
Bug fixLuciadLightspeed
LMAP-2987
TLcdGXYOffsetIconPainter now supports fixed label placement, making it compatible with
TLcdGXYLayerLabelPainter
and
TLcdGXYViewLabelPainter. Also, the offset icon sample is now decluttered by default.
Bug fixLucy (LuciadLightspeed)
TLcyFormatBarAddOn: if the format bar was made invisible and the look and feel was changed,
the format bar still had the old look and feel.
Bug fixLuciadLightspeed
LMAP-2998
TLcdGXYPointListPainter: north-south and east-west lines were difficult to select.
Bug fixLuciadLightspeed
LMAP-3097
TLcdGeoTIFFModelEncoder no longer swaps colors when saving rasters with an INT_ARGB color model.
Bug fixLucy (LuciadLightspeed)
TLcyDrawingAddon: all styles added to the style repository by editing a .drawing file are now
correctly read by the drawing addon.
Bug fixLucy (LuciadLightspeed)
LUCY-1959
TLcyDrawingAddOn: removing the icon of the action to change line colors no longer causes
NullPointerExceptions later on.
Bug fixLuciadLightspeed
Rhumbline lines were not always displayed correctly when dragged to one of the poles. This has
been fixed.
Bug fixLucy (LuciadLightspeed)
GML workspace support: a GML model containing only one layer is now correctly saved to and
loaded
from a workspace file.
Bug fixLucy (LuciadLightspeed)
LUCY-1941
The validating UI widgets now use configurable background and foreground colors. These colors
can be configured in the default_preferences.cfg file.
Bug fixLuciadLightspeed
LMAP-3136
TLcdGXYEditController2's undoable listeners are now also informed of the controller model's
undoable events.
Bug fixLuciadLightspeed
TLcdLockUtil now uses the value of System.identityHashCode(Object) instead of Object#hashCode()
as object identifier to keep track of an object's locks.
This is more reliable, because Object#hashCode() might return different values
while acquiring/releasing locks, if it depends on properties that can be changed.
Bug fixLuciadLightspeed
LMAP-3141
TLcdSHPModelEncoder was truncating the DBF field names to 11 characters instead of 10, causing
problems
with some third-party SHP model decoders. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3140
Upgraded the packaged proguard jar to the latest version to prevent some obfuscation
problems with certain versions of JDK 1.6
Bug fixLuciadLightspeed
LMAP-3135
TLcdDMEDModelDecoder and TLcdDTEDDirectoryModelDecoder with
checkTilesImmediately set to true now provide the correct raster pixel
densities, even if some lower DTED levels are missing.
Bug fixLucy (LuciadLightspeed)
TLcyEarthAddOn: fixed earth layers not appearing in the 2D view or disappearing from it too
early.
Bug fixLucy (LuciadLightspeed)
LMAP-3130
TLcyEarthAddOn: fixed terrain painting artifacts in the 3D view due to and unsupported terrain
resolution.
Bug fixLuciadLightspeed
TLcdGXYEditController2 would throw a NullPointerException when used after a null snappables
object was set.
Bug fixLuciadLightspeed
LMAP-3107
TLcdEarthGXYRasterPainter: Fixed null pointer exception when no tiles are available.
Bug fixLuciadLightspeed
LMAP-2417
The references of some internal LuciadMap classes to the optional packages
ECW and MrSID have been removed.
Bug fixLucy (LuciadLightspeed)
LUCY-1925
TLcyWMSClientAddOn: the visibility of a WMS layer is now correctly restored from workspace.
Bug fixLuciadLightspeed
TLcdGXYShapeListPainter now supports ILcdGXYPainterProvider objects that return null instead of
a valid painter.
A TLcdNoBoundsException is thrown in case boundsSFCT is called on an empty ILcdShapeList.
Bug fixLuciadLightspeed
TLcdGMLSchemaDecoder now finds schemas for GML files found using the class loader.
Bug fixLucy (LuciadLightspeed)
LMAP-3066
TLcyEarthAddOn: fixed NullPointerException when saving a workspace with an earth terrain layer.
Bug fixLuciadLightspeed
LMAP-3026
TLcdEarthGXYRasterPainter: add option to automatically enlarge the tile cache (enabled by
default).
Bug fixLuciadLightspeed
LMAP-3025
TLcdEarthGXYRasterPainter: improved behaviour so it no longer paints multiple levels of
detail
on to of each other. This solves the artifacts when the image tiles have transparent parts.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter now automatically invalidates the halo cache when the stamp rotation
changes.
Bug fixLuciadLightspeed
TLcdGXYLabelPainter, TLcdGXYStampLabelPainter, TLcdGXYPolygonLabelPainter,
TLcdGXYPolylineLabelPainter
now fire change events for all properties.
Bug fixLuciadLightspeed
TLcdGXYViewFitAction: now supports fitting on multiple layers.
Bug fixLucy (LuciadLightspeed)
LUCY-1863
Selected objects that were hidden using the tableview still had their labels drawn when using
global label
decluttering.
Bug fixLuciadLightspeed
LMAP-2455
TLcdGXYLayer now filters the selection when a filter has been set to the layer.
In addition, the selection is kept up to date if the filter in question implements
ILcdChangeSource.
Bug fixLucy (LuciadLightspeed)
ALcyWorkspaceCodecDelegate now has a method canEncode. This way codec delegates can decide at
runtime to avoid storing information in the workspace, or a codec can be made that never stores
new information, but only reads legacy data.
Bug fixLucy (LuciadLightspeed)
LUCY-1853
TEA AddOns: in case multiple TEA layers are used, the selection of one layer could be copied to
the other layers.
Bug fixLuciadLightspeed
TLcdGXYPanController now also pans when the meta or alt keys are pressed.
Bug fixLuciadLightspeed
LMAP-2828
TLcdTopocentricCoordSysTransfo2 has been deprecated in favour
of TLcdTopocentricCoordSysTransformation.
Bug fixLuciadLightspeed
LMAP-2888
TLcdTFWRasterModelDecoder falls back to ImageIO when decoding via JAI fails.
Bug fixOGC Server
LMAP-3131
The GetFeature request handler TLcdWFSGetFeatureRequestHandler now supports multiple feature types
that use different coordinate reference systems.
Bug fixWeather & Environment Standards
LMAP-825
com.luciad.format.grib.gxy.TLcdGRIBRasterPainter now correctly rotates
wind barbs and arrows if the map is rotated or warped.
Bug fixRadar Connectors
TLcdASTERIXCategory30: decoding the same file twice now produces the same results. Because of
the bugfix for LMAP-2768, trajectories that were marked as terminated in the previous decoding
run were immediately marked as terminated in the next decoding run.
Bug fixRadar Connectors
LMAP-2795, LMAP-2796
TLcdASTERIXCategory1: trajectories of category one are no longer split up in parts of 512
seconds. This fixes a regression introduced by the fix for LMAP-2762.
Upgrade considerationLuciadLightspeed
The XML binding framework, introduced as beta API in LuciadMap 8.2, has undergone some
changes to improve its usability and extensibility. This affects the following packages:
- com.luciad.format.xml.bind
- com.luciad.format.xml.bind.schema
The following table lists all class renamings which have been done between 8.2 and 9.0:
TLcdXMLUnmarshallerContext |
TLcdXMLDecoder |
TLcdXMLMarshallerContext |
TLcdXMLEncoder |
ILcdXMLUnmarshallerLibrary |
ILcdXMLDecoderLibrary |
ILcdXMLMarshallerLibrary |
ILcdXMLEncoderLibrary |
TLcdXMLSchemaUnmarshallerContext |
TLcdXMLSchemaBasedDecoder |
TLcdXMLSchemaMarshallerContext |
TLcdXMLSchemaBasedEncoder |
ILcdXMLSchemaUnmarshallerLibrary |
ILcdXMLSchemaBasedDecoderLibrary |
ILcdXMLSchemaMarshallerLibrary |
ILcdXMLSchemaBasedEncoderLibrary |
ILcdXMLSchemaTypeUnmarshaller |
ILcdXMLTypeUnmarshaller |
ILcdXMLSchemaTypeMarshaller |
ILcdXMLTypeMarshaller |
ILcdXMLSchemaDatatypeUnmarshaller |
ILcdXMLDatatypeUnmarshaller |
ILcdXMLSchemaDatatypeMarshaller |
ILcdXMLDatatypeMarshaller |
TLcdXMLSchemaTypeUnmarshallerProvider |
TLcdXMLTypeUnmarshallerProvider |
TLcdXMLSchemaTypeMarshallerProvider |
TLcdXMLTypeMarshallerProvider |
TLcdXMLSchemaInfo |
TLcdXMLSchemaSet |
The following additional API changes have been done:
- The static
newInstance()
methods of all unmarshaller and marshaller context
classes have been replaced with ordinary constructors in the new decoder and encoder
classes.
- The
unmarshal()
and
marshal()
methods of all unmarshaller and
marshaller context classes have been renamed to
decode()
andencode()
.
- The
configureContext()
methods of all (un)marshaller library interfaces have
been to
configureDecoder()
andconfigureEncoder()
.
- The
Map
argument of the
(un)marshal
and
(un)marshalType
methods of all (un)marshallers, type (un)marshallers and datatype (un)marshallers has
been replaced with a
ILcdXMLDocumentContext
argument, which offers a richer
API for storing and retrieving objects, based on their scope within the XML document.
TLcdXMLSchemaBindingDescriptor
is no longer part of the API. Its functionality
has been largely moved to the more general
TLcdXMLSchemaBasedMapping
class.
- The
ILcdXMLObjectFactory
and
TLcdXMLTypeObjectFactoryProvider
classes
have been introduced in the API, in order to separate object instantiation and
unmarshalling during theXML decoding process. This allows to plug in custom object
factories without having to rewrite unmarshallers.
- The
ILcdXMLElementInfo
interface has been added to the API to allow
for XML-Java-XML roundtrips without loss of information. This purpose of this interface
is similar to the one provided by
JAXBElement
: it models an XML element, and
allows to store specific XML-related information about the element, which is typically not
stored otherwise in the Java representation of the XML data.
- All unmarshaller and marshaller interfaces, and their corresponding providers have been
generified, with as type parameter the Java class they can unmarshal or marshal.
Upgrade considerationLucy (LuciadLightspeed)
The TLcyPIMTrackAddOn, TLcyMS2525bAddOn and TLcyAPP6AAdOn have been refactored such that they
now extend ALcyFormatAddOn (was ALcyDefaultAddOn).
As a result the decodeAddOn(String) method has been removed. Applications that used to call this
method
can get the same result by creating a new instance and calling the setConfigSourceName() method.
Upgrade considerationLucy (LuciadLightspeed)
The XML format has been refactored extensively and many classes have been renamed. More info
about
this can be found in the release notes of LuciadMap foundation. As a result,
the signature of some methods concerning XML encoding and decoding in the classes of the
TLcyDrawingAddOn have been changed as well. More specifically this affects the classes
ALcyShapeSupplier,
ALcyDomainObjectSupplier and all their subclasses. Also the classes
TLcyCompositeSchemaUnmarshallerLibrary and
TLcyCompositeSchemaMarshallerLibrary have been renamed to respectively
TLcyCompositeSchemaBasedDecoderLibrary
and TLcyCompositeSchemaBasedEncoderLibrary.
Upgrade considerationLuciadLightspeed
LMAP-2833
TLcdModelList now implements ILcdModelContainer:
- The addModel(ILcdModel) and addModel(ILcdModel, ILcdFilter) methods now return a
boolean
indicating whether the collection of models has changed. Classes overriding one of these
methods will result in a compile error.
- The removeModel(ILcdModel) method now returns a boolean indicating whether a model
has
been removed from the collection of models and no longer throws a NoSuchElementException
when the model
was not part
of the model list. Classes overriding this method will result in a compile error. Usages of
this method
which
relied on the NoSuchElementException will behave oddly at runtime, since no such error is
thrown anymore.
The returned boolean can now be used in order to determine whether a model was an element of
the model list. It is also no longer necessary to check whether the model is part of the
model list
before calling the removeModel(ILcdModel) method.
- The methods modelCount(), models(),
addModelContainerListener(ILcdModelContainerListener) and
removeModelContainerListener(ILcdModelContainerListener) have been added.
Upgrade considerationLuciadLightspeed
All ILcdGXYPainter#isTouched implementations now check whether the paint mode includes
ILcdGXYPainter.HANDLES
or ILcdGXYPainter.BODY before checking if the handles or bodies are touched, respectively,
allowing finer-grained isTouched checks.
An example implementation of this behavior can be found in the hippodrome sample painter.
If you call these methods, please make sure that the paint mode contains the necessary flags.
In particular, please make sure the mode argument contains ILcdGXYPainter.BODY if you need to
check if the body
was touched.
Upgrade considerationLucy (LuciadLightspeed)
TLcyRedliningAddOn: As was announced in version 8.2, this add-on is now replaced by
TLcyDrawingAddOn. Please refer to the upgrade considerations of version 8.2 to see how
to upgrade.
Upgrade considerationLuciadLightspeed
The return type of TLcdEarthAssetModelCodec.getDefaultModelReference() has been
generalized from TLcdGeodeticReference to ILcdModelReference.
Upgrade considerationLucy (LuciadLightspeed)
The "logFile" entry has been removed from the lucy.cfg file. Logging can now be configured from
the standard
Java logging framework (java.util.logging). Details about the new logging mechanism can be found
in
the "Logging and performance monitoring" appendix of the Foundation developer guide.
Upgrade considerationLuciadLightspeed
ILcdGXYEditor's END_CREATION flag is now deprecated. The mode was misused to also include the
behavior of
ILcdGXYEditor.CREATING, which made it impossible to combine with, for example, double-click
behavior.
TLcdGXYNewController2 does not use this mode anymore.
If necessary, perform the object's final initialization in the new controller model instead.
Upgrade considerationLucy (LuciadLightspeed)
TLcyDrawingOpenGLAddOn: the getGLFormat() method now returns ALcyGLFormat, instead of
TLcyGLDrawingFormat. A new method getDrawingGLFormat was added to return the
TLcyGLDrawingFormat.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-953, LUCY-356, LUCY-1757
The interfaces ILcdTreeLayered, ILcdLayerTreeNode and ILcdModelTreeNode have been
introduced in LuciadMap Foundation, and the upgrade considerations mentioned in the
foundation release notes also apply to Lucy. Notice that in Lucy some of the data format
add-ons already use layer nodes, resulting in the described issues.
Lucy also has some extra changes, compared to LuciadMap foundation:
-
calling
ILcyMapComponent#insertGXYLayer
with a layer list converts
the layer list to a layer node and effectively adds the layer node to the view. This
shouldn't have any impact, as previously the inserted layer lists could not be retrieved
afterwards using the Lucy API. Consult the javadoc of that method for more information.
- a getter and setter for the selected layers has been added to ILcyMapComponent
(it was documented as subject to change). If you are affected by this change, it results
in a compile error that can be solved by adding this piece of code:
private ILcdGXYLayer[] fSelectedLayers;
public void setSelectedLayers( ILcdGXYLayer[] aSelectedLayers ) {
ILcdGXYLayer[] oldSelection = fSelectedLayers;
fSelectedLayers = aSelectedLayers;
firePropertyChange( "selectedLayers", oldSelection, aSelectedLayers );
}
public ILcdGXYLayer[] getSelectedLayers() {
return fSelectedLayers;
}
TLcyMapLayerControl#getSelectedLayers()
and
TLcyMapLayerControl#setSelectedLayers(ILcdGXYLayer[])
are
updated to work with layer nodes and layer lists. Please consult the corresponding
javadoc for more detailed information.
- A new ILcyGXYLayerOrderManager implementation has been created, capable of dealing
with a layer order which depends on the hierarchical structure. The old implementations have
been adapted to be aware of the ILcdLayerTreeNodes. This affects the behavior of the move
buttons
in the layer control, since this depends on the used layer order manager.
An extra key (TLcyMapAddOn.independentOrderTreeLayeredSupport)
has been added to the map_addon.cfg file, which allows to toggle between
a view with a layer order independent of the layer order in the hierarchical structure, or
to keep the layer order in the view and the hierarchical structure and in sync.
This extra key is set to false by default to use the best effort move approach, and keep the
layer order in the
view in sync with the layer order of the hierarchical layer structure. The toggle button in
the layer control, allowing to switch between flat representation and hierarchical structure,
is not inserted when using the default settings. For restoring the settings of V8.2, the
TLcyMapAddOn.independentOrderTreeLayeredSupport must be set to true in map_addon.cfg,
mapLayerControl.toggleTreeActiveSettable.mapLayerControlToolBar.insert and
mapLayerControl.createFlatView must be set to true in map_addon_layer_control.cfg
The performance when working with many layers has been boosted.
Upgrade considerationLuciadLightspeed
The interfaces ILcdTreeLayered, ILcdLayerTreeNode and ILcdModelTreeNode have been introduced,
allowing to easily create hierarchical layer and model structures. In relation to that, these
changes were made:
- A getter and setter for an ILcdIcon are added to the ILcdLayer interface. The impact
is minimal as all sub-interfaces (ILcdGXYLayer and ILcdGLLayer) already had these methods.
If
you are affected by this change, it results in a compile error.
- ILcdGXYView now implements ILcdTreeLayered instead of ILcdLayered. This results in
one
new method (getRootNode). In the unlikely event of implementing an ILcdGXYView directly,
please
implement
the extra method as well, probably by delegating the call to another ILcdGXYView. If you are
affected by this change, it results in a compile error.
- The following methods in ILcdModelContainer have been renamed to avoid clashing
with the methods of ILcdModel. As this interface was not used anywhere, the
impact is expected to be minimal. If you are affected by this change, it results in a
compile error.
elements()
to
models()
size()
to
modelCount()
elementAt(int)
to
getModel(int)
- The addModel method of ILcdModelContainer can now throw IllegalArgumentException for
invalid objects.
- TLcdLayeredEvent now contains (optional) indices, indicating where the change took
place. All LuciadMap code is adapted to provide those indices.
As long as no ILcdLayerTreeNode s are used, nothing changes except the changes mentioned above.
When
layer nodes are used, extra care must be taken when
- Moving a GXYLayer in the GXYView:
ILcdGXYView now implements ILcdTreeLayered which
affects the behavior of the move operation. The move operation has become a best effort
approach.
Details of the implications of this change can be found in the developer guide
and in the javadoc of the TLcdTreeLayeredSupport#moveLayerAt.
- Inserting a layer node in the GXYView:
inserting a layer node in the view adds the layer node as a child of the root node,
and adds the layer node and all of its children to the view (ILcdGXYView#layers()).
Events are generated for every layer that was added to the view.
- Requesting all the layers from the GXYView:
calling ILcdGXYView#layers() returns all the layers and layer nodes in the view.
When for example copying these layers to another view by looping over the result
care must be taken (this is typically done when printing a view). Since the layer
nodes are also returned, adding a layer node to the second view will also insert
all the child layers to the second view. Those child layers were also returned when
calling ILcdGXYView#layers(), hence they would be added twice.
A correct approach for the use-case mentioned above is requesting all the child
layers from the root node of the view, and add all those layer(node)s to the second
view. Consult the developer guide for a more detailed explanation.
- Layer order of the GXYview:
the paint order of the layers in the view (ILcdGXYView#layers) is not necessarily related
to the layer tree structure (ILcdGXYView#getRootNode). This means that all tasks that
directly or indirectly rely on the paint order (for example select controller, ... ) should
continue
to use the 'flat list' (ILcdGXYView#layers()) and not the hierarchical structure
(getRootNode) directly.
- Adding a model to an ILcdView:
adding a model to an ILcdView by calling ILcdView#addModel will use the layer factory which
is
set on the view. Depending on whether the layer factory creates ILcdLayerTreeNode 's for
TLcdModelList's
and/or
ILcdModelTreeNode's, the behavior of the addModel method will be slightly different:
- When a model list is added to the view, and a layer node is created to represent
this model list, the model list should not be set as the model of the layer tree node.
Hence calling ILcdTreeLayered#layerOf(ILcdModel) with the model list will throw a
NoSuchElementException. In case a layer list is created, the model list should be
the model of the layer list and calling ILcdTreeLayered#layerOf(ILcdModel) will return
the
created layer list.
- When a model list is added to the view, and a layer node is created to represent
this model list, the view will be aware of the layer node itself and all of its child
layers.
These child layers represent the sub-models of the model list. Calling
ILcdTreeLayered#layerOf(ILcdModel)
with one of the sub-models will return the correct child layer. In case a layer list
is created, the view is not aware of the different sub layers. Calling
ILcdTreeLayered#layerOf(ILcdModel)
with one of the sub-models will throw a NoSuchElementException.
Notice that the same remark is valid for adding an ILcdLayerTreeNode directly to the
view. The
view
will be aware of the layer tree node and its child layers, which is not the case when
a layer list is added to the view.
The recommended way to replace existing ILcdGXYLayerList's to ILcdLayerTreeNode's is
to create an empty ILcdLayerTreeNode and add all the layers as child
layers to the created layer tree node instead of adding them to a new ILcdGXYLayerList.
However, care must be taken since the behavior of the layer lists and layer nodes is
slightly different on some points:
- The model:
the model of the ILcdGXYLayerList was an ILcdModelList, composed of all the models of
the sub-layers. The ILcdLayerTreeNode is a layer itself, with child layers, without any
relationship between the model of the node and the models of its
children. So the model list should not be used as the model of the layer tree node,
as that would cause objects to be painted twice.
- All ILcdGXYLayer operations:
the standard ILcdGXYLayerList implementation (TLcdGXYLayerList) delegated those
operations to all of its sub-layers, where calling these methods on an
ILcdLayerTreeNode will not pass the call to its children. So for example the
applyOnInteract
method will work on the node itself, and not on the child layers which was the case
for the layer list. Another example is the
getSelectionCount()
method. For an TLcdGXYLayerList this returned the sum of the selection counts of all the
sub-layers, where
for an ILcdLayerTreeNode it just returns the selection count of the node itself. If
one wants to
retrieve the selection count of all the sub-layers, (s)he must loop over all sub-layers and
ask the sub-layers for their
selection count. Consult the javadoc of those methods for more detailed information
about the differences.
Similarly, listeners added to a node only receive changes about that node itself and not
about
the child nodes. Some addHierarchy*Listener methods are available that do listen on a
node and all its descendants.
- The view: with an ILcdGXYLayerList, the view was unaware of the
sub-layers and treated the layer list and its sub layers as one big layer. This is no
longer the case with an ILcdLayerTreeNode. When such a node is added to the view, all
of its child layers are also added and the view knows about those child layers. This happens
automatically. For example, it is not necessary to add both the node and all its child layers
to the view individually. Adding the node is sufficient. Consult the developer's guide
for more information (the section about ILcdTreeLayered).
Upgrade considerationLuciadLightspeed
The interface ILcdGeodeticDatum has received new methods getHeight, hasNonZeroHeights, equals2D,
llh2geocSFCT
and geoc2llhSFCT, to integrate the new vertical datum support in an efficient way. This allows
using geoids
for geodetic datums and ILcdGeoReference instances such as ILcdGridReference. The new vertical
datum support
is used by all LuciadMap implementations of ILcdModelXYWorldTransformation,
ILcdModelXYZWorldTransformation,
ILcdModelModelTransformation, and ILcdXYWorldXYWorldTransformation. Classes implementing the old
vertical datum
support (ILcdVerticalDatum, TLcdNullVerticalDatum, ILcdGeoidReference, TLcdGeoidReference,
TLcdGeoid2Grid, and
TLcdModelModelGeoid2Grid) have been deprecated.
Upgrade considerationLuciadLightspeed
LMAP-1047
TLcdLayeredEvent#ALL_REMOVED has now been deprecated in favor of multiple REMOVED events,
allowing the listener
to be informed of each removed layer. All LuciadMap view implementations no longer use this
event type.
Upgrade considerationLucy (LuciadLightspeed)
Special sort orders within menu bar groups are now supported, for example to sort the menu items
alphabetically. This is a.o. used in
resources/lucy/lucy.cfg (see 'TLcyMain.menuBar.groupPriorities'). If a custom front-end is
used, it will not support these special sort orders for the main menu bar. To adapt the custom
front-end to support the special sort orders, perform these two method calls:
- setGroupDescriptorComparator( new TLcyGroupDescriptorComparator( groupNames ) )
- setActionBarItemComparator( new TLcyActionBarItemComparator( groupNames ) )
The argument of the first method call is changed (compared to previous versions), the second
method call is new (and optional, but recommended). Please refer to the sample method
AFrontend.createMainMenuBar for more details.
Upgrade considerationLuciadLightspeed
LMAP-2591
TLcdGXYPolygonLabelPainter#paintLabels(String[], ILcdPolygon, ...),
TLcdGXYPolygonLabelPainter#labelBoundsSFCT(Graphics, String[], com.luciad.shape.ILcdPolygon, ...
),
TLcdGXYPolylineLabelPainter#paintLabels(String[], ILcdPointList, ...)
and TLcdGXYPolylineLabelPainter#labelBoundsSFCT(Graphics, String[],
com.luciad.shape.ILcdPointList, ... ),
have been deprecated.
In addition, the paintLabels methods now perform the haloing themselves, being consistent with
the paintLabel method.
Instead of calling the deprecated methods, set the relevant object on the painter before calling
the respective
methods without the polygon or point list argument.
To customize the labels, the method #retrieveLabels can be overridden.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-1626
The PIM addon now also has a format bar for drawing PIM tracks. This should make
it easier to add PIM tracks. This format bar shows a button to create new tracks and to
modify existing tracks (setting speed and start time). As a result, the TLcyPIMTrackAddOn
now requires the TLcyFormatBarAddOn (or equivalent) to show its tool bar for drawing new PIM
tracks.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn now use an ALcyFormatBar to show a toolbar that
makes it easier to create and edit such layers. As a result, these add-ons
now require the TLcyFormatBarAddOn (or equivalent) to show its tool bar for drawing new units.
Upgrade considerationLuciadLightspeed
LMAP-2892
TLcdGXYNewController now respects the editor's #getCreationClickCount when creating new objects.
This means that it is now impossible to create a polyline consisting of a single point, or a
polygon consisting
of less than 3 points. This behavior can be modified by overriding the #isContinueEdit method.
Upgrade considerationLuciadLightspeed
LMAP-1998
ILcdGXYEditor: the semantics of #getCreationClickCount have been changed to also express a
minimum click count
when there is no limit on the number of creation clicks, allowing values lower than -1.
The implementations in the following editors have been modified to follow this convention:
- TLcdGXYBufferPainter, TLcdGXYGeoBufferPainter, and TLcdGXYLonLatHeightBufferPainter
- TLcdGXYPointListPainter
Upgrade considerationLuciadLightspeed
LMAP-2882
The deprecated library JimiProClasses.jar has been removed. The deprecated
class TLcdTIFFImageDecoder, which was using it, is now an extension of
TLcdGeoTIFFImageDecoder, which is better and compatible for all practical
purposes.
Upgrade considerationLuciadLightspeed
The following new packages were added to improve support for GML:
- com.luciad.format.gml2.model
- com.luciad.format.gml2.xml
- com.luciad.format.gml31.model
- com.luciad.format.gml31.xml
- com.luciad.format.gml32.model
- com.luciad.format.gml32.xml
- com.luciad.format.gmlcommon
These packages provide domain models, decoders and encoders for the GML 2, 3.1 and GML 3.2
formats.
Additionally, a generic GML decoder is also provided,
com.luciad.format.gmlcommon.xml.TLcdGMLModelDecoder
,
which is capable of handling all GML formats.
These packages are built upon the new XML framework (com.luciad.format.xml.bind).
They replace all existing GML packages, which are now deprecated:
- com.luciad.format.gml
- com.luciad.format.gml3
- com.luciad.format.gml3.adapter
- com.luciad.format.gml3.factory
- com.luciad.format.gml3.model.*
- com.luciad.format.gml3.name
- com.luciad.format.gml3.reader
Upgrade considerationOGC Server
LMAP-3116
The interface com.luciad.ogc.wfs.ILcdWFSFeatureType has been extended with a getter and setter
to configure a qualified feature name through a javax.xml.namespace.QName object.
This might require an update, if a custom implementation of ILcdWFSFeatureType is used.
Upgrade considerationTerrain Analysis Engine
ILcdLOSRadarPropagationFunction: support has been added for radars with a tilt angle.
Upgrade considerationAviation Standards
LMAP-2133
The classes TLcdVectorIcon and TLcdVectorIconDecoder in the com.luciad.ais.gui package have been removed,
as these classes are not intended to be used directly by the user. Furthermore, these classes are also
available in the com.luciad.gui package in LuciadMap. If there would be any dependencies on the classes in AIS,
the classes in LuciadMap can be used instead.
8.3
8.3.19
Bug fixLuciadLightspeed
LMAP-3961
TLcdGXYOffsetIconPainter#getLabelCount and #getSubLabelCount would sometimes return
incorrect values. This could cause exceptions when, for example, selecting offset icons.
8.2
8.2.26
Bug fixLucy (LuciadLightspeed)
LUCY-1949
TLcyDrawingAddOn: reading a workspace that was saved using v8.2 (or later) and when one had
pressed 'no' on the dialog asking "Layer Redlining is modified, save changes ?" now correctly
restores the redlining layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1950
TLcyDrawingAddOn.cfg: removed unused key 'default_terrain_following_mode'. As before, that key
is specified in TLcyDrawingTEAAddOn.cfg.
Bug fixLucy (LuciadLightspeed)
addons.xml now specifies the luciadMapOptions for the earth add-ons.
Bug fixLucy (LuciadLightspeed)
LUCY-1948
TLcyG4JAddOn: the "3D view" menu was not removed properly after closing the 3D view.
Bug fixLucy (LuciadLightspeed)
LUCY-1946
TLcyPIMTrackAddOn: workspaces which contain PIM layers but no style information for the PIM
trajectories are now decoded with proper default styles for these PIM trajectories.
Bug fixLucy (LuciadLightspeed)
LUCY-1933
TLcySafeGuardFormatWrapper: used to call "isModelOfFormat( aGXYLayer.getModel() )" instead of
"isGXYLayerOfFormat( aGXYLayer )" for the ILcyGXYLayerTypeProvider and the
ILcyAsynchronousPaintHintProvider.
Bug fixTerrain Analysis Engine
LMAP-3139
TLcdGXYViewBasedTerrainElevationProvider: a NullPointerException exception could occur when the
elevation provider is initialized with an ILcdGXYView and an ALcdTerrainElevationProvider.
Bug fixInfrastructure Standards
LMAP-1788
The bounds of the decoded model were sometimes larger than necessary. This has
been fixed.
8.2.25
Bug fixLuciadLightspeed
A bug in the decoding of gml3:LineStringSegment elements containing gml3:DirectPositions was
fixed.
Bug fixLuciadLightspeed
LMAP-3017
TLcdEllipsoidUtil#computeBufferContour2D and TLcdCartesian#computeBufferContour2D did not
correctly
calculate the buffer contour at very small scales (+- 10m).
8.2.24
ImprovementLuciadLightspeed
LMAP-3114
Users can now explicitly specify the location of the license file with the
java system property "luciadmap.license". For instance:
java -Dluciadmap.license=/home/user/development_license.txt
...
ImprovementLuciadLightspeed
The TLcdWKTModelReferenceDecoder now accepts multi-line WKTs.
Bug fixLucy (LuciadLightspeed)
LUCY-1934
Fixed a NullPointerException when exiting Lucy while the 3D view was obscured by another
component (e.g. a table view).
Bug fixLuciadLightspeed
TLcdGXYPen now correctly draws arcs that are defined in grid references
with non-standard scales, rotations, or units of measure.
Bug fixLucy (LuciadLightspeed)
LUCY-1942
TLcyG4JAddOn: the 'Steps' labels at the left side of the terrain wizard appeared crippled on
some Linux platforms.
Bug fixLuciadLightspeed
LMAP-3053
TLcdSHPModelDecoder and TLcdMIFModelDecoder now properly handle InterruptedIOExceptions.
Bug fixLuciadLightspeed
LMAP-3111
Objects painted with a halo effect would sometimes be rendered incorrectly because of
prematurely disposed
Graphics instances.
Bug fixLucy (LuciadLightspeed)
LUCY-1940
TLcyMapAddOn: aLucyEnv.getUserInterfaceManager().getActionBarManager().disposeContext was called
before the map was properly disposed. As a result, listeners performing clean-up tasks could
bump into a "The specified context [Map] was disposed!" exception.
Bug fixLucy (LuciadLightspeed)
TLcyDrawingAddOn: simply selecting a drawing object no longer shows an error dialog
when the mouse is located outside of the model reference.
Bug fixLucy (LuciadLightspeed)
TLcyDrawingAddOn: when editing a group of drawing objects, the object underneath the mouse
now remains underneath the mouse.
Bug fixLucy (LuciadLightspeed)
TLcyUSRPDecoderAddOn: now accepts all common USRP/ASRP/ADRG file extensions
(notably 01.THF).
Bug fixLucy (LuciadLightspeed)
LUCY-1937
A few add-ons could cause the message "The specified context [Map] was disposed!" to appear when
loading the add-ons on the event dispatch thread (EDT) and configuring the TLcyMapAddOn to
create map components on start-up (map_addon.cfg, property 'mapcomponentcount' set to more than
0).
Bug fixRadar Connectors
LMAP-3108
The constructor of TLcdASTERIXTrajectoryModelDescriptor no longer refers to a package visible
class which is not part of the API.
Bug fixRadar Connectors
Sample class 'TransformationProvider' now accept more degree formats, such as DDMMSS, in its
locations.cfg file.
8.2.23
Bug fixLucy (LuciadLightspeed)
LUCY-1921
TLcyPIMTrackAddOn: adding a trajectories or waypoint layer as a texture layer for the terrain
of the Earth addon no longer prevents you from saving the workspace.
8.2.22
ImprovementLuciadLightspeed
The license server now more efficiently handles simultaneous license
requests.
ImprovementLuciadLightspeed
LMAP-2044
The default level of the World MTM model has been changed to 4. This improves the fitting the
view to small
countries (e.g. Saint Kitts and Nevis).
Bug fixLuciadLightspeed
LMAP-2819
TLcd2DBoundsIndexedModel now throws an IllegalArgumentException instead of
StackOverflowException,
when an element with bounds having a NaN value is added to a model.
Bug fixLucy (LuciadLightspeed)
LUCY-1935
Fixed infinite loop in the rescaling of an icon which caused Lucy to hang when a layer, which
has an icon
with size smaller than the size used in the layer control, was added to the view.
Bug fixLuciadLightspeed
LMAP-3096
TLcdGeoTIFFModelEncoder no longer throws an ArrayIndexOutOfBoundsException
when encoding tiled rasters with Deflate compression and a different tile
size.
Bug fixLuciadLightspeed
LMAP-3094
TLcdEarthTerrainElevationProvider now works correctly with input models
that contain more than one ILcdRaster or ILcdMultilevelRaster element.
Bug fixLuciadLightspeed
LMAP-612
TLcdMIFModelEncoder was not correctly encoding shape lists. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3070
TLcdEllipsoid rhumbline azimuth computations were incorrect when one of the points was at the
North or South
Pole. In such a case, the azimuth is now returned as 0 or 180, depending on the case.
Bug fixLuciadLightspeed
LMAP-3068
The method TLcdGrid2Geocentric.worldPoint2modelSFCT() was returning incorrect results under
certain
circumstances. This has been fixed.
Bug fixLuciadLightspeed
LMAP-2282
The TLcdGrid2Geocentric.modelBounds2worldSFCT() was not always correct for models spanning more
than 180
longitude degrees. This has been fixed.
Bug fixLuciadLightspeed
LMAP-1956
If an exception was occurring during the encoding of a DBF file associated with an SHP model, a
warning was
being issued but
the incomplete DBF file was not removed. Future attempts to decode the SHP model were failing
because of the
corrupted DBF.
This has been corrected - if the DBF file can not be written, the SHP model encoder now throws
an exception.
Bug fixLuciadLightspeed
LMAP-1325
The contains2D test was not correct for geodetic polygons covering North Pole. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-3092
TLcdGXYPolylineLabelPainter now clears the halo image cache when the label rotation changes.
Bug fixLuciadLightspeed
LMAP-1370
GXYHippodromePainter could enter an inconsistent state when editing, preventing further creation
of hippodromes.
Bug fixAviation Standards
LMAP-3099
Some DAFIFT decoders (e.g. TLcdDAFIFTAirspaceDecoder) did not use the decoding bounds filter correctly.
Bug fixAviation Standards
LMAP-2999
TLcdProcedureGeometryCalculator's handling of CF (Course to Fix) legs has been
improved.
Bug fixAviation Standards
LMAP-3090
Shapes including the poles were rendered incorrectly when using a geodetic pen. This has been fixed.
Upgrade considerationLuciadLightspeed
LMAP-2776
Setting the TLcdGXYViewLabelPainter.setReusePreviousLocation() property to true was causing
editable labels to
disappear.
The method has been deprecated - a layer implementing ILcdGXYEditableLabelsLayer should be used
instead.
8.2.21
Bug fixLuciadLightspeed
TLcdSoft2DBoundsIndexedModel decoded its underlying model twice when it
needed to be restored after having been garbage collected.
8.2.20
ImprovementLuciadLightspeed
Direct positions and direct position lists with srsName urn:x-ogc:def:crs:EPSG:4326 are now
interpreted as (lat,lon) coordinates instead of (lon,lat).
ImprovementLuciadLightspeed
LMAP-3079
TLcdGXYAsynchronousPaintQueue can now be configured to not interrupt ongoing asynchronous
paints, when new
paints
are requested. This is useful when the view is continuously being repainted, and the paint queue
would not otherwise get the opportunity to finish any paints.
Bug fixLucy (LuciadLightspeed)
LUCY-1923
TLcyGotoAreaOfInterestAddOn: all newly created area's of interest were named "New(1)" in the
menu bar.
Bug fixLucy (LuciadLightspeed)
LUCY-1843
ILcdPointList objects decoded by the Drawing XML addon now create TLcdLonLatPoint instead
of TLcdXYPoint instances, when new points are added to the list.
Bug fixLucy (LuciadLightspeed)
LUCY-1859
TLcyLonLatFormat: a comma can be used as separator between longitude and latitude without a
trailing
blanco when it is preceded by a non number. For example
54", 38"
was
valid but
54",38"
not due to the missing blanco after the comma. Both are now
correctly parsed.
Bug fixLucy (LuciadLightspeed)
LUCY-1920
TLcyAlwaysFitJToolBar: On Linux platforms, having a TLcyAlwaysFitJToolBar that contained a
JComboBox (as is the case for the map tool bar) that appeared in the 'remaining items' pop-up
froze the application when the JComboBox was clicked. A workaround for this Swing bug is now in
place.
Bug fixLuciadLightspeed
LMAP-3085
TLcdWFSDescribeFeatureTypeRequest#getKVPEncoding() did not take into account the namespace of the
configured feature type name(s).
8.2.19
ImprovementDefense Symbology
LMAP-2628
The 'Enemy Suspect or Templated' variant of the 'Forward Line Of Own Troops' (FLOT) symbol is
now supported in MIL-STD 2525b and APP-6A. This is also known as the 'Forward Line of Enemy Troops' (FLET) symbol.
It can be selected by choosing the FLOT symbol (APP-6A: 2.X.2.1.1.2.2, MIL-STD 2525b: 2.X.2.1.2.2) and setting
the affiliation to 'Suspect'. Depending on the status - present or anticipated - the symbol is drawn with a plain
or dash stroke, similar to other symbols.
Bug fixLuciadLightspeed
Using TLcdEarthGXYViewTileSet.setImageType() no longer causes the previous
settings of the offscreen ILcdGXYView to be lost.
Bug fixLuciadLightspeed
LMAP-3077
The select controllers no longer display selection popup menus that are larger than the screen
height.
Bug fixLucy (LuciadLightspeed)
TLcyActionBarManager: the ILcyActiveContextListener interface is no longer obfuscated, making it
possible to listen to changes in the active context.
Bug fixLuciadLightspeed
LMAP-3073
TLcdGXYPainterProvider: recently introduced caching was incorrect when painters were registered
for interfaces and model objects implemented multiple interfaces.
Bug fixLuciadLightspeed
TLcdEllipsoid.rhumblineDistance was incorrect when crossing the dateline. This has been fixed.
Bug fixLuciadLightspeed
LMAP-3071
In the internal database of EPSG codes the unit of measure was always "meter", even for EPSG
codes that were
using feet or other units. This has been fixed.
Bug fixLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: the configuration file resources/lucy/map/map_units.cfg contained some
incorrect properties where the 'menuBar.' infix was missing.
Bug fixLuciadLightspeed
TLcdGXYIconPainter#isTouched could cause a NullPointerException when #getIcon returned null.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter: the interactive label system now uses the proper mode constants
to retrieve label bounds and check whether a label is touched.
Bug fixReal-time Engine
LMAP-3075
TLcdContinuousDeclutteringLabelPainter: after deleting all objects, it was still possible to
re-select them. If at least one object wasn't deleted, this didn't occur.
Bug fixAviation Standards
LMAP-3074
Enhancement LMAP-3052 introduced an issue in the clone behavior of TLcdDiscretizedLonLatGeoPath,
which could lead to a NullPointerException when using a clone.
8.2.18
Bug fixLucy (LuciadLightspeed)
LUCY-1914
Earth addon: fixed the trn model decoder for opening models through DnD or the recent files
menu.
Previously only file paths were accepted as the source name.
8.2.17
ImprovementLuciadLightspeed
TLcdOWSHttpTransport#configureConnection now sets the connection request property 'Accept-Encoding' to
'gzip, deflate, compress', allowing OGC Web Services to send compressed data.
ImprovementAviation Standards
LMAP-3052
The implementation of TLcdDiscretizedLonLatGeoPath has been made more memory-efficient,
resulting in significant savings for airspace data (typically around 30%).
8.2.16
ImprovementReal-time Engine
LMAP-3063
TLcdSimulator now has an overridable method #currentTime, allowing you to synchronize the
clock of the simulator to an external clock (such as, for example, an audio feed).
Bug fixLucy (LuciadLightspeed)
LUCY-1908
TLcyEarthGLTerrainLayerFactory: Fixed model filtering. Previously there could be a performance
problem with models that load their data lazily and empty models where always accepted.
Bug fixLuciadLightspeed
LMAP-3065
ALcdGXYPen#drawLineWithArrow did not draw the arrow anymore since enhancement 6690.
Bug fixLuciadLightspeed
LMAP-3064
TLcdSHPModelDecoder used to trim both the leading and the trailing spaces from the string
features.
This has been corrected - only the trailing spaces are now trimmed.
8.2.15
ImprovementLuciadLightspeed
LMAP-3047
All implementations of ILcdISO19103UnitOfMeasure (for example TLcdDistanceUnit, TLcdSpeedUnit) now have
public constructors that allow to create additional units, next to the predefined constants.
ImprovementLuciadLightspeed
The sample code method SelectControllerModelSW.applySelection is now compatible with
modifications of selectHowMode that return SELECT_HOW_CHOOSE | SELECT_HOW_FIRST_TOUCHED.
ImprovementAviation Standards
LMAP-2982
The list of supported geodetic datum codes from the ARINC-424 specification has been increased
significantly. The full list of supported codes can be found in the ARINC Developer's Guide.
ImprovementMaritime Standards
LMAP-3051
The TLcdS57ModelDecoder can now handle vector records in which the VRPT-SG2D field order has
been switched.
Bug fixLucy (LuciadLightspeed)
LUCY-1906
TLcyMapLayerControl: when configuring the layer control popup menu to have accelerator keys,
they only worked when the popup menu was already visible.
Bug fixLuciadLightspeed
LMAP-3054
TLcdGXYLayerLabelPainter and TLcdGXYViewLabelPainter now also perform decluttering when only a
layer's selection
is labeled.
Bug fixLuciadLightspeed
Calling TLcdGXYLayerLabelPainter#setQuality no longer resets other properties of the painter.
Bug fixLuciadLightspeed
LMAP-3045
Under certain projections, GeoTIFF rasters covering the entire world (eg. ETOPO 1) were not
displayed at all.
This has been fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-1903
TLcyDrawingAddOn: it wasn't possible to clear a text feature value in the object editor panel.
Bug fixMaritime Standards
LMAP-3050
The TLcdS57ModelDecoder has been adapted to be able to handle multiple FSPT records in one
feature record.
Upgrade considerationLuciadLightspeed
LMAP-3055
TLcdGXYLayer now always calls the layer label painter for the labels paint mode, even if the
layer is not
labeled,
allowing consistent decluttering that also works for selections.
If you implement ILcdGXYLayerLabelPainter, make sure you check your layer's isLabeled()
property.
8.2.14
Bug fixLuciadLightspeed
The ElseFilter did not work properly in all cases after the performance improvements
of the SLD painter evaluation (see LMAP-2976).
Bug fixDatabase Connectors
LMAP-3043
Geodetic rasters defining a non-zero rotation were resulting in incorrect raster bounds. This has been fixed.
Bug fixReal-time Engine
TLcdSimulator no longer keeps a reference to the previous track models when the simulator model
is set to 'null'.
Bug fixDefense Symbology
LMAP-3041
The predefined affiliation feature in TLcdEditableMS2525bObject, accessible through getFeature(1), did
not support the new affiliations introduced by the Change 1 update. For these affiliations, null was returned.
8.2.13
ImprovementMaritime Standards
Support for the AML object and attribute catalogue has been upgraded to v3.0.1.
Bug fixLucy (LuciadLightspeed)
LUCY-1893
TLcyDrawingAddOn: the default fill can now be configured to 'No Fill' in the configuration file
by commenting out the 'TLcyDrawingAddOn.defaultStyle.fill' configuration option.
Bug fixLuciadLightspeed
LMAP-3031
TLcdGXYBoundsPainter: large bounds were painted incorrectly using a geodetic pen.
Bug fixLuciadLightspeed
LMAP-3032
TLcdFeaturedShapeList: #hashCode no longer assumes that none of the feature values is null.
Bug fixLuciadLightspeed
LMAP-3011
Some sample layers did not set a geodetic pen when using a geodetic model.
Bug fixLuciadLightspeed
LMAP-3009
TLcdGXYLayer could cause a NullPointerException when #getBounds would indirectly call #paint.
Bug fixLucy (LuciadLightspeed)
LUCY-1883
ALcyActionBar: now warns when an ILcdAction is inserted that also implements ILcyActiveSettable.
8.2.12
ImprovementLuciadLightspeed
Updated the TLcdEarthTileRepositoryPreprocessor to use multiple threads for improved
preprocessing
performance. There are also a few new utility TileSet's to support concurrency.
ImprovementLucy (LuciadLightspeed)
LUCY-1888
TLcyPIMTrackAddOn: the colors of the trajectories and waypoints can now be changed in the layer
properties dialog. The default colors can be changed in the configuration file of the
TLcyPIMTrackAddOn.
ImprovementAviation Standards
LMAP-3022
The ARINC handlers have been enhanced to reduce memory when loading large ARINC datasets.
Bug fixLuciadLightspeed
LMAP-3029
Fixed bad LOD choice in 3D painters when using FOV to zoom.
Bug fixLuciadLightspeed
LMAP-3024
The class TLcdOWSHttpTransport, used in the OGC client API to communicate with an OGC server,
did not support the HTTPS protocol.
Bug fixLuciadLightspeed
LMAP-3023
Added missing getters for the properties of the TLcdEarthGXYRasterPainter.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: it is now possible to remove both the action and the active settable
for the map overview from the menu bar. Previously there was always either the action or the
active settable.
Bug fixLucy (LuciadLightspeed)
LUCY-1889
Fixed null pointer exception when setting the use_combined_controller property to true in the
map overview addon configuration file. The properties of the combined controller active settable
can now be configured in the map overview addon configuration file
(TLcyMapOverviewAddOn.combinedControllerActiveSettable).
8.2.11
ImprovementLuciadLightspeed
LMAP-2924
Added support for tiles containing images with an alpha channel
Bug fixLucy (LuciadLightspeed)
LUCY-1887
Fixed performance problem when creating a model that normally loads its data lazily while the
Earth addon is loaded.
Bug fixLucy (LuciadLightspeed)
LUCY-1891
Fixed null pointer exception when opening the drawing toolbar, triggered by SLD performance
improvements LMAP-2976.
Bug fixLuciadLightspeed
Added support for terrains with non-geodetic model references
8.2.09
ImprovementOGC Server
The EPSG codes 3785 and 4055 used by Google Earth and Microsoft Virtual Earth are now supported.
Bug fixLucy (LuciadLightspeed)
LUCY-1839
TLcyG4JAddOn: the selection of a 2D layer and its corresponding 3D layer are now linked again
when a workspace is loaded.
8.2.08
ImprovementLuciadLightspeed
The list of supported EPSG codes has been updated. Most notably, it now includes codes 3785 and
4055 used by
Google Earth and Microsoft Virtual Earth.
ImprovementLuciadLightspeed
LMAP-2976
The performance of SLD rule painter evaluation, when configured with both an OGC filter and
scale range,
has been improved.
Bug fixLuciadLightspeed
TLcdInputStreamUtil: The skipAll method could cause an endless loop when trying to skip more
than the available bytes.
Bug fixLucy (LuciadLightspeed)
TLcyEarthAddOn: some memory is now available earlier for reuse.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: after closing a 3D view, the memory it needed is now earlier available for reuse.
Bug fixLuciadLightspeed
LMAP-2993
TLcdEarthTerrainRepositoryModelDecoder now provides a friendlier error message
if it cannot find usable terrain geometry or texture coverages in the
repository that's being decoded.
Bug fixLuciadLightspeed
LMAP-1352
The result of the ILcdPolygon.contains2D test was incorrect for polygons covering the North
Pole. This has been
fixed.
Bug fixLuciadLightspeed
LMAP-2994
TLcdGXYTextPainter: the protected method "setupGraphicsForText" is now called just before
drawing the text.
Bug fixAviation Standards
LMAP-3002
TLcdARINCEnrouteAirwayHandler: the handler used to create duplicate and incorrect route segments.
8.2.07
ImprovementLuciadLightspeed
LMAP-2992
TLcdGeoTIFFModelDecoder now handles spurious tie point tags and
transformation matrix tags in a more resilient way.
ImprovementLuciadLightspeed
LMAP-2992
TLcdGeoTIFFModelDecoder now supports the GRS 1980 geodetic datum.
ImprovementLucy (LuciadLightspeed)
LUCY-1873
TLcyDrawingAddOn: simplified drawing on multiple layers at the same time by having the
TLcyDrawingToolBarFactory
using a ALcyFormatBar as opposed to the TLcyDrawingSettings. As there can be more then one
ALcyFormatBar per
map it is now possible to have more then one drawing tool bar for a given map.
Bug fixLucy (LuciadLightspeed)
LUCY-1881
ALcyApplicationPaneTool: now correctly closes the application pane if a new workspace is
decoded. It now also falls back on the 'applicationPane.activeSettable.active' flag of the
configuration file if no information was present about the application pane in the loaded
workspace.
Bug fixLucy (LuciadLightspeed)
LUCY-1877
TLcyDrawingAddOn: Adjusted the behavior of the text fields for string features in the features
property panel so
it is consistent with other fields: the caret position is no longer reset when a new value is
entered,
and new characters are inserted in the old value instead of overwriting it.
Bug fixLuciadLightspeed
LMAP-1264, LMAP-2989
TLcdFeaturedPolygonGXYLayerCodec: did not render TLcdComplexPolygon's correctly.
Bug fixLuciadLightspeed
LMAP-2890
TLcdGXYEllipsePainter: the ellipse center could not be snapped to other points anymore.
Bug fixLuciadLightspeed
LMAP-2311
TLcdGXYOverviewController no longer logs a failure when a rectangle was dragged that fell
outside of the
world bounds.
Bug fixLuciadLightspeed
LMAP-2130
TLcdGXYTextPainter now takes it set margin into account.
The default margin is now 0, in order to maintain the same visual results as before.
Bug fixLuciadLightspeed
LMAP-2980
TLcdEllipsoid.rhumblinePointSFCT now handles correctly an azimuth that is very close to 90 or
270 degrees.
Bug fixLuciadLightspeed
LMAP-2366
The documentation of ILcdGXYPainter#isTouched has been clarified with respect to the SELECTION
render mode.
Bug fixAviation Standards
LMAP-2991
TLcdARINCEnrouteAirwayHandler did not correctly decode enroute airways with multiple segments.
Bug fixAviation Standards
TLcdARINCControlledAirspaceHandler did not always correctly determined the airspace classification.
Bug fixAviation Standards
LMAP-2986
TLcdARINCControlledAirspaceHandler did not always correctly calculated the unique identifier
for decoded airspaces, causing a misinterpretation in some cases. To fix this, the
airspace classification ILcdARINCAirspaceFeature.CLASS is now taken into account for the unique
identifier.
8.2.06
ImprovementLuciadLightspeed
LMAP-2161
The SHP model decoder now decodes features of large integer types (Long or BigInteger), as well
as Boolean and
Date.
The SHP model encoder now encodes the following new feature types: Long, BigInteger, Boolean.
Doubles are now
encoded as binary. Feature types that are not supported by the DBF format are encoded as
Strings.
ImprovementLucy (LuciadLightspeed)
TLcyDrawingAddOn: simplified adding items to the tool bar by adding a method getToolBar to
TLcyDrawingToolBarFactory.
Bug fixLuciadLightspeed
Bug fix LMAP-2559 caused ALcdGXYPen to print debugging messages.
Bug fixLucy (LuciadLightspeed)
LUCY-1865
TLcyGotoAreaOfInterestAddOn: fitting on an invisible area of interest (e.g. using the menu item)
no longer sets the map scale to 0.
Bug fixLucy (LuciadLightspeed)
LUCY-1866
TLcyPrintAddOn: the printer services are now using the correct page format.
Bug fixAviation Standards
TLcdProcedure3DGeometryCalculator would in some cases try to descend to
altitude 0 during the last leg of a procedure, without taking into account the
minimum and maximum altitudes set in the procedure leg. This has now been
corrected.
8.2.05
ImprovementLucy (LuciadLightspeed)
LUCY-1766
Configuration of the location of the log file can now make use of
system properties. Consult lucy.cfg for more detailed information.
ImprovementAviation Standards
The procedure legs of SID/STAR/IAP procedures decoded by TLcdARINCProcedureHandler
now contain the transition identifier (see ILcdProcedureLeg#getTransitionIdentifier).
ImprovementAviation Standards
The designator of SID/STAR/IAP procedures decoded by TLcdARINCProcedureHandler
is now also available through ILcdProcedure#getDesignator instead of only via ILcdFeatured
implementations of ILcdProcedure.
Bug fixLuciadLightspeed
LMAP-1660
In some circumstances, snapping stopped working while creating polylines. This also affected the
ruler
controller.
Bug fixLucy (LuciadLightspeed)
LUCY-1821
Changing the format on a ValidatingTextField also tried to format the previous value, associated
to the text field, with the new format. The method and behavior is adjusted in such a way that
you explicitly have to specify the value which will be formatted by the new format
Bug fixLucy (LuciadLightspeed)
LUCY-1864
TLcyPrintAddOn: programmatically setting the factories (e.g. setPrintableComponentFactory)
between the add-on creation and the plugInto no longer had an effect.
Bug fixLuciadLightspeed
LMAP-2559
The implementation of the clone methods of the pen classes has improved.
Bug fixLuciadLightspeed
LMAP-2904
ToolBarSW: automatically generating disabled icons for its buttons now also works with a Swing
Icon (only worked with ILcdIcon), this fixes a ClassCastException in APP6A and MS2525b samples.
Bug fixLucy (LuciadLightspeed)
LUCY-1861
Solved the parse exception in the scale format, which made it impossible to start Lucy with
French local settings.
Bug fixLucy (LuciadLightspeed)
LUCY-1860
TLcyPreviewAddOn: a NullPointerException used to be thrown when the panel to choose a date was
used with a very old date.
8.2.04
Bug fixLucy (LuciadLightspeed)
Bugfix LUCY-1847 caused a regression where the earth terrain wizard would no longer add 2D
layers to the view.
Bug fixLucy (LuciadLightspeed)
LUCY-1856
TLcyDrawingAddOn: Overriding
TLcySLDDomainObjectSupplier#createDomainObjectCustomizerPanelFactory
to add ILcyCustomizerPanel's to the ILcyCompositeCustomizerPanel (that is created by the supers
factory) didn't work.
Bug fixLucy (LuciadLightspeed)
LUCY-1855
TLcyDrawingAddOn: When overriding TLcySLDDomainObjectSupplier#createDomainObject to set a custom
style, this style used to be lost.
Bug fixAviation Standards
TLcdARINCFIRUIRHandler now supports FIR/UIR airspaces that have the same identifier, address and type,
but two or more geographical areas. These are now decoded as separate airspace objects, one
for each geographical area. In the past, they were represented as one airspace object with an incorrect
geometric boundary.
To distinguish airspaces with multiple geographical areas, a new identifier ILcdARINCAirspaceFeature.PART_IDENTIFIER
has been added to the unique list of features maintained by TLcdARINCFIRUIRHandler.
8.2.03
Bug fixLuciadLightspeed
LMAP-2966
The GeoTIFF model decoder handles more robustly rasters that cross the 180 degrees meridian.
Bug fixLuciadLightspeed
TLcdEarthTileRepository left a file handle open.
Bug fixLucy (LuciadLightspeed)
Create polygon union and intersection action in the drawing addon generate
results again.
Bug fixLucy (LuciadLightspeed)
LUCY-1851
On platforms supporting the GTK+ look and feel, a warning was printed on the console (everything
worked correctly though).
8.2.02
ImprovementLuciadLightspeed
LMAP-2886
TLcdWFSClient now automatically detects service exception reports coming from an OGC web service,
in case the content type is not defined.
ImprovementLuciadLightspeed
LMAP-2886
TLcdWCSClient now automatically detects service exception reports coming from an OGC web service,
in case the content type is not defined.
ImprovementLucy (LuciadLightspeed)
LUCY-1794
A failure to copy/paste into a drawing layer now shows a dialog
with more detailed information about why the operation didn't work.
ImprovementLuciadLightspeed
LMAP-2413
The SHP model decoder has improved support for decoding string features containing non-latin
characters.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousViewLabelPainterWrapper now avoids unnecessary view repaints while
asynchronous layers
are being painted.
ImprovementLucy (LuciadLightspeed)
LUCY-1824
Added validation-as-you-type on the fields in the minimum/maximum dialog of the vertical view.
ImprovementLucy (LuciadLightspeed)
LUCY-1814
Removed the unused text field in the error dialog which appears when attempting to copy an
invalid object from a geodetic layer to a grid layer.
ImprovementLuciadLightspeed
LMAP-2945
A new method setHaloPinEnabled in TLcdGXYStampLabelPainter enables the halo effect for label
pins.
Bug fixLuciadLightspeed
LMAP-2965
The default input stream factories now open files in a more efficient way
on Windows.
Bug fixLucy (LuciadLightspeed)
LUCY-1850
The change style actions in the drawing toolbar now use correct undo and redo names.
Bug fixLucy (LuciadLightspeed)
The ALcyDomainObjectConverter in the drawing addon now correctly indicates it is impossible to
create an TLcdLonLatHeightDome, TLcdLonLatHeightSphere and/or a TLcdLonLatHeightBuffer in a
model
with a grid reference.
Bug fixLucy (LuciadLightspeed)
The ALcyDomainObjectConverter in the drawing addon now only converts shapes to an extruded shape
when
the target model allows extruded version of such a shape.
Bug fixLucy (LuciadLightspeed)
The ALcyDomainObjectConverter no longer transforms 3D polygons to 2D polygons when converting
from
one drawing layer to another drawing layer.
Bug fixLucy (LuciadLightspeed)
The ALcyDomainObjectConverters from the drawing addon no longer allow to adapt an ILcdPoint to
an ILcdBounds instance.
Bug fixLuciadLightspeed
LMAP-2943
TLcdEarthRepository#dispose() now works correctly when the thread has been interrupted.
Bug fixLucy (LuciadLightspeed)
LUCY-1847
TLcyEarthAddOn registered incorrect model content type provider.
Bug fixLuciadLightspeed
LMAP-2961
A bug in the halo rendering algorithm, causing the halo to become invisible when printed at a
resolution higher than 72 DPI, was fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-1792
Images in section 3.11 of the Lucy developer guide now refer to drawing
instead of redlining.
Bug fixLucy (LuciadLightspeed)
LUCY-1774
TLcyLookAndFeelAddOn now ignores a non-existing look and feel instead of
setting an (invalid) empty look and feel.
Bug fixLucy (LuciadLightspeed)
Copy/paste operations can now be properly undone/redone in a
drawing layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1627
Accelerator keys now also work in case a floating application pane has the focus.
Bug fixLuciadLightspeed
LMAP-2959
The ILcdGXYView implementations used to fire a TLcdViewInvalidationEvent when a pan operation
was ignored
because of an empty pan delta.
Bug fixLuciadLightspeed
LMAP-1430
TLcdUTMZonePainter: the labels of the main zones now follow the angles of the parallels, making
them usable
on a rotated map and on other projections.
Bug fixLuciadLightspeed
LMAP-2307, LMAP-822
TLcdGXYViewFitAction's results for non-bounded models have been improved.
Bug fixLuciadLightspeed
LMAP-505
In some cases, TLcdGXYFitGXYViewFromXYWorldBounds#fitGXYViewFromXYWorldBounds
would set an infinite or zero scale on the view.
Bug fixLuciadLightspeed
LMAP-2871
Added a workaround for JDK regression 6789982 that caused the wrong selection rectangle to
appear
when dragging on the map after opening a popup menu. The incomplete drag operation is now
ignored.
Bug fixLucy (LuciadLightspeed)
LUCY-1841
TLcyDrawingAddOn: the drawing addon no longer throws a NullPointerException when Lucy is
shutting down and a layer is removed.
Bug fixLuciadLightspeed
Some tileset implementations threw a null pointer exception when calling isFormatSupported
with a format that
had no class.
Bug fixLucy (LuciadLightspeed)
LUCY-1816
Changing the name of a PIM track in the properties panel is now immediatelly visible on the map.
Bug fixLucy (LuciadLightspeed)
LUCY-1813
The on-the-fly validation of the distance and altitude field in the polyline properties panel
used to show an inconsistent behavior compared to the other fields.
Bug fixLucy (LuciadLightspeed)
LUCY-1817
Adjusted the behavior of the arc(band) properties panel. The maximum value of the arc angle is
set to 360 degrees. Bigger values are clipped to 360 degrees.
Bug fixLucy (LuciadLightspeed)
LUCY-1815
Setting the height of a polyline above the terrain in a vertical view now immediately updates
the values in
the properties panel of the selected polyline.
Bug fixLucy (LuciadLightspeed)
Fixed the background color for a number of components in the drawing toolbar. Under some LaF's
(e.g. Nimbus)
these components incorrectly showed up with a blue background.
Bug fixLucy (LuciadLightspeed)
LUCY-1708
Making lines perpendicular using the action of the lucy drawing addon now correctly
notifies the model such that (for instance) the 3D view is now correctly updated.
Bug fixWeather & Environment Standards
LMAP-2963
com.luciad.format.grib.gxy.TLcdGRIBWindIcon now draws filled squares for
wind speeds over 100 knots.
Bug fixWeather & Environment Standards
LMAP-2960
com.luciad.format.grib.gxy.TLcdGRIBWindIcon now draws correctly oriented
wind barbs for GRIB data with a direction/strength parameterization.
Upgrade considerationLuciadLightspeed
LMAP-2873
The getBounds method of TLcdGXYLayer did not respect the mode argument.
To obtain the same result as before, the passed argument should be ILcdGXYLayer.ALL |
ILcdGXYLayer.BODIES.
8.2.01
ImprovementLucy (LuciadLightspeed)
LUCY-1780
TLcyDrawingTEAAddOn API now includes methods to deal with preferences using TLcyPreferencesTool.
ImprovementLucy (LuciadLightspeed)
LUCY-1781
The drawing samples now show an info panel that describes what they do.
ImprovementLucy (LuciadLightspeed)
LUCY-313
A number of the draw actions in the drawing toolbar have been renamed (and reordered) to make
them more consistent.
A clear distinction is made between actions that convert existing objects and actions that
create new objects.
ImprovementLucy (LuciadLightspeed)
LUCY-1787
Extract offset line action in the drawing toolbar now creates a 3D polyline when
a 3D polyline is selected as source.
ImprovementAviation Standards
The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath has been made more robust
to correctly handle airspace segments of type ARC that are very small.
Bug fixLuciadLightspeed
LMAP-2852
TLcdListLayout now picks a better default value for its component height.
Bug fixLucy (LuciadLightspeed)
LUCY-1832
TLcyMapAddOn: opening a workspace without having the 'saveViewAsImageAction' (e.g.
TLcyMapAddOn.saveViewAsImageAction.menuBar.insert=false in map_addon.cfg) used to throw a
NullPointerException.
Bug fixLucy (LuciadLightspeed)
LUCY-1760
TLcyStringPropertiesCodec: handling of white space is improved (now preserves \n in round trip)
and documented.
Bug fixLuciadLightspeed
LMAP-2929
TLcdMultilevelGridCoordinateModel#elementChanged would sometimes throw an exception.
Bug fixLucy (LuciadLightspeed)
Fixed encoding/decoding of earth terrains that are created with the terrain wizard and
changed afterwards.
Bug fixLucy (LuciadLightspeed)
Fixed missing elevation data if too few levels are used for an earth terrain.
Bug fixLucy (LuciadLightspeed)
LUCY-1831
Fixed incorrect values in earth terrain wizard quality settings step.
Bug fixLucy (LuciadLightspeed)
LMAP-2923
Fixed bounds painting (instead of data) on some levels of earth terrains.
Bug fixLucy (LuciadLightspeed)
LUCY-1830
Fixed earth terrain wizard progress bar to only sweep once.
Bug fixLucy (LuciadLightspeed)
LUCY-1829
Improved error handling of Earth addon workspace codec.
Bug fixLuciadLightspeed
LMAP-2921
The implementation of the indexOf() method in the GML feature collection implementation now
returns -1 instead of throwing an IndexOutOfBoundsException, as specified in
ILcdIntegerIndexedModel.
Bug fixLucy (LuciadLightspeed)
LUCY-1796
TLcyDefaultDecodersAddOn/TLcyDrawingAddOn: when the TLcyModelReferenceAddOn is not plugged and
a .shp file is loaded/imported, no NullPointerException is thrown any more.
Bug fixLucy (LuciadLightspeed)
LUCY-1798
TLcyDrawingAddOn: when a new layer is created and a model references is selected in
"Edit|Choose coordinate system", that reference is used as the proposed setting.
Bug fixLucy (LuciadLightspeed)
LUCY-1776
TLcyToteAddOn: menu item is now again parsed from configuration file.
Bug fixLuciadLightspeed
LMAP-2904
ToolBarSW: now adds disabled icons for its buttons, for example used by the undo sample
Bug fixLucy (LuciadLightspeed)
LUCY-1791
Alignment of buttons in drawing toolbar is now also correct when
the toolbar is shown vertically aligned.
Bug fixLucy (LuciadLightspeed)
LUCY-1790, LUCY-1799
When a drawing action needs to modify a drawing layer that is not editable, a dialog
box is shown to ask the user if the layer(s) need to be made editable. The action will
only be performed if the user confirms. Also, customizers for drawing objects are made
ineditable in case the drawing layer is not editable to prevent changing domain object
on a non-editable layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1777
Pressing cancel when adding a new text object to a drawing layer
no longer inserts an empty text object.
Bug fixLucy (LuciadLightspeed)
LUCY-1779
PIM tracks are now pasted as 3D polylines in a drawing layer (was 2D polylines).
Bug fixLucy (LuciadLightspeed)
LUCY-1782
The North arrow when inserted in a drawing layer now points to
the north when rotating map.
Bug fixLucy (LuciadLightspeed)
LUCY-1784
Recent colors are no longer lost in the font chooser dialog of the drawing toolbar.
Bug fixLucy (LuciadLightspeed)
LUCY-1786
Fixed a memory leak that prevented drawing models and layers to be
garbage collected when the map or layer was removed.
Bug fixLucy (LuciadLightspeed)
LUCY-1768
Meridian and parallel painters no longer output failure messages when asked to paint out of
bounds objects.
This is consistent with the other painters.
Bug fixLucy (LuciadLightspeed)
LUCY-1783
The change style actions in the drawing toolbar are now properly disabled when they can't be
applied.
Bug fixLucy (LuciadLightspeed)
LUCY-1785
Minor performance improvement for painting drawing layers.
Bug fixLucy (LuciadLightspeed)
LUCY-1788
A sphere that is created in a drawing layer above a terrain with altitude information (requires
TLcyTEADrawingAddOn)
is now created on top of the terrain surface and not with its center point on the surface.
Bug fixLucy (LuciadLightspeed)
LUCY-1789
Improved error messages when incorrectly trying to extrude shapes in a drawing layer.
Bug fixLuciadLightspeed
LMAP-2867
LonLatHippodrome has a new constructor taking an ellipsoid as
argument.
Bug fixLuciadLightspeed
LMAP-2891
GXYHippodromePainter now correctly translates a hippodrome when moving
multiple
objects.
Bug fixLuciadLightspeed
LMAP-2898
TLcdGXYAsynchronousLayerWrapper used to fire selection events before applying the actual
selection changes.
Bug fixLucy (LuciadLightspeed)
LUCY-1762
TLcyCameraTrackingAddOn: fixed NullPointerExceptions when using a flat earth.
Bug fixLucy (LuciadLightspeed)
LUCY-1797
The 'selectionLabeled' property of layers is now also saved in the workspace.
Bug fixAviation Standards
LMAP-2897
An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath that sometimes
resulted in an incorrect discretized geometry for airspace segments of type ARC_BY_EDGE.
Bug fixDefense Symbology
An issue has been fixed in the MIL-STD 2525b and APP-6A symbol customizers, TLcdMS2525bObjectCustomizer
and TLcdAPP6AObjectCustomizer, that prevented to implement a custom layout by overriding the method
insertCustomizers(int aID[], Customizer aCustomizer[]). Furthermore, the tabbed pane is now
removed automatially from the customizer if one of the two tabs (Graphics or Text) is not available.
Bug fixMaritime Standards
LMAP-2920
A problem with the reading of ISO 8211 input streams containing field terminator characters
as
content of string subfields was fixed.
8.2
ImprovementLuciadLightspeed
ILcdGXYEditor capabilities were added. In case of ambiguity, the first available editor is
chosen,
which works well for simple SLD files where only one symbolizer is available for a given map
scale.
ImprovementLuciadLightspeed
LMAP-2827
ALcdGXYPen: the performance of adaptively drawing lines has been improved in case that
the end points fall outside the projection domain.
ImprovementLuciadLightspeed
TLcdXMLName now has extra methods for conversion of a TLcdXMLName to a QName and vice versa.
ImprovementLuciadLightspeed
A new class TLcdWFSModelDecoderDecorator has been introduced, which serves as a default implementation of
ILcdWFSModelDecoder. It can be used out-of-the-box to support GetFeature responses that use GML 2.1.2 and
GML 3.1.1 , but it can also be extended to support other output formats.
ImprovementLucy (LuciadLightspeed)
LUCY-1761
TLcyMapAddOn / TLcyMapOverviewAddOn: these addons now have configuration option not to restore
the view extents during workspace decoding. This allows for scenarios where the map should
be fitted to a dynamic layer after workspace decoding.
ImprovementLuciadLightspeed
TLcdGXYClippingPainterWrapper is a new wrapper for ILcdGXYPainters which applies
a clip to the Graphics prior to invoking the wrapped painter. This can be
used to clip away unwanted parts of a model, for example from a raster model that
contains some blank areas around its borders.
ImprovementLucy (LuciadLightspeed)
TLcyEarthAddon: this new addon offers support for terrain with the earth framework.
ImprovementLuciadLightspeed
TLcdGXYEditControllerModel2: the user-visible Strings created by this controller model
can now be translated by setting an ILcdStringTranslator on the controller model.
ImprovementLuciadLightspeed
LMAP-2865
TLcdGXYEditController and TLcdGXYEditController2: the undoables generated by the ILcdGXYEditors
no longer need to fire the model change events. The edit controller now takes care of this.
This allows for better composition of editors, as the ILcdGXYEditors no longer have to assume
that the object they are editing is actually contained in the given model.
ImprovementLuciadLightspeed
TLcdAltitudeFormat, TLcdDistanceFormat, TLcdSpeedFormat: parsing now accepts values that are
entered in another unit as the display unit. If for example the parser is set to km, it also
accepts "500m", which is parsed to 0.5km.
ImprovementLucy (LuciadLightspeed)
LUCY-913
It is now possible to configure different icons, names, short descriptions etc. for the actions
that are in different menu bars and tool bars.
ImprovementLucy (LuciadLightspeed)
LUCY-1582
The minimal and maximal radius fields in the property panel of an arc band have been renamed to
inner and outer radius respectively, since those names are more clear. The minimal and maximal
start and end location fields have been renamed accordingly to inner and outer start and end
location.
ImprovementLucy (LuciadLightspeed)
LUCY-994
All actions in action bars of all standard Lucy addons are now fully configurable in the addon
configuration file.
The section on tool and menu bars in the Lucy developer's guide provides detailed instructions
on how to do this.
ImprovementLucy (LuciadLightspeed)
LUCY-1723
The lucy developer guide now documents clearly which action bars are available for
configuration.
ImprovementLucy (LuciadLightspeed)
Most text fields and editable combo boxes now color their background red when an invalid value
is entered.
ImprovementLucy (LuciadLightspeed)
Parsing point coordinates and angles is now more relax. One can for example enter "52 4" to get
52°00'00", 004°00'00".
ImprovementLuciadLightspeed
LMAP-2692
The sample-specific controllers of the following samples now have mouse-wheel support:
- create and edit with mouse
- hippodrome painter
- tooltips on the map
- magnetic north sample
- multigrid samples
- projections sample
ImprovementLuciadLightspeed
The WFS client API has been extended with new functionality to connect with a WFS service:
- A new class TLcdWFSClient has been introduced that facilitates direct communication with a WFS service,
by offering functionality to create and send custom requests, and interpreting their result.
- Requests are modeled by the new interface ILcdOWSRequest, of which three default implementations
exist to represent the mandatory WFS requests: TLcdWFSGetCapabilitiesRequest, TLcdWFSDescribeFeatureTypeRequest
and TLcdWFSGetFeatureRequest.
- The result of a GetCapabilities request is modeled by a TLcdWFSCapabilities
object, as before; the result of a DescribeFeatureType and GetFeature request is modeled by
TLcdOWSInputStream. This new class is an extension of InputStream with the addition of a content type property
and some metadata.
- To allow control over the communication platform used to connect with a service, a new interface
ILcdOWSTransport
has been introduced. This interface is used by TLcdWFSClient for its communication. A default implementation
TLcdOWSHttpTransport
exists with support for the HTTP protocol.
The existing API that defines the concept of a proxy model now makes use of the newly introduced TLcdWFSClient
class:
when creating a proxy model through TLcdWFSProxyModelFactory, a TLcdWFSClient can be set to fully configure
the mechanism used to communicate with a WFS service.
ImprovementLuciadLightspeed
The WCS client API has been extended with new functionality to connect with a WCS service:
- A new class TLcdWCSClient has been introduced that facilitates direct communication with a WCS service,
by offering functionality to create and send custom requests, and interpreting their result.
- Requests are modeled by the new interface ILcdOWSRequest, of which three default implementations
exist to represent the mandatory WCS requests: TLcdWCSGetCapabilitiesRequest, TLcdWCSDescribeCoverageRequest
and TLcdWCSGetCoverageRequest.
- The result of a GetCapabilities request is modeled by a TLcdWCSCapabilities
object, as before; the result of a DescribeCoverage request is modeled by a TLcdWCSCoverageDescription object
and the GetCoverage request by a TLcdOWSInputStream. TLcdOWSInputStream is an extension of InputStream with the
addition of a content type property and some metadata.
- To allow control over the communication platform used to connect with a service, a new interface
ILcdOWSTransport
has been introduced. This interface is used by TLcdWCSClient for its communication. A default implementation
TLcdOWSHttpTransport
exists with support for the HTTP protocol.
The existing API that defines the concept of a proxy model now makes use of the newly introduced TLcdWCSClient
class:
when creating a proxy model through TLcdWCSProxyModelFactory, a TLcdWCSClient can be set to fully configure
the mechanism used to communicate with a WCS service.
ImprovementLuciadLightspeed
TLcdMIFModelEncoder now also has a protected method (write2DText) for encoding text shapes.
ImprovementLuciadLightspeed
The performance of TLcdRenderedImageTile has been improved for warping scenario's.
This tile is typically used when drawing GeoTIFF, TFW, JGW, and TAB files.
ImprovementLucy (LuciadLightspeed)
LUCY-1689
It is now possible to limit the maximum scale to which a map can be zoomed. This is useful
because
at high zoom factors (very small scales), all kinds of visual glitches become apparent.
For more info see the TLcyMapAddOn.mainGXYView.scaleRange property in map_addon.cfg and
the TLcyMapOverviewAddOn.mainGXYView.scaleRange property in mapoverview_addon.cfg.
ImprovementLucy (LuciadLightspeed)
LUCY-1612
When the bounds of the main map in the overview become very
small, they will be painted as a crosshair.
ImprovementLucy (LuciadLightspeed)
LUCY-978
The angle and location parsers are more relaxed. If for example the angle format is set to DD MM
SS
and a simple integer value is used as input it will be automatically converted to the DD MM SS
format.
ImprovementLucy (LuciadLightspeed)
LUCY-1094, LUCY-1628, LUCY-1686
TLcyDrawingAddOn: this new add-on is a replacement for TLcyRedliningAddOn. It is almost
identical in functionality, but offers an API to make customizations. Please refer to the
developer's guide for more details. Please refer to the 'Upgrade Considerations' if you wish
to upgrade to this new add-on.
ImprovementLucy (LuciadLightspeed)
LUCY-1544
All drawing map icons ('resources/drawing/icons/orbat/*.gif') were renamed to '.png'.
ImprovementLucy (LuciadLightspeed)
TLcyToolBar: if actions are added that don't specify an icon, they automatically get one to
prevent that the button is hard to find.
ImprovementLuciadLightspeed
The new package com.luciad.util.altitude contains an abstract mechanism for
point-sampled access to altitude/elevation data. The main interface in this
new package is ILcdAltitudeProvider. This functionality was previously only
available in the TEA Industry Specific Component.
ImprovementLuciadLightspeed
The new Earth Additional Component (located in package com.luciad.earth) introduces support for global high-resolution
3D terrain. The Additional Component provides support for preprocessing raster and elevation
data into a 3D terrain database, as well as painters and other tools to work
with such terrain databases. Please refer to the developer guide for an
introduction to this Additional Component.
ImprovementOGC Server
LMAP-2830
A new factory method createModelProvider() has been introduced in ALcdOGCWFSCommandDispatcherFactory, which
is used to create an ILcdOGCModelProvider. This allows to create custom ILcdOGCModelProvider implementations
to load data at the server.
Bug fixLuciadLightspeed
LMAP-2797
TLcdGXYAsynchronousPaintQueue: a deadlock could occur when asynchronous painting tried to access
the asynchronous view's getGraphics method.
Bug fixLuciadLightspeed
Some input streams were not closed when an exception occured during XML decoding. This has
been fixed now.
Bug fixLuciadLightspeed
LMAP-2838
TLcdWKTModelReferenceDecoder now supports the geodetic datum
"D_North_American_1983".
Bug fixLuciadLightspeed
LMAP-2887
The uom attribute of the GML MeasureType is now decoded/encoded as an unqualified attribute
as specified in the GML standard, instead of a qualified attribute.
Bug fixLuciadLightspeed
LMAP-2879
TLcdColorMapCustomizer: The set ILcdStringTranslator was not used for tool tips of the buttons.
Bug fixLuciadLightspeed
LMAP-2874
A new protected method paintPin allows to customize TLcdGXYStampLabelPainter's label pin.
Bug fixLuciadLightspeed
LMAP-2872
TLcdGXYDensityLayer now correctly handles 16-bits IndexColorModels.
Bug fixLucy (LuciadLightspeed)
LUCY-1759
The map's edit controller now preserves selections upon right click and
inverts selections correctly in combination with the shift key.
Bug fixLucy (LuciadLightspeed)
LUCY-1740
TableView: the table selection could be cleared when a model change event is fired.
Bug fixLucy (LuciadLightspeed)
LUCY-1752
The TEA layers can now be updated when an elevation layer is added or removed.
Bug fixLucy (LuciadLightspeed)
LUCY-1562
When an error dialog popped up, and the "Show this dialog again" was disabled, a few more
dialogs could still pop up.
Bug fixLucy (LuciadLightspeed)
LUCY-1704
Startup scripts (Lucy.sh and LucyDebug.sh) now work correctly with links.
Bug fixLucy (LuciadLightspeed)
LUCY-1673
Fixed a number of typos and spelling errors in the lucy developer guide.
Bug fixLucy (LuciadLightspeed)
LUCY-1730
TLcyPrintAddOn: When a map is added, default settings for page format etc. are immediately
calculated.
This is now postponed until it is really needed. This saves both cpu and memory resources.
Bug fixLucy (LuciadLightspeed)
LUCY-1727
TEA AddOns: Where the user enters a text value in the TEA panels (e.g. the altitude, the angle,
...),
the background of the textfield is colored red when the value is invalid.
Bug fixLucy (LuciadLightspeed)
LUCY-1638
TEA AddOns: Support is added for ILcdShapeList's containing one object.
Bug fixLuciadLightspeed
TLcdMIFModelEncoder and TLcdMIFModelDecoder now properly handle text spanning multiple
lines.
Bug fixLucy (LuciadLightspeed)
LUCY-1063
Values in the transparency field of the color chooser are submitted when the fields looses
focus.
Bug fixLucy (LuciadLightspeed)
LUCY-1139
The size of the icons in the drawing toolbar addon has been adapted to match all the supported
look and feels, including the motif look and feel.
Bug fixDatabase Connectors
Corrected the recently improved UPDATE statements.
Bug fixDatabase Connectors
Corrected the recently improved UPDATE statements.
Bug fixOGC Server
LMAP-2848
The XML Schema reference in a response to a WFS 1.1.0 GetFeature request now refers
to a WFS 1.1.0 DescribeFeatureType request instead of a request for version 1.0.0.
Bug fixOGC Server
LMAP-2845
The XML Schema response to a WFS 1.1.0 DescribeFeatureType request now refers to the GML 3.1.1 XML schemas
instead of to the GML 2.1.2 XML schemas.
Bug fixTerrain Analysis Engine
LMAP-2857
TLcdLOSPropagationFunctionFixedHeight: the propagation now returns a correct result when both the minimum and
maximum vertical angles are larger than 90 degrees.
Bug fixAviation Standards
A custom ALcdAISObjectFactory configured on the ARINC handler for Procedure records
through TLcdARINCProcedureHandler#setDomainFactory was not used for all decoded procedures.
Bug fixDefense Standards
LMAP-2866
A NullPointerException thrown by the TLcdVPFLibrary constructors is fixed now.
Bug fixRadar Connectors
LMAP-2880
TLcdASDIFileReplayInputStream: no longer throws IOExceptions due to 'Pipe not connected' errors.
Bug fixRadar Connectors
LMAP-2881
TLcdASTERIXFinalReplayInputStream: no longer throws IOExceptions due to 'Pipe not connected'
Upgrade considerationLuciadLightspeed
The use of com.luciad.format.xml.TLcdXMLName in the WFS client API has been removed in favor
of javax.xml.namespace.QName, which is the Java equivalent of this class. This affects the
following classes and methods:
- TLcdWFSProxyModelFactory#createProxyModel()
- TLcdWFSProxyModelDescriptor#getFeatureTypeName() and constructor
- TLcdWFSProxyModel#setGeometryPropertyName() and getGeometryPropertyName()
- TLcdWFSFeatureType#setName() and getName()
The methods TLcdWFSFeatureType#setNameSpacePrefix() and getNameSpacePrefix() have been removed,
because the prefix information is already contained in the QName object.
Implementations can easily upgrade by replacing 'TLcdXMLName.getInstance("namespace", "localPart")'
with 'new QName("namespace", "localPart")', or by invoking TLcdXMLName#asQName on an existing
TLcdXMLName instance.
Although QName is only available since JDK 1.5, a backport library ws-commons-java5-1.0.1.jar
is provided with LuciadMap to have it also in JDK 1.4.
Upgrade considerationLucy (LuciadLightspeed)
TLcySafeGuardFormatWrapper: used to override some create methods and make them public, while
they were protected in the super-class. They are now protected as well. In the highly unlikely
event these methods were used outside of this class, they can be replaced with the matching
getter.
Upgrade considerationLucy (LuciadLightspeed)
TLcyRedliningAddOn: this add-on is now deprecated, and will be removed for version 9.0. A new
TLcyDrawingAddOn is available as a replacement.
Upgrade instructions
Please perform these steps if you wish to upgrade to the TLcyDrawingAddOn (they are applied
already on Lucy out-of-the-box):
- In addons.xml, replace the 'addon' element for TLcyRedliningAddOn with the ones for
TLcyDrawingAddOn, TLcyDrawingTEAAddOn (optional), TLcyDrawingOpenGLAddOn (optional) and
TLcyFormatBarAddOn
- Remove the 'resources/lucy/redlining' directory in favor of the new
'resources/lucy/drawing' directory.
Any customizations made to 'redlining_addon.cfg' now need to applied in
'TLcyDrawingAddOn.cfg'
Users of the help ID's
If making use of the help ID's (see ALcyHelpManager), search and replace 'redlining' to
'drawing'.
Some help ID's have also been changed. In order to restore the old values copy-paste the
following
code snippet into 'resources/lucy/drawing/TLcyDrawingAddOn.cfg'.
TLcyDrawingAddOn.loadAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.load
TLcyDrawingAddOn.saveAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.save
TLcyDrawingAddOn.polyline.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.polyline
TLcyDrawingAddOn.polyline3D.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.polyline3d
TLcyDrawingAddOn.polygon.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.polygon
TLcyDrawingAddOn.bounds.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.rectangle
TLcyDrawingAddOn.point.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.point
TLcyDrawingAddOn.text.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.text
TLcyDrawingAddOn.arc.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.arc
TLcyDrawingAddOn.arcBand.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.arcband
TLcyDrawingAddOn.circle.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.circle
TLcyDrawingAddOn.ellipse.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.ellipse
TLcyDrawingAddOn.northarrowpoint.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.northarrow
TLcyDrawingAddOn.parallel.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.parallel_shape
TLcyDrawingAddOn.meridian.newActiveSettable.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.meridian_shape
TLcyDrawingAddOn.lineColorAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.linecolor
TLcyDrawingAddOn.fillColorMenu.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.fillcolor
TLcyDrawingAddOn.lineSizeMenu.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.linesize
TLcyDrawingAddOn.lineStyleMenu.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.linestyle
TLcyDrawingAddOn.arrowStyleMenu.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.arrows
TLcyDrawingAddOn.pointStyleMenu.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.pointicon
TLcyDrawingAddOn.fontAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.font
TLcyDrawingAddOn.intersectionAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.intersection
TLcyDrawingAddOn.polygonIntersectionAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.polygon_intersection
TLcyDrawingAddOn.polygonUnionAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.polygon_union
TLcyDrawingAddOn.rightAngleAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.rightangle
TLcyDrawingAddOn.bufferAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.buffer
TLcyDrawingAddOn.buffer3DAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.llhbuffer
TLcyDrawingAddOn.extractOffsetLineAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.extract_parallel
TLcyDrawingAddOn.extractPointAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.extract_point
TLcyDrawingAddOn.createExtrudedAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.create
extruded
TLcyDrawingAddOn.createDomeAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.create
dome
TLcyDrawingAddOn.createSphereAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.create
sphere
TLcyDrawingAddOn.deleteAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.delete
TLcyDrawingAddOn.groupAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.group
TLcyDrawingAddOn.ungroupAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.ungroup
TLcyDrawingAddOn.duplicateAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.duplicate
TLcyDrawingAddOn.newLayerAction.drawingToolBar.helpID=com.luciad.lucy.addons.drawing.drawingtoolbar.newlayer
and the following code snippet into 'resources/lucy/drawing/tea/TLcyDrawingTEAAddOn.cfg'
TLcyDrawingTEAAddOn.terrainFollowingActiveSettable.drawingToolBar.helpID=terrainFollowingMode
Notice that even when copy-pasting
these snippets in the configuration files the search and replace of 'redlining' must still be
done.
Upgrade considerationLuciadLightspeed
The WCS client API no longer enforces to represent GetCoverage responses as java.awt.image.RenderedImage objects;
instead, they are now modeled as a generic tile (ILcdTile), to allow support for responses that can not be converted
to an image. For this purpose, the interface ILcdWCSCoverageDecoder has been replaced with
ILcdWCSCoverageTileDecoder. The class TLcdWCSProxyModelFactory has been updated accordingly, and now
accepts ILcdWCSCoverageTileDecoder implementations to support other formats than the default format (GeoTIFF).
Existing implementations of ILcdWCSCoverageDecoder need to converted to the new interface, which can
be done by wrapping the RenderedImage in a TLcdRenderedImageTile. Consequently, this might require an update
when TLcdWCSProxyModelFactory#createProxyModel is used.
Upgrade considerationLucy (LuciadLightspeed)
ALcyGUIFactory: now has support for the creation of ILcyActiveSettable's. This introduces a
new abstract method and a new constructor argument. In the very unlikely event a direct
extensions of this class was made, it needs to be adapted. The new method can return "null",
for the constructor argument "new int[]{}" can be used.
Upgrade considerationOGC Server
The interface com.luciad.ogc.common.ILcdKVPRequest, used by the WFS and WCS server to represent a key-value pair request,
has been extended with a new method getParameterNames(). It returns a list of all the parameters that are
specified in the request. Although unlikely, this change requires an update if there are
custom implementations of this interface.
Upgrade considerationOGC Server
LMAP-2723
To allow a WFS Server implementation to serve data without geometry, the WFS Server API no longer
enforces the use of ILcd2DBoundsIndexedModel when decoding models. The API is now compatible with regular
ILcdModel implementations, so that implementations like TLcdVectorModel can be used that do not require objects
to have a geometric extent.
To be able to support this, the return type of the following methods is now ILcdModel instead of
ILcd2DBoundsIndexedModel:
- ILcdOGCModelProvider#getModel,
- ILcdWFSFilteredModelFactory#createFilteredModel,
- TLcdWFSFilteredModelFactory#createFilteredModel.
This might require an update, if there are explicit dependencies on the previous return type.
8.1
8.1.14
ImprovementLuciadLightspeed
LMAP-2818
The database package now has improved connection pooling when using pooling
JDBC drivers like Proxool. Connections are now also pooled across models
that access different tables and columns, whenever possible.
Bug fixLuciadLightspeed
LMAP-2661
The database package no longer opens an unnecessary additional database
connection per requested connection (bug present since version 8.1). This
mainly affected connection pooling with JDBC drivers like Proxool.
Bug fixDatabase Connectors
LMAP-2859
The database package no longer opens an unnecessary additional database
connection per requested connection (bug present since version 8.1). This
mainly affected connection pooling with JDBC drivers like Proxool.
Bug fixDatabase Connectors
LMAP-2859
The database package no longer opens an unnecessary additional database
connection per requested connection (bug present since version 8.1). This
mainly affected connection pooling with JDBC drivers like Proxool.
Bug fixDatabase Connectors
LMAP-2859
The database package no longer opens an unnecessary additional database
connection per requested connection (bug present since version 8.1). This
mainly affected connection pooling with JDBC drivers like Proxool.
Bug fixDatabase Connectors
LMAP-2859
The database package no longer opens an unnecessary additional database
connection per requested connection (bug present since version 8.1). This
mainly affected connection pooling with JDBC drivers like Proxool.
8.1.13
ImprovementLuciadLightspeed
LMAP-2846
View label painter exceptions are now handled and logged in a similar way as paint exceptions.
ImprovementInfrastructure Standards
LMAP-2841
com.luciad.format.dgn.TLcdDGNModelDecoder has been fixed to handle some types
of multi-lines correctly.
Bug fixLuciadLightspeed
LMAP-2811
If a model object was removed while being displayed on the select controller's popup menu, the
object could
temporarily reappear when selected.
Bug fixLuciadLightspeed
LMAP-2853
TLcdGXYAsynchronousPaintQueue is now more resilient to painting exceptions.
Bug fixLuciadLightspeed
LMAP-2661
TLcdDefaultVVGridRenderer#getOrdinateLabelWidth now also considers the label grid font.
Bug fixLucy (LuciadLightspeed)
LUCY-1650
The buttons of color map customizer in TEA addons can now be translated.
Bug fixLuciadLightspeed
LMAP-2840
TLcdGXYCirclePainter: used to thrown a NullPointerException when clone was called and its
properties 'pointFormat' or 'distanceFormat' were null.
Bug fixLuciadLightspeed
LMAP-2839
TLcdGXYLayer now fires property change events for the property labelsEditableSupported.
Bug fixLuciadLightspeed
LMAP-2839
TLcdGXYLayer now fires property change events for the properties labeledSupported and
editableSupported.
Bug fixLuciadLightspeed
LMAP-2734
Clarified TLcdGXYFeaturedPolylineLabelPainter's javadoc, stating that the class also labels
featured
ILcdShapeLists
containing a point list as the first element.
Bug fixLucy (LuciadLightspeed)
LUCY-1707
In some cases, the redlining toolbar's "create perpendicular" action could cause a stack
overflow.
Bug fixLuciadLightspeed
LMAP-2834
GXYHippodromePainter now uses the hippodrome itself to determine the
latter's
creation state.
Bug fixLuciadLightspeed
LMAP-2835
LonLatHippodrome and XYHippodrome (samples.gxy.hippodromePainter) used to call clearCache too late
Bug fixLuciadLightspeed
LMAP-2804
TLcdGXYLabelPainter and halo-using painters no longer hold strong references to model objects,
solving possible memory leaks.
Also, they now cache information using the model object's identity.
Bug fixDatabase Connectors
LMAP-2820
Multipoints are now correctly encoded and decoded.
Bug fixDefense Standards
LMAP-2843
TLcdNITFModelDecoder now correctly decodes multiple Tagged Record Extensions
in image segments.
Bug fixDefense Symbology
LMAP-2856
The MIL-STD 2525b and APP-6A symbol customizers, TLcdMS2525bObjectCustomizer and TLcdAPP6AObjectCustomizer,
did not correctly reflect the credibility rating for the modifier 'Evaluation Rating': values 0 - 5
were used instead of 1 - 6.
Bug fixDefense Symbology
Invoking setObject on TLcdMS2525bObjectCustomizer or TLcdAPP6AObjectCustomizer immediately after a
PropertyChangeEvent
was received resulted in a StackOverException in some cases.
8.1.12
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v6.17.
ImprovementLuciadLightspeed
TLcdDatabaseGXYPainterProvider.java now also provides a painter for point
lists.
Bug fixLuciadLightspeed
LMAP-2837
A bug in the resolving of XML schema substitution groups has been fixed. Classes using the
substitution
group mechanism (TLcdXMLTypedElementReaderProvider, TLcdXMLTypedElementAdapterProvider, ...)
now resolve
substitutions correctly.
Bug fixLuciadLightspeed
LMAP-2690
If a model is changed in a non-awt thread, the associated asynchronous layer now repaints
correctly.
Bug fixDefense Standards
LMAP-2735
ILcdVPFFeature.getVPFFeatureClassEntry() always returned 0 for area features. This has been
fixed.
8.1.11
ImprovementLuciadLightspeed
The default implementation of ILcdWFSModelDecoder, which is used by
TLcdWFSProxyModelFactory, has been made more robust: it can now interpret
both WFS 1.0.0 and 1.1.0 service exception reports, regardless of the
version being used by the initial request.
Bug fixLuciadLightspeed
LMAP-2829
The OGC filter encoder classes provided by TLcdOGCFilterElementAdapterProvider10 (OGC filter 1.0)
and TLcdOGCFilterElementAdapterProvider11 (OGC filter 1.1) now encode ILcdPoint shapes
inside a TLcdOGCBinarySpatialOperator to GML Points instead of GML Envelopes.
Bug fixLuciadLightspeed
LMAP-2813
SLD now also supports TLcdLonLatHeightBuffer objects, which used to throw a ClassCastException.
Bug fixLuciadLightspeed
A bug in TLcdXMLElement.getContentCount(TLcdXMLName) was fixed.
Bug fixReal-time Engine
LMAP-2825
TLcdSimulatorModelList: did not set the date of newly added ILcdSimulatorModel's, leaving
it in an inconsistent state: not all sub-models necessarily had the same date.
8.1.10
ImprovementLuciadLightspeed
LMAP-2824
TLcdNIMA8350GeodeticDatumFactory now supports the datum string NORTH_AMERICAN_1983 and
derivatives.
ImprovementLucy (LuciadLightspeed)
Workspace loading no longer fails when a VPF database, used within the workspace, could not be
resolved.
Bug fixLuciadLightspeed
LMAP-2826
TLcdFeaturedShapeList.equals() no longer throws a NullPointerException if one of the features in
the shapelists
to be compared is null.
Bug fixLuciadLightspeed
LMAP-2821
The contains3D methods of TLcdXYZPolygon and TLcdLonLatHeightPolygon are improved; they used to
return true if
and
only if a point was located on one of the edges of the polygon. They now also return true for
points inside the
polygon (using a contains2D test), given that the z value of the point lies within the z-range
of the polygon's
bounds.
Bug fixLuciadLightspeed
LMAP-2822
TLcdLonLatHeightPolygon.getBounds() now computes its bounds assuming geodetic lines between its
points, instead
of
cartesian lines.
Bug fixLucy (LuciadLightspeed)
LUCY-1734
TLcyRedliningAddOn: save button on the redlining tool bar used to be enabled even if no
redlining layers were available for saving.
Bug fixLuciadLightspeed
LMAP-2674
Models produced by TLcdMultilevelTiledModelDecoder suffered from a race
condition when the same MTM model was used in multiple layers.
The issue has been fixed by synchronizing access to the model decoder in
TLcdSoft2DBoundsIndexedModel.
Bug fixLuciadLightspeed
LMAP-2815
TLcdSelectionSupport now avoids an endless loop when a selection listener calls
fireCollectedSelectionChanges().
Bug fixLucy (LuciadLightspeed)
LUCY-1732
TLcyFileWorkspaceCodec: used to thrown an IndexOutOfBoundsException if a parent directory of
the workspace file was encoded using encodePath.
Bug fixLucy (LuciadLightspeed)
LUCY-1729
TLcySelectionEditorAddOn: the message "No valid objects selected" could briefly show up when
the panel was activated while a valid object was selected.
Bug fixLucy (LuciadLightspeed)
LUCY-1726
TLcyCompositeGXYLayerDecoder: if a decoder was removed that wasn't present, an
ArrayIndexOutOfBoundsException was thrown. TLcyCompositeGXYLayerEncoder did not properly
remove the associated ALcyFileTypeDescriptor when using removeGXYLayerEncoder.
Bug fixLuciadLightspeed
TLcdGXYDragRectangleController: XOR-mode painting has been disabled by default, to avoid
performance problems
with Sun's recent graphics pipeline implementations.
Bug fixLuciadLightspeed
LMAP-2780
TLcdGXYDragRectangleController: the method to deactivate the XOR mode paint functionality is no
longer
deprecated.
Instead, a new alternative for the XOR mode has been added: halo painting.
Bug fixDefense Standards
LMAP-2800
TLcdUSRPModelDecoder now accepts .IMG and .SOU extensions, instead of the
more restrictive 01.IMG and 01.SOU.
8.1.09
ImprovementAviation Standards
LMAP-2814
The procedure trajectory class com.luciad.ais.model.procedure.TLcdProcedureTrajectory now
uses a more efficient way to store the calculated geometry of a procedure. This results
in a reduction of the memory needed to load a procedure. Furthermore, the geometrical representation
is now stored using java.lang.ref.SoftReference objects, allowing the geometry to be garbage-collected
when memory is running low. This avoids throwing OutOfMemoryErrors at runtime when loading
large procedure datasets.
Bug fixLuciadLightspeed
LMAP-2823
TLcdGXYViewJPanelLightWeight would send out view invalidation events on every repaint when in
DISABLE_CACHING
mode.
Bug fixLuciadLightspeed
LMAP-2683
TLcdEllipsoid.rhumblinePoint now handles robustly the case when the start
point is the South Pole.
Bug fixLuciadLightspeed
LMAP-2674
Models produced by TLcdMultilevelTiledModelDecoder suffered from a race
condition when the same MTM model was used in multiple layers.
The issue has been fixed by synchronizing access to the model decoder in
TLcdSoft2DBoundsIndexedModel.
Bug fixAviation Standards
LMAP-2817
The ARINC handler for Enroute Airway records, TLcdARINCEnrouteAirwayHandler, now initializes
the model descriptor TLcdARINCEnrouteAirwayModelDescriptor with the descriptors for the navaids
DME, VOR, NDB and TACAN. Before, this was only done for the waypoint and route segment descriptors.
8.1.08
Bug fixLuciadLightspeed
A bug in the encoding of some UCUM units has been fixed.
8.1.07
Bug fixLuciadLightspeed
LMAP-2808
TLcdGeoTIFFModelEncoder (as updated in LMAP-2772) now again properly closes
the output streams that it creates.
Upgrade considerationAviation Standards
LMAP-2782
The list of features to uniquely define an object (see ILcdARINCHandler#getKeyFeatureNames)
has been updated for the following set of ARINC handlers:
- TLcdARINCWayPointHandler: ILcdARINCWayPointFeature.IDENTIFIER, ILcdARINCWayPointFeature.ICAO_REGION, ILcdARINCWayPointFeature.REGION_CODE
- TLcdARINCAerodromeHandler: ILcdARINCAerodromeFeature.IDENTIFICATION, ILcdARINCAerodromeFeature.ICAO_REGION
- TLcdARINCDMEHandler: ILcdARINCDMEFeature.IDENTIFIER, ILcdARINCDMEFeature.ICAO_REGION, ILcdARINCDMEFeature.NAVAID_CLASS
- TLcdARINCVORHandler: ILcdARINCVORFeature.IDENTIFIER, ILcdARINCVORFeature.ICAO_REGION, ILcdARINCVORFeature.NAVAID_CLASS
- TLcdARINCTACANHandler: ILcdARINCTACANFeature.IDENTIFIER, ILcdARINCTACANFeature.ICAO_REGION, ILcdARINCTACANFeature.NAVAID_CLASS
- TLcdARINCNDBHandler: ILcdARINCNDBFeature.IDENTIFIER, ILcdARINCNDBFeature.ICAO_REGION, ILcdARINCNDBFeature.NAVAID_CLASS
- TLcdARINCMarkerHandler: ILcdARINCMarkerFeature.AIRPORT_ID, ILcdARINCMarkerFeature.RUNWAY_ID, ILcdARINCMarkerFeature.IDENTIFIER,
ILcdARINCMarkerFeature.MARKER_TYPE
The previous list of features in these handlers did not uniquely define the decoded objects.
Because duplicates are ignored, this resulted in too few objects in the decoded models.
The handlers TLcdARINCEnrouteAirwayHandler, TLcdARINCHoldingHandler and TLcdARINCProcedureHandler
have been updated accordingly, to take into account the new list of features when retrieving an object
from one of the decoded models (e.g., a procedure that refers to a waypoint).
This results in an improved and more accurate representation of the
decoded objects, when previously some referred objects could not be found.
If there is an explicit dependency on the previous list of features, this might require
some implementation changes. For example, if the previous list of features was used as a unique index
on the decoded models, it should now be used as a normal index that can return multiple objects instead of only one.
8.1.06
ImprovementLuciadLightspeed
LMAP-2771
TLcdGeoTIFFModelEncoder and TLcdGeoTIFFModelDecoder now provide access to
TIFF tags.
ImprovementLuciadLightspeed
LMAP-2772
TLcdGeoTIFFModelEncoder now provides the option to save large (16-bits)
color maps along with the images.
ImprovementLucy (LuciadLightspeed)
LUCY-1709
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: help ID's are now registered for the
client
dialogs and layer customizer.
ImprovementLuciadLightspeed
Support for ILcdISO19103Measure has been extended with some extra units. The GML decoder and
encoder now support the
following units (UCUM
notation):m,s,g,rad,K,Pa,[nmi_i],[mi_us],[kn_i],[ft_i],deg,gon,Cel,[degF],m/s,km/h,[nmi_i]/s,
[ft_i]/min,km and hPa. A bug in the conversion from Celsius to Kelvin units has been fixed.
ImprovementLucy (LuciadLightspeed)
TLcyWFSClientAddOn and TLcyWCSClientAddOn now allow the name of the file
containing the predefined URL list to be configured via the addon
configuration file.
Bug fixLuciadLightspeed
LMAP-2793
TLcdGXYAsynchronousPaintQueue: reduced the memory overhead for asynchronously painted labels in
combination with a non-zero border factor.
Bug fixLucy (LuciadLightspeed)
LUCY-1468
TLcyG4JAddOn: added method removePropertyChangeListener.
Bug fixLucy (LuciadLightspeed)
LMAP-2791
TLcyG4JAddOn: TLcyG4JAddOn did not fire "GLView" event when view was disposed, only legacy
"G4JView" property.
Bug fixLucy (LuciadLightspeed)
LUCY-1724
TLcyVPFDecoderAddOn.setDatabasePath no longer throws a NullPointerException when the path points
to
a directory instead of a DHT or LAT file.
Bug fixLuciadLightspeed
LMAP-2774
The methods setRequestProperty(String, String) and setEntityLocation(String, URL) in
TLcdOGCWMSProxyModelDecoder now also accept null as property value or location value.
Bug fixLuciadLightspeed
LMAP-2698, LMAP-2792
ALcdGXYSmartController: in some situations, modal dialog windows could cause unwanted pan
behavior.
Bug fixLucy (LuciadLightspeed)
LUCY-1722
TLcyAlwaysFitJToolBar: when adding buttons while the tool bar was already visible on screen,
and after the look and feel was changed once, the border of the newly added buttons used to be
missing.
Bug fixLuciadLightspeed
LMAP-2779
The GML3 model encoder can now encode polygons with 0 points.
Bug fixLuciadLightspeed
LMAP-2758
TLcdRangeSlider: the range slider no longer chops off large labels and reduces the horizontal
slider size
to accommodate the labels at the edges.
Bug fixLucy (LuciadLightspeed)
LUCY-1591
TLcyWorkspaceAddOn: saving a workspace when closing Lucy used to throw exceptions under
some circumstances.
Bug fixLucy (LuciadLightspeed)
LUCY-1715
The 'includeConfig' feature was broken for the configuration file of TLcyMain
(normally 'lucy.cfg').
Bug fixLuciadLightspeed
LMAP-2443
TLcdGXYEditController2: If an editable label overlaps with a filled object, such as a circle, it
now moves the label if both the label and the object are touched (instead of the object).
Bug fixLuciadLightspeed
LMAP-2775
TLcdRangeSlider: the range slider now always makes sure that a ComponentUI class is available
for the range slider.
Bug fixLuciadLightspeed
LMAP-2357
TLcdGXYShapeListPainter's getCreationClickCount method is now consistent with the edit operation
when
the list contains more than one shape.
Bug fixLuciadLightspeed
LMAP-2505
The vertical view sample now auto-adjusts its displayed maximum and minimum grid values.
Bug fixLucy (LuciadLightspeed)
LUCY-1712
TLcyWMSClientAddOn: restoring a workspace with a WMS layer no longer throws a
NullPointerException.
Bug fixLuciadLightspeed
LMAP-2770
The UPS grid layer is no longer painted on top of all other layers.
Bug fixLuciadLightspeed
The CADRG decoder sample no longer throws an AccessControlException when
run in a browser.
Bug fixLuciadLightspeed
LMAP-2769
The advanced ruler controller now correctly sets its line style.
Bug fixLucy (LuciadLightspeed)
LUCY-1711
The vertical view is now automatically updated when elevation data is added or removed.
Bug fixLucy (LuciadLightspeed)
LUCY-1710
Map painting no longer breaks when terminating a controller during a mouse drag.
Bug fixAviation Standards
LMAP-2773
The class TLcdAIXMDefaultLayerFactory now correctly initializes new layers for empty models.
Bug fixDefense Symbology
LMAP-2788
A bug has been fixed in the ILcdGXYEditor for T-shaped tactical symbols in APP-6A and MIL-STD 2525b (e.g., the
'Clear' symbol),
which sometimes resulted in an inaccurate calculation of one of the geometry points.
8.1.05
ImprovementLuciadLightspeed
A new class, TLcdISO19103MeasureTypeCodeExtension, was added to the API. It provides additional
measurement types (currently pressure and temperature) which are not defined by the ISO 19103
standard.
Bug fixDatabase Connectors
TLcdGeoRasterModelDecoder now handles GeoRasters in different schemas than
the user's schema.
Bug fixDatabase Connectors
When updating elements in a database model, the UPDATE statements no longer
rewrite the values of the primary feature, since they don't change.
Bug fixGraph and Routing Engine
LMAP-2747
A bug in the polygon creation algorithm of the GDF model decoder was fixed; holes in GDF faces
are now decoded
correctly.
Bug fixDefense Symbology
LMAP-2766
The rendering of the 'Jamming' ground unit symbol in MIL-STD 2525b and APP-6A (S*G*UUMSEJ*****, 1.X.3.1.2.2.2.1.4)
was not correct and has been fixed.
Bug fixMaritime Standards
LMAP-2765
A bug in TLcdS57Line and TLcdS57Area was fixed. This bug resulted in a NullPointerException
during painting, when the line and area objects were created by hand (outside the S-57 model
decoders).
Bug fixRadar Connectors
LMAP-2768
TLcdASTERIXCategory30: the terminated flag of the track status is now used to determine
which messages belong to different flights.
Bug fixRadar Connectors
LMAP-2762
TLcdASTERIXModelDecoder: the decoder now properly handles messages with information of right
before midnight, but which were received right after midnight.
8.1.04
ImprovementLuciadLightspeed
LMAP-2755
TLcdInterval now implements equals and hashCode.
ImprovementLuciadLightspeed
LMAP-2687
TLcdAWTPath's clip bounds can now be changed using the Java system properties
"com.luciad.view.gxy.TLcdAWTPath.maxOrdinate" and "com.luciad.view.gxy.TLcdAWTPath.minOrdinate".
This is especially useful for large views, for example views larger than 4096x4096 pixels.
ImprovementAviation Standards
LMAP-2694
The com.luciad.format.arinc.decoder.TLcdARINCRestrictiveAirspaceHandler now decodes extra features
that provide time information. The following features have been added and are decoded by default:
- Time Code, represented by ILcdARINCAirspaceFeature.TIME_CODE
- NOTAM, represented by ILcdARINCAirspaceFeature.NOTAM
- Time Of Operations, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS
- Time Of Operations - Time Code, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_CODE
- Time Of Operations - Time Indicator, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_INDICATOR
- Time Of Operations - NOTAM, represented by ILcdARINCAirspaceFeature.TIME_OF_OPERATIONS_NOTAM
Bug fixLuciadLightspeed
LMAP-2751
TLcdMapLocation now has a correct format LOCATION_DEC_MIN.
Bug fixLuciadLightspeed
LMAP-2763
TLcdDEMModelDecoder and TLcdDEMTileDecoder now take into account the
vertical unit of measure (meters or feet), always returning elevation
values in meters.
Bug fixLuciadLightspeed
LMAP-2722
The GML3 decoder and encoder now support the ILcdISO19103Measure interface. Decoded elements
of type gml:MeasureType
now implement this interface, and ILcdISO19103Measure implementations can now be encoded to
gml:MeasureType elements.
Bug fixLuciadLightspeed
LMAP-2761
View painting no longer breaks when terminating a TLcdGXYPanController during a mouse drag.
Bug fixLuciadLightspeed
LMAP-2759
TLcdRangeSlider: used to throw a ClassCastException if labels were turned on, tick spacing was
changed, and then model min/max was updated.
Bug fixLuciadLightspeed
LMAP-2757
TLcdRangeSlider: preferred size was incorrect for vertical orientation.
Bug fixLuciadLightspeed
LMAP-2726
The ILcdFeaturedDescriptor was only configured for extensions of gml:AbstractFeature, during
decoding.
It is now configured correctly for all objects.
Bug fixLuciadLightspeed
LMAP-2696
In some circumstances, changing a vertical view's model could cause an
ArrayIndexOutOfBoundsException.
Bug fixLuciadLightspeed
LMAP-2733
A bug in the conversion of java Date to XML dateTime, date and time during GML3 encoding has
been fixed.
Bug fixLuciadLightspeed
A new method, getSchemaType, was added to TLcdGML2ElementNameProvider and
TLcdGML3ElementNameProvider,
which allows to extend/customize the mapping from Java classes to XML schema types.
Bug fixLuciadLightspeed
LMAP-2697
XML documents containing multiple prefixes for the same namespaces can now be read
correctly.
Bug fixLuciadLightspeed
The gml:coordinates element is now supported within the gml:lineStringSegment element.
Bug fixAdvanced Raster Connectors
LMAP-2749
TLcdGeoSPOTModelDecoder no longer produces a "FAILED" log message when
encountering "SENSOR_GAINS" keys or "SENSOR_OFFSET" keys with multiple values.
Bug fixDatabase Connectors
LMAP-2754
Database models now correctly support 3D geometries, instead of accidentally
always trying to encode 2D geometries.
Bug fixDatabase Connectors
LMAP-2753
decoder.oracle.spatial.bat now includes lcd_epsg_resources.jar in the class
path, so the sample no longer pops up a windows about missing EPSG resources.
Bug fixTerrain Analysis Engine
LMAP-2760
TLcdP2PCoverageFactory: the methods getFromPointHeightAboveGround and getToPointHeightAboveGround of the created
ILcdExtendedPoint2PointIntervisibility object used to return an incorrect value when the corresponding altitude
mode in the P2PCoverage is set to ABOVE_GROUND_LEVEL.
Bug fixTerrain Analysis Engine
LMAP-2756
TLcdLOSPropagationFunctionFixedHeight: the propagation now returns a correct result when the maximum vertical
angle is set to 180.
8.1.03
ImprovementLuciadLightspeed
LMAP-2750
TLcdAltitudeFormat now has two new methods setUnitAlignment and getUnitAlignment
in order to handle altitudes that have their display unit names at their left side.
This is, for example, useful for the flight level altitude unit.
ImprovementLuciadLightspeed
TLcdVVJPanel's cursor is now automatically moved when the view is filtered.
ImprovementLuciadLightspeed
LMAP-2651
TLcdVVJPanel now contains two new methods setVerticalCursorPercentage(double aPercentage) and
getVerticalCursorPercentage() to move the vertical cursor to any position on the vertical view.
The vertical view sample now includes a new controller, VerticalCursorController, that shows how
to do this.
ImprovementDefense Symbology
LMAP-2748
An issue has been fixed that caused in some cases an incorrect visualization/editing behavior of
curved polygon symbols with an icon (e.g., the MIL-STD 2525b Meteo Training Area symbol).
Bug fixLuciadLightspeed
LMAP-2661
TLcdDefaultVVGridRenderer#getOrdinateLabelWidth now returns a label width that completely fits
the given
altitude ordinates.
Bug fixReal-time Engine
LMAP-2746
TLcdSimulatorTimeSlider: this slider can now also work with simulator models whose begin
and end date are more than Integer.MAX_VALUE milliseconds apart.
Bug fixTerrain Analysis Engine
TLcdP2PCoverage: The method Object.equals( Object ) has been overridden to compare all coverage settings instead
of only the object instance. This fix also adds caching support to the ILcdExtendedPoint2PointIntervisibility
objects created in the TLcdP2PCoverageFactory.
Bug fixRadar Connectors
The "Calculated Track Velocity (Cartesian)" values of category 30 are now read as signed
numbers.
Upgrade considerationLuciadLightspeed
TLcdVVJPanel's getVerticalCursorPosition used to return null when the cursor is not exactly
positioned on
one of the main profile points. This is no longer the case.
Please use getVerticalCursorPercentage() to determine the exact position of the vertical cursor.
8.1.02
Bug fixLucy (LuciadLightspeed)
LUCY-1636
The icon of asynchronously painted layers was not updated immediately when the color scheme
changed.
Bug fixLucy (LuciadLightspeed)
LUCY-1700
The 3D add-on now again prevents the user from zooming in below the terrain.
Bug fixDatabase Connectors
LMAP-2736
The model decoder now handles correctly table names containing schemas.
8.1.01
ImprovementLucy (LuciadLightspeed)
LUCY-1640
TLcyToteAddOn / TableViewAddOn (sample): the error message that appears when a table view
cannot be restored from the workspace (for example because the underlying data file is no
longer available) is now more clear.
ImprovementWeather & Environment Standards
LMAP-2701
OutlineSHPLayerFactory (sample code) used to use some deprecated code.
Bug fixLuciadLightspeed
LMAP-2705
TLcdColorMapCustomizer: The "Set all levels" button used to propose the entire interval if only
2 or less levels were present. It now uses the the interval specified by those 2 levels, or
the visible interval (getVisibleInterval) if only one level is available.
Bug fixLuciadLightspeed
LMAP-2721
TLcdGXYStampLabelPainter: used to write fail messages when editing multiple objects amongst
which some objects were unlabeled.
Bug fixLucy (LuciadLightspeed)
LUCY-1675
TLcyMapOverviewAddOn: clicking the map overview and then moving the mouse away from the
overview no longer prints any exception messages.
Bug fixLucy (LuciadLightspeed)
LUCY-1677
During workspace decoding, the progress of decoding a data file is now shown in the correct
progress bar.
Bug fixLucy (LuciadLightspeed)
LUCY-1663
ALcyApplicationPaneSupport: was using 'ShortDescription' and 'SmallIcon' as property keys, it
now uses 'shortDescription' and 'smallIcon' (lower case s), as this is consistent with the menu
items configuration.
Bug fixLucy (LuciadLightspeed)
LUCY-1639
TLcyMapComponent: calling addAvailableGXYController(ILcdGXYController) multiple times no longer
throws an IllegalArgumentException.
Bug fixLucy (LuciadLightspeed)
LUCY-1641
TLcyContourAddOn,TLcyExtremePointAddOn,TLcyLOSCoverageAddOn,TLcyVisibilityAddOn: the quality
component used to
throw an ArrayIndexOutOfBoundsException when the configured quality is not in the quality list.
Bug fixDatabase Connectors
LMAP-2699
When the user was trying to access geographical tables from a different schema
than his own, the metadata associated with that table was not correctly
decoded, causing an exception (ORA-13208: internal error while evaluating
[window SRID does not match layer SRID] operator). This has been fixed.
8.1
ImprovementLuciadLightspeed
LMAP-2684
The OGC filter encoder classes provided by TLcdOGCFilterElementAdapterProvider10 (OGC filter 1.0)
and TLcdOGCFilterElementAdapterProvider11 (OGC filter 1.1) now encode TLcdOGCLiteral objects
with a value of the type java.util.Date by using the ISO 8601 date/time representation.
This representation is used by default throughout various OGC specifications, such as the WFS,
GML, WMS, etc. In the past, the toString() implementation of java.util.Date was used, which
is not compatible with ISO 8601.
ImprovementLucy (LuciadLightspeed)
TLcyProperties has been retrofitted to the new ALcyProperties class.
ImprovementLucy (LuciadLightspeed)
The
com.luciad.lucy.map.asynchronous
package now provides the
TLcyGXYAsynchronousLayerSelectionTransferHandler for wrapping
ALcyLayerSelectionTransferHandler transfer handlers for working with layers that are wrapped
by an asynchronous layer wrapper.
ImprovementLucy (LuciadLightspeed)
There is a new class TLcyActionBarManager that centrally manages the action bars in a Lucy
application. This way addons can add actions and active settables to the action bars of other
addons. Please refer to the Lucy Developer Guide for more information. The TLcyActionBarManager
is accompanied by TLcyActionBarUtil that facilitates several common scenarios.
Note that not yet all addons that are delivered with Lucy make use of this manager. Currently
only the frontend, TLcyMapAddOn, TLcyMapOverViewAddOn and TEA addons make use of this
functionality.
ImprovementLucy (LuciadLightspeed)
Several support classes were added to the Lucy framework to facilitate the creation of new
addons:
- TLcyPreferencesTool facilitates working with the different kinds of preferences
in a Lucy application: system, user and session.
- ALcyFormatTool facilitates adding a new data format to a Lucy application. It
bundles all related concepts and provides reusable components for enabling asynchronous
painting and workspace support.
- ALcyApplicationPaneTool facilitates showing a panel in the user interface of the
Lucy application. It automatically adds a menu item for the panel and provides
support to restore the panel from the workspace.
These tools are covered in-depth in a new chapter in the Lucy Developer Guide. They all make
use of the new
com.luciad.lucy.util.properties
package.
ImprovementLucy (LuciadLightspeed)
There is a new package
com.luciad.lucy.util.properties
that provides
support for working with generic key-value pairs and encoding and decoding them.
ImprovementLucy (LuciadLightspeed)
TLcyPreferencesManager: this manager now provides a
ILcyPropertiesDecoder
that can be used by addons to decode their initial configuration. By replacing this decoder
the configuration can be loaded from another system such as, for instance, a database.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: retrieveAddOnByClass and retrieveAddOnByClassName now also return sub-classes of
the requested add-on.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: if an InvocationTargetException is thrown during workspace decoding, then
the error dialog now
uses the message from the causing exception, which is normally more meaningful.
ImprovementLuciadLightspeed
The package com.luciad.format.database now contains an additional
interface ILcdDatabaseDecoder2, which extends the existing interface
ILcdDatabaseDecoder. If it is implemented, the database model decoder
provides improved performance whenever the cache is empty (or has a 0 size).
The decoder can then perform queries in a single pass instead of two passes.
The optional packages Oracle Locator, Informix Spatial, Informix Geodetic,
and PostgreSQL PostGIS already support this improvement.
ImprovementLuciadLightspeed
TLcdContourFinder: these computations now support interrupted threads. The computations now
return the
intermediate result when the thread, on which they are run, is interrupted.
ImprovementLuciadLightspeed
The vertical view sample's altitude scale for the FLIGHT_LEVEL altitude unit
now only shows valid levels based on the Reduced Vertical Separation Minimum (RVSM).
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: The altitude scale used by the vertical view for the FLIGHT_LEVEL
altitude unit
now only shows valid levels based on the Reduced Vertical Separation Minimum (RVSM)
ImprovementLuciadLightspeed
The new package com.luciad.format.reference provides support for various
kinds of referencing and rectification of rasters, based on tie points. The
raster model decoders TLcdGeoTIFFModelDecoder and TLcdTABRasterModelDecoder
now support these pluggable referencing strategies. The new rectification
sample illustrates the use of these strategies for interactive
rectification of rasters.
ImprovementLuciadLightspeed
TLcdVVLeftRightOffsetRangeSliderJPanel: the slider now listens to changes in the left and right
offset of
vertical view corresponding to the slider.
ImprovementLuciadLightspeed
TLcdVVJPanel: Support was added to configure the grid levels of the vertical view. More
information can be
found in the documentation of the interface
com.luciad.view.vertical.ILcdVVGridLineOrdinateProvider and the
class
com.luciad.view.vertical.TLcdVVGridLineOrdinateProviderRVSM.
ImprovementLucy (LuciadLightspeed)
A sample that shows how to integrate Lucy with Eclipse was added. More information can be found
in
"StartHere.html", under "Additional Lucy documentation" at the bottom of the "Developer Guides"
tab.
ImprovementLucy (LuciadLightspeed)
LUCY-1587
A new class TLcyDockableApplicationPaneFactory allows to create a custom front-end having
dockable frames, but
without requiring a JIDE license. A new sample on how to use it can be found in
samples.lucy.frontend.granteddockableframes.
ImprovementLuciadLightspeed
TLcdStatusInputStreamFactory and TLcdStatusOutputStreamFactory are classes that can conveniently
report progress
about decoding and encoding operations, for example in combination with ILcdModelDecoder's or
ILcdModelEncoder's.
ImprovementLuciadLightspeed
LMAP-2039
A new class TLcdAngleUnit was added. It provides an implementation of ILcdISO19103UnitOfMeasure
for angles.
ImprovementLuciadLightspeed
A new interface ILcdModelFactory was introduced. It is currently primarily used in Lucy.
ImprovementLucy (LuciadLightspeed)
LUCY-1589
The best practice sample now uses a TLcdTrackModel for displaying the tracks.
ImprovementLucy (LuciadLightspeed)
Lucy was upgraded to version 2.2.11 of the JIDE docking framework.
ImprovementLuciadLightspeed
The implementations of ILcdGXYPen have been made consistent. They now also
draw lines and arcs adaptively, resulting in a much better visual quality.
The class ALcdGXYPen provides some basic support for all implementations,
with two new methods appendParameterizedPath, making use of a new interface
ILcdParameterizedPath.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv now contains a general list of services. A service can be any type of object. It is
currently only used
for ILcdGLLayerFactory's.
ImprovementLuciadLightspeed
TLcdGXYViewPlanarImage is a new off-screen view, next to the existing
TLcdGXYViewBufferedImage. It supports internal tiling, with tiles being
computed on the fly, and is therefore better suited for large views.
ImprovementLuciadLightspeed
When the applyOnInteract2DBounds method of TLcdMultilevel2DBoundsIndexedModel is called with
precision = 0, the
model now uses the most precise submodel if this has an accuracy range starting from 0 (the
method used to
return
without effect in this case).
ImprovementLuciadLightspeed
The elementsChanged method of TLcdModelList now only generates one event for all changes,
instead of an event
for
each change.
ImprovementLuciadLightspeed
The ALcdModel class now implements all methods from ILcdModel, except for the elements() method.
All methods for
modifying the model (addElement, removeElement, ...) throw an UnsupportedOperation by default.
ImprovementLuciadLightspeed
Constants for the fire event modes FIRE_NOW, FIRE_LATER and NO_EVENT are added to the ILcdModel
interface.
These constants should be preferred over the corresponding constants in the ILcdFireEventMode
interface, but
they
have the same value for backwards compatibility.
ImprovementLuciadLightspeed
TLcdContourFinder: Support was added to disable the interpolation of the created contours.
ImprovementLuciadLightspeed
LMAP-2617
The vertical view's cursor change event now also contains the main profile index of the point
located to the
left of the cursor, making it easier to obtain an altitude value for the cursor.
ImprovementLucy (LuciadLightspeed)
LUCY-1374
ALcyWorkspaceCodec: now has a new method 'flushWorkspaceStorageName' to avoid that 'File|Save
Workspace' overwrites
an undesired file. Together with that, 'TLcyWorkspaceManager' now has a method
'getWorkspaceStorageName' to
conveniently retrieve the current storage name. Changes are propagated as property change
events.
ImprovementLuciadLightspeed
TLcdGXYViewBufferedImage now has the ability to work with a non-uniform scale along the x-axis
and y-axis of the view. A new method setScale has been introduced to set a non-uniform scale,
and methods getScaleX and getScaleX are added to allow to retrieve the individual scales.
ImprovementLuciadLightspeed
LMAP-2340
ALcdGXYSmartController's keyboard control now works when the view does not have focus.
This only works for JComponent views.
ImprovementLuciadLightspeed
LMAP-2340
ALcdGXYSmartController now has a new property RequestFocusOnMousePressed. If true, the
controller
will make the view request focus when a mouse press occurs on it. The property is enabled by
default.
ImprovementLuciadLightspeed
A new interface ILcdGeoBuffer has been added to com.luciad.shape. This ILcdShape extension
represents a buffer or corridor shape, defined by a base shape and a width.
An editable extension ILcd2DEditableGeoBuffer is added to com.luciad.shape.shape2D.
Two 2D implementations TLcdLonLatGeoBuffer and TLcdXYGeoBuffer are added to
com.luciad.shape.shape2D
to create a two-dimensional buffer object from a polyline base shape, in geodetic space or in
cartesian space.
To paint the buffer objects in 2D, a painter TLcdGXYGeoBufferPainter has been added to
com.luciad.view.gxy.painter. To calculate the contour, a method computeBufferContour2D has been
added
to TLcdEllipsoidUtil and TLcdCartesian, which are respectively used for an ellipsoidal and
cartesian context.
These new domain objects are to be used in favor of the existing 2D buffer implementation,
TLcdLonLatBuffer. The new implementations use arcs to connect segments and properly handle
overlapping areas, sharp angles and degenerate cases.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the action 'Draw | Extract buffer' now uses a new buffer representation that
uses arcs to connect segments and properly handles overlapping areas, sharp angles and
degenerate cases.
Furthermore, this action is now also supported for redlining models with a grid reference, next
to models
with a geodetic reference.
ImprovementLucy (LuciadLightspeed)
LUCY-1590
TLcyGXYLayerOrderManager: this default implementation of ILcyGXYLayerOrderManager is now
available in the API.
ImprovementLuciadLightspeed
LMAP-2380
TLcdGXYViewCanvas now supports rotation.
ImprovementLuciadLightspeed
LMAP-2559
The clone implementations of ALcdGXYPen, TLcdGXYPen, TLcdGeodeticPen, TLcdGridPen and
TLcdProjectionPen
have been improved.
ImprovementLuciadLightspeed
LMAP-2552
TLcdWKTReferenceParser can now parse geocentric references.
ImprovementLucy (LuciadLightspeed)
LUCY-1569
TLcyWMSClientAddOn: pressing ok in the WMS Client dialog no longer blocks the user interface for
a while,
when asynchronous painting is used (default). Instead, the dialog is now immediately disposed
and the chosen WMS
layer is added to the view.
ImprovementLucy (LuciadLightspeed)
LUCY-1580
ALcyAsynchronousPaintFacade has a new method invokeLaterOnGXYLayerInEDT to postpone EDT-related
tasks for
(a)synchronously painted layers. Lucy's layer property panels, including
the TLcyGXYAsynchronousLayerCustomizerPanel panel wrapper use this functionality to avoid
blocking
the user interface when the affected layer is still being painted.
ImprovementLuciadLightspeed
TLcdGXYZoomWheelController: the zooming of the view with the mouse wheel now generates
TLcdUndoableEvents. You can receive these events by registering an ILcdUndoableListener on the
mouse wheel controller with the addUndoableListener method.
ImprovementLuciadLightspeed
TLcdGXYOverviewController: the modification of the slave view now generates TLcdUndoableEvents.
You can receive these events by registering an ILcdUndoableListener on the overview controller
with the addUndoableListener method.
ImprovementLuciadLightspeed
LMAP-2526
ALcdGXYSmartController: the panning and zooming operations resulting from key presses are now
undoable.
ImprovementLuciadLightspeed
The documentation of TLcdImageIcon has been enhanced.
ImprovementAdvanced GIS Engine
The topology and intersection calculation implementations TLcdEllipsoidalBasicBinaryTopology,
TLcdSphericalBasicBinaryTopology and TLcdCartesianBasicBinaryTopology now provide
support for the new buffer shape ILcdGeoBuffer.
Furthermore, calculations between a buffer shape and a bounds shape are now also supported
by TLcdEllipsoidalBasicBinaryTopology.
ImprovementDatabase Connectors
The decoder now produces models that perform more efficient queries if their
internal caches are empty (requesting all geometries and features in a single
pass instead of two passes). If the transmission and decoding of geometries
and their features is relatively fast compared to the overhead of performing
a query, it may be worthwhile setting the cache size to 0.
ImprovementDatabase Connectors
The decoder now produces models that perform more efficient queries if their
internal caches are empty (requesting all geometries and features in a single
pass instead of two passes). If the transmission and decoding of geometries
and their features is relatively fast compared to the overhead of performing
a query, it may be worthwhile setting the cache size to 0.
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder and TLcdOracleSpatialModelEncoder now support
3D geometries (points, polylines, polygons, boxes, surfaces, and solids).
For this purpose, the JDBC driver ojdbc5.jar or higher is required.
ImprovementDatabase Connectors
The decoder now produces models that perform more efficient queries if their
internal caches are empty (requesting all geometries and features in a single
pass instead of two passes). If the transmission and decoding of geometries
and their features is relatively fast compared to the overhead of performing
a query, it may be worthwhile setting the cache size to 0.
ImprovementDatabase Connectors
The decoder now supports a new optional property geometryQueryColumn. If it
is defined, it is used in spatial queries instead of geometryColumn. This
may occasionally be useful, for instance to request geometries based on their
center points instead of their bounds.
ImprovementOGC Server
A new factory class TLcdWMSGXYViewFactory has been introduced, which is used to create and configure
views in the WMS to render requested maps. Custom extensions can be integrated in the WMS
by overriding the method createWMSGXYViewFactory(ServletConfig) in
ALcdOGCWMSCommandDispatcherFactory.
ImprovementTerrain Analysis Engine
TLcdAltitudeMatrixViewFactory, TLcdExtremePointFinder, TLcdVisibilityMatrixViewFactory: these computations now
support interrupted threads. The computations now return the intermediate result when the thread, on which they
are run, is interrupted.
ImprovementTerrain Analysis Engine
TLcdLOSCoverageFactory: these computations now support interrupted threads. The computations now return null
when the thread, on which they are run, is interrupted.
ImprovementDefense Standards
LMAP-2658
TLcdNITFModelDecoder now supports georeferencing of rasters that are
distorted by a perspective projection.
ImprovementDefense Symbology
The validation of the country code part of symbol codes in TLcdEditableMS2525bObject and
TLcdEditableAPP6AObject has been disabled, leaving the possibility to use custom codes for this part.
ImprovementDefense Symbology
LMAP-2669
The following set of polyline symbols in APP-6A and MIL-STD 2525b are now rendered according to the straightLineMode
setting of the layer's geodetic pen, instead of always using straight lines:
- Phase Line (APP-6A: 2.X.2.1.1.2.4 and 2.X.2.5.3.2, MIL-STD 2525b: 2.X.2.1.2.4)
- Light Line (APP-6A: 2.X.2.5.3.1, MIL-STD 2525b: 2.X.2.1.2.5)
- Final Coordination Line (APP-6A: 2.X.2.1.5.2.3, MIL-STD 2525b: 2.X.2.5.2.3)
- Limit Of Advance (APP-6A: 2.X.2.1.5.2.5 , MIL-STD 2525b: 2.X.2.5.2.5)
- Line Of Departure (APP-6A: 2.X.2.1.5.2.6, MIL-STD 2525b: 2.X.2.5.2.6)
- Line Of Departure/Line Of Contact (APP-6A: 2.X.2.1.5.2.7, MIL-STD 2525b: 2.X.2.5.2.7)
- Holding Line (APP-6A: 2.X.2.1.6.2.3, MIL-STD 2525b: 2.X.2.6.1.2)
- Release Line (APP-6A: 2.X.2.1.6.2.4, MIL-STD 2525b: 2.X.2.6.1.3)
- Bridgehead (APP-6A: 2.X.2.1.6.2.2, MIL-STD 2525b: 2.X.2.6.1.4)
- No-Fire Line (APP-6A: 2.X.2.3.2.5, MIL-STD 2525b: 2.X.4.2.2.3)
- Probable Line Of Deployment (APP-6A: 2.X.2.1.5.2.8, MIL-STD 2525b: 2.X.2.5.2.8)
- Fire Support Coordination Line (APP-6A: 2.X.2.3.2.1, MIL-STD 2525b: 2.X.4.2.2.1)
- Restrictive Fire Line (APP-6A: 2.X.2.3.2.6, MIL-STD 2525b: 2.X.4.2.2.4)
- Coordinated Fire Line (APP-6A: 2.X.2.3.2.2, MIL-STD 2525b: 2.X.4.2.2.2)
ImprovementInfrastructure Standards
The package contains a new decoder class called TLcdDWGModelListDecoder. It
decodes a DWG file, after which the obtained model is split into several
submodels, each corresponding to a single DWG layer. The submodels are
returned as a TLcd2DBoundsIndexedModelList. For convenience, the model
decoders TLcdDWGModelDecoder and TLcdDWGModelListDecoder share a new common
interface ILcdDWGModelDecoder.
Bug fixLucy (LuciadLightspeed)
LUCY-1629
TLcyPrintAddOn: The print area does not move anymore when the map's projection changes. It
remains location
around the same part of the world as before the projection change.
Bug fixLuciadLightspeed
LMAP-2695
The magnifier controller no longer throws an IllegalComponentStateException when its view is
visible but not
showing.
Bug fixLuciadLightspeed
TLcdGXYAsynchronousPaintQueue now behaves correctly when its view is invalidated in a non-AWT
thread.
Bug fixLuciadLightspeed
LMAP-2689
TLcdColorMapCustomizer: the color buttons are now also visible in the Motif Look and Feel.
Bug fixLuciadLightspeed
LMAP-2682
The warping raster painters no longer throw a ClassCastException if a
raster does not contain a color model and any of its tiles contain a color
model that's not an IndexColorModel.
Bug fixLuciadLightspeed
TLcdConcurrentBuffer has been fixed to avoid spurious NullPointerExceptions
on multi-core processors.
Bug fixLuciadLightspeed
LMAP-1751
The applet samples now work fine if there is a space in the path to the LuciadMap installation
directory.
Bug fixLuciadLightspeed
The elements method of TLcdRegularTiled2DBoundsIndexedModel always returned an empty
enumeration. It now returns
a
correct elements enumeration.
Bug fixLuciadLightspeed
The elementChanged method of TLcd2DRegularTiledBoundsIndexedModel was not always able to
retrieve the changed
element
if the bounds of the element were changed. This has been fixed now.
Bug fixLuciadLightspeed
The elementsChanged method of TLcd2DRegularTiledBoundsIndexedModel has been fixed (it used to
block the thread
due
to an infinite loop).
Bug fixLuciadLightspeed
The addElements, removeElements and removeAllElements methods in the model implementations of
com.luciad.model now fire a model change event when the method is interrupted due to an invalid
element which
cannot
be added/removed (no event was fired before in this case). The fired event only contains the
elements which
were successfully added/removed.
Bug fixLuciadLightspeed
LMAP-806
ALcdGXYSmartController no longer changes the focused window when isRequestFocusOnMouseEntered is
true.
Bug fixLucy (LuciadLightspeed)
LUCY-1574
TLcyPrintAddOn: The overview option in the print preview dialog is now disabled when the
overview is deactivated.
Bug fixLuciadLightspeed
The focus point of a TLcdLonLatPolyline is no longer moved after a move2D, but recalculated when
needed. This
will only
be of influence when the focus point was set to the polyline using setFocusPoint in order to
monitor moves of
the focus
point.
Bug fixTerrain Analysis Engine
TLcdAltitudeMatrixViewFactory: the interpolated path method did not interpolate between all segment points.
Bug fixInfrastructure Standards
The method seekForward that was accidentally public in TLcdDWGModelDecoder
but served no useful purpose has been removed from the API.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-1875
TLcyMapComponent: Calls to these methods:
- TLcyMapComponent#setMenuBar
- TLcyMapComponent#setToolBar
- TLcyMapComponent#setMapPopupMenu
must now be preceded with these calls respectively:
- TLcyActionBarUtil.mediate( aMenuBar, "menuBar", this,
lucyEnv.getUserInterfaceManager().getActionBarManager() );
- TLcyActionBarUtil.mediate( aToolBar, "toolBar", this,
lucyEnv.getUserInterfaceManager().getActionBarManager() );
- TLcyActionBarUtil.mediate( aMapPopupMenu, "popupMenu", this,
lucyEnv.getUserInterfaceManager().getActionBarManager() );
Note that these methods normally aren't called directly, but are used from a
TLcyMapComponentFactory. That factory already performs these method calls.
Upgrade considerationLuciadLightspeed
LMAP-2638
TLcdUndoManager: the wrongly named removeStatusListener method has been deprecated in favor of
removeChangeListener. Please use that method to remove your ILcdChangeListener instances.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPreferencesManager: the preferences in this manager have been split up in user and system
preferences. Please refer to the reference documentation of this class for more information.
Upgrade considerationLuciadLightspeed
TLcdVVAltitudeRangeSliderJPanel: When the bottom (or top) offset property of the vertical view
corresponding
to the slider is changed, the slider used to interpret this as a new minima (or maxima). Now the
bottom (or
top) offset property is interpreted as a new range minima (or maxima).
Upgrade considerationLuciadLightspeed
ILcdGXYAsynchronousLayerWrapper and ILcdGXYAsynchronousPaintQueue have been extended with the
methods
invokeLaterOnGXYLayerInEDT and invokeLaterInEDT respectively.
Wrappers for or extensions of the above interfaces or their implementations should delegate to
this method.
Upgrade considerationLuciadLightspeed
The base class ALcdGXYPen no longer contains the fields and methods to
cache world/model references and transformations, since these were used and
updated inconsistently, in the end only creating overhead without serving a
practical purpose.
Upgrade considerationLuciadLightspeed
The behavior of some methods of TLcdFeatureIndexedVectorModel and
TLcdFeatureIndexedAnd2DboundsIndexedModel has
been
changed:
-
If an index was added for which one or more of the feature names did not occur in the
featured
descriptor, an
IndexOutOfBoundsException was thrown, either when the index was added or when the first
element was
added to
the model. No exceptions are thrown anymore; an empty index is created instead.
-
If retrieveIndex is called for a unique index, this method now returns a Vector containing
the unique
element
that matches the query, instead of returning null.
-
If retrieveUniqueIndex is called for a non-unique index, an IllegalArgumentException is
thrown now,
instead of
returning null.
-
If retrieveIndex or retrieveUniqueIndex is called for an index which was not created yet, an
IllegalArgumentException is thrown now, instead of returning null.
Upgrade considerationLuciadLightspeed
Null values are now explicitly forbidden as elements in a model. This was already the case for
most model
implementations in the com.luciad.model package (except for TLcdVectorModel).
Upgrade considerationLuciadLightspeed
Some methods of ILcdModel and its implementations now throw better exceptions:
-
The addModelListener and removeModelListener now throw a NullPointerException if the
argument is null.
All
implementations in the com.luciad.model package have been modified to be compliant with the
new
specification.
-
The editing methods of all non-editable models in the com.luciad.model package now throw an
UnsupportedOperationException instead of an IllegalArgumentException.
-
TLcd2DBoundsIndexedModel, TLcd2DRegularTiledBoundsIndexedModel, TLcdSoft2DBoundsIndexedModel
and
TLcdTiled2DBoundsIndexedModel now always throw a NullPointerException if the
applyOnInteract2DBounds
method is
called with a null function or bounds (this was not the case in previous versions, if the
model was
empty).
Upgrade considerationLuciadLightspeed
The specification of addElement, addElements, removeElement and removeElements in ILcdModel has
been changed;
implementations are no longer required to throw an IllegalArgumentException when an invalid
element is added
or removed. Instead, these methods now have a precondition (
canAddElement(aElement)
) which
should hold for the element(s) that is being added/removed. It is unspecified by default what
happens if one of
these methods is called while the precondition does not hold.
All implementations of ILcdModel in com.luciad.model no longer call canAddElement or
canRemoveElement from
within
the addElement(s)/removeElement(s) methods.
Existing code that relies on the IllegalArgumentException exception being thrown:
try {
model.addElement(aElement, ILcdModel.FIRE_NOW);
}
catch(IllegalArgumentException e) {
// Do something.
}
should be refactored to:
if (model.canAddElement(aElement)) {
model.addElement(aElement, ILcdModel.FIRE_NOW);
}
else {
// Do something.
}
Developers using the add/remove filters, provided by some model implementations, should also
make
sure that each addElement call is always preceded by a canAddElement call, as these filters are
no longer
checked in
the add/remove methods.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-312, LUCY-330, LUCY-331, LUCY-400, LUCY-494, LUCY-574, LUCY-795, LUCY-832, LUCY-833, LUCY-838, LUCY-839, LUCY-840, LUCY-991,
LUCY-1008, LUCY-1074, LUCY-1133, LUCY-1323, LUCY-1442, LUCY-1521, LUCY-1601
TLcyTeaAddOn: this add-on was removed. Its functionality was replaced by several new add-ons,
all in sub-packages of
com.luciad.lucy.addons.tea:
- com.luciad.lucy.addons.tea.contour.TLcyContourAddOn
- com.luciad.lucy.addons.tea.controller.TLcyTEAControllerAddOn
- com.luciad.lucy.addons.tea.extremepoint.TLcyExtremePointAddOn
- com.luciad.lucy.addons.tea.loscoverage.TLcyLOSCoverageAddOn
- com.luciad.lucy.addons.tea.visibility.TLcyVisibilityAddOn
This means any addons.xml file that used to contain TLcyTeaAddOn, e.g. like this:
<addon>
<name>TEA</name>
<class>com.luciad.lucy.addons.tea.TLcyTeaAddOn</class>
<configFile>lucy/tea/tea_addon.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
must be replaced with this fragment:
<addon>
<name>TEA Contour</name>
<class>com.luciad.lucy.addons.tea.contour.TLcyContourAddOn</class>
<configFile>lucy/tea/contour/TLcyContourAddOn.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
<addon>
<name>TEA Extreme Point</name>
<class>com.luciad.lucy.addons.tea.extremepoint.TLcyExtremePointAddOn</class>
<configFile>lucy/tea/extremepoint/TLcyExtremePointAddOn.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
<addon>
<name>TEA Visibility</name>
<class>com.luciad.lucy.addons.tea.visibility.TLcyVisibilityAddOn</class>
<configFile>lucy/tea/visibility/TLcyVisibilityAddOn.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
<addon>
<name>TEA LOS Coverage</name>
<class>com.luciad.lucy.addons.tea.loscoverage.TLcyLOSCoverageAddOn</class>
<configFile>lucy/tea/loscoverage/TLcyLOSCoverageAddOn.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
<addon>
<name>TEA Controller</name>
<class>com.luciad.lucy.addons.tea.controller.TLcyTEAControllerAddOn</class>
<configFile>lucy/tea/controller/TLcyTeaControllerAddOn.cfg</configFile>
<luciadMapOptions>Tea</luciadMapOptions>
</addon>
Note that together with the TLcyTeaAddOn the TLcyTeaAddOn.TEA_GROUP_DESCRIPTOR constant was
removed. Any (very
unlikely) usages can be replaced with "new TLcyGroupDescriptor( "TeaGroup" )".
The configuration file of the TLcyHypsometryAddon was renamed from 'hypsometry_addon.cfg' to
'TLcyHypsometryAddon.cfg'. The settings to configure the menu item, they used to start with
'TLcyHypsometryAddon.hypsometryActiveSettable.menuBar', now start with
'TLcyHypsometryAddon.applicationPane.activeSettable.menuBar'. So if you have made
modifications to this
configuration file, care must be taken while upgrading.
Upgrade considerationLucy (LuciadLightspeed)
The direction of the scroll wheel was inverted to better match other mapping products. Change
the property
'scrollUpZoomOut' to 'true' in 'lucy/lucy.cfg' to go back to the previous behavior.
Upgrade considerationLucy (LuciadLightspeed)
The values of the 'lucy/lucy.cfg' configuration file are now no longer case insensitive. They
are now, just as any
other configuration file, case sensitive. Besides typos that were ever made when lucy.cfg was
adapted, this
shouldn't have any effect.
Upgrade considerationLuciadLightspeed
The GNU regular expressions library gnu-regexp-1.1.4.jar is no longer required by LuciadMap, as
its
use has been replaced by the regular expressions API available in the JDK (since 1.4).
This might require an update to existing build scripts to create a LuciadMap application, as
they
now no longer need to incorporate this library.
Upgrade considerationLuciadLightspeed
LMAP-2569, LMAP-2608
A number of issues in the existing buffer domain object TLcdLonLatBuffer and corresponding
painter
TLcdGXYBufferPainter have been fixed in the new buffer implementation, by the introduction of a
new geodetic implementation TLcdLonLatGeoBuffer and a new painter implementation
TLcdGXYGeoBufferPainter.
The following problems had been identified in the past and are fixed in the new implementation:
- LMAP-2569: the fill of a buffer does not match with the contour for wide buffers,
- LMAP-2608: a narrow buffer cannot be moved with TLcdGXYBufferPainter,
- 2446: TLcdLonLatBuffer does not handle degenerate cases,
- 2782: the line/fill style handling of TLcdGXYBufferPainter is inconsistent,
- 3682: sharp angles in the axis of a buffer are not handled correctly by
TLcdLonLatBuffer and
TLcdGXYBufferPainter,
- 4033: overlapping areas are not handled correctly by TLcdGXYBufferPainter,
- 4549,5421,5475: TLcdGXYBufferPainter does not allow to move a buffer if it is part of
a composite
selection but not touched,
To obtain the fixes, an upgrade is needed by replacing the use of TLcdLonLatBuffer and
TLcdGXYBufferPainter
with TLcdLonLatGeoBuffer and TLcdGXYGeoBufferPainter.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-1602
When the application is closed, all loaded ALcyAddOn's are now unplugged by calling
their unplugFrom method.
As a result, incorrect unplugFrom implementations might cause problems where they previously
didn't. To be
absolutely sure no problems will pop up, one can put the bodies of all unplugFrom methods in
comment.
Note that most add-ons shipped with Lucy don't implement the unplugFrom method, so they
don't support to be
unplugged and re-plugged later.
Custom front-ends can now call the unplugFrom method as well. The AFrontend sample class
has been adapted
to do so.
Upgrade considerationLuciadLightspeed
LMAP-2340
ALcdGXYSmartController#RequestFocusOnMouseEntered is now by default false.
Upgrade considerationLuciadLightspeed
LMAP-2600
ALcdGXYSmartController's default keyboard shortcuts for left and right panning have been
reversed, in order to
make
them consistent with the panning behavior of the arrow keys.
Upgrade considerationLuciadLightspeed
LuciadMap now comes with two extra libraries: the JTS Java
Topology Suite jts-1.8.jar and an extension lcd_jts_extension.jar.
Both libraries are used by the com.luciad.shape.shape2D package (see Technical Notes ->
Prerequisites).
This might require an update to existing build scripts to create a LuciadMap application, to
incorporate
the new libraries.
Upgrade considerationLucy (LuciadLightspeed)
TLcyRedliningAddOn: the action 'Draw | Extract buffer' now uses a new buffer representation
that
uses arcs to connect segments and properly handles overlapping areas, sharp angles and
degenerate cases.
Buffer objects stored in .red files that are created with previous versions of Lucy
are now visualized with the new buffer representation. This might cause interpretation issues
if
there is a specific dependency on the geometry of the contour of the buffer (e.g., an
intersection
with other shapes).
One specific change between the old and new buffer is the end cap style of the buffer,
which defines how the endings of the buffer must be visualized. This can be either
CAP_ROUND or CAP_BUTT, which respectively defines a flat or a rounded ending of the buffer,
and can be configured for the new buffer through the following property:
resources/lucy/redlining/redlining_addon.cfg: TLcyRedliningAddOn.defaultBufferEndCapStyle
By default, CAP_ROUND is used instead of CAP_BUTT as in the old buffer, but this
behavior
can be reverted by changing the property value to CAP_BUTT.
Upgrade considerationLucy (LuciadLightspeed)
LUCY-1580
ALcyAsynchronousPaintFacade has a new method invokeLaterOnGXYLayerInEDT to postpone EDT-related
tasks for
(a)synchronously painted layers. Wrappers for or extensions of the facade's implementations
should call the
appropriate delegate method.
Custom implementations of this class can use
ILcdGXYAsychronousLayerWrapper#invokeLaterOnGXYLayerInEDT.
Upgrade considerationLucy (LuciadLightspeed)
The TLcyGXYAsynchronousLayerCustomizerPanelFactory wrapper now uses invokeNowOnGXYLayer instead
of invokeAndWaitOnGXYLayer. Wrapped factories should make sure that they do not modify the
layer.
If so, they should wrap this modification with e.g. invokeAndWaitOnGXYLayer themselves.
Upgrade considerationLuciadLightspeed
LMAP-2526
ALcdGXYSmartController: in order to support undo-functionality for the panning and zooming
operations resulting from key presses, several undo-related methods have been added to this
class:
- addUndoableListener
- removeUndoableListener
- fireUndoableEvent
If you have created a subclass of ALcdGXYSmartController and provided undo-capabilities
for this subclass, you need to removed the corresponding methods from your subclass and use
the methods mentioned above instead to register and unregister ILcdUndoableListeners and to fire
TLcdUndoableEvents.
Upgrade considerationDatabase Connectors
The lib directory now contains the Oracle JDBC drivers ojdbc14.jar,
ojdbc5.jar, and ojdbc6.jar, replacing classes12.jar, for JRE 1.4, 1.5, and
1.6 respectively.
Upgrade considerationAviation Standards
The domain object ILcdAirspaceCorridor now extends from the general buffer interface com.luciad.shape.ILcdGeoBuffer,
available in LuciadMap. As a result, existing implementations of this interface must now provide an implementation
for the methods ILcdGeoBuffer#getBaseShape(), ILcdGeoBuffer#getEndCapStyle() and ILcdGeoBuffer#getJoinStyle().
8.0
8.0.12
Bug fixLucy (LuciadLightspeed)
The snappable property of snappable layers that are now wrapped with an asynchronous layer can
now be
disabled.
Bug fixLuciadLightspeed
LMAP-2680
TLcdColorMapCustomizer: now consumes the key events when stepping through the levels with the
arrow keys, to
avoid
that anybody else can still use these key events.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: undoing/redoing the definition of the print area could take a long time.
Bug fixTerrain Analysis Engine
TLcdP2PRadarPropagationFunction, TLcdP2PRadarPropagationFunctionSkyBackground: both propagation functions now
return TLcdVisibilityStatus.INVISIBLE when one of the defining points lies beneath the terrain.
8.0.11
ImprovementLuciadLightspeed
LMAP-2636
TLcdGXYSelectControllerModel2: MouseClickedSensitivity is now larger by default, to accommodate
for larger
icons.
ImprovementDatabase Connectors
The decoder now produces models that are thread-safe for read-only access,
provided that the "alwaysCloseConnection" property is set to true and that
a database driver that offers connection pooling is used (e.g. Proxool).
ImprovementOGC Server
New methods have been introduced in TLcdHttpServletRequestKVPRequestWrapper and
TLcdHttpServletResponseWrapper to give applications more access to HTTP request
and response headers.
ImprovementAviation Standards
LMAP-2654
The ARINC handlers for Restrictive and Controlled Airspace records,
TLcdARINCRestrictiveAirspaceHandler and TLcdARINCControlledAirspaceHandler,
have been made more robust, as they no longer fail for unrecognized airspace types,
levels or classifications. In these cases, a debug message is now added
to the error message report of the decoder (see TLcdARINCDecoder#getErrorMessage()).
Bug fixLuciadLightspeed
TLcdColorMapCustomizer: The customizer was editable via mouse events even when the customizer
was disabled. Now
only enabled customizers are editable via mouse events.
Bug fixLuciadLightspeed
LMAP-2515
TLcdGXYStampLabelPainter: the interactive labels of the TLcdGXYStampLabelPainter can now be
used even when other label painters are used within the same layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1621
Using asynchronous paint hints that have the same merge group but different bodiesOnly
parameters could cause
the respective layers to be no longer painted in the same paint queue. In a default Lucy
installation, this was
the case when mixing WMS and WFS layers.
Bug fixLuciadLightspeed
LMAP-2662
Raster painters with asynchronous subtile decoding activated now work correctly with layers that
are wrapped by
ILcdGXYAsynchronousLayerWrapper. However, for best results though, it is recommended to leave
the asynchronous
subtile decoding deactivated.
Bug fixLucy (LuciadLightspeed)
LUCY-1609
TLcyAIXMAddOn: opening an AIXM dataset caused a NullPointerException when no top level
components were available
at runtime.
Bug fixLucy (LuciadLightspeed)
LUCY-1619
Backslashes got into the sample workspaces "internal_frames_sample_workspace.lws" and
"dockable_frames_sample_workspace.lws", causing the background data not to be read on
non-Windows platforms.
Bug fixLucy (LuciadLightspeed)
LUCY-1606
A memory leak has been fixed in the scale to raster controller.
Bug fixLuciadLightspeed
LMAP-2657
The two TLcdGeneralPerspective constructors taking an ILcdPoint as the origin were interchanging
the origin's
latitude and longitude. This is now fixed.
Bug fixLucy (LuciadLightspeed)
LUCY-1616
TLcyMain: In docking mode, when loading a workspace with less add-ons plugged then when it was
saved, newly created
application panes could appear at the wrong location. Namely a location of one of the
application panes that wasn't
restored because its add-on wasn't loaded. The fix was also applied to the
DockableWorkspaceCodecDelegate sample
class.
Bug fixLuciadLightspeed
LMAP-2650
TLcdGeoTIFFModelDecoder now supports the same geodetic datums for user-defined
grid references as for geodetic references.
Bug fixLuciadLightspeed
LMAP-2641
TLcdGXYEllipsePainter and TLcdGXYCirclePainter now draw actual cartesian
ellipses and circles when possible, instead of discretized versions.
This especially improves the visual quality for large views and prints.
Bug fixLucy (LuciadLightspeed)
LUCY-1604
The scale to raster controller now hides the artifact when mouse leaves the 2D map.
Bug fixDatabase Connectors
LMAP-2659
The model decoder and encoder now correctly handle uppercase table names and
column names. Such names must be surrounded by double quotes in Postgres.
Bug fixGraph and Routing Engine
GDF files could no longer be decoded in JRE 1.4 environements as of bug fix #7539. This has been
fixed.
Bug fixTerrain Analysis Engine
TLcdDensityBasedRasterElevationProvider: it could happen that an elevation value was returned from another
raster than the best density one.
Bug fixTerrain Analysis Engine
LMAP-2643
TLcdTerrainProfileController: the background of the label now uses the correct dimension, also if the user sets a
font with a different size.
Bug fixAviation Standards
TLcdDAFIFATSRouteDecoder and TLcdDAFIFTATSRouteDecoder: The decoders will only decode routes containing segments.
Empty routes are not added to the model.
Bug fixRadar Connectors
Duplicate 'LayerFactory' sample class is now removed.
Upgrade considerationDefense Standards
The GeoSym engine no longer looks for GeoSym resources in the geosym/rules/ directory; from now
on, only the
GeoSym/ directory is searched for, which corresponds to the location used in the VPF resources
file provided with
the distribution (lcd_vpf_geosym_resources.jar).
8.0.10
Bug fixLucy (LuciadLightspeed)
LUCY-1611
TLcyMapOverviewAddOn: a race condition could cause a NullPointerException when panning the main
map.
8.0.09
ImprovementLuciadLightspeed
The precision of encoding object features of type double using TLcdSHPModelEncoder
has been increased to 18 characters (in string representation).
Also, the TLcdSHPModelEncoder now supports features of type BigDecimal,
with the same limit of 18 characters.
Bug fixLucy (LuciadLightspeed)
LUCY-1613
TLcyMain: setting the 'heavyWeightPopups' property to 'false' in 'lucy.cfg' didn't work when
using the docking
front-end.
Bug fixTerrain Analysis Engine
LMAP-2640
TLcdMatrixViewRasterFactory: createEquivalentRaster now also sends out END_BUSY status events.
8.0.08
ImprovementLuciadLightspeed
TLcdCADRGDirectoryModelDecoder has a new boolean property
readTableOfContentsFiles to specify whether A.TOC files should be read,
whenever they are available.
Bug fixLuciadLightspeed
LMAP-2635
TLcdCADRGModelDecoder now ignores any erroneous high bits in the section
location length field.
Bug fixLuciadLightspeed
LMAP-2630
TLcdColorMapCustomizer: using setGradientToggleable while the customizer is displayed on screen
now properly
refreshes
the GUI.
Bug fixLuciadLightspeed
LMAP-2571
TLcdLonLatPolygon.contains2D now handles correctly the case when the latitude of the tested
point coincides with
the latitude of one of the vertices.
Bug fixLucy (LuciadLightspeed)
LUCY-1607
TLcyMain: In docking mode, the JIDE resources were never released when closing the application.
As a result, when
running multiple applications in the same VM, a memory leak used to occur. The fix was also
applied to the
DockableHolderFactory sample class (samples.lucy.frontend.dockableframes).
Bug fixDefense Standards
LMAP-2625
TLcdNITFModelDecoder now also takes into account BLOCKA Tagged Record
Extensions in user data.
Bug fixDefense Standards
LMAP-2624
TLcdNITFModelDecoder now accepts empty gray fill fields in BLOCKA Tagged
Record Extensions.
Bug fixDefense Standards
LMAP-2623
TLcdNITFModelDecoder again decodes correct raster bounds for UTM references.
8.0.07
ImprovementLucy (LuciadLightspeed)
TLcyASDIDecoderAddOn / TLcyASTERIXDecoderAddOn: now have a config file flag to disable the
warning message about
global label decluttering.
ImprovementDatabase Connectors
The access to the models produced by the TLcdGeoRasterModelDecoder is faster
when multiple threads are reading the data, provided that a connection pooling
database driver is used and the property alwaysCloseConnection is true.
Bug fixTerrain Analysis Engine
TLcdExtremePointFinder: Support was added to find the extreme points in a matrix view with only 1 column or row.
Bug fixTerrain Analysis Engine
TLcdAltitudeMatrixViewFactory: the create methods now convert special altitude values defined by the altitude
provider to special altitude values defined by the descriptor of the altitude matrix view.
8.0.06
ImprovementLuciadLightspeed
TLcdDEMModelDescriptor now provides access to the minimum and maximum values of the elevation.
ImprovementLuciadLightspeed
LMAP-2236
LuciadMap now supports the latest TMEX WinUSB drivers from Dallas
Semiconductor for iButton hardware keys.
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder and TLcdOracleSpatialModelEncoder now encode
shape lists containing sequences of polylines and arcs as line strings or
compound line strings when possible.
ImprovementDatabase Connectors
The decoder now produces models that are thread-safe for read-only access,
provided that the "alwaysCloseConnection" property is set to true and that
a database driver that offers connection pooling is used (e.g. Proxool).
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder now produces models that are thread-safe for
read-only access, provided that the "alwaysCloseConnection" property is set to
true and that a database driver that offers connection pooling is used
(e.g. Proxool).
ImprovementDatabase Connectors
TLcdPostGISSpatialModelDecoder now produces models that are thread-safe for
read-only access, provided that the "alwaysCloseConnection" property is set to
true and that a database driver that offers connection pooling is used
(e.g. Proxool).
Bug fixLuciadLightspeed
LMAP-2614
TLcdCGMGXYPainterProvider has been fixed to correctly paint shapes that are
not filled.
Bug fixLuciadLightspeed
LMAP-2613
TLcdCGMModelDecoder now always creates grid references, in order to make sure
circles, ellipses, and arcs are interpreted correctly.
Bug fixLucy (LuciadLightspeed)
LUCY-1603
The zoom controllers now correctly support the configured zoom direction of the scroll wheel.
Bug fixLucy (LuciadLightspeed)
LUCY-1600
TLcyWorkspaceAddOn: If no workspace was ever loaded, trying to save the workspace used to throw
a
NullPointerException.
Bug fixLucy (LuciadLightspeed)
LUCY-1554
TLcyMapAddOn, TLcyMapOverviewAddOn: the navigate controller
TLcyMapComponentFactory.NAVIGATE_CONTROLLER
erroneously allowed to pan the map while pressing and holding the alt key and dragging the mouse
with a button other
than the middle mouse button. This has been fixed: panning the map with the navigate controller
is now only possible
when dragging the mouse with the middle mouse button.
Bug fixLuciadLightspeed
LMAP-2205
TLcdRangeSlider now correctly repaints when double clicking it after the model
(TLcdRangeSliderModel) has
changed.
Bug fixLuciadLightspeed
LMAP-1259
TLcdRangeSlider used to return its current width (for horizontal slider) or height (for vertical
slider) as
preferred
size. It now behaves similar to JSlider: a fixed preferred width/height.
Bug fixLucy (LuciadLightspeed)
LUCY-1599
In Motif look and feel, the text fields for creating extruded shapes, spheres and domes were
unusably small.
Bug fixLucy (LuciadLightspeed)
LUCY-1598
TLcyModelReferenceAddOn: Saving a .ref file using the GUI resulted in an incorrect case for the
'.ref' extension if
the original data file had an upper case extension. This was no problem on Windows platforms as
they ignore file
name case.
Bug fixLuciadLightspeed
LMAP-2421
TLcdIGRFMagneticNorthMap: used to throw ArrayIndexOutOfBoundsException for some date values.
Bug fixLucy (LuciadLightspeed)
LUCY-1597
TLcyMapOverviewAddOn: a NullPointerException was fixed when selecting the pan controller in the
toolbar of
the map overview.
Bug fixLucy (LuciadLightspeed)
LUCY-1596
TLcyOBJDecoderAddOn/TLcyOpenFlightDecoderAddOn: these formats now register
ILcyGXYLayerTypeProvider's and
ILcyModelContentTypeProvider's.
Bug fixLuciadLightspeed
LMAP-2596
In rare circumstances, TLcdGXYAsynchronousLayerWrapper#invokeAndWaitOnGXYLayer would
prevent pending layer property changes from being fired.
Bug fixLuciadLightspeed
LMAP-2595
TLcdGXYAsynchronousLayerWrapper now fires property change events when its icon and label change.
Bug fixLucy (LuciadLightspeed)
LUCY-1586
TLcyMain: When in docking mode, pressing the map overview tool bar button to activate the layer
control, selecting
another tab in the same area (e.g. the regular layer control) and pressing the tool bar button
again did not hide
the 'Map overview layers' tab.
Bug fixDatabase Connectors
The package com.luciad.format.oracle.spatial no longer depends on the
deprecated Oracle library sdoapi.jar.
Bug fixDatabase Connectors
The entire com.luciad.format.oracle.spatialRelational package has been
deprecated. It corresponds to the Oracle Relational Model, which has
been deprecated and is no longer supported by Oracle. New applications should
use the com.luciad.format.oracle.spatial package, which offers
support for the new Oracle Object-Relational Model.
Bug fixOGC Server
The handling of GetMap requests through HTTP XML POST has been made more robust
and corrected in some cases.
Bug fixDefense Standards
LMAP-2613
TLcdNITFModelDecoder now always creates grid references for NITF files
containing CGM vector data, in order to make sure circles, ellipses, and arcs
are interpreted correctly.
8.0.05
ImprovementLucy (LuciadLightspeed)
LUCY-1595
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: the URL cache is now stored and
retrieved
through the Lucy preferences mechanism (see TLcyPersistentPreferencesAddOn), instead of through
a custom file.
ImprovementLuciadLightspeed
LMAP-2382
TLcdGXYViewPanel now informs its property change listeners of component property changes.
ImprovementInfrastructure Standards
LMAP-2594
com.luciad.format.dgn.TLcdDGNModelDecoder now handles elements referencing
bogus tag attributes.
Bug fixLucy (LuciadLightspeed)
LUCY-1593
TLcyMapAddOn: right clicking the selected layer now always displays the context menu for that
layer.
Bug fixLucy (LuciadLightspeed)
LUCY-1594
TLcyRedliningAddOn: very large altitude values (>10000km) for polylines and polygons were
corrupted when read back
from a .red file.
Bug fixLuciadLightspeed
LMAP-2581
TLcdXMLCustomizerComponentBuilder: in combination with Alloy look and feel, it used to produce
an incorrect
background
color (white) when making the property dialogs larger.
Bug fixLucy (LuciadLightspeed)
LUCY-1522
TLcyLookAndFeelAddOn: when the look and feel as stored in the persistent preferences is not
found on the current system, the addon falls back to the default look and feel configured in the
configuration file, not to the default of the JRE.
Bug fixLuciadLightspeed
LMAP-2570
TLcdMultilevelRasterPainter#suitableRasterLevel no longer needs the given raster to be set on
the painter.
Bug fixLuciadLightspeed
LMAP-2553
TLcdGXYOffsetIconPainter: the anchor point is now always painted when the offset of the icon
changes.
8.0.04
ImprovementLuciadLightspeed
LMAP-2539
The transformation of model bounds to world bounds has been made more
efficient.
ImprovementLuciadLightspeed
TLcdOGCXPath now has an equals and a hashCode implementation.
ImprovementOGC Server
Because the WMS Server uses TLcdConcurrentBuffer instead of TLcdBuffer as internal shared buffer since V7,
the buffer size configuration is no longer required. The configuration property 'shared.buffer.size.mb'
in WEB-INF/classes/settings.cfg is therefore no longer used and has been removed in the sample deployment
available in distrib/LuciadMapWMS_x.x.x.
ImprovementOGC Server
The WMS Server no longer explicitly depends on the Xerces XML parser, but now uses the
package javax.xml.* available in JRE 1.4 and later - the WMS Server requires JRE 1.4 or later,
see prerequisites. The sample build script available in build/wms therefore no longer integrate
the libraries xercesImpl.jar and xmlParserAPIs.jar in a new build.
Bug fixLuciadLightspeed
LMAP-2547
TLcdGXYOffsetIconPainter: snapping now works for the offset icon painter.
Bug fixLuciadLightspeed
LMAP-2541
The transformation of model bounds to world bounds now avoids discretisation
problems in some corner cases that occur with Cassini and orthographic
projections.
Bug fixLucy (LuciadLightspeed)
LUCY-1576
lucy_end_user.pro now also preserves extensions of ALcyVerticalViewComponentFactory from
obfuscation.
Bug fixLucy (LuciadLightspeed)
LUCY-1581
TLcyMapRotationAddOn: used to throw a NullPointerException when clicking on the panel with the
rotation icon.
This bug was introduced by the previous fix to the TLcyMapRotationAddOn.
Bug fixLuciadLightspeed
LMAP-2248
TLcdISO19103Measure#convert did not update the supplied ILcdISO19103Measure object if the same
unit of measure was given as the source unit of measure.
8.0.03
ImprovementMaritime Standards
LMAP-2551
TLcdS52ComplexStroke now has a constructor with a clip; setting a clip on this stroke can
improve performance significantly, especially when a large part of the shape to be stroked
lies
outside the clip. The S-52 painter provider makes now use of this enhancement, improving the
rendering performance of S-52 significantly when zoomed in on complex stroked shapes.
ImprovementRadar Connectors
LMAP-2532
The sample now shows an outline around the simple track-icon, making it better visible on
irregular background data.
Bug fixLuciadLightspeed
LMAP-2558
ALcdGXYPen's clone method and copy constructor now also take into account the hot spot icon.
Bug fixLucy (LuciadLightspeed)
LUCY-1548
TLcyMapAddOn: double-clicking the checkboxes in the layer control no longer fits the view on
the selected layer. Only a double-click on the text or the icon of the label will cause the
view to fit on the layer.
Bug fixLucy (LuciadLightspeed)
TLcyMapRotationAddOn/TLcyRedliningAddOn: the compass icon now drops ticks if the icon becomes
too small.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: Configuration option "SHPFormat.asynchronous.bodiesOnly" was changed
to "false" to let the
SHP format paint its labels in a background thread.
Bug fixGraph and Routing Engine
LMAP-2524
GDF features which are referred to in a GDF file from another feature or relationship, but which
are not defined
themselves in that file are no longer included in the model.
Bug fixGraph and Routing Engine
LMAP-2407
Decoding of GDF files no longer fails when an invalid MARC language code is encountered.
Instead, a warning
message is logged and the code is ignored (the TLcdGDFLanguage attribute is left empty).
Bug fixGraph and Routing Engine
LMAP-2516
TLcdGDFModelDecoder now supports non-ASCII encodings (UTF-8 and ISO 8859-1).
Bug fixMaritime Standards
LMAP-2498
A problem with the decoding of AR2D fields was fixed.
8.0.02
ImprovementLucy (LuciadLightspeed)
LUCY-1565
TLcyMapAddOn, TLcyMapOverviewAddOn: when defining a custom cursor icon for a controller, it is
now also possible to configure the hot spot position.
For each controller in the map addon, a property 'TLcyMapAddon....Controller.cursorHotPoint' is
defined
that allows to change the cursor's hot spot position (in 'resources/lucy/map/map_addon.cfg').
Similar properties are defined for each controller in the map overview addon
(in 'resources/lucy/map/mapoverview_addon.cfg').
ImprovementLuciadLightspeed
TLcdSVGModelEncoder now has a get method for trueSVG.
ImprovementOGC Server
When using Tomcat as servlet container, verbose stacktraces could sometimes be observed in the server log files
containing
notifications of a org.apache.catalina.connector.ClientAbortException. This exception is thrown by Tomcat when
a servlet is trying to send a result to a client which already closed the connection. The WMS / WFS / WCS server used to handle
this exception as a regular IOException, by logging its stacktrace and sending a service exception report to the
client -
which fails in this case, resulting in a similar exception. This exception is now no longer propagated in the WCS
server;
instead, a short debug message is printed in the log files when it occurs.
Bug fixLucy (LuciadLightspeed)
LUCY-1567
TLcyMapAddOn: in the layer control, the delete component is no longer inserted when the regular
action bar is removed through the conifguration file. Furthermore the delete component can
now also be positioned in the order bar, as well as outside any of the action bars.
Bug fixLucy (LuciadLightspeed)
In some cases, TLcyGXYAsynchronousLayerCustomizerPanel#canSetObject returned a wrong value.
Bug fixLuciadLightspeed
TLcdSVGModelEncoder no longer requires that shapes implement ILcd2DEditableShape in order to
export them.
Bug fixLucy (LuciadLightspeed)
TLcyMapRotationAddOn, TLcyPreviewAddOn, TLcyVerticalViewAddOn: when loading a new workspace,
some memory blocks were
referred longer than strictly needed.
Bug fixLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: The property 'TLcyWorkspaceAddon.showOpenProgressDialog' of
'workspace_addon.cfg' was ignored
when selecting a workspace from the list with recent workspaces.
Bug fixLuciadLightspeed
TLcdSymbol rectangles are now the correct size. They used to be one pixel too wide and too high.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelEncoder now correctly encodes projection coordinate systems
with geodetic datums other than WGS 84.
Bug fixLuciadLightspeed
TLcdDatabaseModelDescriptor now properly synchronizes the creation and
caching of its connection. Note that this class is used by all optional
database packages.
Bug fixLuciadLightspeed
TLcdDEMModelDecoder and TLcdDEMTileDecoder now avoid unnecessarily rounding
the coordinates of some raster bounds.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter: using the scroll wheel of the mouse in interactive labels no longer
throws ClassCastExceptions.
Bug fixDefense Symbology
LMAP-2520
If a custom value was set for the modifier ILcdMS2525bCoded.sLocationLabel in MIL-STD 2525b or for the modifier
ILcdAPP6ACoded.sLocationLabel in APP-6A, it was not displayed as a label. Only when no value was set, the default
label
containing the position in UTM coordinates was displayed.
8.0.01
ImprovementAviation Standards
The AIXM decoder now decodes the attribute 'mid' for the existing domain objects. This attribute represents an artificial
unique identifier, and is considered optional by the AIXM 3.3 and 4.x specification.
The following domain objects have been updated:
- Aerodrome: ILcdAIXMAerodromeFeature.MID
- Navaid (DME, VOR, NDB, TACAN, Marker): ILcdAIXMNavaidFeature.MID
- Designated point: ILcdAIXMWayPointFeature.MID
- Airspace: ILcdAIXMAirspaceFeature.MID
- Route: ILcdAIXMATSRouteFeature.MID
- Route segment: ILcdAIXMRouteSegmentFeature.MID
- Geoborder: ILcdAIXMGeoborderFeature.MID
- Runway: ILcdAIXMRunwayFeature.MID
- Runway direction: ILcdAIXMRunwayDirectionFeature.MID
- Runway cline point: ILcdAIXMRunwayClinePointFeature.MID
- ILS: ILcdAIXMILSFeature.MID
- Procedure: ILcdAIXMProcedureFeature.MID
The corresponding ILcdAIXMHandler implementations now decode this extra attribute by default.
Bug fixLucy (LuciadLightspeed)
DockableWorkspaceCodecDelegate: all references that are decoded using
ALcyWorkspaceCodec.decodeReference are now
decoded from the workspace thread, instead of from the event dispatch thread.
Bug fixLucy (LuciadLightspeed)
TLcyMain / DockableFrameFrontendMain: Any ILcyApplicationPane's that were open before and after
loading a workspace,
but for which no layout information was present in that workspace, are now restored to their
initial location.
Before, their location used to be unpredictable.
Bug fixDatabase Connectors
The georaster model decoder now handles correctly the case of rasters that
don't use pyramids but have blocks, and the block size is more than twice the
size of the entire image.
8.0
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: when selecting an URL in the combo
box,
a connection attempt is now automatically started, without the need to click on the 'Connect'
button.
ImprovementLucy (LuciadLightspeed)
It is now possible to load a workspace that was saved with another frontend. The locations
of the application panes may not be completely appropriate for the active frontend, but they
will be visible.
ImprovementLucy (LuciadLightspeed)
Undoing a change in an invisible layer now makes that layer visible again.
ImprovementLuciadLightspeed
The samples now use the new TLcdGXYCompositeController to combine the TLcdGXYZoomWheelController
with other
controllers.
Regardless of the controller active on the view, one can now zoom in and out using the mouse
wheel.
ImprovementLuciadLightspeed
TLcdGXYCompositeController enables combining multiple controllers into one controller.
ImprovementLuciadLightspeed
TLcdGXYZoomWheelController enables zooming in and out of a view using the mouse wheel.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: To improve the performance of the overview map, the amount of projection
origin
updates have been reduced. The projection origin is now only reset when the view extents of the
main map
are separated from the projection origin by a fixed threshold, instead of at each change of the
main map.
ImprovementLuciadLightspeed
TABRasterModelDecoder and TFWRasterModelDecoder now have properties to
override the color model of decoded models.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: Replaced redlining icons with nicer versions that are slightly bigger, and
have an outline to
ensure visibility on any background color.
ImprovementLucy (LuciadLightspeed)
The labels of the grid layer can now be painted with a halo. The halo settings can be configured
through
the layer properties dialog.
ImprovementLuciadLightspeed
TLcdMapBufferedImage has been extended with constructors to specify the image type and index
color model.
ImprovementLuciadLightspeed
The new class TLcdRasterReferencingUtil provides methods to georeference
rasters based on tie points and on transformation matrices. It allows to
rotate model references and then create axis-aligned raster bounds,
optimizing the match of the given tie points or transformation matrices.
ImprovementLuciadLightspeed
ALcdRasterPainter now provides a utility method idealPixelDensity, which
computes the ideal pixel density that a raster should have for display in
a given context.
ImprovementLuciadLightspeed
A new class TLcdGXYAsynchronousViewLabelPainterWrapper wraps existing view label painters so
that they do not
interfere with asynchronous painting.
ImprovementLucy (LuciadLightspeed)
TLcyJPEG2000ModelEncoderCustomizerPanel now warns the user if he tries to apply lossy
compression to
a raster having an index color model.
ImprovementLucy (LuciadLightspeed)
Two new add-ons are available: TLcdOracleLocatorDecoderAddOn and
TLcdOracleGeorasterDecoderAddOn. They add support for reading
vectorial and respectively raster data from Oracle Spatial databases. The two add-ons depend on
the LuciadMap Oracle Locator and
Oracle Spatial optional packages.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn/TableViewAddOn: now clears the selection of other layers when mediating selection
with the map.
This makes sure that if elements from the table are (automatically) selected on the map, no
other objects are
selected.
ImprovementLucy (LuciadLightspeed)
The internal error dialog now contains a check box to disable it for the rest of the session.
This way, the user
does not have to sit through a loop of exceptions.
ImprovementLucy (LuciadLightspeed)
Lucy now supports intermediate paint updates for heavy asynchronous layers. To view the painting
in progress
for a specific format, you can enable the option in the format's configuration file. Also,
TLcyAsynchronousPaintHint
has a new method getIntermediateUpdateInterval to enable intermediate paint updates for your own
format.
ImprovementLucy (LuciadLightspeed)
The default frontend now uses the JIDE docking framework to arrange application panes. With this
docking framework the user can now completely reconfigure the layout of Lucy on the fly. The
JIDE docking framework allows the user to change the location of the application panes by
dragging with the mouse. It also allows the user to take an application pane out the main window
into a separate window of its own.
There is also a new sample available that demonstrates the implementation of a Lucy frontend
with the JIDE docking framework.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousPaintQueue now supports intermediary paint updates and automatically
interrupts
ongoing paints when appropriate.
ImprovementLuciadLightspeed
The LuciadMap views now send out an invalidation event when they have been resized.
ImprovementLuciadLightspeed
A new class TLcdGXYAsynchronousMultiPaintQueue enables layers to be painted asynchronously for
multiple views.
ImprovementLucy (LuciadLightspeed)
TLcyGridAddOn: grid layers can now be painted asynchronously.
ImprovementLuciadLightspeed
The advancedLineStyle sample has been reviewed and updated to illustrate three concepts in
LuciadMap to render
a line:
- the painter TLcdGXYRoundedPointListPainter to draw point lists with rounded corners,
- the stroke implementation TLcdGXYComplexStroke to draw Shape patterns repetitively
along a path,
- the painter TLcdGXYHaloPainter to add a halo effect to other ILcdGXYPainter
implementations.
ImprovementLuciadLightspeed
A new painter TLcdGXYRoundedPointListPainter has been added to the API. It is an extension of
TLcdGXYPointListPainter
that allows to draw an ILcdPointList with rounded corners.
ImprovementLucy (LuciadLightspeed)
Lucy now uses Java Topology Suite version 1.8 (was version 1.5).
ImprovementLuciadLightspeed
The API documentation of the following classes has been reviewed and updated:
- the interfaces ILcdGXYPainter and ILcdGXYEditor, and their principal implementations,
- the interface ILcdGXYView, and its implementations,
- ILcdGXYController and ILcdGXYLayer,
- all implementations of ILcdModelDecoder in the package com.luciad.format.raster.
ImprovementLuciadLightspeed
TLcdGXYViewBufferedImage now has a getter for the name of the view.
ImprovementLuciadLightspeed
The class TLcdLonLatGridPainter now has methods for adding halo effects to the grid labels.
Halo's can be
enabled
by setting the labelHaloEnabled property (setLabelHaloEnabled()) to true. The color and
thickness can be changed
via the setLabelHaloColor() and setLabelHaloThickness() methods.
ImprovementLuciadLightspeed
Support has been added for the optional WMS GetFeatureInfo request. This request allows to retrieve more information
about particular features shown on a map. The class com.luciad.wms.client.model.ALcdWMSProxy has been extended
with a method createFeatureInfoInputStream() that returns an InputStream with the result of the WMS server, similar
to the method createImageInputStream() for WMS GetMap requests. To illustrate the use of GetFeatureInfo requests at
the client side, the wms.client.gxy sample has been modified with GetFeatureInfo support.
ImprovementLuciadLightspeed
The wms.client.gxy sample now paints the WMS data asynchronously on the map, by using the asynchronous painting
mechanism
introduced in LuciadMap 7.2.
ImprovementLuciadLightspeed
A new java.awt.Stroke implementation, TLcdGXYComplexStroke, has been added to the API. It offers
functionality
for drawing one or more Shape patterns repetitively along a path.
ImprovementLuciadLightspeed
The new layer wrapper TLcdGXYDensityLayer paints elements as color-coded
densities, for instance using green for regions where few elements overlap
and red for regions where many elements overlap.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: TLcyMapLayerControl and TLcyMapLayerControlFactory have been adjusted to include
an extra toolbar and a popup menu. All the actions for in the toolbar can now be configured.
The upgrade considerations contain information on how to revert to the old layout.
ImprovementLuciadLightspeed
The new output stream factory TLcdFileOutputStreamFactory simply creates
output streams to write to files.
ImprovementLuciadLightspeed
The new model reference encoder TLcdEPSGModelReferenceEncoder can write .epsg files
containing decimal georeferencing codes, as specified by the European
Petroleum Survey Group (EPSG).
ImprovementLuciadLightspeed
The new model reference encoder TLcdWKTModelReferenceEncoder can write .prj files
containing Well-Known Text (WKT) georeferences, as specified by the Open
GIS Consortium (OGC).
ImprovementLuciadLightspeed
The performance of asynchronous painting has been improved when working with many layers.
ImprovementLuciadLightspeed
The performance of asynchronous painting has been improved when working with unlabelled and/or
invisible layers,
and labels without selections.
ImprovementLuciadLightspeed
The performance of asynchronous painting has been improved in combination with view label
painting.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousPaintQueue can now delay the repainting of skipped labels and selections in
BODIES_AND_SKIP
mode, in order to avoid flicker.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousPaintQueue can immediately display short asynchronous paints.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousPaintQueue can paint an extra area around the synchronous view so small pan
and zoom
operations
will have an immediate result.
ImprovementLuciadLightspeed
TLcdSHPModelEncoder is now capable of encoding PolylineZ and PolygonZ (3D) shapes.
ImprovementLuciadLightspeed
ILcdGXYView implementations: when an ILcdGXYController is set to an ILcdGXYView using
setGXYController, and if
that
controller implements MouseWheelListener, it now also registers that controller as a
MouseWheelListener so that
it
receives mouse wheel events.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn, TLcyMapOverviewAddOn: a new navigate controller has been introduced in
TLcyMapComponentFactory,
identified by the ID TLcyMapComponentFactory.NAVIGATE_CONTROLLER. It represents a composite
controller
that provides scroll wheel zoom support, optionally combined with the Ctrl button to fit to a
touched raster,
and that allows to pan with the middle mouse button.
It is used as secondary controller by all other controllers to provide extra pan and zoom
capabilities,
next to their specific functionality.
This controller continuously repaints the map and map overview when zooming or panning.
If asynchronuous painting is disabled, continuously repainting is not advised.
Therefore a new config property '...navigateController.continuousRepaint' allows
to change this behavior (in 'resources/lucy/map/map_addon.cfg' and
'resources/lucy/map/mapoverview_addon.cfg').
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: a new zoom controller has been introduced in TLcyMapComponentFactory,
identified by the ID TLcyMapComponentFactory.CONTINUOUS_ZOOM_CONTROLLER. It allows to zoom in or
out
by dragging the mouse downwards or upwards.
The map addon now uses this zoom controller in favor of the previous zoom controller,
that required to drag a rectangle to zoom in or out.
The upgrade consideration contains information on how to revert to the old behavior.
ImprovementLuciadLightspeed
All cursors for zoom controllers are adapted so that they are now also visible on a dark
background.
ImprovementLuciadLightspeed
TLcdGXYIconPainter: the painter now stores information in the ILcdCache of its domain object.
The property
'paintCache' is added to enable caching support. Note that our ILcdPoint implementations do not
implement
ILcdCache. If you want to use caching in the icon painter, you should make sure that your domain
objects
implement ILcdCache.
ImprovementLuciadLightspeed
TLcdLayer now has a convenience method invalidate which can be called whenever the layer is no
longer a valid
representation of the model it contains. This method should not be called for properties which
are set on the
layer
itself.
ImprovementLucy (LuciadLightspeed)
All data formats are now painted asynchronously, so that the response time of the map view is
improved. This change
can be reverted by adapting, for every format, the '.asynchronous' setting to 'false'. E.g.
'SHPFormat.asynchronous', 'GMLFormat.asynchronous', ... in 'default_decoders.cfg',
'TLcyASDIDecoderAddOn.ASDIFormat.asynchronous' in 'asdidecoderaddon.cfg' etc.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv.getCompositeSimulatorModelFactory no longer swallows IllegalArgumentException's.
Now, when a
registered ILcySimulatorModelFactory (ILcyLucyEnv.addSimulatorModelFactory) throws such an
exception (or other
exceptions), the exception simply rolls upwards.
ImprovementLucy (LuciadLightspeed)
Replaced the bean color and font dialogs by a nicer swing version. To revert to the old dialogs,
use the
system properties 'com.luciad.lucy.beansColorPick' or 'com.luciad.lucy.beansFontPick' and set it
to 'true'.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddon: the cursor of each controller can now be configured.
For each controller, a property 'TLcyMapOverviewAddon....Controller.cursor' is defined
that allows to change the cursor (in 'resources/lucy/map/mapoverview_addon.cfg').
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddon: the map overview is now continuously repainted while panning.
If asynchronuous painting is disabled, continuously repainting is not advised.
Therefore a new config property 'TLcyMapOverviewAddOn.panController.continuousRepaint' allows
to change this behavior (in 'resources/lucy/map/mapoverview_addon.cfg').
ImprovementLucy (LuciadLightspeed)
TLcyMapAddon: the cursor of each controller can now be configured.
For each controller, a property 'TLcyMapAddOn....Controller.cursor' is defined
that allows to change the cursor (in 'resources/lucy/map/map_addon.cfg').
ImprovementLucy (LuciadLightspeed)
TLcyMapAddon: the map is now continuously repainted while panning.
If asynchronuous painting is disabled, continuously repainting is not advised.
Therefore a new config property 'TLcyMapAddOn.panController.continuousRepaint' allows
to change this behavior (in 'resources/lucy/map/map_addon.cfg').
ImprovementLucy (LuciadLightspeed)
All menu items which are not added to a toolbar, now no longer have an icon in the menu bar. The
icons of the
following actions and activeSettables were removed. If the old behaviour is wanted, remove the
smallIcon key
from the corresponding configuration file.
- map_addon.cfg
- TLcyMapAddOn.openFileAction
- TLcyMapAddOn.saveFileAction
- TLcyMapAddOn.saveAsFileAction
- TLcyMapAddOn.saveViewAsImageAction
- TLcyMapAddOn.editMapComponentAction
- TLcyMapAddOn.fullScreenActiveSettable
- TLcyMapAddOn.globalLabelDeconflictionActiveSettable
- TLcyMapAddOn.createMapAction
- TLcyMapAddOn.magnifierControllerActiveSettable
- mapoverview_addon.cfg
- TLcyMapOverviewAddOn.createMapOverviewActiveSettable
- TLcyMapOverviewAddOn.saveViewAsImageAction
- magneticnorth_addon.cfg
- TLcyMagneticNorthAddOn.setMagneticNorthControllerActiveSettable
- gribdecoderaddon.cfg
- TLcyGRIBDecoderAddOn.setGRIBControllerActiveSettable
- pim_addon.cfg
- TLcyPIMTrackAddOn.setNewPIMControllerAction
- print.cfg
- TLcyPrintAddOn.showPageSetupDialogAction
- TLcyPrintAddOn.showPrintPreviewDialogAction
- TLcyPrintAddOn.showPrintDialogAction
- TLcyPrintAddOn.showPrintPreviewDialogAction
- tea_addon.cfg
- TLcyTeaAddOn.setProfileControllerActiveSettable
- verticalview_addon.cfg
- TLcyVerticalViewAddOn.addVerticalViewAction
ImprovementLucy (LuciadLightspeed)
TLcyMapRotationAddOn: the background of the rotation panel now also rotates. Furthermore, the
map is now
continuously repainted while the mouse is being dragged. If asynchronuous painting is disabled,
continuously
repainting is not advised. Therefore a new config property
'TLcyMapRotationAddOn.continuousRepaint' allows
to change this behavior (in 'resources/lucy/map/map_rotation_addon.cfg').
ImprovementLucy (LuciadLightspeed)
AFrontend: the front-end samples have been enhanced, they now provide:
- a splash screen
- a status bar
- a warning dialog for uncaught exceptions
- (re)storing the frame location and size
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: can now read .epsg reference files that are next to a data file. See
TLcdEPSGModelReferenceDecoder for more information about the file format. This feature can be
disabled
by setting the property 'epsgFileDecoder' to 'false' in
'resources/lucy/modelreference/modelreference_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
Labels are now painted with a halo for newly created layers of the following formats:
SHP, MTM, Redlining, MapInfo, PIM.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: a new property 'map.scales.insert' has been added to the configuration
file
'resources/lucy/map/mapoverview_addon.cfg', that allows to choose whether the scale component
must be shown
in the toolbar of the overview map. To reduce the amount of components in the toolbar of the map
overview,
it is set to false by default. For the same reason, the different controller buttons in the
toolbar of the map
overview have been removed as well; by default, the map overview controller is now always
active.
To revert to the old map overview layout, set 'map.scales.insert=true' to show the scale
component
in the toolbar again, and set 'TLcyMapOverviewAddOn...toolBar.insert=true' for the different
controller components
to show the controller buttons.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: a new property 'map.scales.insert' has been added to the configuration file
'resources/lucy/map/map_addon.cfg', that allows to choose whether the scale component must be
shown
in the toolbar of the main map. By default, the property is set to true.
ImprovementLuciadLightspeed
View invalidation events now also store the invalidated layer, if appropriate.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: a new property 'auto_rescale_overview' has been added to the configuration
file
'resources/lucy/map/mapoverview_addon.cfg', that allows to scale the overview map automatically
in
accordance with the scale of the main map. This property is only taken into account when the
property
'auto_recentre_overview' is set to true. The relation between the scale of the overview map and
the scale
of the main map can be controlled by the property 'auto_rescale_factor'.
By default, the property 'auto_rescale_overview' is set to true. To revert to the old map
overview behavior,
set the property value to false.
ImprovementLucy (LuciadLightspeed)
TLcyAlwaysFitJToolBar: this new class is a JToolBar extension that has a button to display the
remaining items that
don't fit.
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddOn: the AIXM decoder now supports version 3.3, 4.0 and 4.5 of the AIXM specification,
while previously it only supported version 3.3.
ImprovementLuciadLightspeed
The new class TLcdEPSGModelReferenceDecoder provides a convenient way to define
model references for formats that do not contain any referencing information,
like the SHP format. Much like TLcdModelReferenceDecoder, which looks for .ref
files next to the data files, TLcdEPSGModelReferenceDecoder looks for .epsg
files. While .ref files specify model references using LuciadMap class names
and property names, .epsg files specify model references using a single
decimal code, as defined by the European Petroleum Survey Group.
ImprovementLucy (LuciadLightspeed)
TEA intervisibility layers are now painted asynchronously.
ImprovementLuciadLightspeed
TLcdGXYLayer no longer performs any action when asked to paint in SELECTION mode while the
selection is empty.
ImprovementLuciadLightspeed
TLcdStatusEventSupport: adding the method getStatusListeners which returns a list of all status
event listeners
that were added to the status event support instance.
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddOn, TLcyARINCAddOn and TLcyDAFIFAddOn now support asynchronous painting.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: the layer selection dialog now also shows the title and abstract of a
connected service, if
this information is available.
ImprovementLucy (LuciadLightspeed)
Support was added to store the data directory across sessions. The new user preference property
TLcyPreferencesManager.DATA_DIRECTORY_KEY is updated each time a file chooser is closed.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: creating a new map bounds outside the world does not throw a
TLcdOutOfBoundsException anymore.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: creating a map bounds in the overview panel is now painted as a bounds
shape.
ImprovementLucy (LuciadLightspeed)
The layer label decluttering setting is added to the layer properties dialog.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddon: the DAFIF types that cannot decode data using the selected ICAO regions are now
disabled.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddon: the DAFIF loader cannot handle unsplitted DAFIF Edition 7 data. The DAFIF panel
now shows an
error message instead of opening the unusable data set.
ImprovementLucy (LuciadLightspeed)
Renamed startup scripts RunLucy*.* to Lucy*.*
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: repainting the map no longer produces status events.
ImprovementDatabase Connectors
TLcdOracleSpatialModelReferenceFactory is a new utility class that converts
an Oracle SRID into a model reference.
ImprovementDatabase Connectors
The new Oracle Spatial package supports decoding of GeoRaster objects in
Oracle Spatial databases.
ImprovementOGC Server
The WMS server developer guide has been extended with a new section covering various performance guidelines and tips
when running a LuciadMap WMS server.
ImprovementOGC Server
The WMS GIF encoder, TLcdGXYViewGIFEncoder, now automatically uses the ImageIO library to encode to GIF, when JDK
1.6 is used.
This results in a vast performance improvement, and also adds support for views that use transparency -
which was before not possible. For older JDK versions, the Acme GIF encoder and JAI library are still used.
ImprovementOGC Server
The WMS server sample now contains an implementation of ILcdWMSGetFeatureInfoEncoder, namely
samples.wms.server.WMSFeatureInfoAsTextEncoder,
to provide support for the optional WMS GetFeatureInfo request. To illustrate the use of GetFeatureInfo requests at
the client side,
the WMS client lightweight sample has been modified with GetFeatureInfo support.
ImprovementTerrain Analysis Engine
TLcdProfileViewJPanel: support is added to set the location of the mark to a point located at a fraction
of a profile segment.
ImprovementTerrain Analysis Engine
Support is added to compute the extreme points within a shape. More information on these computations can be
found in the developer guide and in the reference guide of the classes com.luciad.tea.TLcdExtremePointFinder.
ImprovementTerrain Analysis Engine
Support is added to compute a shape-to-shape visibility. More information on these computations can be found
in the developer guide and in the reference guide of the classes com.luciad.tea.TLcdAltitudeMatrixViewFactory
and com.luciad.tea.TLcdVisibilityMatrixViewFactory.
ImprovementTerrain Analysis Engine
TLcdProfileViewJPanel: the user can now change the color of the profile view using the method setValidColor().
ImprovementAviation Standards
A new domain object is added to AIS to represent airspace corridors. The basic interface is com.luciad.ais.model.airspace.ILcdAirspaceCorridor.
Just like the existing airspace types, it extends from the generic airspace interface, ILcdGenericAirspace.
The interface ILcdAirspaceCorridor has a default implementation com.luciad.ais.model.airspace.TLcdAirspaceCorridor and a
featured extension com.luciad.ais.model.airspace.TLcdFeaturedAirspaceCorridor. For a list of features and the corresponding
class mappings, the existing airspace feature interfaces and class mappers are used:
com.luciad.ais.model.airspace.ILcdAirspaceFeature and com.luciad.ais.model.airspace.TLcdAirspaceFeatureClassMapper.
The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create
TLcdFeaturedAirspaceCorridor instances.
ImprovementAviation Standards
The AIXM decoder now supports version 4.0 and 4.5 of the AIXM format, next to the originally supported version 3.3.
To comply with the new versions, the decoders, feature lists and feature value domains for existing domain objects
have been updated accordingly.
To represent the new airspace corridor concept introduced in version 4.0, the AIS package is extended with a new domain object,
represented by the interface com.luciad.ais.model.airspace.ILcdAirspaceCorridor. The AIXM airspace decoder,
TLcdAIXMAirspaceHandler, now automatically decodes airspace corridors using this new domain object.
Apart from airspace corridors, no new domain objects or equivalent decoders have been introduced.
ImprovementMaritime Standards
The performance of selection on ECDIS layers has been improved.
ImprovementMaritime Standards
TLcdS52ComplexStroke has been deprecated in favor of a new class in LuciadMap,
TLcdGXYComplexStroke. The latter provides a more flexible and correct implementation of a
complex stroke. Existing projects can continue to use the TLcdS52ComplexStroke, but for new
projects, the TLcdGXYComplexStroke should be preferred.
ImprovementMaritime Standards
S-57 meta data (object classes 300-312) are now supported by the TLcdS57ModelDecoder.
TLcdS52PainterProvider also supports the visualization of meta data. All data are decoded by
default. To prevent cluttering on the map, the TLcdS52PainterProvider now has a flag,
setDisplayMetaData(), which can be used to control whether meta data should be shown or not.
Its
default value is false, to ensure the display behaviour of existing applications will not be
affected. If the meta data should also be excluded from the model, a meta data filter can
easily
be configured on the TLcdS57ModelDecoder via the setExcludedObjectClasses() method.
ImprovementMaritime Standards
The S-52 rendering engine now uses icon caching for rendering of S-52 symbols.
ImprovementMaritime Standards
The S-57 decoder performance has been increased significantly. Especially models which
require a
lot of preprocessing should benefit from this.
Bug fixLuciadLightspeed
TLcdGXYTextPainter: the text object is now drawn during a THREE_CLICK creation to be able to
see how the text is being created.
Bug fixLucy (LuciadLightspeed)
TLcyMapDataFlavor: using #equals(DataFlavor) now works as expected for comparing the different
flavor constants in this class.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: Deleting preview layers using the map layer control could confuse the
previewer panel. For
example, enabling a layer in the preview panel (with the check box), deleting it from the map
(using the trash
can), adding it again (using the check box) and removing it (using the checkbox) did not remove
the layer from the
map.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: When zooming in, the labels next to the grid lines were sometimes loosing
significant digits due
to rounding.
Bug fixLuciadLightspeed
All ILcdGXYView implementations now always return true when calling the deprecated method
hasValidImage.
Bug fixLucy (LuciadLightspeed)
Undoing and redoing the definition of a print area now works as expected.
Bug fixLucy (LuciadLightspeed)
A NullPointerException, occuring when a workspace was saved and the VPF panel was visible
without any VPF
data loaded, has been fixed.
Bug fixLucy (LuciadLightspeed)
The Lucy developer's guide was referring a non-existing class
'TLcyDefaultCustomizerPanelFactory',
this has been fixed.
Bug fixLucy (LuciadLightspeed)
TLcyCameraTrackingAddOn: linking the 3D view camera to an object would
sometimes result in this object being visible in front of the camera.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: A dependency on the sun.misc package in Sun's JDK has
been removed, because it prevented Lucy from being able to run on a JDK other than the one from
Sun.
Bug fixLucy (LuciadLightspeed)
In some cases, Lucy would wait for asynchronous painting to complete when determining
the scale to raster button's enabled state.
Bug fixLuciadLightspeed
In case of an URL source, TLcdDataInputStream was sometimes incorrectly throwing an EOF
exception. This has now
been fixed.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: Used to throw a NullPointerException when trying to fit on an empty PIM
layer.
Bug fixLuciadLightspeed
TLcdGXYEllipsePainter no longer indicates that an ellipse has changed when it was merely
selected. The painter
used to
return true for the edit method when the TRANSLATING mode was passed with deltaX and deltaY in
the context equal
to
zero.
Bug fixLuciadLightspeed
The painters TLcdGXYLabelPainter and TLcdGXYFeaturedLabelPainter now have clone methods that
create proper,
deeper clones.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: now prevents the user from closing the last map. The configuration property
"TLcyMapAddOn.preventClosingLastMap" in "resources/lucy/map/map_addon.cfg" allows to change this
behavior.
Bug fixLuciadLightspeed
The GXY views no longer ask the layers to paint themselves using a paint mode consisting solely
of ALL, rather
than the prescribed ALL+[BODIES|LABELS|SELECTION].
Bug fixLuciadLightspeed
ALcdAction no longer calls public methods from its constructor. This could have resulted in
incorrectly
initialized
classes when constructing extensions of this class.
Bug fixLuciadLightspeed
TLcdLayer no longer calls public methods from its constructor. This could have resulted in
incorrectly
initialized
classes when constructing extensions of this class.
Bug fixLuciadLightspeed
TLcdXYFloatLine now has a correct implementation of the equals method.
Bug fixLuciadLightspeed
A rotation change is now properly taken into account when drawing labels with a halo and image
caching
enabled, using TLcdGXYLabelPainter and TLcdGXYPolylineLabelPainter.
Bug fixLucy (LuciadLightspeed)
TLcyMain: AWT's EventQueue used to be replaced by a custom extension, to show an error dialog
when an uncaught
exception occurred (for example a TLcdLicenseError). Now, if Java 1.5 or above is available,
the EventQueue is left
untouched and the UncaughtExceptionHandler mechanism is used.
This provides a workaround for Sun bug #4913324: there is a possibility to deadlock the
application when replacing
the event queue.
This also allows to control the uncaught exception dialog globally, using
Thread.setDefaultUncaughtExceptionHandler. Check out sample class 'AFrontend' for an example.
Bug fixLuciadLightspeed
Reduced magnifier window trails on the underlying view when used with JDK 1.4 and 1.5.
The fix needs fixed interval updates. The problem does not occur on JDK 1.6, because of the
latter's improved
painting routines.
Bug fixLucy (LuciadLightspeed)
All addons that support workspaces now encode the application panes that they have opened.
As a result loading a workspace that was saved with another frontend still restores these
application panes.
Bug fixLuciadLightspeed
TLcdGXYLayer now fires a property change event ('GXYLayerLabelPainter') when the layer label
painter is changed.
Bug fixDatabase Connectors
The model decoder and encoder now correctly consider duplication of the
first/last points in polygons.
Bug fixAviation Standards
TLcdARINCRunwayHandler incorrectly set the widths of runway objects to the value
in feet, rather than converting it to meters as required by the specification of
ILcdRunway.getWidth(). As a result, the runway painter would paint runways wider than
they should be. This has now been corrected. Note that the width in feet, as
read from the ARINC file, is still available in the features of the runway
object (ILcdARINCRunwayFeature.WIDTH and ILcdARINCRunwayFeature.WIDTH_UNIT).
Bug fixAviation Standards
All painters now have clone methods that create proper, deeper clones.
Bug fixDefense Symbology
A bug has been fixed in the ILcdGXYEditor for T-shaped tactical symbols in APP-6A and MIL-STD 2525b (e.g., the
'Canalize' symbol),
which prevented the translation of one of the points in some cases.
Bug fixDefense Symbology
The calculation of the area and line symbols with rounded corners in MIL-STD 2525b and APP-6A was not correct when
a geodetic reference was used on the view, which resulted in an incorrect shape.
Bug fixDefense Symbology
The shape for the echelon TEAM/CREW in MIL-STD 2525b and APP-6A was not correctly rendered for some symbols
on Linux and Solaris platforms.
Upgrade considerationLucy (LuciadLightspeed)
The map tool bar now uses html tool tips to better explain the controller workings. This change
can be reverted by
removing these configuration file lines:
- resources/lucy/map/map_addon.cfg:
TLcyMapAddOn.*ControllerActiveSettable.toolBar.shortDescription
- resources/lucy/undo/undo_addon.cfg: TLcyUndoAddOn.*Action.toolBar.shortDescription
- resources/lucy/redlining/redlining_addon.cfg:
TLcyRedliningAddOn.redliningActiveSettable.toolBar.shortDescription
Upgrade considerationLuciadLightspeed
TLcdCADRGModelListDecoder (present in versions 7.2.02 and higher) has been
removed in favor of TLcdCADRGModelDecoder with its new property
createMultilevelRasters.
Upgrade considerationLuciadLightspeed
TLcdGXYViewBufferedImage now throws an IllegalArgumentException when calling
setNumberOfCachedBackgroundLayers
with
a non-zero argument.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMain: the modes FRAME_MODE and INTERNAL_FRAME_MODE are now deprecated: they are no longer
mentioned in the documentation. It is still possible to specify these modes in the properties
file of Lucy in the interest of backwards compatibility, but their usage is discouraged.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: the map addon now uses a continuous zoom controller by default.
To revert to the old behavior, open the configuration file 'resources/lucy/map/map_addon.cfg',
change the value of the properties TLcyMapAddOn.zoomControllerActiveSettable.menuBar.insert
and TLcyMapAddOn.zoomControllerActiveSettable.toolBar.insert from false to true,
and add the properties TLcyMapAddOn.continuousZoomControllerActiveSettable.menuBar.insert=false
and
TLcyMapAddOn.continuousZoomControllerActiveSettable.toolBar.insert=false.
Following snippet can be saved as the configuration file for the map addon.
includeConfig=lucy/map/map_addon.cfg
TLcyMapAddOn.zoomControllerActiveSettable.menuBar.insert=true
TLcyMapAddOn.zoomControllerActiveSettable.menuBar.smallIcon=images/gui/i16_loop.gif
TLcyMapAddOn.zoomControllerActiveSettable.toolBar.insert=true
TLcyMapAddOn.zoomControllerActiveSettable.toolBar.smallIcon=images/gui/i16_loop.gif
TLcyMapAddOn.continuousZoomControllerActiveSettable.menuBar.insert=false
TLcyMapAddOn.continuousZoomControllerActiveSettable.toolBar.insert=false
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: the toolbar now contains less buttons. To revert this change, adapt
'resources/lucy/map/mapoverview_addon.cfg' by:
- Changing all properties 'TLcyMapOverviewAddOn.*ActiveSettable.toolBar.insert' to
'true',
except the one for the continous zoom controller
- Setting the icon of the zoom controller to 'images/gui/i16_loop.gif'
- Setting the property 'map.scales.insert' to 'true'
- Setting the property 'TLcyMapOverviewAddOn.toolBar.groupPriorities' to
'ControllersGroup, ProjectionGroup, OptionsGroup'
Following snippet can be saved and used as the configuration file for the TLcyMapOverviewAddOn
if you wish to revert to the layout prior to 8.0
includeConfig=lucy/map/mapoverview_addon.cfg
map.scales.insert=true
TLcyMapOverviewAddOn.toolBar.groupPriorities=ControllersGroup, ProjectionGroup, OptionsGroup
TLcyMapOverviewAddOn.overviewControllerActiveSettable.toolBar.insert=true
TLcyMapOverviewAddOn.selectControllerActiveSettable.toolBar.insert=true
TLcyMapOverviewAddOn.panControllerActiveSettable.toolBar.insert=true
TLcyMapOverviewAddOn.zoomControllerActiveSettable.toolBar.insert=true
TLcyMapOverviewAddOn.zoomControllerActiveSettable.toolBar.smallIcon=images/gui/i16_loop.gif
TLcyMapOverviewAddOn.rulerControllerActiveSettable.toolBar.insert=true
TLcyMapOverviewAddOn.recenterControllerActiveSettable.toolBar.insert=true
Upgrade considerationLucy (LuciadLightspeed)
The frontend by default now uses a docking framework. You can revert to the old tabbed pane
interface by changing the lucy.cfg configuration file. The mode property in the configuration
file should be set to 'TABBED_PANE_MODE' and the preferredMapSide set to 'left', as in the
snippet below.
mode = TABBED_PANE_MODE
preferredMapSide=left
Also the default workspace that ships with the LuciadMap distribution does not contain
any information relevant for the tabbed pane mode. It is possible to read this default
workspace but the application panes will not be layed out optimally. Therefore, next to the
new default workspace, the old default workspace is also present as the
resources/lucy/workspace/tabbedPaneDefaultWorkspace.lws file.
Upgrade considerationLuciadLightspeed
Asynchronous paint events now also store the view for which the asynchronous paint was executed.
The event constructor must now include this view.
Upgrade considerationLuciadLightspeed
From this version on LuciadMap is based on Java 1.4. This means amongst others that the
libraries
xmlParserAPIs.jar
and xercesImpl.jar are no longer required, since these are part of the JDK as of version 1.4.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn, TLcyMapOverviewAddOn: the layout of the layer control has changed significantly.
You can adjust the configuration of the layer control to revert to the old layout. Following
snippet provides the necessary configuration to achieve this for the TLcyMapAddOn. You can save
it as a new configuration file and adjust your addons.xml file to point to this new
configuration file. The same configuration file can be used for the TLcyMapOverviewAddOn if the
includeConfig property of this snippet is changed to point to 'lucy/map/mapoverview_addon.cfg'.
includeConfig=lucy/map/map_addon.cfg
mapLayerControl.margin=5,5,5,5
mapLayerControl.toolBar.create=true
mapLayerControl.toolBar.position=EAST
mapLayerControl.toolBar.orientation=VERTICAL
mapLayerControl.toolBar.rowCount=2
mapLayerControl.toolBar.groupPriorities=LayerOrderGroup,\
LayerPropertiesGroup,\
ModifyViewGroup,\
DeleteComponentGroup
mapLayerControl.orderBar.create=false
mapLayerControl.popupMenu.create=false
mapLayerControl.showLabelForLayerControl=true
mapLayerControl.layerLabelDeconflictionActiveSettable.toolBar.insert = true
mapLayerControl.layerSnappableActiveSettable.toolBar.insert = true
mapLayerControl.moveLayerToTopAction.toolBar.insert = true
mapLayerControl.moveLayerUpAction.toolBar.insert = true
mapLayerControl.moveLayerDownAction.toolBar.insert = true
mapLayerControl.moveLayerToBottomAction.toolBar.insert = true
mapLayerControl.copyLayerReferenceAction.toolBar.insert = true
mapLayerControl.scaleToRasterAction.toolBar.insert = true
mapLayerControl.deleteComponent.toolBar.group=DeleteComponentGroup
mapLayerControl.deleteComponent.toolBar.insert=true
mapLayerControl.deleteLayerAction.toolBar.insert=false
mapLayerControl.toggleTreeActiveSettable.toolBar.groups=ModifyViewGroup
Upgrade considerationLuciadLightspeed
ILcdGXYAsynchronousPaintQueue has been extended with a new method isEmpty.
Wrappers for or extensions of the above interface or its implementations should delegate to this
method.
Upgrade considerationLucy (LuciadLightspeed)
ALcyAsynchronousPaintFacade: a new abstract method createGXYAsynchronousViewLabelPainter was
added.
Implementing classes may simply implement it by returning the argument.
Upgrade considerationLuciadLightspeed
TLcdViewBufferedImage now throws UnsupportedOperationException instead of
IllegalArgumentException when calling
setGXYController and getGXYController. In the highly unlikely event that the former runtime
exception is catched
explicitly while calling these methods, its catch phrase should be changed or complemented with
UnsupportedOperationException.
Upgrade considerationLuciadLightspeed
The default factories for dialogs, gui and beans gui have been switched to Swing. It is no
longer required to
set the
Swing variant on TLcdBeanGUIFactory, TLcdGUIManager or TLcdUserDialog.
Upgrade considerationLuciadLightspeed
TLcd2DBoundsIndexedModel now checks whether an object can be added with canAdd as specified in
ILcdModel.
Up until now the object was only tested for implementing ILcdBounded. If the object can not be
added, an
IllegalArgumentException will be thrown. This may result in new exceptions being thrown, but
this should not
have
great influence since these exceptions will only be thrown for objects which should not have
been added to the
model in the first place.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPreviewAddOn: now automatically selects the models that appear in the list with checkboxes.
As a result, when
the preview panel is open, all data that can be previewed is automatically previewed.
The new configuration property "TLcyPreviewAddOn.modelListComponent.checkBoxesSelectedByDefault"
in
"resources/lucy/preview/previewer.cfg" can be set to 'false' to revert this change.
Upgrade considerationLucy (LuciadLightspeed)
ILcyMapComponent: new methods were added to register a controller with a given ID, and to
retrieve the controller
for a given ID. One can for example retrieve the select controller like this:
aMapComponent.retrieveAvailableGXYController(
TLcyMapComponentFactory.SELECT_CONTROLLER )
It is strongly recommended to replace existing code that uses instanceof to find such a
controller by this new
mechanism.
Upgrade considerationLucy (LuciadLightspeed)
TLcyToolBar: can now work with any instance of JToolBar (or TLcyAlwaysFitJToolBar, see other
note) so that it can
be customized: floatable tool bar, vertical tool bar etc.
As a result TLcyToolBar now uses the default JToolBar layout manager instead of FlowLayout. This
can result in small
layout changes. You are affected if:
- You use the method 'ILcyToolBar.insertComponent' with a component other
than a button or a label (e.g. a combo box). If so, you can replace calls that look like
this:
ILcyToolBar.insertComponent( someComponent )
with:
ILcyToolBar.insertComponent( TLcyAlwaysFitJToolBar.createToolBarPanel( someComponent ) )
-
You create TLcyToolBar instances and add them to the GUI using BoxLayout. The result is that
the tool bar
is displayed centered. If so, please add the tool bar with a BorderLayout manager (e.g.
BorderLayout.NORTH).
Upgrade considerationLucy (LuciadLightspeed)
ILcyToolBar: a method 'removeComponent' has been added to the interface ILcyToolBar. The method
was also added to
the abstract implementation 'ALcyActionBar'.
Upgrade considerationAviation Standards
The JTS library, used by AIS, has been upgraded from version 1.5 to 1.8.
Because the name of the library has been changed from jts-1.5.jar to jts-1.8.jar,
a classpath update is required if a classpath for a previous version of LuciadMap is used.
Upgrade considerationMaritime Standards
The JTS library, used by ECDIS, has been upgraded from version 1.5 to 1.8. Because the name
of
the library has been changed from jts-1.5.jar to jts-1.8.jar, a classpath update is required
if
a classpath for a previous version of LuciadMap is used.
7.2
7.2.24
Bug fixLucy (LuciadLightspeed)
In some cases, an asynchronously painted layer without merge group could wind up in a merge
group.
Bug fixLuciadLightspeed
In some cases, asynchronous layer wrapper changes were not propagated to the wrapped layer. This
has now been
fixed.
Bug fixLuciadLightspeed
TLcdDMEDTileDecoder now again decodes the thumbnail raster data correctly.
7.2.23
ImprovementLucy (LuciadLightspeed)
TLcyGXYAsynchronousLayerCustomizerPanel now also protects undoables for model-related events.
ImprovementLuciadLightspeed
The performance of the TLcdGXYLayerList.getGXYLabelPainter method has been significantly
improved. This
enhancement
solves a performance problem, occuring when global label decluttering is enabled on maps
containing layer lists
with a large layer structure (such as ECDIS).
ImprovementLuciadLightspeed
TLcdContourFinder now supports status listeners, which are informed of the progress of the
contour computations.
Bug fixLucy (LuciadLightspeed)
When repeatedly calling TLcyGXYAsynchronousLayerCustomizerPanel#setObject, this would confuse
the undo-redo
functionality.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: the input fields of the line-of-sight panel are now disabled while a line-of-sight
layer
is being created.
Bug fixLucy (LuciadLightspeed)
TLcyNITFDecoderAddOn: the transparency of NITF rasters is now saved in and restored from the
workspaces.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: The time zone of the date format (TLcyPreviewAddOn#setDateFormat) is now also
respected in the
date picker GUI.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: If a ILcdSimulatorModel was added to TLcyPreviewAddOn before the panel was
active, the time range
of the '...' button was incorrect.
Bug fixLuciadLightspeed
TLcdCGMModelDecoder now avoids setting fonts with size 0 on decoded text
elements.
Bug fixLuciadLightspeed
TLcdCGMModelDecoder now correctly reads padded text elements.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder can now also read features from a dbf file when the case of the dbf file
extension
is the same as that of the shp file.
7.2.22
ImprovementLuciadLightspeed
TLcdDEMModelDecoder and TLcdDEMTileDecoder now support data sets in UTM
projections yet with rectangular bounds.
ImprovementLuciadLightspeed
TLcdGXYAsynchronousPaintQueue has been extended with a new method to check if asynchronous
painting has
finished.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: when asynchronous painting was used and a WMS layer was set to invisible in
the layer control panel,
the layer was made visible again when the projection of the view changed.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: on Motif Look and Feel, some buttons were too small to use.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: On Java 1.4, the orientation of the separators was incorrect.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: used to throw a NullPointerException when 1) Windows Look and feel was used, 2)
Java 1.4 was used,
3) sub-menus were present on the tool bar and 4) the minimum or maximum size were queried. This
happens for example
by setting a BoxLayout to the TLcyToolBar. A workaround is applied for this Swing bug.
Bug fixLucy (LuciadLightspeed)
TLcyMain: splash screen could disappear too quickly on Java 1.5 and 1.4 (was introduced in bug
fix #6343).
Bug fixLucy (LuciadLightspeed)
TLcyMain: no longer modifies frame title from worker thread.
7.2.21
Bug fixLuciadLightspeed
Asynchronous paints no longer overwrite layer selections.
7.2.19
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn / TableViewAddOn: The table view now supports visibility filtering (column with
check boxes at the
left) for asynchronously painted layers.
Bug fixLuciadLightspeed
TLcdGXYSelectControllerModel2: If a bitwise or of SELECT_HOW_CHOOSE and SELECT_HOW_FIRST_TOUCHED
was provided to
the
applySelection method, the SELECT_HOW_FIRST_TOUCHED was ignored.
Bug fixDefense Standards
A bug in the retrieval of feature attributes and their classes is fixed; the attribute values
did not always
math the attribute classes in the TLcdVPFFeatureClass and TLcdVPFModelDescriptor. Two kinds of
changes might occur
w.r.t. previous releases:
- some attribute classes are now of type Short/Integer instead of String.
- some attribute values are now of type String instead of Short/Integer.
Bug fixDefense Symbology
The code validation mechanism in the class TLcdEditableMS2525bObject in the MIL-STD 2525b API has been improved,
to assure that an IllegalArgumentException is thrown when an invalid code is detected. In the past,
a NullPointerException was sometimes thrown for invalid codes.
7.2.18
ImprovementLucy (LuciadLightspeed)
LUCY-1464
TLcyMapRotationAddOn, TLcyPreviewAddOn and TLcyVerticalViewAddOn now allow to programmatically
activate/deactivate
their ILcyApplicationPane(s) using TLcyMapRotationAddOn.setApplicationPaneActive,
TLcyPreviewAddOn.setApplicationPaneActive and
TLcyVerticalViewAddOn.createAndAddVerticalViewComponent respectively.
Bug fixLucy (LuciadLightspeed)
The asynchronous facade's invokeLaterOnGXYLayer method was in fact an invokeAndWait method when
asynchronous painting
was disabled.
Bug fixLucy (LuciadLightspeed)
The point selection in the TLcyGridCoordinateAddOn and TLcyTeaAddOn now supports point objects
which are
implemented as ILcdPointLists containing a single point, for example an APP-6A icon.
Bug fixLuciadLightspeed
LuciadMap now correctly detects the MAC address on Windows Vista.
Bug fixLuciadLightspeed
TLcdGXYNewController now takes into account that the first click could have been invalid, for
example when
the mouse is clicked outside the world.
Bug fixAviation Standards
The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath now correctly discretizes geopath legs of type
RHUMB_LINE. In the past, this was only correct when the leg corresponded to a meridian or parallel;
in all other cases, the leg was interpreted as a geodesic line.
Bug fixAviation Standards
The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath could not correctly handle geopath legs of type
ARC_BY_EDGE when the distance between center and edge exceeded a distance of about 300NM. In that case,
the resulting arc did not pass correctly through the given point on the edge. The discretization process
has been improved, and it is now possible to use ARC_BY_EDGE legs with center - edge distances of an
arbitrary length within earth's dimensions.
Bug fixAviation Standards
TLcdDAFIFMilitaryTrainingRouteDecoder: decoding the CROSS_ALTITUDE_x_MEASURE and
ENROUTE_ALTITUDE_x_MEASURE features no longer causes a NumberFormatException.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly decodes text
containing characters with the high bit set.
7.2.17
Bug fixLucy (LuciadLightspeed)
Property changes fired from ALcyActiveSettable subclasses now have the correct source in the
PropertyChangeEvents.
7.2.16
ImprovementLuciadLightspeed
TLcdSHPModelEncoder has can now switch between exporting polygons and polylines as 2D or as 3D
shapes in the SHP
format.
Since all ILcdShape implementations are essentially 3D, a switch had to be provided to export to
the SHP format
as 2D
(POLYLINE, POLYGON) or as 3D (POLYLINE_Z, POLYGON_Z). For backward compatibility, the default
behavior is to
export as
2D shapes.
Bug fixAdvanced Raster Connectors
TLcdECWModelDecoder no longer throws an UnsatisfiedLinkError if the native
ECW library can't be found.
Bug fixMaritime Standards
The S-52 rendering engine now takes into account the USAG and MASK flags of the edges in a
line
or area. These flags are now available through the API in the TLcdS57Area and TLcdS57Line
objects. This fixes the problem of cell boundaries being visible within areas that are
spread
over multiple cells.
7.2.15
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: now uses less memory when started in geocentric mode (default).
Bug fixLuciadLightspeed
Area computations on an ellipsoid (geodesicArea in TLcdEllipsoid) now return positive values,
regardless of the
orientation (clockwise or counterclockwise) of the points passed.
Bug fixLucy (LuciadLightspeed)
TLcyMapComponentFactory: removed some unneeded dependencies on TLcyMapLayerControl (instead of
ILcyMapLayerControl).
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now correctly handles multiple planar images in a
single GeoTIFF file.
7.2.14
ImprovementMaritime Standards
The S-57 package now provides two interfaces, ILcdS57ObjectClassDescriptionMap and
ILcdS57AttributeClassDescriptionMap, that can map object class and attribute class acronyms
and
values to (language depedent) descriptions. A default implementation based on resource
bundles
is provided for both interfaces, as well as resources bundles for the English language.
Bug fixLuciadLightspeed
Smart-pan enabled ILcdGXYView implementations now do not paint empty regions anymore while
panning.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder now always encodes the proper record offsets in index files.
Bug fixLucy (LuciadLightspeed)
InternalFramesFrontendMain: the workspace codec delegate sometimes stored the wrong bounds
of the internal frames.
Bug fixMaritime Standards
The S-52 rendering engine now renders texts of enumerated and list values using their
textual
description, instead of their code, as is required by the specification. To enable this
functionality, an appropriate ILcdS57AttributeClassDescriptionMap should be set on the
TLcdS52GXYPainterProvider.
Bug fixMaritime Standards
A NullPointerException, that occured in TLcdS57ModelDecoder when a relationship points to a
feature that is not available in the current set, now results in a warning instead of a
decoding
failure.
Bug fixMaritime Standards
A NullPointerException, that occured in TLcdS57ModelDecoder when the last feature in an ENC
file
was a filtered object, has been fixed.
7.2.13
ImprovementDefense Standards
VPF databases with uppercase column names were no longer supported. This is fixed.
Bug fixLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: when asynchronous painting was enabled, the user interface could still be
blocked while
data was lazily loaded.
7.2.12
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: The animated busy icon that is displayed in the layer control when a layer is
working now looks
slightly better: the edges are more smooth.
ImprovementDefense Standards
TLcdBCIRasterModelDecoder now decodes three extra features: paperDates, creationDate and freeText.
When an ILcdModel has been decoded, these features can be retrieved via the descriptor of the model,
TLcdBCIRasterModelDescriptor.
ImprovementDefense Standards
An ArrayIndexOutOfBoundsException was thrown when edges in coverages with topological level 0
were read.
This is fixed now.
Bug fixLuciadLightspeed
TLcdTABRasterModelDecoder now accepts TAB files containing grid references
with tie points that are expressed in degrees.
Bug fixLuciadLightspeed
It is no longer possible to create a TLcdSelectionSupport for null ILcdSelection objects. A null
pointer
exception will
be thrown when null is passed in the constructor.
Bug fixLuciadLightspeed
It is no longer possible to add a null selection listener to TLcdSelectionSupport. A null
pointer exception
will now be thrown immediately. Previously, a null pointer exception would be thrown when the
first selection
change
event was fired.
Bug fixLuciadLightspeed
It is no longer possible to add a null status listener to TLcdStatusEventSupport. A null pointer
exception
will now be thrown immediately. Previously, a null pointer exception would be thrown when the
first status
changed
event was fired.
Bug fixLuciadLightspeed
The licenseserver executable has been made more robust against network problems.
It is now also better at detecting the server's IP addresses.
Bug fixLuciadLightspeed
The licenseserver executable has received a fix in its memory management.
Bug fixLuciadLightspeed
TLcdGXYViewJPanelLightWeight (and TLcdMapJPanelLightWeight subclass):
fixed a visualization problem that occurred during panning with
setCachingMode(TLcdMapJPanelLightWeight.DISABLE_CACHING)
set.
7.2.11
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv.getCompositeSimulatorModelFactory: Used to call canCreateSimulatorModel too often on
its associated
ILcySimulatorModelFactory's.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: the active settable to enable the preview addon now reacts properly to
consecutive calls to setActive(true).
Bug fixLucy (LuciadLightspeed)
TLcyMapLayerControlFactory: sometimes the rotating busy icon in the layer control wasn't
repainted properly after
asynchronous painting had finished.
Bug fixLucy (LuciadLightspeed)
TLcyASDIDecoderAddOn: is now more robust when reading data files that contain only empty
trajectories or flight
plan histories.
Bug fixLuciadLightspeed
TLcdGXYEditController2: now allows to change the default cursor using setCursor.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder no longer throws a RuntimeException when trying to
decode some GeoTIFFs that neither Java Advanced Imaging nor ImageIO can handle.
Bug fixLucy (LuciadLightspeed)
TLcyGRIBDecoderAddOn: the automatic detection of (u,v) and (x,y) parameter
pairs has been improved, so corresponding files can be decoded and
visualized in combination.
7.2.10
ImprovementLuciadLightspeed
TLcdCADRGModelDecoder and TLcdCADRGImageDecoder have been made more resilient
against future changes of the CADRG format.
Bug fixLuciadLightspeed
TLcdGXYTextPainter now computes the orientation of the painted text more
accurately.
7.2.09
Bug fixLuciadLightspeed
Asynchronous non-background layers no longer trigger background layer repaints.
Bug fixLuciadLightspeed
The range of an SLD colormap can now span values for 16 bits (either 0 to 65536, or -32769 to
32767).
Raster pixels with values outside the range defined by an SLD ColorMap are now rendered with a
transparent color.
Bug fixReal-time Engine
TLcdSimulator no longer throws ArithmeticExceptions when configured for maximum framerate.
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder and
com.luciad.format.dgn.server.TLcdDGNMicroStationServlet have been made
more robust with respect to unexpected internal MicroStation errors.
7.2.08
ImprovementLuciadLightspeed
TLcdDMEDModelDecoder has been made more robust for reading corrupt DMED files.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddon: workspace support is added for the simulator settings: CPU usage, time factor
and time step.
Bug fixLuciadLightspeed
TLcdGXYTextPainter now computes the size of the painted text more accurately.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: fixed some memory leaks.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: undoing the removal of an area of interest no longer hides the
other areas of interest when more than one area of interest was shown.
Bug fixLucy (LuciadLightspeed)
Raster layers now only have their bodies painted asynchronously by default.
Bug fixLuciadLightspeed
TLcdGXYViewJPanelLightWeight (and TLcdMapJPanelLightWeight subclass) now work correctly with
asynchronous layers
when
setCachingMode(TLcdMapJPanelLightWeight.DISABLE_CACHING)
is set.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: setting the property 'auto_recentre_overview' to false prevented maps
being added
automatically. Both properties 'auto_add_maps' and 'auto_recentre_overview' are now properly
separated.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: If a ILcyMapComponent had no ILcyMenuBar associated, the add-on did
not initialize
properly. E.g. its method 'setActiveOnMapComponent' did not work.
Bug fixLucy (LuciadLightspeed)
TLcyMain: If no license file is present, an error dialog is displayed to inform the user about
this. On Linux, and
with JDK 1.5 or 1.6, this dialog was stuck underneath the splash screen (see Sun bug #5070056).
Now, the splash
screen is disposed when the error dialog is displayed.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddon: the tool bar used to have an incorrect preferred size when it was created.
As a result using
the config property 'redlining.showtoolbarbelowmap = false' (in redlining_addon.cfg) to put the
tool bar in its own
application pane in combination with for example internal frames mode (lucy.cfg: mode =
INTERNAL_FRAME_MODE)
resulted in a frame with an incorrect preferred size.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: If maps were created by the TLcyMapAddOn on startup (needs configuration file
change), and thrown away
by loading a workspace, there was a race condition that could cause a NullPointerException.
7.2.07
Bug fixLuciadLightspeed
TLcdSHPModelEncoder now always encodes the proper record lengths.
7.2.06
ImprovementMaritime Standards
The error reporting of TLcdS57AttributeClassMapDecoder and TLcdS57ObjectClassMapDecoder has
been
improved; they now provide clear messages if something goes wrong during the decoding. Both
attribute and object class map formats have now been documented in the API and in the
default
map files.
ImprovementMaritime Standards
A setter for an ILcdS57AttributeClassMap was added to the TLcdS57CatalogueModelDecoder (this
could already be done in the past via the TLcdS57ModelDecoder the catalogue decoder
delegates
to).
ImprovementMaritime Standards
A new interface, ILcdS57FeatureObject, was added to the API. This interface is the new root
interface for all S-57 domain objects. The previous root interface, ILcdS57Object, has
become an
extension of this interface. While the ILcdS57Object could not be used to model objects
without
geometry (such as S-57 collections), the new ILcdS57FeatureObject interface can, as it does
not
extend the ILcdShape interface. A default implementation of the new interface,
TLcdS57FeatureObject, is also available. S-57 models will remain backwards compatible; they
will
only contain the objects which have an associated geometry (and thus implement
ILcdS57Object).
Objects without geometry are only reachable through relationships with geometric objects.
Bug fixMaritime Standards
The stroke was not explicitly set for some S-52 icon components (arcs, circles, polygons),
causing some icons to be rendered with an incorrect stroke width. This is fixed now.
Bug fixMaritime Standards
A bug in the TLcdS57ModelDecoder was fixed. This bug could in some case have lead to empty
line
objects (lines without any points) in decoded S-57 models.
Upgrade considerationMaritime Standards
The S-57 domain model is extended and now supports S-57 relationships. Relationships are
modelled using the ILcdS57Relationship and TLcdS57Relationship classes. The new
ILcdS57FeatureObject interface provides methods to retrieve the relationships they are
involved
in. As the existing ILcdS57Object interface is an extension of this new interface, this
means
all existing implementations of ILcdS57Object need to be extended with these methods. The
TLcdS57ModelDecoder is extended to decode and support relationships.
7.2.05
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: the new methods getGlobalIconScale() and setGlobalIconScale()
provide programmatic access to the slider underneath the 3D layer control
panel, which controls the scaling of icons in the 3D view.
ImprovementLucy (LuciadLightspeed)
TLcyDataRepositoryAddOn: it no longer requires a specific header for its configuration file.
This simplifies
creating a new one and referring the original one using 'includeConfig'.
ImprovementAdvanced Raster Connectors
The native ECW library is now available for 64-bits Linux as well.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder has been updated to use the latest native ECW library.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now also accepts "file:" URLs.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder now also accepts "file:" URLs.
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now also accepts the extension
"grib" in its method canDecodeSource.
ImprovementDefense Standards
TLcdUSRPModelDecoder now accepts files with missing QSR and QUV fields.
ImprovementDefense Standards
TLcdUSRPModelDecoder now also looks for ASRP and USRP data sets in the
ASRP and USRP subdirectories, when decoding TRANSH01.THF files.
ImprovementMaritime Standards
The rounding during the conversion of S-52 digital library coordinates to AWT coordinates
has
been improved, slightly improving the rendering quality of the S-52 icons.
ImprovementMaritime Standards
Area fill patterns are translated together with the map now. This gives a better dragging
experience, and resolves some artifacts that became visible on the map border after dragging
when background image caching was enabled .
ImprovementMaritime Standards
The S-52 symbology now supports staggered fill patterns.
ImprovementMaritime Standards
The S-52 symbology now also supports raster symbols.
ImprovementMaritime Standards
The TLcdS57CatalogueModelDecoder was extended to properly support Inland ECDIS. The number
of
levels was therefore extended from 6 to 10: 1 to 6 for the existing navigational purposes, 7
to
9 for river-level navigational purposes, and 10 for overlay cells (identified with
navigational
purpose 'L').
Bug fixLuciadLightspeed
TLcdGXYViewJPanelLightWeight (and TLcdMapJPanelLightWeight subclass): now paints transparently
on its background
if
setOpaque(false)
and
setCachingMode(TLcdMapJPanelLightWeight.DISABLE_CACHING)
are set.
Bug fixLuciadLightspeed
The method geodesicArea in TLcdEllipsoid now takes into account that subsequent points in the
array of points
passed may
be equal.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now also supports Polar Stereographic projections that
are not centered at a pole.
Bug fixAdvanced Raster Connectors
TLcdECWModelDecoder now avoids overflows in the computation of the default
cache size.
Bug fixTerrain Analysis Engine
TLcdTerrainProfileController: Used to throw a NullPointerException when a PropertyChangeEvent is fired and the
view is set to null.
Bug fixS-63
S63 models now properly support ILcdFeatured when attribute and object class maps are
configured
on the TLcdS63ModelDecoder.
7.2.04
ImprovementLuciadLightspeed
TLcdJPLGeodeticDatumFactory now recognizes NTF as an alias for Nouvelle Triangulation Francaise
(Paris).
Upgrade considerationAviation Standards
The airspace domain objects and related objects now have clone methods that create proper, deeper clones.
The clone methods of the following classes have been modified:
- TLcdAirspace: the clone implementation now clones the airspace segments and no longer copies the discretization,
- ILcdAirspaceAssociation: made clone method public,
- TLcdAirspaceAssociation: added clone implementation that shares the airspace,
- TLcdAssociationBasedAirspace: the clone implementation now also clones the associations,
- ALcdDiscretizedGeoPath: added clone implementation that uses super.clone(),
- TLcdDiscretizedLonLatGeoPath: the clone implementation now uses super.clone() and no longer copies the discretization,
- TLcdGeoPath: added protected clone implementation that clones the GeoPath legs,
- TLcdGeoPathLeg: added clone implementation that clones the parameter list.
Please refer to the reference documentation for more detailed information about the actual implementation.
7.2.03
ImprovementLuciadLightspeed
TLcdBILModelDecoder and TLcdBILTileDecoder now support tiled decoding, greatly
improving the efficiency when decoding large files.
ImprovementLuciadLightspeed
TLcdBILModelDecoder and TLcdBILTileDecoder now support elevation data.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: The model reference parsing is postponed until they are used for the
first time.
Bug fixLucy (LuciadLightspeed)
LayerPropertyEditorSampleMain: Applied changes in the general tab of the layer property panel
are now propagated
to the layer property editor. Changes in the layer control are also propagated to the layer
property editor.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: the buttons in the layer selection dialog were not visible when the Motif
Look and Feel was used.
Bug fixLuciadLightspeed
TLcdLonLatParser now also handles decimal commas.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: If some buttons did not fit the tool bar, and the remaining items window was not
opened yet, changing
the look and feel did not update the invisible buttons.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: The popup menu of select/edit controller did not track changes in Look and Feel.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: the print preview now shows the correct printing area when the map size is
adjusted.
7.2.02
ImprovementLucy (LuciadLightspeed)
The tabbed panes frontend sample now gives slightly more space to the map.
ImprovementLuciadLightspeed
The new class TLcdCADRGDirectoryModelDecoder decodes CADRG models from
directories that contain CADRG frame files. The decoder performs an exhaustive
search of the directories instead of reading an A.TOC file. It is still
performant, because it reads actual file contents lazily.
ImprovementLuciadLightspeed
TLcdCADRGModelDecoder has a new property createMultilevelRasters, to
optionally decode multilevel rasters instead of ordinary rasters. These
multilevel rasters contain the traditional CADRG rasters, organized according
to their scales.
ImprovementLuciadLightspeed
TLcdSLDFeatureTypeStyle now returns the description title as a String representation if
available.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn and TLcyUSRPDecoderAddOn now support asynchronous painting of DWG and USRP
layer lists.
TLcyASDIDecoderAddOn and TLcyASTERIXDecoderAddOn now support asychronous painting of static
data, i.e.
trajectories and flight plan histories.
ImprovementLuciadLightspeed
TLcdBILModelDecoder now decodes subtiled rasters by default, in order to avoid
having to load entire BIL data files at once.
ImprovementLuciadLightspeed
TLcdBILTileDecoder now also handles subtiling with truncated last rows and
columns of subtiles.
ImprovementLuciadLightspeed
TLcdBILModelDescriptor now also indicates elevation data.
ImprovementLucy (LuciadLightspeed)
The 'File|Save as...' dialog now scrolls to the selected layer to make it visible to the user.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: layers created using the DAFIF dialog are now grouped into a DAFIF layer list.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: the DAFIF edition 7 data is replace by DAFIF edition 8 data.
ImprovementAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCDecoder has been made more robust: it does now allow
that ARINC datasets have one or more empty lines at then end. Previously, it rejected all datasets that
did not use 132 characters for each record line.
Bug fixLuciadLightspeed
The labelsEditable property change event fired by TLcdGXYLayer now returns the correct new
value.
Bug fixLuciadLightspeed
The asynchronous extended layer sample now correctly overrides the tracker getters.
Bug fixLuciadLightspeed
A problem with the license server refusing to start on some 64-bits Linux
distributions (with the message "Your server license is not valid for this
host") has been fixed.
Bug fixLuciadLightspeed
The default delimiter is now set correctly to TAB in TLcdMIFModelDecoder.
Bug fixLucy (LuciadLightspeed)
GeneralLucySampleMain: the FlightPlan painter properties are now correctly stored from the
workspace file.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: the projection of an editable UTM reference is now immutable in the geo
reference dialog.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: the print preview scale combobox does not show a zero value anymore when the
scaleOrPages
property is set to 'SCALE'.
Bug fixLuciadLightspeed
TLcdColorMapCustomizer now fires a PropertyChangeEvent when a color is changed.
Bug fixAviation Standards
TLcdDAFIFAerodromeNavaidDecoder: decoding aerodrome navaid objects from a small DAFIF dataset no longer causes
a NullPointerException.
7.2.01
ImprovementLuciadLightspeed
TLcdGXYPointListPainter now has method to check whether the current mouse location is inside the
point list as
if it
were rendered as a polygon. This facilitates modifying the behavior of the isTouched method.
ImprovementLucy (LuciadLightspeed)
LayerPropertyEditorSampleMain: enhanced layout of the layer property editor panel by adding a
scroll pane.
ImprovementRadar Connectors
TLcdASDIFlightPlan: now has a public clone method.
Bug fixLucy (LuciadLightspeed)
TLcyMain: lucy.cfg now also supports the includeConfig property, so that you can create your own
config file,
refer to the original, and redefine some properties. Note that, as before, command line option
-properties aPropsFile
can be used to let TLcyMain start from your custom config file.
Bug fixLuciadLightspeed
LMAP-2295
TLcdGXYNewController and TLcdGXYEditController no longer highlight multiple snap targets. This
was not very
useful as it
is only possible to choose one snap target.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: fitting on the model list, containing both the trajectories and the
waypoints, now works
accurately.
Bug fixAdvanced GIS Engine
The intersection calculation between two ILcdShapeList objects or between an ILcdShapeList and an individual ILcdShape
object in the available implementations of ILcd2DLineIntersectionTopology always stopped as soon as one
intersection point was found.
7.2
ImprovementLuciadLightspeed
TLcdCompositeIcon now has an implementation for the equals and hashcode methods.
ImprovementLuciadLightspeed
TLcdGXYPainterFontStyle is a new ILcdGXYPainterStyle that sets a font and a
color. It is typically useful for TLcdGXYTextPainter.
ImprovementLuciadLightspeed
To enable evaluating custom extensions or interpretations of an OGC filter, the following interfaces have been made
available:
- ILcdGenericExpression: container marker interface for any object that can be evaluated
- ILcdEvaluator: evaluates expressions
- ILcdEvaluatorFactory: creates evaluators for given generic expressions
And these changes have been applied to the API:
- TLcdOGCFilterEvaluator: now has a method to create an evaluator factory that can be overwritten to
return custom evaluator factories
- ILcdEvaluatorFunction: the signature of the method apply has changed.
ImprovementLucy (LuciadLightspeed)
TLcyDGNDecoderAddOn: It is now possible to snap to DGN layers. Snapping is disabled by default,
and can be
enabled in the layer control.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: errors that occur while connecting with a WMS are no longer displayed in a
pop-up dialog;
instead, the status of a layer can now be consulted in the layer properties dialog. When an
actual error
occurs, a status bar message will appear to inform the user about this.
ImprovementLuciadLightspeed
TLcdWKTReferenceFormatter enables formatting a georeference in Well Known Text format as
specificed in
OGC document 01-009: Coordinate Transformation Service Implementation Specification.
ImprovementLuciadLightspeed
The class TLcdFeatureIndexedVectorModel is added to support an ILcdModel that can be indexed on
values of
ILcdFeatured objects which are not ILcdBounded.
ImprovementLuciadLightspeed
TLcdGXYTextPainter now allows to set the font directly, as an alternative to
setting the font in a painter style.
ImprovementLuciadLightspeed
TLcdGXYEditController2: now updates the cursor when the ctrl-key is pressed or released. Before
it was necessary to move the mouse for that.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: it is now possible to retrieve the application pane of the preview addon
customizer through the TLcyApplicationPaneManager, which can be retrieved from the backend's
TLcyUserInterfaceManager.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: it is now possible to retrieve the application pane of an ILcyMapComponent through
the TLcyApplicationPaneManager, which can be retrieved from the backend's
TLcyUserInterfaceManager.
ImprovementLuciadLightspeed
SLD: labels for complex polygons now have better placement, near the largest polygon, when
defined with a point
placement.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the layer control button to enable/disable the layer label decluttering now
remembers the original
ILcdGXYLayerLabelPainter that was set.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: when loading DAFIF data with a workspace, it could be possible that an incorrect
DAFIF source was
used for decoding the DAFIF layers. Now the correct DAFIF source is encoded into the workspace.
ImprovementLuciadLightspeed
TLcdGXYLabelPainter: this label painter now respects the pin color and selected pin color when
they are explicitly set. If they are not set, the foreground and selection color of the labels
themselves are used.
ImprovementLuciadLightspeed
TLcdGXYStampLabelPainter: mouse wheel events are now dispatched to the interactive labels when
running on JDK 1.4 or higher.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: groups of shapes can now be moved even when the mouse is over a
'special point' in the shape (for instance, a cornerpoint in a polygon or point in a polyline).
ImprovementLuciadLightspeed
TLcdGXYPolylineLabelPainter now has a property to put the label on the path followed by the pen
used to draw the
polyline. Until now, the label was always placed at the center of the projected points of the
segment the label
would be
placed next to. For long lines, rendered with a geodetic pen, the gap between the polyline and
the label could
become
unacceptably big. Placing the label along the path does come at a cost, since the computation
for the label
location
will be more complex.
ImprovementLucy (LuciadLightspeed)
TLcyMapLayerControl: accelerator keys (short cuts) of actions of the ILcyActionBar of a
TLcyMapLayerControl are now
respected. This means that for example assigning accelerator keys to the actions created by
TLcyMapLayerControlFactory now works.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: Right clicking the models panel now shows a pop up menu with an action to use
the time range of
that model as the general time range.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: the list of time seeks, cpu percentages and time factors can be configured.
The combo boxes can
also be configured to be editable, to allow typing in values that are not in the list.
ImprovementLuciadLightspeed
TLcdGXYLayerList now throws property change events when adding a sublayer causes its properties
to change. Also,
a protected method firePropertyChangeEvent has been added to support property change events in
subclasses.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn: the ARINC decoder now supports version 15, 17 and 18 of the ARINC 424 format,
while previously it only supported version 15.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: this addon can now be configured to sort its layers when a file is decoded.
by setting the 'sortLayers' property in the 'resources/lucy/decoders/dwg.cfg' configuration
file.
ImprovementLuciadLightspeed
A new package com.luciad.view.gxy.asynchronous provides support
to paint individual layers asynchronously. The package offers layer wrappers
that protect the layer state, and a paint queue to execute the actual painting
in a background thread. At the same time, the method
ILcdGXYView.setPaintInBackground has been deprecated in favor of
this approach, since it is more versatile and generally offers better thread
safety. Please consult the developer's guide for more details.
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn: the LuciadMap APP-6A specialized package now offers support for TTA-106, an
extension for APP-6A
with an additional set of symbols. By default, TTA-106 support is disabled. To activate the
extension, the following
Java VM property must be used when starting Lucy: -Dcom.luciad.symbology.app6a.tta106=true.
Afterwards, the TTA-106 extension becomes available in the hierarchy tree of the APP-6A
customizer.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: pressing and holding the back/forward buttons will now repeat the actions.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: WMS layers can now be painted in the background. This means the user
interface will no longer block while the WMS client is waiting to receive the image from the
WMS server.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: now has protected methods to fire property changes and preview addon changes.
This allows
subclasses to easily send events to the associated listeners.
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: similar to TLcdSimulator it now also has these properties: UseTimeStep,
PauseOnMousePressed,
UpdatesPerSecond, DelayBetweenUpdateMs.
ImprovementLuciadLightspeed
The area painters (TLcdGXYArcBandPainter, TLcdGXYBoundsPainter, TLcdGXYBufferPainter,
TLcdGXYCirclePainter,
TLcdGXYEllipsePainter, TLcdGXYLonLatHeightBufferPainter, and TLcdGXYPointListPainter) now have
consistent paint
modes. Each of these painters/editors extend from the ALcdGXYAreaPainter which adds a mode, a
selection mode and
a edit mode property. These properties will be used when painting an object, a selected object
and an object
that
is being edited.
ImprovementLuciadLightspeed
TLcdDataInputStream now reads little endian longs and integers faster.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn, TLcyWFSClientAddOn, TLcyWCSClientAddOn: support has been added to
allow drag and drop of URLs that point to OGC services.
ImprovementLuciadLightspeed
Mach, the ratio of the speed of an object and the speed of sound in the same fluidum
has been added as a unit to TLcdSpeedUnit. The conversion factor is that of 340.3, corresponding
to a ratio to
the speed
of sound at a temperature of 15 degrees Celsius and at sea level in the Earth's atmosphere.
TLcdSpeedFormat has been adapted to support formatting and parsing speeds expressed in this
unit.
ImprovementLuciadLightspeed
The contains2D methods in TLcdXYFloatPoint now take into account that the point is internally
represented by
floats.
ImprovementLuciadLightspeed
A UTM grid reference, TLcdUTMGrid, can now have its name set.
ImprovementLucy (LuciadLightspeed)
LayoutSampleMain was renamed to TabbedPanesFrontendMain. A new sample InternalFramesFrontendMain
was added that
shows how to setup Lucy using internal frames.
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: The decimal precision for displaying distance, altitude and speed units
can be
set from the Edit menu. To disable this new feature, change these lines of map_units.cfg to
contain
no value:
TLcyMapEditUnitAddOn.distance_precisions=
TLcyMapEditUnitAddOn.altitude_precisions=
TLcyMapEditUnitAddOn.speed_precisions=
ImprovementLucy (LuciadLightspeed)
TLcyPreviewAddOn: can now change the involved data sets (by using the checkboxes) while the
previewer is paused.
ImprovementLuciadLightspeed
There is a new class com.luciad.view.gxy.painter.TLcdGXYOffsetIconPainter that takes an
ILcdGXYPainter which it uses to paint offset labels. The typical use case is that were you want
to paint an icon at a certain offset and wish to reuse the label decluttering algorithms to
automatically declutter these icons.
ImprovementLuciadLightspeed
TLcdSelectionSupport and TLcdLayer now have a new method selectObjects to select several objects
at once.
This is faster as selecting them one by one.
ImprovementLuciadLightspeed
TLcdAWTUtil: now has a method to find the parent Window of an Object.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverViewAddOn: now adds a toolbar button to change the background color. It can be
removed again by adding
this line 'TLcyMapOverviewAddOn.changeBackgroundColorAction.toolBar.insert=false' to
'resources/lucy/map/mapoverview_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddOn, TLcyARINCAddOn, TLcyDAFIFAddOn: a new object customizer is added for
routes/enroute airways,
showing more detailed information about the route segments.
ImprovementLucy (LuciadLightspeed)
When saving a layer or layer style, the 'Choose layer' dialog now selects the selected layer
from the layer
control, if the selected layer is added to the 'Choose layer' list.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn, TLcyAPP6AAddOn: the Lucy undo/redo functionality is now supported
by these addons. Creating new MIL-STD 2525b/APP-6A layers, adding new symbols, editing
the geometry of symbols and changing properties in the map editor can now be undone.
ImprovementReal-time Engine
TLcdContinuousDeclutteringLabelPainter: now moves the anchor point of the label to the desired label location, where
this used to be the top left of the label bounds.
ImprovementReal-time Engine
ALcdTimeIndexedSimulatorModel was added: it is an abstract extension of ALcdSimulatorModel that was designed to
handle
large data sets, as its time performance is generally related to the amount of changes that are required, not to the
total amount of data.
ImprovementReal-time Engine
ALcdSimulatorModel was added: it is an abstract implementation of ILcdSimulatorModel that conveniently handles
the properties of the interface and their property changes.
ImprovementAviation Standards
Support for the DAFIF Edition 8 specification was added to the DAFIF package. The model decoders that can decode
DAFIF Edition 8 data can be found in the package com.luciad.format.dafift.decoder.
ImprovementAviation Standards
The ARINC handlers did not always decode all information available in version 15 of the ARINC 424 format.
They are now extended with new features to make the missing information available.
ImprovementAviation Standards
The com.luciad.format.arinc.decoder.TLcdARINCEnrouteAirwayHandler now decodes all characters
of the com.luciad.format.arinc.model.route.ILcdATSRouteSegmentFeature.CRUISE_LEVEL feature,
where previously it only decoded the first.
ImprovementAviation Standards
The com.luciad.format.arinc.decoder.TLcdARINCNDBHandler now also supports
Terminal airport and heliport NDB navaid records ('PN').
A new feature com.luciad.format.arinc.model.navaid.ILcdARINCNDBFeature.AERODROME_ID
is added that contains the airport/heliport identification code for terminal airport/heliport
NDB navaids.
ImprovementAviation Standards
The com.luciad.format.arinc.model.airspace.ILcdARINCAirspaceFeature is extended with the features
FIR_UIR_COMBINED_FIR_UPPER_LIMIT, FIR_UIR_COMBINED_FIR_UPPER_LIMIT_UNIT and
FIR_UIR_COMBINED_FIR_UPPER_LIMIT_REFERENCE that are only filled in by the
com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler : in case an airspace is a combined
FIR/UIR airspace these features contain the upper limit characteristics of the FIR,
while the existing UPPER_LIMIT features contain the upper limit characteristics of the UIR.
ImprovementAviation Standards
The com.luciad.format.arinc.decoder.TLcdARINCWaypointHandler now also supports
Terminal airport ('PC') and heliport ('HC') waypoint records.
A new feature com.luciad.format.arinc.model.navaid.ILcdARINCWayPointFeature.REGION_CODE
is added that contains the airport/heliport identification code for terminal airport/heliport
waypoints, and 'ENRT' for enroute waypoints.
ImprovementAviation Standards
The ARINC decoder now supports version 15, 17 and 18 of the ARINC 424 format,
while previously it only supported version 15.
ImprovementAviation Standards
The airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter has been optimized to
improve the drawing performance up to 50%.
ImprovementDefense Standards
The color model of the TLcdVPFLayerFactoryModel has been extended slightly; the 'library
reference'
and 'tile reference' coverage now always have a gray color, instead of a random color.
ImprovementDefense Standards
Relative database paths are now supported in VPF property files.
ImprovementDefense Standards
The user attribute set of a VPF feature now contains all attributes avaiable in the VPF feature
class table, except low-level database-related attributes (id, edg_id, tile_id, ...). This used
to contain only the set of attributes for which a mapping in the character or integer value
description table was available.
ImprovementDefense Standards
The VPF models and model decoder have been improved to be used in multi-threaded environments.
ImprovementDefense Standards
Some extra methods were added to the TLcdVPFFeatureClass class,, to simplify the usage of the
user attributes.
ImprovementDefense Standards
Coordinates defined as VPF short floating point type will now be mapped on Java floats, instead
of doubles.
ImprovementDefense Standards
3-D geometries are supported now. If a Z-coordinate is available in the data, an XYZ- or
LonLatHeight geometry will be created now (only the first two coordinates were supported
before).
ImprovementDefense Standards
The mimimum object size is now taken into account when performing a model.applyOnInteract()
call.
Objects which are too small to be visible on screen will no longer be painted.
ImprovementDefense Standards
Performance of the VPF model decoder has been improved significantly. The decoding time of
both memory models (on-the-fly and in-memory model) has been reduced, as well as the memory
usage of both models.
The documentation of TLcdVPFModelDecoder contains some extra performance tips.
Additionally, a new model type has been introduced, the hybrid model, which is generally faster
than the on-the-fly model, and requires less memory than the in-memory model. It uses a caching
mechanism, adapting itself to the amount of available memory (the more memory available, the
better the model will perform). This model is from now on the default model, used by the VPF
model decoder.
ImprovementDefense Symbology
The LuciadMap APP-6A package now offers support for TTA-106 V4, an extension for APP-6A with an additional set of
symbols.
By default, TTA-106 support is disabled. It can be activated by using the following Java VM property when starting
an application that uses the APP-6A package: -Dcom.luciad.symbology.app6a.tta106=true.
Afterwards, the TTA-106 extension becomes available in the hierarchy tree of the APP-6A customizer and the domain
object
TLcdEditableAPP6AObject accepts TTA-106 symbol id codes. These objects can be used in the same way as regular APP-6A
objects.
ImprovementDefense Symbology
It is now possible in APP-6A and MIL-STD 2525b to render the following symbols with more than two points:
- Air Corridor (APP-6A: 2.X.2.1.2.2.1, MIL-STD 2525b: 2.X.2.2.2.1)
- Flight Route (APP-6A: 2.X.2.1.2.2.3, MIL-STD 2525b: 2.X.2.2.2.3)
This is in accordance with the specification, which defines that these symbols can contain multiple line segments.
ImprovementDefense Symbology
A set of tactical MIL-STD 2525b symbols have received additional labels, to improve their usability.
The label list
- Unique Designation (T): configurable through the modifier ILcdMS2525bCoded.sUniqueDesignation
- Additional Information (H): configurable through the modifier ILcdMS2525bCoded.sAdditionalInformation
- Date Time Group (W): configurable through the modifier ILcdMS2525bCoded.sDateTimeGroup
- Effective Time (w): configurable through the modifiers ILcdMS2525bCoded.sEffectiveTime
- Superior / Higher Formation (M): configurable through the modifiers ILcdMS2525bCoded.sHigherFormation
- Altitude / Depth (X): configurable through the modifiers ILcdMS2525bCoded.sAltitudeDepth
- Location (Y): configurable through the modifiers ILcdMS2525bCoded.sLocationLabel
is now applicable to the following list of tactical point symbols
- 2.X.2.1.1.1.1.1, G*G*GPUUD-****X
- 2.X.2.1.1.1.2, G*G*GPUY--****X and children
- 2.X.2.1.1.2.1, G*G*GPRS--****X
- 2.X.2.1.1.2.2, G*G*GPRN--****X
- 2.X.2.1.1.3.3, G*G*GPWE--****X
- 2.X.2.1.1.3.6, G*G*GPWI--****X
- 2.X.6.1.1, G*O*ED----****X
- 2.X.6.1.2, G*O*EP----****X
- 2.X.6.1.3, G*O*EV----****X
- 2.X.3.1.5.1, G*M*OMU---****X
- 2.X.2.1.1.5, G*G*GPH---****X and children
- 2.X.2.2.1.1, G*G*APP---****X
- 2.X.2.2.1.2, G*G*APC---****X
- 2.X.2.1.1.4, G*G*GPF---****X
- 2.X.2.4.1.1, G*G*DPT---****X
- 2.X.4.1.1.1, G*F*PTS---****X
- 2.X.4.1.1.2, G*F*PTN---****X
and the following list of tactical line symbols
- 2.X.2.1.3.9, G*G*GAS---****X
- 2.X.2.1.3.11, G*G*GAZ---****X
- 2.X.2.3.1, G*G*PD----****X
- 2.X.3.2.1.2, G*M*BDD---****X
- 2.X.3.4.4, G*M*NR----****X
As in the past, individual modifiers can be restrained from being displayed as a label by using the method
setLabelEnabled(String) in ILcdMS2525bStyle.
A style can be associated with a symbol through ILcdMS2525bStyled, or it can be set as a default style on a (label)
painter provider.
ImprovementDefense Symbology
The rendering of the following APP-6A and MIL-STD 2525b tactical symbols has been improved:
- The 'Fortified line' symbol (MIL-STD 2525b: 2.X.3.3.3, G*M*SL----****X; APP-6A: 2.X.2.2.3.3,
G*C*BSL---*****)
now takes the 'cornerSmoothness' property of the symbol's style into account, to render a rounded polyline. By
using 0
as value for this property, the original rendering with straight corners can still be reinstated.
ImprovementDefense Symbology
The rendering of the MIL-STD 2525b tactical symbols 'Dose rate contour lines' (G*M*NL----****X, 2.X.3.4.9)
and 'Series or Group of Targets' (2.X.4.3.1.3), and of the APP-6A tactical symbols 'Dose rate contour lines'
(G*C*BWR---*****, 2.X.2.2.4.12),
'Series of Targets using Regular Targets' (G*C*FARS--*****, 2.X.2.3.3.4.1), 'Series of Targets using Rectangular
Targets' (G*C*FARU--*****, 2.X.2.3.3.4.2),
'Groups of Targets using Regular Targets' (G*C*FAZT--*****, 2.X.2.3.3.7.1) and 'Groups of Targets using Rectangular
Targets' (G*C*FAZU--*****, 2.X.2.3.3.7.2)
have been improved:
- The 'cornerSmoothness' property of the symbol's style is now used to render a rounded area. By using 0 as
value for this property,
the original rendering with straight corners can still be reinstated.
- The label of the symbol is now drawn with the font of the symbol's style (cfr. 'labelFont' property in
ILcdMS2525bStyle and
ILcdAPP6AStyle), instead of using a scaled version of this font.
ImprovementInfrastructure Standards
The DGN painter classes now return deep clones.
ImprovementRadar Connectors
Introduced ASDI : the package com.luciad.format.asdi is the Industry Specific Component
for decoding and displaying ASDI data.
Bug fixLucy (LuciadLightspeed)
The general Lucy best practice sample used to throw an exception when a workspace was restored
containing waypoint or flight plan layers (fix is in CodecProperties).
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn/TableViewAddOn: When table columns were sorted, selecting on the map caused the
table to scroll
incorrectly.
Bug fixLuciadLightspeed
All painters in the com.luciad.view.gxy.painter package now have clone methods that create
proper,
deeper clones. Implementations of ILcdGXYPainterStyle that are configured on these painters will
be
deeply cloned if they implement ILcdCloneable. All the implementations of ILcdGXYPainterStyle in
LuciadMap implement the ILcdCloneable interface now. The ILcdCloneable interface itself now
extends
the java Cloneable interface.
Bug fixLuciadLightspeed
TLcdAUTOReferenceParser and TLcdAUTO2ReferenceParser now correctly take into account the
latitude origin
for UTM and Transverse Mercator references.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: if a new map addon config file was created that refers the original config file
with 'includeConfig',
a map was created and removed afterwards. It now properly respects the 'mapcomponentcount'
property (which defaults
to 0).
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: Used to throw a NullPointerException if a ILcyMapComponent other than
TLcyMapComponent was used.
Bug fixLuciadLightspeed
TLcdSWMenuItem can now handle actions without an icon.
Bug fixLuciadLightspeed
TLcdRasterPainter, TLcdMultilevelRasterPainter, and their Warp/NoWarp versions
now have clone methods that create proper, deeper clones.
Bug fixLuciadLightspeed
TLcdRangeSlider now passes all change events to its listeners when a new model was set to the
Component.
Bug fixLuciadLightspeed
TLcdGXYEditController2: it was possible to unintentionally reshape multiple objects when the
user started
without the ctrl-key held and pressed this key 'mid-flight'.
Bug fixLuciadLightspeed
TLcdGXYLayer: when an ILcdGXYViewLabelPainter was used on the ILcdGXYView, and an
ILcdGXYLayerLabelPainter was
set to
the TLcdGXYLayer, and if labeled was false and selection labeled true, the layer still
(incorrectly) called the
ILcdGXYLayerLabelPainter asking it to paint labels.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: After loading a workspace, the >> button on the toolbar was sometimes not present.
It only appeared
after a slider was moved.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: the table header used to disappear if all but the visible column were hidden.
Bug fixLuciadLightspeed
The ILcdGXYView implementations in com.luciad.view.map no longer adjust the view origin when an
XY world
reference is set
on the view equal to the one that was already set on it. When the view was resized earlier, this
no longer
results in a map
pan like operation. To retain the previous behavior, the view origin needs to be set manually to
the center
point of the
view after the XY world reference has been set.
Bug fixLuciadLightspeed
The getScaleRange and getLabelScaleRange methods of TLcdGXYLayerList no longer throw a
NullPointerException when
the range of one of its sublayers is null.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter: the selected pin color is now respected.
Bug fixLuciadLightspeed
TLcdGXYLayerList had a dependency on Swing which is now removed.
Bug fixLuciadLightspeed
TLcdLayer now listens to model changes when constructed using a model and a label.
Bug fixLuciadLightspeed
RunTimeExceptions, thrown by XML element adapters during the encoding of an object, are no
longer
caught and logged by the TLcdXMLEncoder, but directly propagated to the caller of the
encodeXML() method.
Bug fixLuciadLightspeed
TLcdEPSGReferenceFormatter now again formats common world references.
Bug fixLuciadLightspeed
TLcdModelChangedEventSupport no longer exposes internal information when passing events to the
listeners. This
enables
listeners themselves to modify the model. Note that changes made by the listeners should not be
fired
immediately to
allow subsequent listeners to receive the events in the order they have occurred.
Bug fixLuciadLightspeed
Rendering performance for TLcdImageIcon has been improved. Performance increase is most
noticeable when
rendering a high
number (more than 100) of different image icons.
Bug fixLuciadLightspeed
The performance of the continuous pan controller, TLcdGXYContinuousPanController, has been
improved on Linux and
Solaris
in low memory environments.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter: the anchor point of the label is now correctly defined. It is the
upper left corner of the bounds of the label.
Bug fixLuciadLightspeed
When setting a new model on a sub gxy layer in a TLcdGXYLayerList, the filter inidicating
whether an object
belongs to
the model of the layer can no longer become invalid.
Bug fixLuciadLightspeed
The bounds of a TLcdLonLatPolyline and TLcdLonLatPolygon are now more accurately computed when
the polyline is
close
to either the North or the South pole.
Bug fixLucy (LuciadLightspeed)
When saving a layer which does not have a source name, the layer label is proposed as filename.
Bug fixReal-time Engine
TLcdContinuousDeclutteringLabelPainter: If it was used as ILcdGXYLayerLabelPainter on an TLcdGXYLayer for which
isLabeled() returned false, and isSelectionLabeled() returned true, invalid warnings were produced.
Bug fixReal-time Engine
TLcdContinuousDeclutteringLabelPainter: If it was used as ILcdGXYLayerLabelPainter on an TLcdGXYLayer for which
isLabeled() returned false, and isSelectionLabeled() returned true, ALcdLabelLocations.setPainted was not called
for the labels it had painted.
Bug fixReal-time Engine
TLcdContinuousDeclutteringLabelPainter: no longer tries to spread sub-labels of the same label around. Instead, it
respects their relative locations, and they are moved as one single unit.
Bug fixDefense Standards
A bug in the decoding of geometry data was fixed.
Bug fixDefense Standards
The VPF samples and the Lucy addon now have the same performance.
Bug fixDefense Standards
The VPF model decoder now throws a clear exception when a VPF properties file contains an
invalid entry (e.g., a non-existing feature class).
Bug fixDefense Symbology
The affiliations JOKER and FAKER for the 'Air Defense' symbols in MIL-STD 2525b (hierarchy 1.X.3.1.1.1) and
APP-6A (hierarchy 1.X.3.1.1.1) were not visualized correctly and have been fixed.
Bug fixRadar Connectors
The TLcdASTERIXFinalReplayInputStream.close did not cleanup properly the threads it started.
This is fixed now.
Upgrade considerationLuciadLightspeed
TLcdPOLModelDecoder now checks whether a source name ends with '.pol'. This will be of influence
for users
having files
containing pol data in a location with another extension. These files will no longer be decoded
if the call to
the decode
method is preceded by a call to canDecodeSource. Decoding without calling the canDecodeSource
method is still
possible.
Upgrade considerationLucy (LuciadLightspeed)
TLcyG4JAddOn: the 3D view now uses a geocentric world reference by default.
Other addons that interact with the 3D addon may require some small
updates -- please refer to the 3D developer guide for more information on
the required changes. Note that the 3D view can be reverted to a grid
reference by changing the property 'geocentric' in the file
'resources/lucy/g4j/g4j.properties' to 'false'.
Upgrade considerationLuciadLightspeed
The signature of the method apply has changed in the class ILcdEvaluatorFunction. This should have no runtime impact
as
the contents of the removed argument ILcdAssocList were not accessible and could therefor not be used. See also the
release note on support for custom extensions of OGC filter in the enhancements section.
Upgrade considerationLuciadLightspeed
TLcdSharedBuffer by default now returns a buffer suitable for asynchronous painting. It relies
on Java memory
allocation
and does not support a direct getByte() operation. The old behavior can be restored by simply
calling
setBufferInstance with a TLcdBuffer instance of the desired size.
Upgrade considerationLucy (LuciadLightspeed)
Addons can now request the ILcyApplicationPane of any java.awt.Component. To enable this
functionality, the implementations of ILcyApplicationPaneFactory must notify the
TLcyApplicationPaneManager when an application pane was created or removed.
If you have implemented your own ILcyApplicationPaneFactory, you need to adapt this
implementation:
Upgrade considerationLuciadLightspeed
TLcdPropertyColor and TLcdPropertyColorSW in com.luciad.beans and com.luciad.beans.swing now
have their dialog
title set
per instance. Before, the title was set for all instances at once. To retain the same behavior,
the dialog title
now has
to be set on all instances of these classes.
Upgrade considerationLuciadLightspeed
The public static field sTraceOn or TRACEON in ALcdVVXAxisRendererJ2D, TLcdFontGXYPainterStyle,
TLcdFillGXYPainterStyle,
TLcdLineGXYPainterStyle are removed. Tracing can be turned on by calling either
setTraceOn or setClassTraceOn as in other LuciadMap classes. This should not have any effect on
deployed
applications
as tracing was turned off and is still turned off by default.
Upgrade considerationLucy (LuciadLightspeed)
A new add-on TLcdGXYAsynchronousLayerAddOn adds the ability to paint individual layers
asynchronously.
TLcyDefaultDecodersAddOn, TLcyBCIDecoderAddOn, TLcyDGNDecoderAddOn, TLcyDWGDecoderAddOn,
TLcyDIMAPDecoderAddOn,
TLcyECWDecoderAddOn, TLcyGeoSPOTDecoderAddOn, TLcyGRIBDecoderAddOn, TLcyHypsometryAddon,
TLcyJPEG2000DecoderAddOn,
TLcyMrSidDecoderAddOn, TLcyNITFDecoderAddOn, TLcyPOLDecoderAddOn, TLcyS57DecoderAddOn,
TLcySwissDHMMatrixDecoderAddOn, TLcyUSRPDecoderAddOn, TLcyVPFDecoderAddOn, TLcyWFSClientAddOn
and
TLcyWMSClientAddOn have been updated to take advantage of this add-on.
By default, all produced layers of these add-ons will be painted asynchronously, except for the
TLcyDefaultDecodersAddOn's vector layers. This behavior can be customized in the configuration
files.
The asynchronous add-on will have no effect on your own produced layers, but may impact your
code if this code
uses layers created by the above-mentioned add-ons. In particular, layer casts may no longer
work and model
changes must use TLcdLockUtil to establish a model write lock.
You can always restore the old behavior by simply not loading TLcdGXYAsynchronousLayerAddOn.
Please consult the developer's guide for more details.
Upgrade considerationLuciadLightspeed
If you are running your LuciadMap application in JRE 1.4 or earlier, you must
not forget to put the appropriate
backport-util-concurrent-java*.jar in the class path. While this
was only strictly necessary for multi-threaded code in the past, it is now
required by common LuciadMap classes.
Upgrade considerationLuciadLightspeed
TLcd2DBoundsIndexedModel is no longer left in an inconsistent state when a non bounded object is
added. The
model now
throws an IllegalArgumentException for non bounded objects. As this is a runtime exception, this
change will not
incurr compiling errors. There should also be no effect at runtime, since adding non bounded
objects
previously would have left the model in an invalid state.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPreviewAddOn: used to fire an incorrect property change "MaxCPUUsage" instead of
"maxCPUUsage" (lower case m).
In the unlikely event you are relying on the property, you can either search and replace this
string in your code,
or you can compare the property name and the literal string using equalsIgnoreCase, e.g.
"maxCPUUsage".equalsIgnoreCase( evt.getPropertyName() ).
Upgrade considerationLuciadLightspeed
The paint mode values of the TLcdGXYPointListPainter (POINT, POLYLINE, POLYGON, FILLED and
OUTLINED_FILLED) have
changed to make it consistent across all area painters. It may be required to recompile your
application in
order
to use the new values of the constants.
Upgrade considerationLucy (LuciadLightspeed)
ILcyLucyEnv now defines setters for the default distance, altitude and speed formats.
Also, the getter for the speed format now returns a TLcdSpeedFormat instead of a
java.text.Format.
As long as these new setters are not used, there is no impact on existing code. To avoid
using
them in the default Lucy setup, please refer to enhancement 3611.
If you want to adapt your code to support the new feature, follow these steps:
- Search your code for "defaultUserSpeedUnit" (including the quotes)
- Modify any PropertyChangeListener's (registered to ILcyLucyEnv) that listen for
changes in this
property and update them to also respond to changes in the "defaultSpeedFormat" property.
- Repeat these steps for "defaultUserAltitudeUnit" and "defaultAltitudeFormat"
respectively
- Repeat these steps for "defaultUserDistanceUnit" and "defaultDistanceFormat"
respectively
Upgrade considerationLuciadLightspeed
TLcdLonLatHeightPoint: The implementation is now slightly faster. In the very unlikely event
that somebody is
using the
protected fields fCosLat, fCosLon, fSinLat or fSinLon, they should update their code to use the
getCosY(),
getCosX(),
getSinY() and getSinX() methods.
Upgrade considerationLuciadLightspeed
TLcdG2DLineStyle no longer has an inconsistency between the set and get methods for the color
and the selection
color.
Both methods now assume the widths are doubles. This change will not affect existing code, as
the argument of
the setter
is widened to a double from an int.
Upgrade considerationAviation Standards
To support editable labels for airspaces and navaids, the labelpainters TLcdICAOAirspaceDetailedLabelPainter and TLcdICAONavaidLabelPainter
(which is extended by TLcdICAODMELabelPainter, TLcdICAONDBLabelPainter, TLcdICAOTACANLabelPainter and TLcdICAOVORLabelPainter)
do now extend from TLcdGXYStampLabelPainter instead of TLcdGXYLabelPainter. Because TLcdGXYLabelPainter is a subclass
of TLcdGXYStampLabelPainter, a number of methods are not available anymore:
- public getLabelTextAlignmentMode(), setLabelTextAlignmentMode(int): was not used, because text aligment is automatically chosen
to
comply with the ICAO guidelines.
- public isConsiderPinForBounds(), setConsiderPinForbounds(boolean): was not used.
- public isFrame(), setFrame(boolean): was not used, because framed labels are automatically used to comply with the ICAO guidelines.
- public paintLabel(int aLocationIndex, java.awt.Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext): replaced by
paintLabel(java.awt.Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext),
because the location is automatically determined by TLcdGXYStampLabelPainter
- protected paintPin(java.awt.Graphics aGraphics, int aMode, int aStartPointX, int aStartPointY, int aEndPointX, int aEndPointY):
painting the pin is handled automatically by TLcdGXYStampLabelPainter
- protected calculateMaxLabelWidth(java.lang.String[] aLabelArray, java.awt.Graphics aGraphics): only removed in
TLcdGXYNavaidLabelPainter, but still available in TLcdICAOAirspaceDetailedLabelPainter as it was a public method in that class.
- protected getUpperLeftPointSFCT(java.awt.Point aAnchorPoint, java.lang.String[] aLabelArray, int aMaxLabelWidth,
int aSingleLabelHeight, java.awt.Point aLocationPointSFCT): the position of the upper left point is
now automatically determined by TLcdGXYStampLabelPainter.
- protected getPinPointSFCT(java.awt.Point aAnchorPoint, java.lang.String[] aLabelArray, int aSingleLabelHeight,
java.awt.Point aPinLocation): the position of the pin point is
now automatically determined by TLcdGXYStampLabelPainter.
These changes may be incompatible if any code made use of one of the methods listed above or if it explicitly relied on the
fact that these labelpainters
were of the type TLcdGXYLabelPainter (e.g., in an instanceof test).
Upgrade considerationAviation Standards
The com.luciad.format.arinc.decoder.TLcdARINCRestrictiveAirspaceHandler now uses the
com.luciad.format.arinc.model.airspace.ILcdARINCAirspaceFeature features ICAO_REGION, TYPE,
RESTRICTIVE_AIRSPACE_DESIGNATOR and MULTIPLE_CODE to uniquely identify a restrictive airspace,
where previously it only used the RESTRICTIVE_AIRSPACE_DESIGNATOR : only using
the RESTRICTIVE_AIRSPACE_DESIGNATOR could lead to incorrect airspaces, i.e. too few airspaces
with too many segments.
Upgrade considerationDefense Standards
TLcdVectorIconProvider was removed from the API, as it did not contain any public API
functionality.
Upgrade considerationDefense Standards
VPF field types of feature attributes are now properly mapped on Java classes (all types used
to be mapped on java.lang.String). The documentation of TLcdVPFFeatureClass contains a detailed
overview of this mapping.
Upgrade considerationDefense Standards
The return values of the coverage.getPath() and coverage.getPathName() methods now point
to the correct coverage directory, instead of the parent library directory.
Upgrade considerationDefense Standards
Methods, returning package-visible class instances, were removed from TLcdVPFGeoSymProvider.
Upgrade considerationRadar Connectors
TLcdASTERIXLiveDecoder: To avoid threading problems between the decoder adapting the data and a user (for
example) painting the data, all data modifications used to be done on the event dispatch thread (aka AWT
thread). As this thread is also used for painting, there were no threading problems because all modifications
and read access were queued and executed one after the other. The drawback is that this does not offer much
flexibility and scalability, nor does it play well server side.
Instead, TLcdASTERIXLiveDecoder now simply adapts the data on the calling thread, but uses TLcdLockUtil to
acquire a write lock whenever it does so. As a result, users of the live decoder should now protect read access
by acquiring a read lock (using TLcdLockUtil). The live sample uses a an extension of EditableLabelsLockedGXYLayer
to do so.
7.1
7.1.18
ImprovementAviation Standards
The DAFIF decoders now also allow to supply a single source file to decode,
instead of a DAFIF root directory path or a table of contents (.toc) file.
Note however that a filename should correspond to the associated filename of a decoder,
which can be retrieved through ILcdDAFIFDecoder.getDecodeFileName().
Bug fixDefense Symbology
It was wrongfully not possible to add a point on the last segment of a MIL-STD 2525b or APP-6A area using the CTRL
key,
for areas containing an icon (apart from the polygon).
Bug fixMaritime Standards
Symbols which, due to an offset, fall outside the area they apply to, are no longer drawn
anymore (as specified the S-52 standard).
Bug fixMaritime Standards
The TLcdS52GXYLevelLayerList by default now has the TLcdGeodeticPen configured on it.
7.1.17
ImprovementWeather & Environment Standards
The GRIB package now also supports Albers Equal Area projections.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: It could happen that a shadow print area was drawn while editing a print area on
a rotated map.
This behaviour is now fixed and only the original and the edited print area are drawn.
7.1.16
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: a new method setLayerControlPanelFilter() has been
introduced. This method makes it possible for applications to add layers to
the 3D view without adding them to the layer control panel.
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now supports multiple parameter
tables with the same table version, distinguishing them based on the
originating center ID and subcenter ID if required.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: layers deleted with the delete button from the layer control can now be
garbage collected.
7.1.15
Bug fixLuciadLightspeed
TLcdGeodeticDatumfactory now also checks the datums parameters next to the name when polling
TLcdJPLGeodeticDatumtFactory and TLcdNIMAGeodeticDatumFactory in order to write a geodetic datum
to a Properties
object.
Bug fixLuciadLightspeed
The UI for TLcdRangeSlider is now always set when used in an applet in a browser. The UI was not
set when an
applet was opened for the second time in the same browser session.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: all strings in the toolbar can now be translated.
Bug fixLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: Choosing one of "Edit|Point Format|Georef" or "Edit|Point Format|UTM", and
saving and
reopening the workspace used to throw a NullPointerException.
Bug fixLuciadLightspeed
The TLcdGML3ModelEncoder now supports exporting of empty models.
Bug fixLuciadLightspeed
TLcdLockUtil no longer deadlocks if one thread requests nested read locks,
while another thread requests a write lock. This only happened in JDK 1.5.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: editing groups of redlining objects now immediately shows the result of
the edit operation.
Bug fixMaritime Standards
The clone() methods of some painters in the S-52 package were fixed.
Upgrade considerationLuciadLightspeed
Some native libraries for Solaris on Intel/AMD that were mistakenly put in
solaris_amd64 have been moved to solaris_i586.
Note that java on this platform runs in 32-bits mode (with 32-bits libraries)
by default. It only runs in 64-bits mode (with 64-bits libraries) when
specifying the option -d 64. You should therefore use the
libraries in solaris_i586 by default, and the libraries in
solaris_amd64 when specifying the option.
7.1.13
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn: it is now possible to add the print preview action to the toolbar of the map
through the configuration file of the print addon.
ImprovementLuciadLightspeed
TLcdWarpRasterPainter and TLcdWarpMultilevelRasterPainter can now paint rasters
of which the tiles have different color models.
ImprovementLuciadLightspeed
TLcdETOPOModelDecoder now supports the latest ETOPO2v2c_i2_MSB.bin data set.
ImprovementRadar Connectors
Slightly simplified samples.decoder.asterix.TrackGXYPainter.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the boundsSFCT() method of TLcyG4JPointPainter has been
improved: the width, height and depth of the bounds are computed correctly,
where they were previously all zero.
Bug fixLucy (LuciadLightspeed)
TLcyLucyEnvFactory no longer tries to automatically determine the screen resolution when the
JVM is running in headless mode.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter now paints labels in the correct selection color, when haloing is
enabled.
Bug fixLuciadLightspeed
TLcdGXYStampLabelPainter: a bug was solved that prevented the use of interactive labels with
different sizes per object.
Bug fixLucy (LuciadLightspeed)
RunLucy.sh and RunLucyDebug.sh now automatically recognize Linux 64, MacOS and Solaris 64.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: when the Lucy frame was spread over multiple monitors, and full screen was
enabled, the part on one
monitor was still visible.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now handles files that contain spurious definitions of
projections, even though the actual references are geodetic.
Bug fixLuciadLightspeed
TLcdMIFModelReferenceParser now correctly parses French NTF datum codes 107 and
1002, which were previously swapped.
Bug fixDatabase Connectors
TLcdOracleSpatialModelDecoder now supports many more SRIDs, including the
various SRIDs for french, belgian, dutch, german, swiss, and UTM references.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDescriptor.getPeriodOfTimeP1 now returns a value that is
a combination of octet 19 and 20 when the time range indicator is 10, while
getPeriodOfTimeP2 and getTimeInterval return 0 in this case.
Bug fixDefense Standards
The TLcdVPFModelDecoder now takes the library bounds as model decoding bounds if no bounds
parameter
was provided to the decode() method. Previously, the decoder used to take the world bounds,
causing
the fit action not to work properly on VPF models.
Bug fixDefense Standards
A NullPointerException occuring when switching from empty model to full model using the
TLcdVPFDatabaseTree, was fixed.
7.1.12
Bug fixLuciadLightspeed
TLcdGeodeticReference now has a better implementation of the clone method.
Bug fixLuciadLightspeed
TLcdEPSGReferenceParser now returns a new instance of the parsed model reference or XY world
reference for every
call
to the parse method.
Bug fixLuciadLightspeed
TLcdDTEDModelDecoder now works around erroneous point counts in accuracy
subregion descriptions.
7.1.11
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: it is now possible to drag and drop multiple layers at once
from the 2D layer control panel onto the 3D view.
Bug fixLuciadLightspeed
TLcdWarpRasterPainter and TLcdWarpMultilevelRasterPainter no longer throw
NullPointerExceptions when painting rasters, when a color filter has been set.
Bug fixLuciadLightspeed
TLcdEllipsoid no longer returns the longer distance between 2 points at the same latitude.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: removing all the selected layers of a loaded WMS in the WMS layer control
panel caused an exception.
Bug fixLucy (LuciadLightspeed)
TLcyGridCoordinateAddOn: now displays "Not applicable" when no coordinates are available, for
example outside of
the projection area. By default it now updates the coordinates on mouse move.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: the panel that appears when double clicking on an ILcdFeatured object could be
automatically removed
even if the object itself was not yet removed.
Bug fixLuciadLightspeed
The TLcdGML3ModelEncoder can now encode models whose ILcdFeatured value for a given
index is null for all elements.
7.1.10
ImprovementLucy (LuciadLightspeed)
TLcyMain: Lucy can now checks if it has the security permissions for altering the system
event queue.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: the layer properties button now gives a higher priority to deprecated
ILcyCustomizerFactory instances. These used to be treated as if they were added
with the lowest possible priority, but are now treated as having a priority halfway between
TLcyCompositeCustomizerPanelFactory.PRIORITY_NORMAL and
TLcyCompositeCustomizerPanelFactory.PRIORITY_FALLBACK.
Bug fixLucy (LuciadLightspeed)
ALcyDomainObjectCustomizerPanel did not update itself for model changed events containing both
changes and additions/removals.
Bug fixLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: Under rare circumstances, this addon could throw a NullPointerException
when loading a
workspace.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the label of the 'Extract parallel' button was changed to 'Extract offset
line' to better reflect its actual functionality.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: when the application was closed, and the user was asked if the changes should
be saved to the
workspace, the preview addon stopped playing. It no longer does so.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: the complete selection of the view is now cleared when a new area
of interest is created with the Map | Area of Interest | New Area of Interest menu item, not
only the selection of the Area of Interest layer.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: When using a custom view in combination with the print addon, it could happen
that the size of the
view on the actual print did not correctly correspond to the size of the view in the
application. The context now
uses the size of the view to calculate the size of the component to be printed.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: the Lucy WMS Client could not handle a WMS server that didn't have support
for CRS EPSG:4326 (WGS 84).
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: removing a previous DAFIF layerlist from the view did not automatically trigger
a view
repaint when a new DAFIF dataset was loaded.
Bug fixLucy (LuciadLightspeed)
TLcyCameraTrackingAddOn: if the link camera action was used at least once, and another workspace
was loaded,
this used to leak memory.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: when a tote tab (table view) was active, and a new workspace was loaded, a
warning
message used to be printed: "setTabAppPaneTitle[...]: cannot find tabbed pane".
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: when a tote tab (table view) was active, and a new workspace was loaded, it was
possible
that the ILcdModel was not garbage collected.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: If a redlining point was selected, and then a multiline text object, and
then the point again,
two 'Geometry' tabs used to appear in the "Map|Editor" panel.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: when double clicking on an object that implements ILcdFeatured, a tab is displayed
(below the map)
containing a table with those feature values. That tab sometimes did not disappear when a new
workspace was loaded.
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: changes to multiple countries in one update were not always correctly processed.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler did not correctly decode data records
in the ARINC version 15 format or later.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCFIRUIRHandler did not decode the lower limit reference.
7.1.09
Bug fixLuciadLightspeed
TLcdCADRGModelDecoder now correctly decodes A.TOC rasters that have empty tiles
and of which the color maps are expanded.
Bug fixDefense Symbology
The APP-6A symbols 'Data Link Reference Point' (G*C*OXRD--*****, 2.X.2.5.1.2) and 'Diversions' (G*C*OXRD--*****,
2.X.2.5.1.8.2) have an identical symbol ID code
(G*C*OXRD--*****) in the APP-6A specification, while these codes should be unique. Following the advised approach
described in the APP-6A specification,
LuciadMap now uses the MIL-STD 2525b equivalent code for the 'Diversions' symbol (2.X.2.5.1.8.2), which is
G*C*OXOD--*****.
7.1.08
ImprovementLuciadLightspeed
TLcdLonLatParser now also parses ddmm.mmmm[SNWE] and dd.dddd[SNWE] formats.
ImprovementLuciadLightspeed
TLcd2DBoundsIndexedModel now checks whether elements are ILcdBounded in the
methods addElement and removeElement, throwing an IllegalArgumentException
right away if they are not.
ImprovementMaritime Standards
TLcdS57ModelDecoder can now read S-57 files containing fields with trailing zero's.
7.1.07
Bug fixAviation Standards
The classes com.luciad.format.arinc.decoder.TLcdARINCDMEHandler, TLcdARINCVORHandler and TLcdARINCTACANHandler
did not correctly decode an 'Out of service' figure of merit.
Bug fixAviation Standards
The classes com.luciad.format.arinc.decoder.TLcdARINCAirportCommunicationHandler,
com.luciad.format.arinc.decoder.TLcdARINCHeliportCommunicationHandler and
com.luciad.format.arinc.decoder.TLcdARINCEnrouteCommunicationHandler produced domain objects
with altitude values in feet which is now corrected to meters.
Bug fixAviation Standards
The classes com.luciad.format.arinc.decoder.TLcdARINCAerodromeHandler and
com.luciad.format.arinc.decoder.TLcdARINCHeliportHandler did not correctly decode the speed limit altitude
in case the record specified F instead of FL to indicate Flight Level as altitude unit.
Bug fixAviation Standards
The classes com.luciad.format.arinc.decoder.TLcdARINCAerodromeHandler and
and com.luciad.format.arinc.decoder.TLcdARINCHeliportHandler produced aerodromes
with altitude values in feet. This is now corrected to meters.
7.1.06
Bug fixLucy (LuciadLightspeed)
The compatibility layer between the old and the new customizers no longer causes a
ClassCastException when using the deprecated ILcyCustomizerFactory instances for layers.
Moreover this compatibility layer now makes the new ILcyCustomizerPanels for layer behave
in the same way as the old customizers used to.
Bug fixLuciadLightspeed
A dependency on JDK 1.5 in TLcdXMLDateTime and TLcdXMLDuration was removed.
Bug fixMaritime Standards
A dependency on JDK 1.5 was removed.
7.1.05
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the 3D view panel can now be dragged to different application
pane locations without unwanted side effects such as disappearing objects,
objects changing color or other forms of visual corruption.
Bug fixLuciadLightspeed
TLcdGXYFeaturedLabelPainter could not be serialized.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: it was impossible to edit the feature values of an extruded shape
(Draw|Create extruded).
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: if an extruded shape was created (Draw|Create Extruded), the feature values
were lost.
Bug fixLuciadLightspeed
TLcdXYFloatLine now has a better implementation of the equals method.
Bug fixLuciadLightspeed
TLcdGXYIconPainter did not take into account the full size of the icon when checking whether an
object was
touched.
It is now easier to select an object which is represented by an icon with different width and
height.
Bug fixLucy (LuciadLightspeed)
Some french translations were corrected.
Bug fixDatabase Connectors
TLcdOracleSpatialModelDecoder now decodes the geometry if an SDO_GEOMETRY
defines both a point and a geometry.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCMarkerHandler did not correctly decode the marker type, as it only
recognized the value 'Locator at marker'.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCHoldingHandler did not correctly set the altitude description
of the holding leg (see ILcdProcedureLeg.getAltitudeDescription) when the lower or upper altitude was not defined.
It did also not correctly decode the course value of the leg if it was encoded with a T as last character.
7.1.04
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: now new LOS layers can be created, when removing the whole LOS layer group from
the map.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the 3D terrain wizard can now use 2D raster layers as terrain
textures when the 2D layer is an ILcdGXYLayer but not a TLcdGXYLayer. This
previously resulted in the layer not being present in the texture.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the "delete layer" button in the 3D layer control panel now
works for layers that were added to the 3D view programmatically.
7.1.03
ImprovementAviation Standards
A new method getVectorIcon(Object) has been introduced in the class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider,
to allow the user to create extensions that add new vector icons. These icons are automatically cached in an image,
if the isPaintVectorIcons() property returns false.
Bug fixLuciadLightspeed
StickyLabelsEditController: this sample class did not make interactive labels sticky.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the state of some buttons on the 3D view layer control panel
was not updated correctly after a layer was deleted. This has been
corrected.
Bug fixLuciadLightspeed
TLcdGXYSelectController2: a double click unintentionally initiated a 'drag rectangle' from the
top left corner.
Bug fixLuciadLightspeed
TLcdGXYSelectController2 did not select small, horizontal or vertical line segments when a
rectangle was
dragged around them.
Bug fixLuciadLightspeed
TLcdGXYSelectController2 did not pass the SELECTED mode to the isTouched method of the
ILcdGXYPainter when
trying
to select objects. This can be important for objects that are different in selection and regular
mode. For
example,
the axis polyline of a buffer only appears in selected mode, and a right click on the axis
polyline deselected
the
object before showing the popup window.
7.1.02
Bug fixAviation Standards
TLcdAIXMModelDecoder could not correctly work with ILcdAIXMHandler implementations that were extensions of the predefined
ILcdAIXMHandler implementations in the package com.luciad.format.aixm.decoder.
Bug fixAviation Standards
Updates to a domain object that were decoded after a key change of the domain object in an update file
were ignored by the predefined ILcdAIXMHandler implementations in the package com.luciad.format.aixm.decoder.
7.1.01
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: this addon now registers an ILcyCustomizerPanelFactory that enables the
TLcySelectionEditorAddOn to display the features of an ILcdFeatured domain object.
You can prevent this by setting the 'TLcyToteAddOn.enableFeaturedObjectView' to false in the
tote_addon.cfg configuration file.
ImprovementLucy (LuciadLightspeed)
ObjectCustomizerAddOn: this sample addon now loads a different workspace as the default
workspace. This allows
to fit the view on the polyline to edit, have the 'Editor' tab selected and the select
controller active.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn/TableViewAddOn: table column sort order is now stored in the workspace.
ImprovementDefense Standards
This package is a new LuciadMap option since v7.1.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverViewAddOn: In the layer control of the overview addon, a NullPointerException used to
be thrown if
the layer properties button was pressed when the grid layer was selected.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: the map editor now gives a higher priority to deprecated
ILcyObjectCustomizerFactory instances. These used to be treated as if they were added
with the lowest possible priority, but are now treated as having a priority halfway between
TLcyCompositeCustomizerPanelFactory.PRIORITY_NORMAL and
TLcyCompositeCustomizerPanelFactory.PRIORITY_FALLBACK.
Bug fixLuciadLightspeed
TLcdGXYMagnifier no longer tries to update the location of the glass magnifier window when the
original view is
no
longer visible. This resulted in an illegal component state, which now can no longer be
encountered.
Bug fixLuciadLightspeed
A bug in TLcdXMLSchemaDecoder was fixed. group elements containing a choice element are
now read correctly.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn/TableViewAddOn: if a table view is displayed for a layer that is selectable, the
'auto select'
button is now enabled by default.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: it used to be possible to select the parallel and meridian objects by
dragging a rectangle
around their center point without including the end points.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the extract buffer dialogs used to appear on the first screen, even if Lucy
was
running on the second screen.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: the look and feel of the layer control was not correctly updated if it was hidden.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: If the toolbar is too small to fit all buttons on it, a small button to show the
remaining buttons is
displayed. If the look and feel was changed at runtime, the buttons that were hidden behind that
button did not
update their look and feel properly.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: When File|Open displayed a dialog to let the user choose the desired
ILcdModelDecoder,
a NullPointerException was thrown if Lucy was not running in a java.awt.Frame.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn/TLcyAPP6AAddOn: When Lucy was not running in a java.awt.Frame, these two addons
used to throw a
NullPointerException when trying to draw an icon using the Tools menu.
Bug fixLucy (LuciadLightspeed)
TLcyCompositeDataSourceHandler: canHandleDataSource always returned true, even if non of its
associated
ALcyDataSourceHandler's could handle the given data source.
Bug fixLuciadLightspeed
TLcdColorMapCustomizer: It needed setObject twice when it was already displayed. If only one
setObject was
performed,
the layout used to be corrupt.
Bug fixLuciadLightspeed
TLcdPOLModelDecoder: canDecodeSource used to create an input stream without closing it.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCControlledAirspaceHandler now uses Float instances for the features
ILcdARINCAirspaceFeature.RNP (Required Navigation Performance) instead of String instances, which was not correct according
to the documentation of these features.
Upgrade considerationLuciadLightspeed
The field for the property 'enabled' in ALcdAction no longer has protected visibility. If code
referred to this
field directly, replace the code by calling the already existing setEnabled/getEnabled methods.
The trivial
method
asAction which returned the object itself has been removed. If any code used this method, the
call to this
method can
be removed completely.
7.1
ImprovementLucy (LuciadLightspeed)
A new config file property 'includeConfig' was introduced, which allows to read the contents of
another config file. Instead of adapting a config file that ships with Lucy, it is now possible
to
create a new config file, let it include the original file, redefine the properties that need to
be
modified, and adapt addons.xml to point to this new config file.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: the new method setGXYLayerFilter() allows a 2D layer filter
to be specified. This filter is applied when adding layers from the 2D view
to the 3D view (only the ILcdGXYLayers accepted by the filter are available
in the "add layers" dialog), as well as in the 3D terrain wizard (only the
accepted layers are available as sources for the terrain texture).
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: when creating a LLH buffer, the units for the width of the buffer are now
displayed in the same way as the units for the height.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn can now be configured to decode invisible DWG objects
and invisible and frozen DWG layers.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: when the method createGXYLayer was overriden to return null for the
GRID_LAYER id,
a grid layer was still added. Namely a TLcdMapLonLatGridLayer instead of the Lucy grid layer
that automatically
changes the grid spacing. This behavior is now more intuitive: if null is returned from
createGXYLayer for the
GRID_LAYER id, no grid layer is added at all.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the textual editors for arc and sector now allow to change the end and the
corner points.
All angles are expressed in the interval [0, 360[ degrees.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: 'Draw|Create Intersection' on the redlining toolbar now also calculates the
outline
intersections for rectangles and parallels with other shape types.
ImprovementLucy (LuciadLightspeed)
TLcyMain: When a new tab is opened, the sliders are now adapted to allow the new tab its minimum
size. This
prevents important buttons and information to disappear when panels are too small, for example
an apply button
at the bottom of a panel.
ImprovementLuciadLightspeed
TLcdOkCancelButtonPanelSW: pressing the escape key now has the same effect as cancel.
ImprovementLucy (LuciadLightspeed)
Custom JTree icons used to be set for expanded and collapsed nodes. This choice is now left to
the look and
feel. If desired, adding these two lines of code results in the previous behavior:
UIManager.put( "Tree.expandedIcon", new TLcdSWIcon( new TLcdImageIcon( "images/minus_icon.gif"
) ) );
UIManager.put( "Tree.collapsedIcon", new TLcdSWIcon( new TLcdImageIcon( "images/plus_icon.gif"
) ) );
ImprovementLucy (LuciadLightspeed)
The ILcyActionBar of the layer control now automatically chooses its width and height based on
its contents:
button sizes are calculated from the icon size. This allows using larger icons as the default
16x16 pixels.
ImprovementLuciadLightspeed
TLcdGXYEditController2: now cancels an edit operation if the escape key is pressed.
ImprovementLuciadLightspeed
TLcdGXYFeaturedLabelPainter: removed erroneous constructor with arguments
(ALcdGXYInteractiveLabelProvider, ILcdGXYController), added constructor with arguments
(ALcdGXYInteractiveLabelProvider)
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now tries to assign a suitable grayscale index color
model to 16-bits grayscale images, based on the minimum and maximum sample
values specified in the GeoTIFF file.
ImprovementLuciadLightspeed
The performance of warping raster painters for painting elevation rasters has
been improved.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: changing the projection using the combo box above the map (or the menu items) now
tries harder to
keep the same spot visible in the new projection. It also no longer jumps to nowhere if doing so
is not possible,
for example when Europe is visible, and projection is switched to Polar Stereographic (South).
ImprovementLucy (LuciadLightspeed)
TLcyBCIDecoderAddOn: this new addon offers support for the BCI raster format.
ImprovementLucy (LuciadLightspeed)
The layer properties button (in the layer control) now allows, for layers containing icons, to
specify the outline
and the fill color separately.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: the addon now displays a list of recently opened workspaces in the menu.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The 3D terrain wizard now has "select all" and "select none"
buttons in the layer selection step, making it easier to add multiple
layers to a terrain texture. Similarly, the "Add/remove 3D layers" dialog
(for selecting layers from a 2D view to be shown in the 3D view) has
"select all" buttons for each of the three possible modes (show all
objects, show selected objects, show objects visible in the 2D view).
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: when selecting a rectangle, the editor now shows the width and height both
in degrees
and in the Lucy distance unit. These distances are measured relative to the selected corner
point of the
rectangle.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: double clicking (or shift-clicking) now keeps the same tool active. This
allows
for example to easily create multiple points, each with a single mouse click.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: support was added for meridians, lines lying in a plane through the poles.
If desired, it can be disabled by adding this line to
'resources/lucy/redlining/redlining_addon.cfg':
TLcyRedliningAddOn.meridianActiveSettable.toolBar.insert=false
ImprovementLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: double clicking an object (or right click, Properties) now opens
the selection editor tab (Map|Editor), instead of a custom panel. This can be disabled by
setting the
openOnDoubleClick
property in the configuration file to false.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: If the properties of an ILcdFeatured object are displayed using the
TLcySelectionEditorAddOn,
there is now support for objects whose ILcdModelDescriptor implements
ILcdFeaturedDescriptorProvider (there
was already support for ILcdFeaturedDescriptor)
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: now has right click actions to copy the data and to toggle the visibility of the
selection.
ImprovementLucy (LuciadLightspeed)
A new package com.luciad.lucy.gui.customizers was introduced. It offers a new way to work with
customizers, user interface parts that are used to customize the properties of some object, for
example
a layer or a polyline. As a result ILcyModelCustomizerFactory, ILcyObjectCustomizerFactory and
ILcyCustomizerFactory are now deprecated in favor of ILcyCustomizerPanel and
ILcyCustomizerPanelFactory.
More information about the new mechanism can be found in the developer guide.
ImprovementLuciadLightspeed
TLcdGXYBoundsPainter now supports moving the bounds outside of the world as long as the
bottom-left corner
remains
in the world or re-enters the world in another location. For example, in equidistant cylindrical
projection the
bounds
can now be moved across the date line in both directions.
ImprovementLuciadLightspeed
TLcdGXYNewController now only pans the view on a mouse exit when the creation of the object is
taking place.
Before
and after creation, the view is not panned when the mouse exits the view.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddon: a quick print action can now be added to the toolbar, this action prints the
current
print settings without showing a dialog. It can be enabled in 'resources/lucy/print/print.cfg'
by changing
the value of 'TLcyPrintAddOn.quickPrintAction.toolBar.insert' to 'true'.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAreaCustomizerFactory: API was added to simplify changing the layout of the existing
customizer (visible when selecting the print area and Map|Editor is marked). The two panels
"Printer Settings" and "Printing Area" can now be retrieved separately.
ImprovementLuciadLightspeed
The raster painters now have a property avoidOpaqueBorder, to avoid drawing
opaque borders around warped rasters with IndexColorModels, without transparent
pixels. Please note that setting the property entails some processing overhead
when such rasters are painted.
ImprovementLuciadLightspeed
TLcdTABModelDecoder and TLcdTFWModelDecoder now have settable input stream
factories for accessing TAB and TFW files, respectively.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder and TLcdTABModelDecoder now have a new property
allowOrthographicReferencing, specifying whether rasters that are postioned in
geodetic references, using tie points, may be put in approximating orthographic
grid references that are centered around the rasters. The resulting
georeferencing will generally be more accurate than when just trying to rotate
the rasters in their original geodetic references. The default is true.
ImprovementLucy (LuciadLightspeed)
Line endings of text files are now in Windows style (CR and LF) instead of Linux style (LF).
Notepad on Windows has difficulties reading Linux style line endings, but Linux editors have
no problem reading Windows line endings.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn: The MIL-STD 2525b implementation has been upgraded to comply
with MIL-STD 2525b Change 1 2004, the most recent specification. In this context,
the rendering of a set of corresponding APP-6A symbols has been improved also.
Please refer to the release notes of the MS2525b specialized package for more details.
ImprovementLuciadLightspeed
The classes TLcdGXYStampLabelPainter, TLcdGXYPolygonLabelPainter, TLcdGXYPolylineLabelPainter
and
TLcdGXYIconPainter
now have methods for adding halo effects to labels or icons. Halo's can be enabled by setting
the halo thickness
(setHaloThickness()) to a value larger than zero. The color can be changed via the
setHaloColor() method.
Additionally, two new classes, TLcdGXYHaloPainter and TLcdGXYHaloLabelPainter are also added to
the API. These
classes
can be used to add a halo effect to other ILcdGXYPainter or ILcdGXYLabelPainter implementations.
Halo's can be added by wrapping an existing painter in one of these two halo painters. They
offer similar API
methods
as TLcdGXYLabelPainter and TLcdGXYIconPainter for configuring the halo thickness and color.
ImprovementLuciadLightspeed
TLcdGXYBoundsPainter, TLcdGXYBufferPainter, TLcdGXYLonLatHeightBufferPainter, and
TLcdGXYPointListPainter now
have
consistent editing behaviour. For each of these painters/editors the shape as displayed after
editing will be
exactly
as it was when the mouse was released while editing. Previously, shapes could 'jump' when
editing was finished.
ImprovementLuciadLightspeed
The package com.luciad.model contains two new model decoders,
TLcdTarModelListDecoder and TLcdZipModelListDecoder, for decoding all the
entries inside tar and zip archives, respectively. The actual decoding of the
entries is performed by model decoders that can be specified.
At a lower level, the package com.luciad.io contains two related new input
stream factories, TLcdTarInputStreamFactory and TLcdZipInputStreamFactory, for
creating input streams for entries inside tar and zip archives, respectively.
Note that TLcdTarModelListDecoder and TLcdTarInputStreamFactory require the new
library tar.jar.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn, TLcyAPP6AAddOn: the vertical icon offset property of the icon painter of a 3D
MIL-STD 2525b
or APP-6A layer is now saved to workspaces.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The order of the buttons in the 3D terrain wizard was changed to better conform
to present user interface standards.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The 3D terrain wizard no longer contains the small version of the old splash
screen.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn, TLcyAPP6AAddOn: the Lucy copy/paste functionality is now supported
by these addons. MIL-STD 2525b and APP-6A objects can be copied and pasted in a map.
ImprovementLucy (LuciadLightspeed)
TLcyMain: RunLucy.bat and RunLucy.sh now output all debug messages to the log file, not only the
fail/warn messages.
This includes the operating system, java version, etc. To suppress the debug messages as before,
add
"-trace false" to the property "APP_ARGS" in the scripts.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: the mark icons of the minimum and maximum elevations and the icon of the
"Marked elevations" layer can be configured in the tea_addon.cfg file.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: when importing a reference in the model reference dialog, the imported
reference is now selected.
ImprovementLucy (LuciadLightspeed)
TLcyLang now has a method getStringTranslator that returns an instance of ILcdStringTranslator.
This simplifies
integration with for example the TLcdMS2525bObjectCustomizer.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: an 'Ok for All' button is added to the model reference chooser when
opening a workspace.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: If a layer is programmatically selected, the layer control now scrolls to make the
selected layer visible.
ImprovementAdvanced GIS Engine
A new interface ILcd2DLineIntersectionTopology was introduced to model 2-dimensional intersection
calculations between shape outlines. Ellipsoidal, spherical and cartesian implementations are available.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now uses the georeferencing information from the
GeoTIFF or DTED rasters, falling back on the georeferencing information from
the DIMAP metadata files if necessary.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now also decodes DTED elevation data, assuming a
shared buffer has been set, to cache the decoded DTEDs. When upgrading, you
should therefore consider passing a shared buffer to the constructor of the
decoder.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now provides support for image input stream factories,
for accessing the actual raster files (GeoTIFF and DTED).
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now has a new property allowOrthographicReferencing,
specifying whether rasters that are postioned in geodetic references may be
put in approximating orthographic grid references that are centered around
the rasters. The resulting georeferencing will generally be more accurate
than when just trying to rotate the rasters in their original geodetic
references. The default is true.
ImprovementTerrain Analysis Engine
TLcdVVTerrainProfileRenderer displays unknown altitude values with a different color than known altitude values.
Before it was not possible to distinguish zero altitude values and unknown altitude values.
ImprovementTerrain Analysis Engine
TLcdTerrainProfileController: adding support to show or hide labels corresponding to the different invalid
altitude values.
ImprovementTerrain Analysis Engine
ALcdRasterTerrainElevationProvider: this class now support different invalid altitude values. The value
'outOfRasterBoundsValue' corresponds to points which lie outside the bounds of the source raster. The value
'unknownElevation' corresponds to elevation values of points for which the raster does not contain a valid
raster value, it is not inside the interval [minimumValidRasterValue,maximumValidRasterValue].
ImprovementTerrain Analysis Engine
LMAP-1019
Line-of-sight computations now support pluggable propagation functions. Four propagation functions are provided:
- com.luciad.tea.TLcdLOSRadarPropagationFunction to compute visual or radar line of
sight on an earth modeled as a sphere,
- com.luciad.tea.TLcdLOSRadarPropagationFunctionSkyBackground to compute where
one is visible with sky in the background.
- com.luciad.tea.TLcdLOSPropagationFunctionFixedHeight to compute the
visibility at a given height above the ground,
Use the factory TLcdLOSCoverageFactory to compute a line-of-sight covering an area around a center point and the
factory TLcdP2PCoverageFactory to compute a point-to-point line-of-sight between two points. More information can
be found in the developer guide and the API reference documentation.
ImprovementWeather & Environment Standards
Added a new decoder com.luciad.format.grib.TLcdGRIBBulletinModelDecoder,
for decoding GRIB bulletin files. The GRIB messages are concatenated in the
bulletin files, with optional headers. They can be filtered based on these
headers and on the model descriptors, references, and bounds.
ImprovementDefense Symbology
The MIL-STD 2525b implementation has received a major upgrade to comply with MIL-STD 2525b Change 1 2004, the most
recent specification.
In this context, the rendering of a set of corresponding APP-6A symbols has been improved also.
The most important changes in the Change 1 specification are:
- An extension of the available affiliations with EXERCISE PENDING, EXERCISE UNKNOWN, EXERCISE ASSUMED
FRIEND, EXERCISE FRIEND and EXERCISE NEUTRAL
- The addition of a general warfighting symbol, S*Z*------***** (1.X), with unknown battle dimension.
- The expansion of the symbol 'Drone' (1.X.2.1.1.16) with a large set of child symbols.
- A new symbol category 'Dead Reckoning Trailer' (2.X.2.1.1.2.5).
- A new symbol category 'Area of Uncertainty' (2.X.2.1.1.2.6).
- A new symbol category 'Wreck' (2.X.6.3.1.3).
- A vast expansion of the symbol category 'Fire support' (2.X.4).
- A major expansion of the weather/metoc symbology, with 291 new symbols
Next to this list, various other small improvements have been made to comply with Change 1.
ImprovementDefense Symbology
The calculation of the label bounds for multipoint symbols (2 points or more) in APP-6A and MIL-STD 2525b has been
enhanced
to obtain a better accuracy. This improves the behavior of a label decluttering algorithm, which generally uses the
label bounds
to declutter the labels.
ImprovementDefense Symbology
The rendering of the following weather symbols in APP-6A and MIL-STD 2525b has been improved:
- The frontal systems, the trough line symbol and the squal line symbol in APP-6A (located in 'Weather' -
'Pressure Systems') and in MIL-STD 2525b (located in
'Metoc' - 'Atmospheric' - 'Pressure Systems') are now rendered using the 'cornerSmoothness' property of the
symbol's style, to obtain a curved polyline
which better reflects the nature of a pressure system. By using 0 as value for this property, the original
rendering with straight corners can still be reinstated.
- The icon symbol 'Wind Plot/Barb' in MIL-STD 2525b (3.X.3.1.4.2) and APP-6A (3.X.4) is now rendered
dynamically: it uses the modifiers
'Movement Direction' (ILcdMS2525bCoded.sMovementDirection, ILcdAPP6ACoded.sMovementDirection) and 'Speed'
(ILcdMS2525bCoded.sSpeedLabel, ILcdAPP6ACoded.sSpeedLabel)
to better reflect the actual wind condition. The 'Movement Direction' modifier is used to specify a wind
direction in degrees, while the
'Speed' modifier is used to specify the wind speed in knots; these modifiers respectively define the orientation
and decoration of the
wind barb icon.
- The symbols 'Rain' (APP-6A: 3.X.7.1, MIL-STD 2525b: 3.X.3.1.7.1), 'Snow' (APP-6A: 3.X.7.1, MIL-STD 2525b:
3.X.3.1.7.1),
'Hail' (APP-6A: 3.X.7.1, MIL-STD 2525b: 3.X.3.1.7.1), 'Ice pellets' (APP-6A: 3.X.7.1, MIL-STD 2525b:
3.X.3.1.7.1) and
'Ice crystals' (APP-6A: 3.X.7.1, MIL-STD 2525b: 3.X.3.1.7.1) are now rendered as areas (also using the
'cornerSmoothness'
property of the symbol's style), which better reflects the nature of the symbol.
Bug fixLuciadLightspeed
The warping raster painters no longer throw a NullPointerException when the
clipping rectangle has zero width or height.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: On Linux, the border grid was sometimes not repainted correctly the first time
after returning from
full-screen mode.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: TLcyG4JTerrainLayer now sets a TLcdGLTerrainPaintableFactory
on its painter automatically.
Bug fixLuciadLightspeed
A problem with the printing of dashed and complex strokes, caused by a bug in the Sun graphics
implementation,
was solved. Dashed and complex strokes are now rendered correctly on printing devices.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: icons in the 3D view are now drawn on top of 3D terrain even
if multiple terrains are present in the 3D view.
Bug fixLuciadLightspeed
ALcd3DEditableFloatPolypoint now checks on the size of the array that is passed in the
constructor.
Bug fixLuciadLightspeed
TLcdGXYBoundsPainter no longer changes the dimensions of a bounds when the bounds is moved over
the north- or
south
pole.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: Fixed issues when loading multiple 3D terrains by using both
the 3D terrain wizard and the "File | Open" menu.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: The 3D view now uses a TLcdGLCompositeController by default
if all the camera control panels are disabled via the 3D addon
configuration file.
Bug fixLucy (LuciadLightspeed)
TLcyOpenFlightDecoderAddOn: Fixed issue when fitting the 2D view to a non-georeferenced
OpenFlight model.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: When auto fit was enabled for an object that was not visible in the current
projection,
an TLcdOutOfBoundsException was written to the console. The user is now gracefully informed
about
this through the status bar.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: the print area choice panel now uses the TLcyPrintAddOn.PRINTING_AREA_CHOICE_KEY
property
to know which area it should adapt.
Bug fixAdvanced GIS Engine
A bug in the line-arc intersection algorithm was fixed. Some intersection points between arcs and
linear shapes (polyline, polygon, buffer) which were not detected previously, will be computed
correctly now.
Bug fixAviation Standards
TLcdProcedureGeometryCalculator now respects the turn direction specified in
procedure legs wherever possible. In previous versions, the turn direction
would in some cases be ignored in favour of the shortest turn (i.e. the turn
requiring the smallest course change).
Bug fixDefense Standards
TLcdUSRPModelDecoder now correctly decodes TRANSH01.THF files pointing to
ADRG datasets.
Upgrade considerationLuciadLightspeed
TLcdLonLatArcBand and TLcdXYArcBand now throw an IllegalArgumentException when a negative
minimum or maximum
radius is
passed at construction time or via the methods setMinRadius or setMaxRadius.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: the map addon used to register a ILcyModelContentTypeProvider and a
ILcyGXYLayerTypeProvider
that returned ILcyModelContentType.GRID and ILcyGXYLayerType.EDITABLE for every grid layer or
model. As a result,
it was not possible to add a grid layer that had a different content/layer type, for example a
TLcdUTMGridLayer with
ILcyGXYLayerType.BACKGROUND was not possible. As the TLcyMapAddOn now only has type providers
for the grid layer it
adds itself, this problem no longer appears.
Applications that used to add some type of grid layer (e.g. TLcdMapLonLatGridLayer,
TLcdMapGeorefGridLayer,
TLcdUTMGridLayer) without adding a ILcyModelContentTypeProvider or ILcyGXYLayerTypeProvider
for it
(which they shouldn't do), might be affected by this change. After upgrading, their grid
layers could
be incorrectly ordered in the layer control.
In the unlikely event your application is affected by this, adding this piece of code
makes sure the
behavior is identical to 7.0:
lucy_env.addModelContentTypeProvider( new ILcyModelContentTypeProvider() {
public int getModelContentType( ILcdModel aModel ) {
if ( aModel != null && aModel.getModelDescriptor() != null &&
"Grid".equalsIgnoreCase( aModel.getModelDescriptor().getTypeName() ) )
return ILcyModelContentType.GRID;
else
return ILcyModelContentType.UNKNOWN;
}
} );
lucy_env.addGXYLayerTypeProvider( new ILcyGXYLayerTypeProvider() {
public int getGXYLayerType( ILcdGXYLayer aGXYLayer ) {
if ( aGXYLayer instanceof TLcdMapLonLatGridLayer ||
aGXYLayer instanceof TLcdMapGeorefGridLayer ||
aGXYLayer instanceof TLcdUTMGridLayer ) {
return ILcyGXYLayerType.EDITABLE;
}
return ILcyGXYLayerType.UNKNOWN;
}
} );
Upgrade considerationLucy (LuciadLightspeed)
TLcyG4JAddOn: the translations in the 'Resources' resource bundle of the G4J addon have been
merged with the DefaultResources from Lucy. If you added any translations to any of the
'resources/lucy/g4j/Resources_*.properties' files, you will need to copy these to the
appropriate 'resources/lucy/DefaultResources_*.properties' file.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: the TLcyMapComponentFactory now also adds the 'File|Save As...' menu item (next to
the 'File|Save'
menu item). Previously, this menu item was added by the TLcyExportAddOn. As a result there can
be two
'File|Save As' menu items. To resolve this, remove TLcyExportAddOn from your addons.xml file.
Upgrade considerationLuciadLightspeed
TLcdGXYPolygonLabelPainter and TLcdGXYPolylineLabelPainter no longer paint a label when the
array returned by
retrieveLabels is null or of zero length. This is the same behavior as TLcdGXYLabelPainter. The
effect of this
change will only be visible in extension of the painters which returned such arrays and when the
label painter
was
configured to put a frame around the label, or to fill the label with a background color. To
regain the previous
behaviour it suffices to return an array with a non zero length, containing empty Strings.
Upgrade considerationLucy (LuciadLightspeed)
TLcyToteAddOn: The checkboxes at the right of the table moved to a toolbar above the table.
To enable the old user interface, the config property 'TLcyToteAddOn.usePriorTo7_1' of
'resources/lucy/tote/tote_addon.cfg' should be set to 'true'.
The source code of this addon is now available in samples.lucy.tableview.TableViewAddOn, and
can
therefore be completely customized.
Upgrade considerationLuciadLightspeed
TLcdGXYPointListPainter now checks the painter mode (polygon, polyline, ... ) before removing
points. Point
lists
painted in POLYGON, FILLED or OUTLINED FILLED mode can not have the 2nd but last point removed,
point lists in
POLYLINE mode can not have the one but last point removed and point lists in POINT mode can not
have the last
point
removed. Before this change the default behavior was to allow removal of all points except the
last one.
To reinstate that behavior overwrite the method retrieveMinimalPointcount in
TLcdGXYPointListPainter to always
return 1.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: The layer properties action no longer uses auto-generated customizers to
alter the properties of layers for which no appropriate ILcyCustomizerFactory was registered.
This behaviour can be re-enabled by specifying the
-Dcom.luciad.lucy.addons.map.TLcyMapAddOn.fallbackOnGeneratedCustomizers=true system property
when starting up Lucy.
Note that in this case the customizers will only be generated if no
ILcyCustomizerPanelFactory can be found for the layer. Ie., if a fallback
ILcyCustomizerPanelFactory for layers has been registered with Lucy, that fallback
ILcyCustomizerPanelFactory will get precedence over the customizer generated using Beans
introspection. The TLcyMapAddOn by default registers such a fallback factory. This can
be disabled by setting the property TLcyMapAddOn.registerFallbackLayerCustomizerPanelFactory
to false in the configuration file of the TLcyMapAddOn.
Upgrade considerationLuciadLightspeed
com.luciad.util.ILcdRotationCapable has be deprecated in favor of
com.luciad.view.gxy.ILcdRotationCapableGXYView, since
it was only used in the context of views. Since the new interface extends the old interface, no
problems should
arise with existing code. All view implementations that implemented ILcdRotationCapable, now
implement
ILcdRotationCapableGXYView. Take into account that new code may be written against the new
interface and will
not
work for ILcdRotationCapable implementations. To avoid this, replace all ILcdRotationCapable
occurences
by ILcdRotationCapableGXYView.
Upgrade considerationTerrain Analysis Engine
TLcdVVTerrainProfileModel: the methods minZ and maxZ can return a Double.NaN, a Double.NEGATIVE_INFINITY or
a Double.POSITIVE_INFINITY when invalid elevations are found.
Upgrade considerationDefense Symbology
A set of MIL-STD 2525b symbols have received a new unique code in the MIL-STD 2525b Change 1 2004 specification.
To ease the upgrade to Change 1, the old codes can still be used in TLcdEditableMS2525bObject: when an old code is
detected, it will be
automatically converted to the correct MIL-STD 2525b Change 1 2004 code. Note that the method getMS2525Code() always
returns the
new code in that case. The following list shows all updated symbols, including their old and new hierarchy position
and
name - which are also changed for some symbols:
- WA--PXT--------, 3.X.3.1.1.4.1, TROUGH LINE is now known as WA-DPXT----L---, 3.X.3.1.1.4.1, TROUGH AXIS
- WA--OS---------, 3.X.3.1.9.1, BLOWING SNOW (BLSN) is now known as WAS-WSSBLMP----, 3.X.3.1.6.7.4, BLOWING
SNOW - LIGHT/MODERATE
- WA--IRL--------, 3.X.3.1.3.2.1, LIGHT RIME ICING is now known as WAS-IRL---P----, 3.X.3.1.3.2.1, RIME
ICING - LIGHT
- WA--TE---------, 3.X.3.1.2.4, EXTREME TURBULENCE is now known as WAS-TE----P----, 3.X.3.1.2.4, TURBULENCE
- EXTREME
- WA--STF--------, 3.X.3.1.8.1.2, FUNNEL CLOUD (FC)/TORNADO/WATERSPOUT is now known as WAS-WST-FCP----,
3.X.3.1.6.13.6, FUNNEL CLOUD (TORNADO/WATERSPOUT)
- WA--CS---------, 3.X.3.1.6.2, SCATTERED SKY (SCT) is now known as WAS-CCCSSCP----, 3.X.3.1.5.1.3,
SCATTERED COVERAGE
- WA--RSG--------, 3.X.3.1.7.2.2, SNOW GRAINS (SG) is now known as WAS-WSSG--P----, 3.X.3.1.6.8, SNOW
GRAINS
- WA--RRS--------, 3.X.3.1.7.1.1, RAIN SHOWER is now known as WAS-WSRSL-P----, 3.X.3.1.6.3.1, RAIN SHOWERS
- LIGHT
- WA--OT---------, 3.X.3.1.9.3, DUST/SAND STORM is now known as WAS-WSDSLMP----, 3.X.3.1.6.18.1, DUST/SAND
STORM - LIGHT TO MODERATE
- WA--RR---------, 3.X.3.1.7.1, RAIN (RA) is now known as WAS-WSR-LIP----, 3.X.3.1.6.1.1, RAIN -
INTERMITTENT LIGHT
- WA--PFC--------, 3.X.3.1.1.3.1, COLD FRONT is now known as WA-DPFC----L---, 3.X.3.1.1.3.1, COLD FRONT
- WA--FV---------, 3.X.3.1.5.2, VISUAL CEILING is now known as WA-DBAMV----A--, 3.X.3.1.7.2, MARGINAL
VISUAL FLIGHT RULE (MVFR)
- WA--PL---------, 3.X.3.1.1.1, LOW PRESSURE CENTER is now known as WAS-PL----P----, 3.X.3.1.1.1, LOW
PRESSURE CENTER
- WA--PFO--------, 3.X.3.1.1.3.3, OCCLUDED FRONT is now known as WA-DPFO----L---, 3.X.3.1.1.3.3, OCCLUDED
FRONT
- WA--ICS--------, 3.X.3.1.3.1.3, SEVERE CLEAR ICING is now known as WAS-ICS---P----, 3.X.3.1.3.1.3, CLEAR
ICING - SEVERE
- WA--TL---------, 3.X.3.1.2.1, LIGHT TURBULENCE is now known as WAS-TL----P----, 3.X.3.1.2.1, TURBULENCE -
LIGHT
- WA--WJ---------, 3.X.3.1.4.1, JET STREAM is now known as WA-DWJ-----L---, 3.X.3.1.4.3, JET STREAM
- WA--PXR--------, 3.X.3.1.1.4.2, RIDGE LINE is now known as WA-DPXR----L---, 3.X.3.1.1.4.2, RIDGE AXIS
- WA--OD---------, 3.X.3.1.9.4, DUST DEVIL is now known as WAS-WSDD--P----, 3.X.3.1.6.18.3, DUST DEVIL
- WA--PFCU-------, 3.X.3.1.1.3.1.1, UPPER COLD FRONT is now known as WA-DPFCU---L---, 3.X.3.1.1.3.1.1,
UPPER COLD FRONT
- WA--ICL--------, 3.X.3.1.3.1.1, LIGHT CLEAR ICING is now known as WAS-ICL---P----, 3.X.3.1.3.1.1, CLEAR
ICING - LIGHT
- WA--STL--------, 3.X.3.1.8.1.3, LIGHTNING (LTG) is now known as WAS-WST-LGP----, 3.X.3.1.6.13.8,
LIGHTNING (LTG)
- WA--TM---------, 3.X.3.1.2.2, MODERATE TURBULENCE is now known as WAS-TM----P----, 3.X.3.1.2.2,
TURBULENCE - MODERATE
- WA--CW---------, 3.X.3.1.6.4, OVERCAST WITH BREAKS is now known as WAS-CCCSBCP----, 3.X.3.1.5.1.4, BROKEN
COVERAGE
- WA--RC---------, 3.X.3.1.7.5, ICE CRYSTALS (IC) is now known as WAS-WSIC--P----, 3.X.3.1.6.11, ICE
CRYSTALS (DIAMOND DUST)
- WA--IMM--------, 3.X.3.1.3.3.2, MODERATE MIXED ICING is now known as WAS-IMM---P----, 3.X.3.1.3.3.2,
MIXED ICING - MODERATE
- WA--RH---------, 3.X.3.1.7.3, HAIL is now known as WAS-WSGRL-P----, 3.X.3.1.6.10.1, HAIL - LIGHT NOT
ASSOCIATED WITH THUNDER
- WA--OF---------, 3.X.3.1.9.2, FOG (FG) is now known as WAS-WSFGSOP----, 3.X.3.1.6.14.5, FOG - SKY
OBSCURED
- WA--IRM--------, 3.X.3.1.3.2.2, MODERATE RIME ICING is now known as WAS-IRM---P----, 3.X.3.1.3.2.2, RIME
ICING - MODERATE
- WA--OB---------, 3.X.3.1.9.7, BLOWING DUST OR SAND is now known as WAS-WSDB--P----, 3.X.3.1.6.18.4,
BLOWING DUST OR SAND
- WA--CB---------, 3.X.3.1.6.3, BROKEN SKY (BKN) is now known as WAS-CCCSBCP----, 3.X.3.1.5.1.4, BROKEN
COVERAGE
- WA--RI---------, 3.X.3.1.7.4, ICE PELLETS (PE) is now known as WAS-WSPLL-P----, 3.X.3.1.6.12.1, ICE
PELLETS - LIGHT
- WA--PFW--------, 3.X.3.1.1.3.2, WARM FRONT is now known as WA-DPFW----L---, 3.X.3.1.1.3.2, WARM FRONT
- WA--FI---------, 3.X.3.1.5.1, INSTRUMENT CEILING is now known as WA-DBAIF----A--, 3.X.3.1.7.1, INSTRUMENT
FLIGHT RULE (IFR)
- WA--ST---------, 3.X.3.1.8.1, THUNDERSTORMS (TS) is now known as WA-DBAT-----A--, 3.X.3.1.7.7,
THUNDERSTORMS
- WA--OH---------, 3.X.3.1.9.6, HAZE (HZ) is now known as WAS-WSHZ--P----, 3.X.3.1.6.17, HAZE
- WA--RRD--------, 3.X.3.1.7.1.3, DRIZZLE (DZ) is now known as WAS-WSD-LIP----, 3.X.3.1.6.4.1, DRIZZLE -
INTERMITTENT LIGHT
- WA--RRDF-------, 3.X.3.1.7.1.3.1, FREEZING DRIZZLE (FZDZ) is now known as WAS-WSDFMHP----, 3.X.3.1.6.5.2,
FREEZING DRIZZLE - MODERATE
- WA--RRF--------, 3.X.3.1.7.1.2, FREEZING RAIN (FZRA) is now known as WAS-WSRFMHP----, 3.X.3.1.6.2.2,
FREEZING RAIN - MODERATE
- WA--PXS--------, 3.X.3.1.1.4.3, SQUALL LINE is now known as WA-DPXIL---L---, 3.X.3.1.1.4.4, INSTABILITY
LINE
- WA--PFWU-------, 3.X.3.1.1.3.2.1, UPPER WARM FRONT is now known as WA-DPFWU---L---, 3.X.3.1.1.3.2.1,
UPPER WARM FRONT
- WA--PFS--------, 3.X.3.1.1.3.4, STATIONARY FRONT is now known as WA-DPFS----L---, 3.X.3.1.1.3.4,
STATIONARY FRONT
- WA--IML--------, 3.X.3.1.3.3.1, LIGHT MIXED ICING is now known as WAS-IML---P----, 3.X.3.1.3.3.1, MIXED
ICING - LIGHT
- WA--SSH--------, 3.X.3.1.8.2.2, HURRICANE is now known as WAS-WSTSH-P----, 3.X.3.1.6.19.3,
HURRICANE/TYPHOON
- WA--TS---------, 3.X.3.1.2.3, SEVERE TURBULENCE is now known as WAS-TS----P----, 3.X.3.1.2.3, TURBULENCE
- SEVERE
- WA--OK---------, 3.X.3.1.9.5, SMOKE (FU) is now known as WAS-WSFU--P----, 3.X.3.1.6.16, SMOKE
- WA--CO---------, 3.X.3.1.6.5, OVERCAST (OVC) is now known as WAS-CCCSOCP----, 3.X.3.1.5.1.5, OVERCAST
COVERAGE
- WA--SST--------, 3.X.3.1.8.2.1, TROPICAL STORM is now known as WAS-WSTSS-P----, 3.X.3.1.6.19.2, TROPICAL
STORM
- WA--STR--------, 3.X.3.1.8.1.1, THUNDERSTORM (TS) WITH RAIN (RA) is now known as WAS-WSTMR-P----,
3.X.3.1.6.13.2, THUNDERSTORM LIGHT TO MODERATE WITH RAIN/SNOW - NO HAIL
- WA--PH---------, 3.X.3.1.1.2, HIGH PRESSURE CENTER is now known as WAS-PH----P----, 3.X.3.1.1.2, HIGH
PRESSURE CENTER
- WA--CP---------, 3.X.3.1.6.6, SKY OBSCURED OR PARTIALLY OBSCURED is now known as WAS-CCCSOBP----,
3.X.3.1.5.1.6, SKY TOTALLY OR PARTIALLY OBSCURED
- WA--RSS--------, 3.X.3.1.7.2.1, SNOW SHOWERS is now known as WAS-WSSSL-P----, 3.X.3.1.6.9.1, SNOW SHOWERS
- LIGHT
- WA--RS---------, 3.X.3.1.7.2, SNOW(SN) is now known as WAS-WSS-LIP----, 3.X.3.1.6.7.1, SNOW -
INTERMITTENT LIGHT
- WA--IMS--------, 3.X.3.1.3.3.3, SEVERE MIXED ICING is now known as WAS-IMS---P----, 3.X.3.1.3.3.3, MIXED
ICING - SEVERE
- WA--OFF--------, 3.X.3.1.9.2.1, FREEZING FOG (FZFG) is now known as WAS-WSFGFVP----, 3.X.3.1.6.14.6, FOG
- FREEZING, SKY VISIBLE
- WA--IRS--------, 3.X.3.1.3.2.3, SEVERE RIME ICING is now known as WAS-IRS---P----, 3.X.3.1.3.2.3, RIME
ICING - SEVERE
- WA--ICM--------, 3.X.3.1.3.1.2, MODERATE CLEAR ICING is now known as WAS-ICM---P----, 3.X.3.1.3.1.2,
CLEAR ICING - MODERATE
- WA--W----------, 3.X.3.1.4, WIND BARB is now known as WAS-WP----P----, 3.X.3.1.4.2, WIND PLOT
- WA--CC---------, 3.X.3.1.6.1, CLEAR SKY (SKC) is now known as WAS-CCCSCSP----, 3.X.3.1.5.1.1, CLEAR SKY
- G*G*SAB---****X, 2.X.2.6.2.3, BRIDGEHEAD is now known as G*G*SLB---****X, 2.X.2.6.1.4, BRIDGEHEAD
- G*F*PTC---****X, 2.X.4.1.1.3, CIRCULAR TARGET is now known as G*F*ATC---****X, 2.X.4.3.1.2, CIRCULAR
TARGET
- G*F*PTR---****X, 2.X.4.1.1.4, RECTANGULAR TARGET is now known as G*F*ATR---****X, 2.X.4.3.1.1,
RECTANGULAR TARGET
- G*F*AA----****X, 2.X.4.3.1, FIRE SUPPORT AREA (FSA) is now known as G*F*ACSI--****X, 2.X.4.3.2.1.1,
IRREGULAR
- G*F*AC----****X, 2.X.4.3.2, AIRSPACE COORDINATION AREA (ACA) is now known as G*F*ACAI--****X,
2.X.4.3.2.2.1, IRREGULAR
- G*F*AK----****X, 2.X.4.3.4, SMOKE is now known as G*F*ATS---****X, 2.X.4.3.1.4, SMOKE
- G*F*AS----****X, 2.X.4.3.5, SERIES OR GROUP OF TARGETS is now known as G*F*ATG---****X, 2.X.4.3.1.3,
SERIES OR GROUP OF TARGETS
- G*F*AB----****X, 2.X.4.3.6, BOMB AREA is now known as G*F*ATB---****X, 2.X.4.3.1.5, BOMB AREA
- G*F*AF----****X, 2.X.4.3.7, FREE FIRE AREA (FFA) is now known as G*F*ACFI--****X, 2.X.4.3.2.3.1,
IRREGULAR
- G*F*AN----****X, 2.X.4.3.8, NO-FIRE AREA (NFA) is now known as G*F*ACNI--****X, 2.X.4.3.2.4.1,
IRREGULAR
- G*F*AR----****X, 2.X.4.3.9, RESTRICTIVE FIRE AREA (RFA) is now known as G*F*ACRI--****X, 2.X.4.3.2.5.1,
IRREGULAR
- G*F*AP----****X, 2.X.4.3.10, POSITION AREA FOR ARTILLERY (PAA) is now known as G*F*ACPR--****X,
2.X.4.3.2.6.1, RECTANGULAR
- G*F*LP----****X, 2.X.4.2.6, FINAL PROTECTIVE FIRE (FPF) is now known as G*F*LTF---****X, 2.X.4.2.1.2,
FINAL PROTECTIVE FIRE (FPF)
- G*F*LL----****X, 2.X.4.2.5, LINEAR TARGET is now known as G*F*LS----****X, 2.X.4.2.1.1, LINEAR SMOKE
TARGET
- G*O*SBW---****X, 2.X.6.3.1.3, WRECK is now known as G*O*SBWN--****X, 2.X.6.3.1.3.2, WRECK,
NON-DANGEROUS
Upgrade considerationDefense Symbology
The class TLcdEditableMS2525bObject in the MIL-STD 2525b API previously accepted symbol codes that represented
directories, because they are defined
in the MIL-STD 2525b specification. These codes are now listed as invalid, because they do not represent a real
symbol and cannot be drawn on map:
when such a code is now set on a TLcdEditableMS2525bObject, an IllegalArgumentException will be thrown, as this was
the default behavior for other
invalid codes. This behavior was already present for APP-6A.
7.0
7.0.16
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now puts better display names in
the model descriptors of decoded models.
ImprovementDefense Symbology
In JDKs/JREs prior to 1.6, using large AWT coordinates in combination with a Stroke on the Graphics could
cause a JVM crash in some cases, with as error message "An unrecoverable stack overflow has occurred".
See also
Sun bug #5054725.
In MIL-STD 2525b and APP-6A, this error can occur when zooming on certain icons.
A improved method to render the icons has been integrated that prevents these JVM crashes.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the visibility of the terrain layer is now stored in and restored from the
workspace.
7.0.15
ImprovementLuciadLightspeed
The polar stereo graphic projection (TLcdPolarStereoGraphic) now has support for a central
meridian.
This meridian will become a line along the Y-axis in the projected plane.
ImprovementInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now cleans up formatting information
in the strings of decoded text objects.
Bug fixLuciadLightspeed
The vertical cursor is now prohibited from leaving the vertical view (TLcdVVJPanel) when
resizing the window.
Previously, when the vertical view was resized the vertical cursor could leave the vertical view
on the right
side.
Since the cursor can only be moved with the mouse, this rendered the vertical cursor useless
until the vertical
view
was resized again to contain the vertical cursor.
Bug fixLuciadLightspeed
TLcdLonLatCircle bounds were computed incorrectly when the circle contained either of the north
or south pole.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: There was sometimes no automatic repaint after enabling/disabling the
redlining toolbar.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when textually editing the dimensions of a rectangle, the Lucy angle format
was not respected.
Bug fixLuciadLightspeed
ALcdXYDynamicSegmentationEvent accidentally had a number of package visible
abstract methods. These have now been made public.
Bug fixLucy (LuciadLightspeed)
TLcyMapRotationAddOn: used to throw a NullPointerException if centering was enabled on an
object, then on another
object, then removed from the first object and then a model changed event was fired for the
first object.
Bug fixLucy (LuciadLightspeed)
TLcyMapRotationAddOn: Map rotation did not update at first click on compass, only after a mouse
drag.
Bug fixAviation Standards
The geometry calculator for procedures, TLcdProcedureGeometryCalculator, could not handle CD or VD legs
with a navaid distance larger than 100 km. This limit has been removed, allowing arbitrary long distances.
Bug fixInfrastructure Standards
com.luciad.format.dwg.gxy.TLcdDWGGXYLineStyle now applies the line width of
polylines.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now provides properties to allow
decoding of invisible objects and invisible or frozen layers.
Upgrade considerationLuciadLightspeed
TLcdLonLatEllipse, TLcdXYEllipse, TLcdLonLatArc and TLcdXYArc now throw an
IllegalArgumentException when a
negative
value is passed for the semi-minor or semi-major axis length at construction time or when
setting the value via
setA or setB.
Upgrade considerationLuciadLightspeed
TLcdLonLatCircle and TLcdXYCircle now throw an IllegalArgumentException when a negative radius
is passed at
construction
time or via the method setRadius.
7.0.14
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: the extreme elevation action now uses the best density raster when retrieving
elevation data.
ImprovementDefense Symbology
The country codes in the 'Country' combobox in the APP-6A and MIL-STD 2525b customizer are now alfabetically
ordened.
Bug fixLuciadLightspeed
A problem with the caching of computed general paths in TLcdGXYPointListPainter was fixed. This
fix might
improve painting performance of all polylines and polygons that make use of TLcdCache (including
all LuciadMap
classes that extend from ALcd2DEditablePolypoint).
Bug fixLuciadLightspeed
TLcdRenderedImageTile no longer throws an ArrayIndexOutOfBoundsException if
forcedTransparentColorIndex has been set for a 16-bits IndexColorModel.
Bug fixLuciadLightspeed
TLcdDTEDDirectoryModelDecoder and the multilevel raster painters now handle
empty data sets.
Bug fixLuciadLightspeed
TLcdSymbol: rendering the symbol type OUTLINED_AREA did not render an outline using the method
paintIcon, it did
using the method paint. They now both do. The type POINTS rendered the point in the center using
paintIcon,
and at the top left using paint, they now both center the dot.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: cancelling a WMS server connection attempt in the dialog did not fully
terminate the connection thread, which could possibly lead to a NullPointerException afterwards.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: restoring the menu items of a vertical view now happens on the correct
thread.
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: restoring the menu items of the DAFIF add on now happens on the correct thread.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: icons are now displayed for the layers of imported SHP files containing
point shapes.
Bug fixLucy (LuciadLightspeed)
The layers for GeoTIFF files dropped on the 2D view now have a correct label.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: Multipoint SHP files can now be displayed in the 3D view.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the terrain wizard no longer fails when during workspace decoding a layer could
not be decoded.
Bug fixLuciadLightspeed
TLcdInputStreamFactory now allows to unset a default request property, by setting it to null.
Bug fixLuciadLightspeed
TLcdTTFIcon now takes into account the color, the offset and the rotation when comparing using
the equals
method.
Bug fixLuciadLightspeed
TLcdContourFinder: for contour computations with non-optimized edges, the last valid point was
not added to the
contour.
Bug fixLuciadLightspeed
The arcs part of an arcband painted by the TLcdGXYArcBandPainter can now be moved across each
other, effectively
switching the minimum and maximum radius of an arcband.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder no longer writes corrupt DBF files for String features which started or
ended with spaces.
Bug fixLucy (LuciadLightspeed)
TLcyFileWorkspaceCodec: decodePath now correctly resolves directory names relative to the
workspace
file if the workspace file itself is relative to the classpath.
Bug fixDefense Standards
TLcdNITFModelDecoder now throws a more helpful IOException if it doesn't
have a model reference decoder and it can't decode a model reference.
7.0.13
Bug fixLuciadLightspeed
TLcdLonLatPoint now takes into account that longitudes -180 and 180 are the same in the equals
method.
Bug fixLuciadLightspeed
TLcd2DEditableFeaturedPoint did not take into account that any of the features or the point
could be null
in the equals or hashcode method.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder no longer throws a NullPointerException when the model reference decoder is
set to null.
The decoder then uses the default model reference.
7.0.11
ImprovementLuciadLightspeed
The performance of TLcdRenderedImageTile has been improved. This tile is
typically used when decoding GeoTIFF, TFW, JGW, and TAB files.
ImprovementLuciadLightspeed
The thread-safety of the most important implementations of ILcdTileDecoder has
been improved and documented. Notably, TLcdCADRGImageDecoder is now thread-safe,
with better concurrent performance.
ImprovementTerrain Analysis Engine
TLcdProfileViewJPanel displays unknown altitude values with a different color than known altitude values. Before it was
not possible to distinguish zero altitude values and unknown altitude values.
Bug fixLuciadLightspeed
TLcdEllipsoidUtil now correctly computes the intersection points of lines for which the begin
an/or end points
are coincident.
Bug fixLuciadLightspeed
TLcdGXYViewJPanel, TLcdGXYViewJPanelLightweight and TLcdMapCanvas did not convey all property
change events to
the
listeners added.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder decoded less model reference files. This was due to an unintended
incompatible change.
Bug fixLuciadLightspeed
License files containing non-ASCII characters were not accepted if the default
character set was not ISO-8859-1.
Bug fixLucy (LuciadLightspeed)
TLcyHypsometryAddon: now updates correctly if the look and feel is changed while the application
is running.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: the various parts of the reference chooser were sometimes disabled
incorrectly.
Bug fixLucy (LuciadLightspeed)
ILcyLucyEnv: when a PropertyChangeEvent was fired, it did not correctly handle the case when one
of
the listeners removed itself from ILcyLucyEnv.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder no longer adds the last raster listed in a VOL_LIST.DIM
file to the model twice.
7.0.09
Bug fixLuciadLightspeed
TLcdWCSProxy now checks the coverage description to see if the coverage is two-
or three-dimensional, and adapts its requests accordingly.
Bug fixOGC Server
Invoking the getChildWMSLayerIndex(ALcdMWSLayer) method on a TLcdWMSLayer object without any child layers
resulted in a NullPointerException. This has been fixed: the value -1 is now returned in that case,
following the method description in the javadoc.
7.0.08
Bug fixLuciadLightspeed
TLcdWCSProxy now clears the cache of the rasters contained within it whenever a
tile finishes loading new coverage data from the WCS. This allows a
TLcdWCSProxy to be painted correctly when the setUseSubtileImageCaching()
property of TLcdMultilevelRasterPainter is switched on.
Bug fixLuciadLightspeed
TLcdEllipsoid incorrectly computed points at very large distances (crossing north and south
pole) along a rhumb
line.
7.0.07
Bug fixLuciadLightspeed
TLcdWCSProxy has improved handling of TIFF images. In particular, an issue was
fixed that caused some data not to be drawn by TLcdWarpMultilevelRasterPainter.
Bug fixRadar Connectors
Feature values (attributes) of ASTERIX domain objects that return an instance of ILcdISO19103Measure
sometimes did not use the correct SI standard units. These changes were made:
- Degrees -> Radians
- dBm -> watt
- Bar -> Pascal
- Celcius -> Kelvin
Note that this only affects the standard units (ILcdISO19103Measure.getUnitOfMeasure().convertToStandard) and not
the actually used unit (ILcdISO19103Measure.getUnitOfMeasure()) nor the value (ILcdISO19103Measure.getValue()).
7.0.06
ImprovementLuciadLightspeed
TLcdGXYTextPainter now paints rotated texts more accurately.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now also decodes GeoTIFF files with 16-bit RGB values.
The values are scaled to 8-bit values.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now also decodes GeoTIFF files with 4 wavelength bands.
The decoded rasters only contain the RGB bands.
ImprovementDefense Symbology
The rendering of the following tactical point symbol in MIL-STD 2525b and APP-6A has been corrected:
- The anchor point indication in the Oil Rig tactical symbol in MIL-STD 2525b (G*O*HO----****X, 2.X.6.2.4)
and in APP-6A (G*C*OXZO--*****, 2.X.2.5.1.9.1) has been removed, as it is not part of the symbol.
Bug fixLuciadLightspeed
TLcdGeodeticDatum did not take into account that the ellipsoid of the datum could be different
from the
ellipsoid of the
reference datum when transforming lon lat height points to and from the reference datum.
Bug fixLuciadLightspeed
TLcdJPLGeodeticDatumFactory contained inaccurate parameters for WGS72 datums.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now correctly decodes user-defined ellipsoids.
Bug fixLuciadLightspeed
Lines with an SLD image stroke are now printed completely.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now also decodes GeoTIFF files with a planar
configuration.
7.0.05
ImprovementLucy (LuciadLightspeed)
TLcyMain: now calls dispose on the frame if setActive(false) is used. This properly releases OS
window resources.
ImprovementLucy (LuciadLightspeed)
TLcyMain: there is a new property 'systemExitOnClose' in resources/lucy/lucy.cfg that allows to
disable
calling System.exit if the application is closed, e.g. using File|Exit.
ImprovementLuciadLightspeed
TLcdCADRGImageDecoder has been improved to yield a better performance.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: the handling of errors encountered during WMS server connection attempts has
been improved,
resulting in more meaningful messages when problems occur (e.g., WMS service exception reports,
HTTP errors, ...).
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now also decodes GeoTIFF files with 16-bit RGB values.
The values are scaled to 8-bit values.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now also decodes GeoTIFF files with float or double
values. The values are cast to short values.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now also decodes GeoTIFF files with 4 wavelength bands.
The decoded rasters only contain the RGB bands.
ImprovementOGC Server
The WMS 1.3.0 capabilities now contain the XML element 'BoundingBox' for a layer, describing its bounds in one of
the available
CRSs. This is in contrast with the already available element 'EX_GeographicBoundingBox', that always describes the
bounds of a layer
in WGS 84 coordinates.
ImprovementOGC Server
Support has been added for the optional FORMAT parameter in a GetCapabilities request.
Both the WMS 1.1.1 and 1.3.0 capabilities now mention two available output formats,
text/xml and application/vnd.ogc.wms_xml, which can be used in the FORMAT parameter.
If no FORMAT parameter is specified, the default format for the version of the capabilities is used:
application/vnd.ogc.wms_xml for WMS 1.1.1, text/xml for WMS 1.3.0.
ImprovementOGC Server
When a GetFeatureInfo request was received for an invalid layer, the returned service exception
report did not specify the 'LayerNotDefined' code.
ImprovementDefense Standards
Exceptions which where printed directly on the system error log are now logged via TLcdLog.
ImprovementDefense Standards
GRT tables with column names 'parameter X' instead of 'parameterX' (where X = 1..4) are
supported now.
ImprovementDefense Symbology
The labeling of the tactical point symbols in MIL-STD 2525b and APP-6A (category 2.X) has been improved:
- The position of the different labels has been analyzed and improved, following the latest label
guidelines in the corresponding specifications.
- The property 'labelFontScalingEnabled' in ILcdMS2525bStyle and ILcdAPP6AStyle is now properly taken into
account; if it is set to false,
the size of the active font - configurable through the 'labelFont' property in ILcdMS2525bStyle and
ILcdAPP6AStyle - is not changed anymore.
ImprovementDefense Symbology
The rendering of three tactical point symbols in MIL-STD 2525b and APP-6A has been corrected:
- The example label '2BD' in the Ambulance Exchange Point tactical symbol in MIL-STD 2525b
(G*S*PX----****X, 2.X.5.1.1)
and in APP-6A (G*C*SPA---*****, 2.X.2.4.1.1) has been removed, as it is not a fixed label of the symbol.
- The position of the General Supply Point tactical symbol in MIL-STD 2525b (G*SPPSZ---****X, 2.X.5.1.14.1)
and in APP-6A (G*C*SPQT--*****, 2.X.2.4.1.14.1) is now centered on the X-axis instead of shifted to the left.
- The anchor point indication in the Task - Destroy tactical symbol in MIL-STD 2525b (G*T*D-----****X,
2.X.1.9)
and in APP-6A (G*T*GD----*****, 2.X.1.1.9) has been removed, as it is not part of the symbol.
ImprovementDefense Symbology
The classes TLcdEditableAPP6AObject and TLcdEditableMS2525bObject have received an improved implementation of
the clone method. Notably, the method clone now always delegates to the method super.clone, which ensures
that a class of the proper type is created, even for extensions. The javadoc can be consulted for the exact
clone behavior.
ImprovementDefense Symbology
The labeling of the Supply Route Symbols in MIL-STD 2525b (2.X.5.2.2.1/2/3/4/5) and APP-6A (2.X.2.4.2.2.1/2/3/4/5)
has been improved: the labels were not visible when zoomed in on these lines.
Bug fixLucy (LuciadLightspeed)
TLcyDataRepositoryAddOn: there used to be a memory leak in the TLcyDataRepositoryAddOn
preventing ILcyMapComponent
instances to be garbage collected after they were removed from the ILcyMapManager, e.g., when
loading a new
workspace.
Bug fixLuciadLightspeed
TLcdWKTReferenceParser no longer fails on UTM grid references where the name does not follow a
pattern UTM zone
NN[N|S].
If the name of the reference is according to the pattern the decoded reference will be a
TLcdUTMGrid from which
the zone
and hemisphere can be retrieved. If the name does not follow the pattern, the string will be
decoded as a
regular grid
reference, from which only the zone can be retrieved indirectly.
Bug fixLuciadLightspeed
TLcdWCSProxy now correctly includes the Z coordinates of its bounds when it
issues requests to the WCS server. This allows users to query three-dimensional
coverages.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: when a workspace was loaded and the track model instances
(ILcdSimulatorModel.getTrackModels())
were reused between the previous and the new workspace, the internal state of the
TLcyPreviewAddOn was incorrecly
cleared. As a result, the layers representing those track models were newly created instead of
decoded from
the workspace, and the layer properties (such as color and style) were lost. Next to that,
unneeded layers
were created and removed later on.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: fixed NullPointerException in TLcdGLPanControllerAction when
adding additional application panes in the same location as the 3D view and
then switching back and forth between these panes.
Bug fixLucy (LuciadLightspeed)
TLcyMapComponentFactory: The action to save the view extents as an image (e.g., File|Save As
Image|Map) now
correctly encodes rotated views.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder now also decodes GeoTIFF files with a planar
configuration.
Bug fixTerrain Analysis Engine
The line-of-sight computation was sometimes not complete when the arc angle is different from 360 and the center
point reference is different than the target reference. Although all computations were performed, they were not all
included in the resulting raster.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBParameterTable no longer throws an
ArrayIndexOutOfBoundsException when a parameter with index 255 is set.
Bug fixS-63
Basic permit files with empty lines can now be handled by the TLcdS63ModelDecoder.
Bug fixS-63
A bug in the TLcdS63ModelDecoder, causing encrypted files to become undecodable,
was fixed (applies on all files encrypted with a hardware ID other than the demo ID).
7.0.04
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when editing a pointlist, a disabled 'terrain following mode' caused the Z
coordinates of
the pointlist points to double.
7.0.03
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder now uses the SRID specified in the properties
file if it is not set in the metadata in the spatial database.
Bug fixLucy (LuciadLightspeed)
TLcyFileWorkspaceCodec: decodePath now correctly resolves file names relative to the workspace
file if the workspace file itself is relative to the classpath. As a result, overwriting the
"resources/lucy/workspace/defaultWorkspace.lws" workspace, and saving for example redlining
data in that same directory now works. Before, the redlining data was not found when restarting
Lucy.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: Using the overview or combined controller, one can now deselect the
overview shape by clicking
elsewhere on the overview map. The combined controller is activated using the
'map_overview.use_combined_controller' property in 'resources/lucy/map/mapoverview_addon.cfg'.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: the find dialog is now positioned on the correct screen when the shortcut Ctrl-F
is used.
Bug fixLucy (LuciadLightspeed)
The window containing the components that did not fit on the toolbar is now positioned on the
correct screen when multiple screens are used.
Bug fixDatabase Connectors
TLcdOracleSpatialModelDecoder now correctly ignores geometry elements of
type 0 (i.e., unsupported by Oracle Spatial).
7.0.02
ImprovementDefense Standards
TLcdNITFModelDecoder no longer unnecessarily invokes its model reference
decoder when it can decode a model reference from the NITF file itself.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelEncoder now correctly encodes rasters that are defined in a grid
reference that is rotated.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDescriptor now only considers the
significant bits of the internal GRIB value in the method getActualValue,
discarding any other spurious bits.
Upgrade considerationLuciadLightspeed
The magnifier controller did not take into account the rotation of the underlying view.
TLcdGXYMagnifierController now
creates a TLcdGXYViewJPanel instead of a TLcdGXYCanvas. This will only affect applications that
do not use Swing
to
render components. In that case, extend TLcdGXYMagnifierController and overwrite the method
createGlassGXYView
to
return a TLcdGXYViewCanvas.
7.0.01
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: by default, the Lucy WMS Client AddOn performed validation (DTD or XML
Schema) on the returned
capabilities of a WMS server. This validation step has been switched off, because several public
WMS servers refer
to DTD or XML Schema documents on servers with limited availability. The validation step can now
also be configured
through a boolean property 'TLcyWMSClientAddOn.validateCapabilities' in the configuration file
of the addon,
lucy/addons/wmsclient/wmsclient_addon.cfg. This can be useful when a local WMS server is used in
an environment
where no internet connection is available.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: extra caching and a decrease of WMS GetMap requests have been implemented
to improve the performance. Especially when the current view context does not change and
layer repaints are triggered, the performance has been improved significantly.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn, TLcyAIXMAddOn, TLcyDAFIFAddOn: 3D airspace layers are now stored in and
restored from the workspace.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the layer control no longer scrolls when you try to click the checkbox of a layer
with a long name.
ImprovementLuciadLightspeed
The methods createImageInputStream(int, int, com.luciad.view.ILcdXYWorldReference, com.luciad.shape.ILcdBounds,
java.awt.Color)
and createImage(int, int, com.luciad.view.ILcdXYWorldReference, com.luciad.shape.ILcdBounds, java.awt.Color) in the
ALcdWMSProxy object
created by TLcdOGCWMSProxyModelDecoder have been made thread-safe. Multiple threads can now use these methods
concurrently
on the same ALcdWMSProxy object, without the need for extra synchronization.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: the profile controller and view now uses the default altitude unit set in Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: the global icon scale property (controlled with a slider
underneath the 3D layer control panel) is now saved to workspaces.
ImprovementLucy (LuciadLightspeed)
TLcyHypsometryAddon: When creating a hypsometric layer based on the selected shape, a new
GeoTIFF
layer is created. From now on, this is done on a seperate thread.
Bug fixLucy (LuciadLightspeed)
Using the Synth look and feel on Linux in Java 1.6, NullPointerExceptions were sometimes thrown
when Lucy was started.
Bug fixLuciadLightspeed
TLcdGML2ModelEncoder now encodes the srsName attribute for MultiGeometry elements,
as required by the GML2 schema.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when no model reference is found for a redlining file, a dialog is shown
where the user can specify the model reference manually.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the rotation of arcs are now saved in the redlining file.
Bug fixLucy (LuciadLightspeed)
TLcyAIXMAddOn: workspaces containing AIXM models are now correctly decoded.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: undoing the removal of layers, layer lists and combination thereof now works as
expected.
Bug fixLucy (LuciadLightspeed)
An ArrayIndexOutOfBoundsException was sporadically thrown when DAFIF or VPF data was opened
using File|Open or using drag and drop.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: fixed problem with the status support during the calculation of the minimum or
maximum elevation along a polyline and inside a shape.
Bug fixLuciadLightspeed
Constructing a TLcdShapeList with the default constructor no longer results in a
NullPointerException when
requesting
the shape count.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModelList now takes into account that a function may return false for an
object in a sub
model when
calling applyOnInteracts2DBounds. The function will no longer be applied to subsequent models.
Bug fixLuciadLightspeed
TLcdGXYLayerList now takes into account that a function may return false for an object in a sub
gxy layer when
calling
applyOnInteract. The function will no longer be applied to subsequent sub gxy layers.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: using removeAllLayers on an ILcdGXYView could cause a warning message:
"subLayerCountChanged: Layer count not equal ..."
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: The print area is now calculated using world bounds instead of view bounds.
Rounding
errors could occur, when using the view bounds or AWT bounds. These errors could cause the print
area
to paint more pages than wanted.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: Modifying a copy of a georeference in the 'choose model reference'
dialog
does not change the settings of the original reference anymore.
Bug fixLucy (LuciadLightspeed)
LucyEndUserGuide: the documentation now explains the different units used in the 'choose model
reference' dialog.
Bug fixLucy (LuciadLightspeed)
LucyEndUserGuide: the documentation now explains the different hypsometric raster types.
Bug fixLucy (LuciadLightspeed)
Exception handling of "File | Save as Image" menu items was improved: a dialog is now always
popped up if saving failed.
Bug fixLucy (LuciadLightspeed)
TLcyToolBar: removing items from an already visible TLcyToolBar now correctly repaints the
toolbar.
Bug fixLuciadLightspeed
TLcdRasterPainter and TLcdMultilevelRasterPainter now always paint rasters with
the correct transformation if the model reference or the world reference are
grid references that are rotated.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: Minimum elevation values could not be marked when the find extreme button was
pressed
twice.
Bug fixLuciadLightspeed
TLcdGeoRefUtil now better checks for the length of the strings to parse.
Bug fixLuciadLightspeed
TLcdVVJPanel used to throw a NullPointerException if it was used in combination with certain
look-and-feels
(for example Synth).
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: fixed problem in the decoding process that in some cases caused a CPU usage of
100% for a indefinite time, when decoding was finished.
Bug fixOGC Server
The class com.luciad.wms.server.viewencoder.TLcdGXYViewPNGEncoder, which is used by the WMS to encode images to PNG,
did not work under JRE 1.6.0 when the native codecLib ImageIO plugin was active.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now handles Grid Description
Sections with the PV/PL field set to 0 (instead of the more correct value
255).
Bug fixAviation Standards
The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath used TLcdXYPoint objects instead of TLcdLonLatPoint objects
to represent the discretized points of an airspace. This caused problems with airspaces that crossed the 180th meridian,
more specifically in bounds calculations, model2world and world2view transformations; the coordinates of the discretized
points were still correct.
Bug fixAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMILSHandler did not correctly set a descriptor for the collocated
DME objects in the ILS model descriptor. This DME descriptor is now properly set while decoding, and can be retrieved
through TLcdAIXMILSModelDescriptor.getDMEDescriptor().
Bug fixDefense Symbology
The classes TLcdEditableAPP6AObject and TLcdEditableMS2525bObject now use TLcdLonLatPoint objects to represent the
individual points of
the APP-6A or MIL-STD2525b symbols, and TLcdLonLatBounds to represent the bounds of a symbol. In the past,
TLcdXYPoint and TLcdXYBounds were
used, which sometimes caused inaccuracies in the bounds calculations.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder is now correctly re-initialized
when decoding more than one model.
Bug fixRadar Connectors
Updated sample: now properly handles license errors.
Upgrade considerationLuciadLightspeed
The class com.luciad.wms.client.model.ALcdWMSProxy has been extended with a clone() method. By default, it returns a
shallow
clone of the source object. Implementations of ALcdWMSProxy are recommended to provide a proper implementation. For
example,
if an implementation is defined that acts as a wrapper around another ALcdWMSProxy object, the wrapper class should
provide
a clone() implementation that clones the internal ALcdWMSProxy delegate object.
7.0
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn, TLcyMS2525bAddOn: the icon repository that is used by APP-6A and MIL-STD 2525b
has been completely
redesigned, resulting in a major quality improvement.
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn, TLcyMS2525bAddOn: image caching is now applied to icons, which multiplies
icon painting performance up to a factor 4.
ImprovementLuciadLightspeed
The EPSG resources are updated to EPSG database v6.12. To make use of this change update the jar
lcd_epsg_resources.jar in your classpath.
ImprovementLuciadLightspeed
ALcdGXYPen now has support for ILcdIcon when drawing hot points. When the hot point icon is set,
the values of
hot
point color, shape, and size are disregarded.
ImprovementLuciadLightspeed
TLcdWFSProxyModelFactory now allows creating proxy models for WFS output
formats other than GML. To support other formats, an interface
ILcdWFSModelDecoder was introduced, and TLcdWFSProxyModelFactory has a new
createProxyModel() method which takes the name of an output format and a
corresponding ILcdWFSModelDecoder as arguments. More details can be found in
the reference documentation.
ImprovementLuciadLightspeed
The predefined TLcdAltitudeUnit constants METRE_AMSL, KM_AMSL and FEET_AMSL
have been deprecated. They have been reintroduced as METRE, KM and FEET, i.e.
without the "AMSL" (Above Mean Sea Level) suffix. This better reflects the
actual purpose of TLcdAltitudeUnit, which is to reflect the unit of measure of
an altitude without implying any particular altitude reference.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: it is now possible to select modelreferences from a list of EPSG codes.
ImprovementLuciadLightspeed
The samples have been restyled to demonstrate LuciadMaps functionalities in a nicer, more
coherent, way.
ImprovementLuciadLightspeed
A new XML class, TLcdXMLDocumentReader, was added to the API, to be able to embed a set of
LuciadMap XML readers in an existing SAX handler.
ImprovementLuciadLightspeed
TLcdGenericGeodeticDatumFactory now also saves and loads the name of the ellipsoid of the
geodetic datum.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddon: changes were made to allow a custom print area user interface: disable the
'Define Print Area' menu
item and programmatically provide the area using the property TLcyPrintAddOn.PRINT_AREA_SUFFIX.
ImprovementLuciadLightspeed
TLcdWCSProxyModelFactory now offers the possibility to create a proxy model for
coverages obtained in formats other than GeoTIFF. This is done by providing the
factory with an ILcdWCSCoverageDecoder, a new interface which is used to
process the results obtained from a WCS. Please refer to the reference
documentation for details.
ImprovementLuciadLightspeed
The methods get/setMouseDraggedSensitivity(int) moved from TLcdGXYSelectController up in the
class hierarchy to
TLcdGXYDragRectangleController. This offers consistent behavior for TLcdGXYSelectController,
TLcdGXYSelectController2 and TLcdGXYZoomController.
ImprovementLuciadLightspeed
TLcdOpenAction now lowers the priority of the thread loading the data when the data is loaded in
a separate
thread.
ImprovementLucy (LuciadLightspeed)
The layer properties dialogs now show an intuitive user interface to select which features
should be used to construct the label content.
ImprovementLucy (LuciadLightspeed)
The layer properties dialogs now show the source name of the layer.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: the 2D and 3D icons of the vehicles have been enhanced.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: the vehicle can now also be a submarine.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: different models are now modeled differently. For instance a car now has a
smaller turn radius than a ship, and helicopters tilt forward as they accelerate.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the "Create text"-action in the toolbar has been updated with full support
for multiline text.
As this makes the "Create multiline text"-action redundant for the most part, it is not present
anymore by default.
Through the configuration file 'redlining_addon.cfg', this action can be added again if
necessary. Therefore
the property 'TLcyRedliningAddOn.multilineTextActiveSettable.toolBar.insert' must be set to
'true'.
ImprovementLuciadLightspeed
com.luciad.view.map.multilevelgrid is a new package to support multilevel grids. A multilevel
grid is a grid
that
has multiple levels of subdivisions. The classes are:
- ILcdMultilevelGrid: models the grid,
- TLcdMultilevelGridLayer: an ILcdGXYLayer capable of rendering a multilevel grid on an
ILcdGXYView,
- ILcdMultilevelGridCoordinate: models an object that covers an element of the grid at
any of the
levels
of the grid,
- TLcdMultilevelGridUtil: a utility class to convert locations expressed in the
reference on which
the
grid is based to and from multilevel grid coordinates,
- ALcdMultilevelGridCoordinateFormat: parses and formats multilevel grid coordinates,
- TLcdMultilevelGridCoordinateModel: takes into account the structure of a multilevel
grid to contain
multilevel grid coordinates.
Two samples demonstrate how this grid can be used to model and display a CGRS and a GARS grid.
ImprovementLuciadLightspeed
LuciadMap now supports editable labels that can be freely placed. To this end several
interfaces were extended.
These changes mostly affect the com.luciad.view.gxy and com.luciad.view.gxy.controller
package. Following interfaces have been extended:
In addition, there are new select and edit controllers that can select and manipulate
these editable labels: com.luciad.view.gxy.TLcdGXYSelectController2 and
com.luciad.view.gxy.TLcdGXYEditController2. The old select and edit controllers were not
modified to work with these editable labels.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: from now on it is possible to add point, polyline and polygon SHP files to the 3D
view.
ImprovementLucy (LuciadLightspeed)
TLcyHypsometryAddon: new functionality is added to compute the ridges and/or valleys of a
terrain.
ImprovementLucy (LuciadLightspeed)
TLcyLookAndFeelAddOn: now prefers system look and feel (over Alloy) if Java 1.6 is available (or
even
Java 1.5 on Windows). Please refer to "resources/lucy/lookandfeel/lookandfeel_addon.cfg" for
details.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The tabs below the 3D view now disappear if there would otherwise only be one tab.
ImprovementLucy (LuciadLightspeed)
Several changes were made to the look & feel of Lucy:
- Titled borders were replaced with a JLabel followed by a JSeparator, in order to
reduce visual clutter
- The status bar was reworked, and now contains all information such as Luciad logo,
memory usage, time label etc. As before, all these items can be disabled in
resources/lucy/lucy.cfg
- The hot point changed from a gray square to a bright square with a dark border:
resources/images/hotpoint.gif
- Whenever the user is supposed to click on the map, a crosshair cursor is used.
- The crosshair cursor changed to resources/images/CrosshairCursor.gif
- The same snap icon is now always used: resources/images/snapicon.gif
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: a configuration property is added to allow storing of redlining data inside
the
workspace file, instead of storing it as seperate files. This property is
'redlining.saveDataInWorkspace'
in 'resources/lucy/redlining/redlining_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
TLcyAsterixDecoderAddOn: the labels of the ASTERIX tracks can be edited with the edit
controller.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddon: the labels of the redlining points can be edited with the edit controller.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: the labels of points of the SHP and MIF format can be edited with the
edit controller.
ImprovementLuciadLightspeed
TLcdConcurrentBuffer is a new implementation of ILcdBuffer that is suitable
for concurrent access from multiple threads. It should be used instead of
TLcdBuffer in all multi-threaded applications. This is typically done by
plugging an instance of TLcdConcurrentBuffer into
TLcdSharedBuffer.setBufferInstance or directly into the raster model decoders
that require a buffer.
ImprovementLuciadLightspeed
The implementations of ILcdRaster and ILcdTile have been improved for
concurrent access from multiple threads. Their levels of thread-safety are
documented in the API documentation.
ImprovementLuciadLightspeed
The implementations of ILcdShape have been improved for concurrent access from
multiple threads. Their levels of thread-safety are documented in the API
documentation.
ImprovementLuciadLightspeed
The class com.luciad.wms.client.model.ALcdWMSNamedLayer has been extended with support for the elements
MetadataURL, DataURL and FeatureListURL. Analogously, the class com.luciad.wms.client.model.ALcdWMSNamedLayerStyle
has been extended with support for the elements LegendURL, StyleSheetURL and StyleURL. To model these elements,
the class TLcdOGCWMSURL has been introduced.
ImprovementLuciadLightspeed
Support has been added to handle multi-dimensional data in the WMS server,
as defined by Annex C of the OpenGIS OGC 06-042 Web Map Server Implementation Specification.
To retrieve dimension information for a layer, the class com.luciad.wms.client.model.ALcdWMSNamedLayer
has been extended with two new methods, getDimension(int) and getDimensionCount(). The dimension
information itself is modeled as follows:
- ALcdOGCWMSDimension: represents a dimension definition.
- TLcdOGCWMSDimensionExtent: represents a set of values or intervals for a dimension.
To include one or more dimensional parameters in a request, TLcdOGCWMSDimensionWrapper objects must be registered
on the active ALcdWMSProxy. A TLcdOGCWMSDimensionWrapper holds a reference to a dimension definition (modeled by
ALcdOGCWMSDimension)
and the value(s)/interval(s) to be used (modeled by TLcdOGCWMSDimensionExtent). To configure dimensions on a
ALcdWMSProxy, the
following methods have been introduced:
- addDimension(ALcdOGCWMSDimension)
- getDimensionCount()
- getDimension(int)
- removeDimension(int)
- clearDimensions()
ImprovementLucy (LuciadLightspeed)
The S-57 format support now provides an S-57 object customizer, showing more detailed
object information.
ImprovementLucy (LuciadLightspeed)
TLcyWCSClientAddOn,TLcyWFSClientAddOn,TLcyWMSClientAddOn: these addons now have workspace
support.
This means WxS client data that was loaded when the workspace was saved will be restored when
the
workspace is opened.
ImprovementLuciadLightspeed
TLcdXYText and TLcdGXYTextPainter now support multi-line text (i.e., text
strings with embedded newline characters).
ImprovementLuciadLightspeed
TLcdWKTReferenceParser returns TLcdUTMGrid instances for lines that contain the words 'utm
zone'.
ImprovementLuciadLightspeed
TLcdGeodeticReference now has methods to set and retrieve the name as a textual representation
of the reference.
ImprovementLucy (LuciadLightspeed)
TLcyPrintContext: the new method invalidate() allows users to invalidate the state of the
object. It
can for example be used to refresh the print preview.
ImprovementLuciadLightspeed
The raster model decoders now provide support for input stream factories.
ImprovementLuciadLightspeed
TLcdEPSGReferenceParser now has support for more EPSG codes. It now supports:
- references based on a geodetic datum with a meridian shift,
- geodetic references of which the name is unknown but for which the transformation
parameters to WGS84 are known,
- geodetic references for which the names was not recognized, but one of the aliases
for the name is.
The complete list of supported coordinate references is available from the API documentation of
the
TLcdEPSGReferenceParser class. To take advantage of this enhancement the lcd_epsg_resources.jar
of this release
should
be put in the classpath.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: you can now use the space bar to toggle the visibility of the layers selected in
the layer control.
ImprovementLucy (LuciadLightspeed)
Most layer properties dialogs now show the source name of the model.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: you can now use the space bar to toggle the visibility of the items selected in
the table.
ImprovementLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: the layer properties dialog now allows to define the label content
(e.g., which features) in a more intuitive way.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: the layer properties dialog now allows to define the label content
(e.g., which features) in a more intuitive way.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the delete action in the popup menu of the map is now disabled when no removable
objects are selected.
ImprovementLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: all menu items now add the area of interest layer if it was
removed.
ImprovementLuciadLightspeed
The class com.luciad.wms.client.model.ALcdOGCWMSCapabilities has been extended with three new methods
to retrieve extra information about the capabilities of an SLD-enabled Web Map Service:
- getDescribeLayerURL(): returns the URL prefix that must be used for DescribeLayer requests.
- getGetLegendGraphicURL(): returns the URL prefix that must be used for GetLegendGraphic requests.
- getSupportedLegendGraphicFormatCount(): returns the number of supported legend graphic formats by a Web
Map Service.
- getSupportedLegendGraphicFormat(int): returns the supported legend graphic format at a given index.
Note that there are no methods to retrieve the supported formats for the DescribeLayer request, because the SLD
specification
defines the MIME type application/vnd.ogc.wms_xml as the only available response format for WMS 1.1.1 - 1.3.0.
ImprovementLucy (LuciadLightspeed)
All controllers in Lucy can now be used to pan with the middle mouse button.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn: the print area is now correctly drawn on a rotated GXYView.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn: the visibility of print area is improved. A small border is draw around the
print area,
the hidden areas and the page edges to make it more visible on darker backgrounds.
ImprovementLucy (LuciadLightspeed)
TLcyMain: there is no longer a difference between the two modes 'SINGLE_MAP_TABBED_PANE_MODE'
and
'TABBED_PANE_MODE' specified in 'resources/lucy/lucy.cfg'. 'TABBED_PANE_MODE' is the new
default,
'SINGLE_MAP_TABBED_PANE_MODE' is no longer mentioned in the config file, but can still be
specified.
ImprovementLucy (LuciadLightspeed)
TLcyToolBar now automatically chooses its height based on its contents. Button sizes are
calculated
from the icon size. If desired, the button size can still be set using the method
'setButtonSize'.
E.g.: toolbar.setButtonSize( new Dimension( 23, 23 ) ).
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: the default distance unit changed to 'Kilometer', so that all default
units
are metrical. This change can be reverted by modifying the value of the property
'TLcyMapEditUnitAddOn.default_distance_unit' of 'resources/lucy/map/map_units.cfg' to
'NauticalMile'.
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now provides support for input stream factories.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now provides support for input stream factories.
ImprovementAdvanced Raster Connectors
TLcdSwissDHMMatrixModelDecoder now provides support for input stream
factories.
ImprovementGraph and Routing Engine
The order of point, line, area and complex feature records is preserved now, when converting
a GDF file to a multi-leveled GDF file.
ImprovementOGC Server
LuciadMap WFS now properly supports the WFS 1.1.0 capabilities format.
ImprovementOGC Server
Support has been added to handle multi-dimensional data in the WMS server,
as defined by Annex C of the OpenGIS OGC 06-042 Web Map Server Implementation Specification.
To define a dimension for a layer, the classes ALcdWMSDimension, TLcdWMSDimension and TLcdWMSDimensionExtent
have been introduced. ALcdWMSDimension and TLcdWMSDimension represent a dimensional parameter, while
TLcdWMSDimensionExtent is used to model the available values for a dimension. The classes ALcdWMSLayer
and TLcdWMSLayer have been extended with methods to configure these elements.
For convenience, the sample XML configuration format to configure the capabilities of a server has been
extended with support for dimensions. The decoders for this format,
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, both recognize the XML element 'Dimension' and its
contents.
The source name property of a layer (see getSourceName() in ALcdWMSLayer), is too limited to be used for a layer
with one
or more dimensions, since the corresponding data source depends not only on the layer name but also on the
dimensional
parameters supplied by the client. To be able to map an ALcdWMSLayer with one or more dimensional parameters on a
data source,
the abstract class ALcdMultiDimensionalModelProvider has been introduced. Users must implement this class and
register
it by overriding the method createModelProvider(ILcdModelDecoderFactory[]) in ALcdOGCWMSCommandDispatcherFactory, to
support multi-dimensional layers.
ImprovementOGC Server
The domain model for the WMS capabilities has been extended to include support for the elements MetadataURL,
DataURL and FeatureListURL that can be defined for a layer, and for the elements LegendURL, StylesheetURL and
StyleURL that
can be defined for a layer style. To model these elements, a new class TLcdWMSURL has been introduced.
The classes ALcdWMSLayer, TLcdWMSLayer, ALcdWMSLayerStyle and TLcdWMSLayerStyle have been extended with
methods to configure these elements. For consistency, the already supported element AuthorityURL for a layer
can now also be modeled using TLcdWMSURL in ALcdWMSLayer and TLcdWMSLayer.
ImprovementOGC Server
A new interface ILcdWMSOnlineResourceResolver has been introduced, which is used to dynamically resolve the paths to
online resources.
A default implementation is registered by default, but custom implementations can be used by overriding the method
createWMSOnlineResourceResolver(ServletConfig) in ALcdOGCWMSCommandDispatcherFactory.
ImprovementOGC Server
Two new methods have added to ALcdWMSLayer, which make it possible to retrieve the parent layer:
- setParentWMSLayer(ALcdWMSLayer): a protected method that can be called to register the parent layer.
The default implementation TLcdWMSLayer automatically invokes this method on the child layer when
addChildWMSLayer(ALcdWMSLayer) or removeChildWMSLayer(ALcdWMSLayer) is called.
- getParentWMSLayer(): a public method, allowing to retrieve the currently registered parent layer.
This functionality is particularly useful to retrieve the layer styles registered on parent layers, because the WMS
specification
defines that a layer inherits the styles of its parent.
ImprovementOGC Server
Support has been added for two new requests: GetLegendGraphic and DescribeLayer. The GetLegendGraphic request
provides a general mechanism
for acquiring legend symbols. The DescribeLayer request allows a client to obtain feature/coverage-type information
for a named layer, which
can be used to construct user-defined styles. Both requests are defined by the OpenGIS OGC 02-070 Styled Layer
Descriptor Implementation Specification,
and are considered optional for an SLD-enabled WMS.
To provide support for these requests in a WMS implementation, the factory methods
createWMSGetLegendGraphicEncoders(ServletConfig)
and createWMSDescribeLayerEncoders(ServletConfig) in ALcdOGCSLDWMSCommandDispatcherFactory must be implemented.
These methods should return respectively one or more ILcdWMSGetLegendGraphicRequestEncoder and
ILcdWMSDescribeLayerRequestEncoder
objects, which are responsible for sending a response to the client. Next, the available legend graphic and describe
layer formats must be
listed in the ALcdWMSCapabilities object created by the ILcdWMSCapabilitiesDecoder in
ALcdOGCSLDWMSCommandDispatcherFactory.
Because the OpenGIS OGC 02-070 Styled Layer Descriptor Implementation Specification defines a default XML format for
DescribeLayer responses,
an implementation of ILcdWMSGetLegendGraphicRequestEncoder, ALcdWMSDescribeLayerRequestEncoder, is also available.
This abstract class implements the methods defined in ILcdWMSGetLegendGraphicRequestEncoder, and adds some extra
abstract methods that
are needed to construct a correct DescribeLayer response. Encoders that want to use the default XML format should
extend from this abstract class.
ImprovementReal-time Engine
A new decluttering algorithm was added, specially designed to label moving tracks.
The labels move in a continuous fashion, and sudden jumps are avoided.
Check out TLcdContinuousDeclutteringLabelPainter or the samples for more information.
ImprovementTerrain Analysis Engine
A new hypsometric value provider (TLcdHypsometricCrease) is added which computes the ridges and/or valleys of a terrain.
ImprovementAviation Standards
The DAFIF decoders no longer discard objects with an unsupported or unknown
geodetic datum if the record also contains a WGS84-based lon/lat coordinate
pair.
ImprovementAviation Standards
ALcdDAFIFDecoder has been extended with two methods, setInputStreamFactory(ILcdInputStreamFactory) and getInputStreamFactory(),
which allow users to set a custom ILcdInputStreamFactory. An ILcdInputStreamFactory is used to create InputStream objects
for
source files. By default, TLcdInputStreamFactory is used.
ImprovementAviation Standards
TLcdARINCDecoder has been extended with two methods, setInputStreamFactory(ILcdInputStreamFactory) and getInputStreamFactory(),
which allows users to set a custom ILcdInputStreamFactory. An ILcdInputStreamFactory is used to create InputStream objects
for
source files. By default, TLcdInputStreamFactory is used.
ImprovementDefense Standards
TLcdNITFModelDecoder now provides support for input stream factories.
ImprovementDefense Symbology
The 'Air Corridor' symbol in MIL-STD 2525b (G*G*ALC---****X, 2.X.2.2.2.1) didn't have any labels. In accordance with
the MIL-STD 2525b Change 1 2004 specification,
it will now use the 'Unique Designation' modifier (ILcdMS2525bCoded.sUniqueDesignation,
ILcdAPP6ACoded.sUniqueDesignation) to draw two labels, one above the axis
and one below the axis of the symbol. By using the separator character ':' in the modifier
ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation,
one can create these two labels: the text before ':' will be used above the axis, the other part of the text will be
used below the axis of the symbol.
Furthermore, the rendering quality of the labels of this symbol and related symbols in the group Aviation Lines
(MIL-STD 2525b: 2.X.2.2.2, APP-6A: 2.X.2.1.2.2) has been improved.
ImprovementDefense Symbology
The movement direction arrow of MIL-STD 2525b and APP-6A icon symbols (ILcdMS2525bCoded.sMovementDirection,
ILcdAPP6ACoded.sMovementDirection)
was not taken into account in the bounds calculation performed by the painter.
ImprovementDefense Symbology
The echelon restrictions in the MIL-STD 2525b and APP-6A customizer for Special Operations Forces (SOF) units
(1.X.6) have been
diminished. All echelons except for echelons of the type 'INSTALLATION' are now applicable.
ImprovementDefense Symbology
It is now possible in APP-6A and MIL-STD 2525b to render a limited set of arrows with more than two points:
- Axis of Advance for Feint (APP-6A: 2.X.2.1.3.2, MIL-STD 2525b: 2.X.2.3.2)
- Friendly Aviation (APP-6A: 2.X.2.1.5.2.1.1, MIL-STD 2525b: 2.X.2.5.2.1.1)
- Friendly Airborne (APP-6A: 2.X.2.1.5.2.1.2, MIL-STD 2525b: 2.X.2.5.2.1.2)
- Friendly Attack Helicopter (APP-6A: 2.X.2.1.5.2.1.3, MIL-STD 2525b: 2.X.2.5.2.1.3)
- Friendly Ground Axis of Supporting Attack (APP-6A: 2.X.2.1.5.2.1.4, MIL-STD 2525b: 2.X.2.5.2.1.4.2)
- Friendly Ground Axis of Main Attack (APP-6A: 2.X.2.1.5.2.1.5, MIL-STD 2525b: 2.X.2.5.2.1.4.1)
- Friendly Ground Axis On Order (APP-6A: 2.X.2.1.5.2.1.6)
- Enemy Confirmed (APP-6A: 2.X.2.1.5.2.1.7)
When more than two points are used, the arrow is smoothly rendered through the specified points. The amount of
smoothness
can be controlled through the methods setCornerSmoothness(double), getCornerSmoothness() in ILcdAPP6AStyle and
ILcdMS2525bStyle.
In the past, special functionality was introduced to allow aviation-related arrows in APP-6A (situated in
2.X.2.1.5.2.1)
and MIL-STD 2525b (situated in 2.X.2.5.2.1) to be painted curved. As these arrows were still limited to have only
two points
at that time, an arrow curvedness property was introduced (setArrowCurvedness(double) and getArrowCurvedness() in
ILcdAPP6AStyle
and ILcdMS2525bStyle) to control whether the arrow must be painted straight or curved. This functionality is still
working,
and does not conflict with the possibility to add more than two points. When more than two points are used, the
arrow curvedness
property is not taken into account. Instead, the arrow is smoothly rendered through the specified points by using a
corner
smoothness property, as described above.
ImprovementDefense Symbology
The icon repository that is used by APP-6A and MIL-STD 2525b has been completely redesigned, resulting in a major
quality improvement. Especially on small scales, the new icons provide a lot more detail.
ImprovementDefense Symbology
The rendering of the dashed line of framed icons with Anticipated/Planned status in MIL-STD 2525b and APP-6A has
been improved.
ImprovementDefense Symbology
The outlined versions of Spacetrack, Airtrack and Subsurface icons in MIL-STD 2525b and
APP-6A were not rendered entirely correct, due to a redundant line that was present at the
bottom (Spacetrack/Airtrack) or at the top (Subsurface) of the icon.
ImprovementDefense Symbology
The APP-6A and MIL-STD 2525b samples have each been extended with a new class, respectively
APP6AImageObjectIconProvider and
MS2525bImageObjectIconProvider, which allow to apply image-caching on the icon symbols.
This can greatly enhance the performance when a lot of symbols must be drawn.
ImprovementMaritime Standards
The canDecodeSource() method of the S-57 and S-63 decoders now returns a more precise
result;
the S57 decoder will no longer return true for S-63 files and vice versa.
ImprovementMaritime Standards
The ECDIS domain objects now properly implement the equals() and hashcode() methods.
ImprovementMaritime Standards
The basic ECDIS sample now includes extra functionality for displaying additional
information
about the attributes of S-57 objects. The sample contains some extra resource bundles,
providing
english names for objects, attributes and attribute values.
ImprovementMaritime Standards
The S-57 domain objects now implement ILcdFeatured. The following classes were adapted:
- TLcdS57Point, TLcdS57Line and TLcdS57Area now implement ILcdFeatured
- TLcdS57Identifier and TLcdS57EditableIdentifier now implement ILcdFeatured as
well.
- All S-57 model descriptors (TLcdS57ModelDescriptor,
TLcdS57CatalogueModelDescriptor,
TLcdS57LevelModelDescriptor) now implement the ILcdFeaturedDescriptorProvider
interface,
being able now to return an ILcdFeaturedDescriptor for each S-57 object in the
model.
ImprovementMaritime Standards
The S-57 package now provides extra information about object and attribute classes.
TLcdS57AttributeClassDescriptor (and derivatives) and TLcdS57ObjectClassDescriptor can be
used
to retrieve the class code, acronym, type and other meta information, as defined in the S-57
specification. The following other classes were changed:
- New iplementations of ILcdS57AttributeClassMap and ILcdS57ObjectClassMap are
made
available in the API, offering extra methods for retrieving attribute and object
class
descriptors.
- A TLcdS57AttributeClassMap needs to be set on the TLcdS57ObjectClassMapDecoder
now,
for linking attribute descriptors to object descriptors.
- TLcdS57Attribute, TLcdS57Identifier and TLcdS57EditableIdentifier now provide
extra
methods for retrieving attribute and object class descriptors
- A TLcdS57ObjectClassMap and TLcdS57AttributeClassMap need to be set on the
TLcdS57(Catalogue)ModelDecoder now, to provide all available S-57 object and
attribute class
definitions to the model decoder.
ImprovementRadar Connectors
Updated sample : trajectory layers now use a TLcdGeodeticPen and simulated tracks are interpolated doing true
geodesic interpolation, all to avoid problems at the edges of the map.
ImprovementRadar Connectors
Updated sample : world data is now loaded at startup.
Bug fixLuciadLightspeed
ALcd3DEditableShape.move3D now moves the shape in the correct direction.
Bug fixLuciadLightspeed
EPSG codes 27391 through 27398 are now supported.
Bug fixLuciadLightspeed
The layer and view label painters now paint all the labels of a multilabelpainter, when
selected, instead of only the first one.
Bug fixLuciadLightspeed
TLcdJPLEllipsoidFactory did not return the correct aliases for some ellipsoids.
Bug fixLuciadLightspeed
The method invalidateRegion in the ILcdGXYView implementations now correctly take into account
the clip.
Bug fixLuciadLightspeed
The georeferencing of the GeoTIFF sample file bluemarble.tif has been
corrected (its width and height erroneously spanned the Earth twice).
Please make sure you update to the corrected version, as the old version
may no longer be displayed as expected.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelEncoder now avoids an encoding problem when working in the
turkish locale.
Bug fixLuciadLightspeed
The class com.luciad.metadata.iso19115.spatial.TLcdISO19115SpatialRepresentationTypeCode is no
longer declared
as final,
making it possible to define extensions to represent custom spatial representation types.
Bug fixLuciadLightspeed
EPSG code 4270, based on the Nahrwan 1967 geodetic datum is now supported.
Bug fixLuciadLightspeed
EPSG code 2961 is now supported.
Bug fixLuciadLightspeed
EPSG model references with a geodetic datum with a prime meridian different from Greenwhich are
now supported.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddon: the print component was not drawn correctly when the view was rotated.
Bug fixLuciadLightspeed
TLcdGridReference has a new property name to identify the reference using a textual
representation.
Bug fixLuciadLightspeed
The equals method in TLcdGeodeticDatum now always checks whether the 8 parameters are exactly
equal.
Previously name equality sufficed to return true.
Bug fixGraph and Routing Engine
A bug in TLcdGDFModelEncoder, causing models to be encoded wrong on systems
having other default file encoding than ISO-8859-1, is fixed.
Bug fixOGC Server
An issue has been solved in the view management performed by com.luciad.wms.server.TLcdOGCWMSCommandDispatcher,
which potentially could lead to a deadlock when handling GetMap/GetFeatureInfo requests, especially on high-loaded
servers.
When established, some incoming requests would never be handled, and ultimately, the server would stop responding
to GetMap/GetFeatureInfo requests.
Bug fixAviation Standards
ILcdDAFIFParachuteJumpAreaFeature contains a new altitude reference feature,
which allows applications to distinguish Above Ground Level (AGL) altitudes
from Above Mean Sea Level (AMSL) ones. Also, the decoder no longer sets the
altitude unit to null if the altitude reference is AGL.
Bug fixDefense Symbology
The 'Air Corridor' symbol in APP-6A (G*C*MALC--*****, 2.X.2.1.2.2.1) was not available in the past, because the
APP-6A specification
did not define a preview/example graphic. The symbol is now added, based on the preview/example graphic in the
MIL-STD 2525b Change 1 2004 specification.
Bug fixMaritime Standards
TLcdS52Symbol now implements the ILcdIcon interface correctly; the values returned by
getIconWidth() and getIconHeight() now correspond with what is drawn by the paintIcon()
method.
Upgrade considerationLuciadLightspeed
Where possible, the cloneAs...() methods in the classes contained in the packages
com.luciad.shape.shape2D and
com.luciad.shape.shape3D now rely
on the clone() method. This will only influence code that (erroneously) assumes a specific type
for the returned
object,
for example, it assumes that TLcdLonLatHeightBounds.cloneAs2DEditableBounds() returns a TLcdLonLatBounds
object.
The following methods have been updated:
- TLcdLonLatBounds.cloneAs2DEditableBounds()
- TLcdLonLatFloatBounds.cloneAs2DEditableBounds()
- TLcdXYBounds.cloneAs2DEditableBounds()
- TLcdXYFloatBounds..cloneAs2DEditableBounds()
- TLcdLonLatPoint.cloneAs2DEditablePoint()
- TLcdLonLatFloatPoint.cloneAs2DEditablePoint()
- TLcdLonLatZonalPoint.cloneAs2DEditablePoint()
- TLcdXYPoint.cloneAs2DEditablePoint()
- TLcdXYFloatPoint.cloneAs2DEditablePoint()
- TLcdLonLatHeightBounds.cloneAs2DEditableBounds()
- TLcdLonLatHeightBounds.cloneAs3DEditableBounds()
- TLcdXYZBounds.cloneAs2DEditableBounds()
- TLcdXYZBounds.cloneAs3DEditableBounds()
- TLcdXYZFloatBounds.cloneAs2DEditableBounds()
- TLcdXYZFloatBounds.cloneAs3DEditableBounds()
- TLcdLonLatHeightPoint.cloneAs2DEditablePoint()
- TLcdLonLatHeightPoint.cloneAs3DEditablePoint()
- TLcdXYZPoint.cloneAs2DEditablePoint()
- TLcdXYZPoint.cloneAs3DEditablePoint()
- TLcdXYZFloatPoint.cloneAs2DEditablePoint()
- TLcdXYZFloatPoint.cloneAs3DEditablePoint()
Upgrade considerationLuciadLightspeed
The constructors of TLcdXMLSchema, TLcdXMLSchemaElement, TLcdXMLSchemaType and
TLcdXMLSchemaAttribute have changed slightly; all schema elements, types and attributes
now keep a reference to their schema, while the schema itself keeps a reference to its
schema provider.
Upgrade considerationLuciadLightspeed
ALcdPoint no longer extends ALcdBounds, instead it extends ALcdShape and implements the
interface ILcdBounds.
This will
only influence code that relies explicitly on ALcdBounds. As ALcdBounds does not expose any
methods besides
methods
defined by ILcdBounds, the ALcdBounds occurrences can be replaced by ILcdBounds.
Upgrade considerationLuciadLightspeed
Some TLcdXMLName constants in the TLcdXMLSchemaConstants class which were accidentally
made public, are removed from the API again.
Upgrade considerationLuciadLightspeed
TLcdAdvancedMapRulerController: the methods get/setGXYEditController and get/setGXYNewController
now accept an argument of type ILcdGXYController instead of TLcdGXYEditController and
TLcdGXYNewController respectively. This allows to use TLcdGXYEditController2 in combination with
the ruler, and in general allows for greater flexibility.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMain: 'resources/lucy/lucy.cfg' now contains some extra properties to configure the splash
screen:
disable the splash screen, change the background color, font, font color, and location of the
initializing text.
The text is now drawn on top of the splash image itself (instead of in a bar below the image),
allowing
for nicer integration with the image. The initializing text now has three dots at the end. The
descriptive
names of the addons (in addons.xml) were made more uniform.
Upgrade considerationLuciadLightspeed
TLcdGXYLayer now implements ILcdGXYEditableLabelsLayer as well as ILcdGXYLayer. If you used
to delegate to a TLcdGXYLayer instance in your own implementation of ILcdGXYLayer, you
need to delegate the extra methods defined in ILcdGXYEditableLabelsLayer as well if you
want to enable the editable labels functionality.
Upgrade considerationLuciadLightspeed
As stated in the enhancements section, LuciadMap now supports freely placeable labels.
In order for your projects to take full advantage of this feature, several guidelines must be
followed.
All classes that use any of the methods in ILcdGXYLabelPainter should be made aware that
these label painters could also implement ILcdGXYLabelPainter2. If these label painters
also implement ILcdGXYLabelPainter2, the Object and the TLcdLabelLocation must be set
instead of the Object and the location index.
All classes that paint labels should inform the ALcdLabelLocations which labels have been
painted. For instance implementations of ILcdGXYLayer, ILcdGXYLayerLabelPainter and
ILcdGXYViewLabelPainter paint labels, and as such have to inform these ALcdLabelLocations.
Please refer to the reference documentation of ILcdGXYEditableLabelsLayer,
ILcdGXYLabelPainter2
and ALcdLabelLocations for more detailed information.
If these guidelines are not followed, your application will behave as if there are no editable
labels.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: Using TLcdGXYEditController (extends from TLcdGXYSelectController)
was replaced by using (an obfuscated extension of) the new
TLcdGXYEditController2 (extends from TLcdGXYSelectController2). This might cause
existing instanceof tests (e.g. instanceof TLcdGXYSelectController) to yield false
where they used to return true. These tests should be replaced with instanceof
TLcdGXYSelectController2 or TLcdGXYEditController2.
There is a configuration option available (TLcyMapAddOn.useEditController2) in
the map_addon.cfg configuration file to revert to the old behaviour if this is
necessary.
As a result, it is now possible to use alt-click to deselect an object (enhancement #3614).
Upgrade considerationLuciadLightspeed
The implementations of ILcdModel have been improved for concurrent access from
multiple threads. Their levels of thread-safety are documented in the API
documentation. Notably, TLcd2DBoundsIndexedModel now allows concurrent read-only
access. The method applyOnInteracts2D is no longer explicitly synchronized,
allowing multiple threads to access the model concurrently. This change may be
incompatible if any code explicitly or implicitly relies on this
synchronization. If so, one can set system properties that are defined in the
API documentation to revert to the old behavior. Concurrent read-write access
is still only possible with external synchronization. Please consult the
developer guide for more details.
Upgrade considerationLuciadLightspeed
The implementations of ILcdShape - except for all *Float* classes - in com.luciad.shape,
com.luciad.shape.shape2D and com.luciad.shape.shape3D have received consistent implementations
of the methods clone, equals, hashCode, and toString.
Notably, the method clone now always delegates to the method
super.clone, which ensures that a class of the proper type is created, even
for extensions. The behavior of clone is kept as much the same as before as possible,
especially regarding the choice between a deep clone and shallow clone. The javadoc
of the clone method in the updated ILcdShape implementations can be consulted for
the exact clone behavior.
The methods equals and hashCode now always compare the classes and
the properties of the shapes (like coordinates, radius, height, etc).
As with any class that implements equals and hashcode based on object properties,
the implications may catch unsuspecting developers by surprise.
A common example is a point that is put in a hash table. If its coordinates are
changed after it has been put in the hash table, its identity and, more specifically,
its hash code changes. It then becomes impossible to retrieve the point based on its
hash code. This usually leads to NullPointerExceptions, as null is returned instead of the
object.
Another example is points only being equal if their classes are equal. A final example is the
confusion caused by extensions of the basic shape implementations that do not
properly override the identity methods. Overriding implementations should
always delegate to their super versions, adding any necessary code for
additional properties. The new implementations in LuciadMap may be
incompatible with existing code if the code explicitly or implicitly relies
on the previous imperfect implementations.
Upgrade considerationLucy (LuciadLightspeed)
The ILcyApplicationPane interface has been expanded to allow for icons in the title bars in
application panes. To this end following methods were added to the interface:
void addPropertyChangeListener(PropertyChangeListener aPropertyChangeListener);
void removePropertyChangeListener(PropertyChangeListener aPropertyChangeListener);
void putValue(String aKey, Object aValue);
Object getValue(String aKey);
Add the following code to your implementations of ILcyApplicationPane to support the
get/putValue methods:
private final Map fPropertiesMap = new HashMap();
public Object getValue( String aKey ) {
return fPropertiesMap.get( aKey );
}
public void putValue( String aKey, Object aValue ) {
Object old = fPropertiesMap.get( aKey );
fPropertiesMap.put( aKey, aValue );
firePropertyChange( aKey, old, aValue );
}
If your implementation of ILcyApplicationPane does not extend a class that provides support
for the add/removePropertyChangeListeners, add the following code to you implementations:
private final PropertyChangeSupport fPropertyChangeSupport = new PropertyChangeSupport( this
);
public void addPropertyChangeListener(PropertyChangeListener aPropertyChangeListener){
fPropertyChangeSupport.addPropertyChangeListener(aPropertyChangeListener);
}
public void removePropertyChangeListener(PropertyChangeListener aPropertyChangeListener){
fPropertyChangeSupport.removePropertyChangeListener(aPropertyChangeListener);
}
protected void firePropertyChange(String aPropertyName, Object aOldValue, Object aNewValue){
fPropertyChangeSupport.firePropertyChange(aPropertyName, aOldValue, aNewValue);
}
Lastly, the existing properties of the application panes (ie., appTitle, appEnabled, appSize,
appVisible, disposable and resizable) are now defined to be bound properties. This means that
when these properties change, a PropertyChangeEvent should be thrown. For example:
public void setAppTitle( String aAppTitle ){
String old = getAppTitle();
//set the app title, eg.
this.fAppTitle = aAppTitle;
firePropertyChange( "appTitle", old, aAppTitle );
}
Upgrade considerationLucy (LuciadLightspeed)
The TLcyXMLAddOnLoader has been adjusted so that the class names specified in the addons.xml
file may also extend from ALcyAddOn instead of implementing ILcyAddOnDecoder. As such it is no
longer guaranteed that the classes specified in the addons.xml file implement ILcyAddOnDecoder.
The following code demonstrates how you could adapt to this change.
ALcyAddOn add_on = null;
Class clazz = Class.forName( specified_class_name );
if ( ILcyAddOnDecoder.class.isAssignableFrom( clazz ) ) {
add_on = ( ( ILcyAddOnDecoder ) clazz.newInstance() ).decodeAddOn( configFileName );
}
else if ( ALcyAddOn.class.isAssignableFrom( clazz ) ) {
add_on = ( ALcyAddOn ) clazz.newInstance();
}
As a result, it is no longer best practice to extend ALcyDefaultAddOn, but to extend
ALcyAddOn directly.
Upgrade considerationOGC Server
ILcdWFSFeatureType has been extended to contain a list of TLcdWFSMetadataURLs.
This list was previously only included in TLcdWFSFeatureType, but is now
included in the interface as well and must therefore be added to all
implementations. The metadata URLs are not mandatory, however, so
implementations of the new methods may be empty if they are not needed.
Upgrade considerationOGC Server
The interfaces ILcdRemoteOWSModelDecoder and ILcdRemoteOWSModelProvider have been updated to
enable implementations to return an ILcdModel array instead of a single ILcdModel:
- ILcdRemoteOWSModelDecoder.decode(): the return type is now ILcdModel[] instead of ILcdModel
- ILcdRemoteOWSModelProvider.getModel(): the return type is now ILcdModel[] instead of ILcdModel
This is done to support Styled Layer Descriptors that combine multiple coverages (WCS) or feature types (WFS) into
one user-defined layer. Implementations can decode each coverage or feature type into a single ILcdModel.
This is especially needed when these coverages or feature types use different model references, since an ILcdModel
can only have one model reference.
The abstract class ALcdSLDWMSGXYLayerFactory has been adapted accordingly: the signature of the method
- abstract public ILcdGXYLayer createGXYLayer( ILcdModel, TLcdSLDUserLayer, TLcdSLDFeatureTypeStyle[] );
has changed into
- abstract public ILcdGXYLayer[] createGXYLayer( ILcdModel[], TLcdSLDUserLayer, TLcdSLDFeatureTypeStyle[]
);
to allow implementations to create an ILcdGXYLayer for each decoded ILcdModel that is part of a user-defined layer.
Upgrade considerationOGC Server
The interface ILcdWMSHttpServletRequestFileNameResolver has been removed, due to its limited practical relevance.
The two implementations TLcdWMSServiceExceptionDTDDefaultFileNameResolver and
TLcdWMSCapabilitiesDTDDefaultFileNameResolver
have been removed accordingly.
Four methods in TLcdOGCWMSCommandDispatcher that were used to set or retrieve an instance of
ILcdWMSHttpServletRequestFileNameResolver
to resolve the WMS 1.1.1 Capabilities DTD or Service Exception DTD have been removed also:
- ILcdWMSHttpServletRequestFileNameResolver getWMSCapabilitiesDTDFileNameResolver()
- setWMSCapabilitiesDTDFileNameResolver(ILcdWMSHttpServletRequestFileNameResolver)
- ILcdWMSHttpServletRequestFileNameResolver getWMSExceptionDTDFileNameResolver()
- setWMSExceptionDTDFileNameResolver(ILcdWMSHttpServletRequestFileNameResolver)
Upgrade considerationOGC Server
A new class com.luciad.wms.server.TLcdWMSRequestContext has been introduced that holds
information about a current request. A number of interfaces in the package
com.luciad.wms.server have been adapted to include this class as a parameter in its methods:
- ILcdRemoteOWSModelDecoder.canDecode(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
- ILcdRemoteOWSModelDecoder.decode(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
- ILcdRemoteOWSModelDecoderFactory.createModelDecoder(): replaced HttpServletRequest parameter with
TLcdWMSRequestContext parameter
- ILcdRemoteOWSModelProvider.getModel(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
Existing implementations just need to update the signature of these methods and can choose whether
to use the additional parameter.
Because the information in TLcdWMSRequestContext can also be useful when encoding GetFeatureInfo responses,
a new interface ILcdWMSGetFeatureInfoRequestEncoder has been introduced. This interface is similar to
the existing ILcdWMSFeatureInfoRequestEncoder, except for the extra TLcdWMSRequestContext parameter that is added to
the encode() method.
Accordingly, a factory method createWMSGetFeatureInfoEncoders(ServletConfig) in ALcdOGCWMSCommandDispatcherFactory
and
a method addWMSGetFeatureInfoEncoder(ILcdWMSGetFeatureInfoRequestEncoder) in TLcdOGCWMSCommandDispatcher have been
added.
The existing interface ILcdWMSFeatureInfoRequestEncoder and associated methods are still fully functional.
Note that registered ILcdWMSGetFeatureInfoRequestEncoder objects have precedence above registered
ILcdWMSFeatureInfoRequestEncoder objects,
when they have the same content type.
Upgrade considerationAviation Standards
The class com.luciad.ais.view.gxy.TLcdGXYProcedureTrajectoryLegLabelPainter and the identical
sample class
samples.ais.view.gxy.TLcdGXYProcedureTrajectoryLegLabelPainter do now implement
ILcdGXYMultilabelPainter, since
they paint a label at each leg of a procedure. These changes may be incompatible if any code
explicitly
invokes the labelBoundsSFCT() or paintLabel() method: the current implementation requires to set
the label index
and sublabel index before invoking these methods.
Upgrade considerationAviation Standards
The implementations of ILcdShape in com.luciad.ais.shape.** and com.luciad.ais.model.** have received consistent
implementations of the methods clone, equals and hashCode. Notably,
the method clone now always delegates to the method super.clone, which ensures
that a class of the proper type is created, even for extensions. The methods
equals and hashCode always compare the classes and the properties of the
shapes, like coordinates, height, etc. Note that this may still yield
surprising results if extensions don't properly override these implementations,
which was already the case in previous versions. These changes may be
incompatible if any code explicitly or implicitly relies on previously missing
or imperfect implementations.
Upgrade considerationMaritime Standards
The return types of TLcdS57ObjectClassMapDecoder.decodeS57ObjectClassMap() and
TLcdS57AttributeClassMapDecoder.decodeS57AttributeClassMap() have been refined to return a
more
specific implementation of ILcdS57ObjectClassMap and ILcdS57AttributeClassMap. Extensions of
these classes that have overridden these methods might cause a compilation error; they
should
refine their return type as well to adhere to the contract of the ancestor class again.
Upgrade considerationMaritime Standards
The S-57 model descriptors (TLcdS57ModelDescriptor, TLcdS57CatalogueModelDescriptor,
TLcdS57LevelModelDescriptor) no longer implemented by these model descriptors.
6.2
6.2.21
ImprovementLucy (LuciadLightspeed)
When zoomed out a lot, fitting on a layer of DAFIF objects was sometimes inaccurate.
ImprovementS-63
S-63 models now have a TLcdS63ModelDescriptor instead of a TLcdS57ModelDescriptor.
The former extends the latter, to keep the API backwards compatible.
Bug fixLucy (LuciadLightspeed)
Lucy no longer freezes when a large number of VPF layers is enabled and the map is updated.
Bug fixLucy (LuciadLightspeed)
TLcyAIXMAddOn: Saving a workspace file in a parent path or the same path as an AIXM data
file now does restore the AIXM data.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: If saving the map as an image (File|Save As Image|Map) throws an exception,
it is now handled more gracefully instead of showing an internal error dialog.
Bug fixLucy (LuciadLightspeed)
TLcyAIXMAddOn: loading a saved workspace in which an AIXM Update file was decoded sometimes lead
to a NullPointerException.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: Scale display in projection editor now shows up to 10 fraction digits.
Bug fixOGC Server
The encoding of a service exception report to an image instead of to the predefined XML format
could possibly lead to a NullPointerException.
Bug fixAviation Standards
The runway painter com.luciad.ais.symbology.icao.TLcdICAORunwayPainter now returns a valid ILcdGXYPainter for each ILcdRunway,
regardless of its geometry. In the past, null was returned for runways with less than two points, which could lead to a NullPointerException.
Note that the ILcdGXYPainter that is now returned for ILcdRunway objects with less than two points does not paint the runway,
as this
cannot be done according to the ICAO specification.
6.2.19
ImprovementLuciadLightspeed
TLcdTABRasterModelDecoder now has a property maximumResidualTiePointError
to control when to reject rasters of which the tie points do not precisely define
an affine transformation (throwing an IOException instead).
ImprovementAdvanced Raster Connectors
TLcdDIMAPModelDecoder now has properties minimumTiePointCount and
maximumResidualTiePointError to control when to reject rasters whose tie
points do not precisely define an affine transformation (throwing an
IOException instead).
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder now has a property maximumResidualTiePointError
to control when to reject rasters whose tie points do not precisely define
an affine transformation (throwing an IOException instead).
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now has a property maximumResidualTiePointError
to control when to reject rasters whose tie points do not precisely define
an affine transformation (throwing an IOException instead).
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder, TLcdTABRasterModelDecoder, and TLcdTFWModelDecoder now
handle rasters that are rotated in a geodetic coordinate system.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder now properly handles image tie point coordinates
expressed as floating point numbers in METADATA.DIM.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder now supports rasters that are rotated in a geodetic
coordinate system.
Bug fixDefense Symbology
The 'Own track' symbol in MIL-STD 2525b and APP-6A (S*S*O-----*****, 1.X.4.4) was not present anymore
in the icon repository and has been readded.
6.2.18
Bug fixDefense Standards
GRT tables with an empty projection code field (which is the case for geodetic references)
are supported now.
6.2.17
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: the table is now sorted according to internationalized rules instead of on the
Unicode code of the strings.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: fixed problem with the intervisibility action and lazy loaded models.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: it is now possible to selectively disable the actions in the layer control of a
map. To do this, overwrite the TLcyMapLayerControlFactory#createEnabledFilter to return the
appropriate ILcdFilter.
ImprovementLucy (LuciadLightspeed)
Look and Feel enhancement for color styled components.
ImprovementOGC Server
TLcdWFSFeatureType has been extended to contain a list of TLcdWFSMetadataURLs.
If present, these URLs are added to the feature type list in the capabilities
document of the WFS.
ImprovementTerrain Analysis Engine
TLcdTerrainProfileController: adding getter and setter to adjust the default TLcdGXYViewBasedTerrainElevationProvider.
Bug fixLuciadLightspeed
GML2 documents now always contain a gml:boundedBy element, even if the original ILcdModel was
not ILcdBounded - as is required by the GML2 schema.
Bug fixLuciadLightspeed
TLcdMIFModelReferenceParser now supports the french NTF geodetic datum with
prime meridian through Paris (number 107), and custom geodetic datums with
prime meridians different from 0.
Bug fixLucy (LuciadLightspeed)
Fixing memory leak when loading new workspaces.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: resolved a NullPointerException when the dmed shadow format property
was disabled.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: the header of the table now no longer disappears in look and feels other than
Alloy.
Bug fixLucy (LuciadLightspeed)
TLcyDataRepositoryAddOn: used to have protected methods that could not be used because
they referred obfuscated classes. These methods were removed from the API.
Bug fixLucy (LuciadLightspeed)
When the method java.text.Format.parseObject( String, ParsePosition ) of the formats returned
by ILcyLucyEnv.getDefaultAzimuthFormat() and ILcyLucyEnv.getDefaultLonLatPointFormat() was used,
and the input was invalid, null was returned (as documented), but the parse position could
be modified, which the documentation states it should not do. This is now fixed.
Bug fixLucy (LuciadLightspeed)
Workspaces containing VPF data in a subdirectory of the workspace's directory are now
decoded correctly.
Bug fixLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: reading a workspace containing asterix data used to produce a warning
message.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: resolved a NullPointerException when the parent frame of a mapcomponent is null.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: the intervisibility lines between PIM track icons are now repainted when the icons
are changed.
Bug fixOGC Server
The robustness of the WMS has been improved when the encoding of a GetMap or GetFeatureInfo result fails.
In such cases, a proper service exception report will be created and sent to the client.
Bug fixTerrain Analysis Engine
The TLcdDensityBasedRasterElevationProvider will always use the best density raster to retrieve the elevation values.
Also when this raster contains invalid data.
Bug fixDefense Standards
The FACC attribute list of a VPF feature now only contains FACC attributes (other low-level
feature
attributes used by VPF, like tile id and primitive id, are excluded from the list now).
6.2.16
Bug fixLuciadLightspeed
A bug in the GML2 schema generation, resulting in the FeatureCollection element and type
missing in the schema, has been fixed.
6.2.15
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn, TLcyModelReferenceAddOn: help ID's are now registered for the 'new layer'
and 'choose model
reference' dialogs.
ImprovementLuciadLightspeed
It is now possible to insert a TLcdSLDRule at a given index in a TLcdSLDFeatureTypeStyle, and to
insert a
TLcdSLDSymbolizer at a given index in a TLcdSLDRule. This avoids tedious removing and re-adding
of rules
or symbolizers.
ImprovementLuciadLightspeed
iButton USB support has been extended to Mac OS X. The iButton is now supported on the following
platforms:
- serial adapter: Windows XP/NT/2000, Linux, Solaris
- USB adapter: Windows XP/2000, Linux, Mac OS X
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: 3D terrain layers created by the terrain wizard are now of type
TLcyG4JTerrainLayer. This class allows direct access to the
TLcdGLTerrainPainter and TLcdGLTerrainPaintable objects used by the layer, thus
simplifying access to the terrain via the 3D addon API.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the toolbar and its menus now reflect the active options of the selected
items.
ImprovementInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now supports the DWG R2004 format.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: fixed a NullPointerException when activating the redlining addon when the
Windows LaF was active.
Bug fixLuciadLightspeed
TLcdSLDFill and TLcdSLDStroke now allow to unset a CSSparameter by passing null as the value of
a parameter.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: The line width button on the redlining toolbar used to throw a
NullPointerException
in Java 1.4.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder now supports encoding Float features.
Bug fixLuciadLightspeed
TLcdFeatureIndexedAnd2DBoundsIndexedModel no longer throws a null pointer exception when
checking whether an
object
may be removed from the model.
Bug fixLucy (LuciadLightspeed)
The toolbar now behaves properly when removing actions and active settables from it.
Bug fixLuciadLightspeed
TLcdAdvancedMapRulerController: the feature count (ILcdFeatured.getFeatureCount()) of the
polyline given
to the painter (as explained in the documentation of createGXYLabelPainter()) incorrectly
returned 2,
instead of 3.
Bug fixLuciadLightspeed
TLcdCADRGModelDecoder is now more robust in making the distinction between
A.TOC files and frame files.
Bug fixLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: used to depend on AIS specialized package.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: when adding data to the 3D view using the "Add/remove 3D layers"
dialog and then choosing the "selected objects" or "objects visible in the gxy
view" options, the 3D view now updates properly if objects are edited in the 2D
view.
Bug fixLucy (LuciadLightspeed)
TLcyGRIBDecoderAddOn: the detection of known GRIB parameter indicators has
been refined. Parameters from unknown parameter tables are now always
treated as unknown, and visualized with a default color model.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Only a single option is now shown as active for the line size, style, arrow
and point icon.
Bug fixLuciadLightspeed
TLcdSWAction now takes into account that a null icon may be set.
Bug fixLuciadLightspeed
TLcdUTMMgrsUtil now takes into account that strings passed to parse may be too short.
Bug fixLucy (LuciadLightspeed)
Previous file name is now properly cleared from all file choosers.
Bug fixLucy (LuciadLightspeed)
When zoomed out a lot, fitting on a layer of PIM tracks, APP6A, MS2525b, or max elevation
objects
used to be inaccurate.
Bug fixLucy (LuciadLightspeed)
Under rare circumstances it was possible to get a NullPointerException during workspace
decoding, due to a race condition. This has been fixed.
Bug fixLuciadLightspeed
ALcdGXYPen.isViewLineTouched now correctly takes into account the sensitivity
parameter and the hot point size when performing its check.
Bug fixLuciadLightspeed
The TLcdGXYMagnifierController view now updates itself when the scale factor or scale
accelerator was changed.
Bug fixLuciadLightspeed
TLcdCADRGModelDecoder now sets the correct type on decoded tiles when
expandColorMap is true.
Bug fixLuciadLightspeed
TLcdGXYViewJPanelLightWeight now correctly initializes its background color to the color defined
by the look and feel.
Bug fixDefense Standards
TLcdNITFModelDecoder now makes color 255 of decoded grayscale JPEG images
transparent, consistently with uncompressed grayscale images, in order to
avoid a black border when they are painted with warping.
Bug fixDefense Standards
TLcdNITFModelDecoder now correctly decodes coordinates specified in the
'D' format.
Bug fixInfrastructure Standards
com.luciad.format.dwg.gxy.TLcdDWGGXYLineStyle now properly sets and scales
line widths.
6.2.14
ImprovementLuciadLightspeed
Performance of the XSD schema generation in the GML3 encoder has been improved: for models
having
an ILcdFeaturedDescriptor, the schema will be generated directly using the featured descriptor;
for models having an ILcdFeaturedDescriptorProvider, the encoder will still need to iterate
over all elements to retrieve all possible ILcdFeaturedDescriptor objects.
ImprovementLuciadLightspeed
Geometric properties are now all encoded by the GML3 encoder as gml:geometryProperty elements;
no distinction is made anymore between point, line and polygon geometries.
ImprovementLuciadLightspeed
The GML3 encoder now supports all commonly used Java basic data types (support for short,
BigInteger, BigDecimal and some SQL-specific types, used by JDBC, was added).
ImprovementLuciadLightspeed
The GML decoder and encoder now support and use GML 3.1.1.
ImprovementLuciadLightspeed
TLcdLonLatGridPainter now has properties to specify the offsets of the
labels from the edge of the view and from the grid lines.
ImprovementLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: improved performance when replaying a huge number of ASTERIX tracks.
Bug fixLucy (LuciadLightspeed)
Resolved a NullPointerException in the TLcyMapComponent(ILcdGXYView) constructor.
Bug fixLuciadLightspeed
ILcdFeatured objects which do not implement the ILcdShape interface are now properly encoded
by the GML3 encoder (these elements were ignored before).
Bug fixDefense Standards
Features having a 1:N feature-primitive relationship are now decoded correctly (feature
attributes
were missing before). Decoded VPF models contain an ILcdFeatured+ILcdShape object for each of
the primitives, defining a feature.
Upgrade considerationLuciadLightspeed
Protected methods of the GML element name providers are now made public, to be able to access
them from other places.
6.2.13
ImprovementOGC Server
When using an SLD-enabled WMS (1.1.1 or 1.3.0), the capabilities that are sent to the client now mention the version
number of the supported
SLD specification in LuciadMap, which is 1.0. This information is added to the contents of the element
'UserDefinedSymbolization'.
Displaying this information in the capabilities is optional according to the WMS 1.1.1 specification.
ImprovementRadar Connectors
Improved performance of updateObjectsForTime method of sample TrackSimulationModel.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the setElevationProviderFactory() method no longer throws an
exception if called while the 3D addon is deactivated.
6.2.12
ImprovementLuciadLightspeed
TLcdRenderedImageTile now has a dispose method that disposes of the wrapped
RenderedImage and SeekableInputStream. This can be useful for releasing
locks on files that are to be moved or deleted, especially on the Windows
platform.
ImprovementLuciadLightspeed
Support has been added for the layer attribute 'opaque'. This is a property defined by the WMS specification that
allows
to indicate that a layer represents an area-filling coverage. To retrieve this property for a layer, the method
isOpaque() has been added to ALcdWMSNamedLayer. Note that the WMS specification defines that this property is
inherited
from the parent layer if it is not explicitly defined: this relationship is automatically applied by the decoder.
ImprovementOGC Server
Support has been added for the layer attribute 'opaque'. This is a property defined by the WMS specification that
allows
to indicate that a layer represents an area-filling coverage. The following changes have been made to support this
property:
- ALcdWMSLayer has been extended with a method isOpaque() and TLcdWMSLayer has been extended with a method
setOpaque(Boolean).
The configured value is automatically taken into account while sending the capabilities to the client (see
below).
- The WMS server configuration decoders, com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, both recognize the XML attribute 'opaque="true|false"'
for the
XML element 'Layer'.
Bug fixAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler now omits all airspaces that don't have a geometry
from the resulting model. In the past, only association-based airspaces without a geometry were omitted. An error message
specifying these omitted airspaces can be retrieved through the method getErrorMessage() in TLcdAIXMModelDecoder,
after the decoding process.
6.2.11
ImprovementLuciadLightspeed
TLcdSystemPropertiesUtil now has methods to detect Java versions 5 and 6.
ImprovementLuciadLightspeed
The WMS Client layer factory, TLcdWMSProxyGXYLayerFactory, now uses the model descriptor's display name
as default layer label, instead of 'WebMapServer'. The model descriptor's display name corresponds to the
the title of the service described in the capabilities of a server.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now handles multi-lines.
ImprovementInfrastructure Standards
com.luciad.format.dgn.ILcdDGNModelDecoder now provides methods to select
levels to be decoded, based on their names.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the methods of the ILcyG4JElevationProviderFactory are no longer obfuscated.
6.2.09
ImprovementLuciadLightspeed
TLcdGML3ModelEncoder now supports the encoding of java.sql.TimeStamp features.
ImprovementLuciadLightspeed
TLcdGXYSelectController has a new property removeSelectedInAlternateMode which enables a more
consistent
behaviour for
the ILcdGXYSelectControllerMode.ALTERNATE mode. If set to true, objects selected again in a
rectangle will be
removed from the selection. This mimics the behaviour of selection in popular file browsers. The
default value
is false for backwards compatibility reasons.
Bug fixLuciadLightspeed
When a property change listener removed itself as a listener from TLcdGXYViewJPanel the next
property change
listener
is no longer skipped.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModel now returns the correct value when it is interrupted
by the applied function returning false.
Bug fixLuciadLightspeed
TLcdCGMModelDecoder has been made more robust when handling unknown element
classes.
Bug fixDefense Symbology
A number of painting calculations regarding tactical symbols in MIL-STD 2525b and APP-6A have been improved, because
of a possible
occurrence of a division by zero generating an ArithmeticException.
Bug fixS-63
The S-63 hardware id is now included in the LuciadMap license file, and can no longer be set
separately
via the API (the method TLcdS63ModelDecoder.setHardwareID() has been removed from the API).
6.2.08
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: fixed a NullPointerException that occurred when a feature class represented an
interface.
6.2.07
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: the user can now choose to use an active settable to control a map
overview instead of an action.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecder now has a setting to expand the color maps of decoded
GeoTIFFs. Expanding color maps should avoid any problems with colored
borders around warped rasters, at the cost of some performance.
ImprovementDefense Standards
TLcdNITFModelDecoder now decodes the optional Tagged Record Extension BLOCKA,
which contains the image corner locations at a higher precision than the one
in the standard NITF header.
ImprovementDefense Standards
TLcdNITFModelDecoder can attach approximate orthographic grid references to
aerial pictures and satellite imagery that are stored with a simple geodetic
reference. The maximum residual error for the corner points can be specified.
Bug fixLuciadLightspeed
A bug, causing a NullPointException to be thrown when a model with null bounds is encoded using
the TLcdGML2ModelEncoder or TLcdGML3ModelEncoder, was fixed.
Bug fixLuciadLightspeed
TLcdGXYViewFitAction sometimes fitted to an infinite scale, for example, when trying to fit to a layer
containing only
data in
the southern hemisphere, while the views reference is a Polar Stereographic of the northern
hemisphere.
Bug fixLuciadLightspeed
TLcdGXYViewFitAction now externalizes handling exceptions when fitting to a layer failed by
allowing to setting
an
ILcdExceptionHandler.
Bug fixLuciadLightspeed
The boundaries of the Oblique Mercator projection are now closer to the projections poles.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the feature customizer used when creating layers now properly handles
PropertyChangeListeners
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: layers with grid references can now be displayed in the 3D view.
Bug fixDefense Standards
The getFeatureAttributeDescription() getFeatureAttributeClass() methods of TLcdVPFFeatureClass
now return correct values (the returned values used to be off-by-one).
Bug fixDefense Standards
TLcdNITFModelDecoder now correctly decodes tiles that are larger than their
images.
6.2.06
Bug fixLuciadLightspeed
TLcdInputStreamFactory now automatically decompresses URL streams if their
content encoding indicates compression.
Bug fixOGC Server
The WFS now properly sets the content type (mime type) of its responses.
6.2.05
ImprovementLuciadLightspeed
TLcdGML3ModelEncoder now supports the encoding of java.sql.date features.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: numbers are now formatted according to the locale.
Upgrade considerationLuciadLightspeed
All element readers and adapters of GML3 are now instantiated using reflection. Special care
should
be taken when shrinking code using an obfuscation/shrinking tool, like ProGuard for example: constructors
of
these classes should not be removed during the shrinking. See the luciadmap.pro sample file,
provided with LuciadMap, for an example of a ProGuard configuration file.
6.2.04
ImprovementLuciadLightspeed
The WMS Client does now support different compression encodings: gzip, x-gzip, zip, x-zip, compress, x-compress and
deflate.
As before, HTTP request properties can be set through the method setRequestProperty(String, String) in
TLcdOGCWMSProxyModelDecoder.
ImprovementAviation Standards
A new method setDefaultGeodeticDatum(ILcdGeodeticDatum) has been introduced in all ILcdARINCHandler implementations,
to make it possible to set a default datum. This datum is used for records which do not explicitly mention a geodetic datum.
By default, WGS 84 is set.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: the names of the references are again internationalized.
Bug fixLuciadLightspeed
TLcdGXYArcPainter now has an extra property CreationOrientation which defines how an arc will be
created,
clockwise
or counter clockwise. For the sake of uniformity the TLcdGXYArcBandPainter now has the same
property,
deprecating
the property counterClockwise of that painter.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn and TLcyOBJDecoderAddOn: The 3D icon provider can now find the textures for
OBJ
files specified relative to the classpath.
Bug fixLuciadLightspeed
TLcdContourFinder now correctly returns all contours, for mountains and for
holes. Note that the contours may still need to be sorted if they are to be
painted in the right order.
Bug fixLuciadLightspeed
The com.luciad.format.shp package no longer keeps a static reference to the
ILcdInputStreamFactory
that was set to the TLcdSHPModelDecoder, solving possible memory leaks.
Bug fixLuciadLightspeed
TLcdContourFinder now checks for invalid matrices i.e. matrices with less than one row or less
than one column.
Bug fixLucy (LuciadLightspeed)
The addons file now describes that the PIM track addon addon needs the realtime package.
Bug fixLucy (LuciadLightspeed)
TLcyMain: Starting Lucy in Java 1.3 caused the layer control and map overview tabs to be empty.
Their content only appeared after those panels were dragged to a new location. This problem has
been resolved.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: the escape key now always works to exit the fullscreen mode.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: grid coordinates are now formatted as X, Y iso Y, X.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: the columns are now sorted corresponding to their type. For instance, numbers are
now sorted by their numerical value instead of their textual representation.
Bug fixLucy (LuciadLightspeed)
TLcyGRIBDecoderAddOn: the visibility of all layers is now stored in and read from the workspace.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the terrain wizard will no longer appear when opening a workspace.
Bug fixLucy (LuciadLightspeed)
TLcyARINCAddOn and TLcyS57DecoderAddOn: the visibility of the layers is now restored from the
workspace.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder now recognizes the NODATA special value for defining
transparent pixels.
Bug fixAdvanced Raster Connectors
TLcdDIMAPModelDecoder now recognizes the ULXMAP/ULYMAP/XDIM/YDIM tags and
FRAME_* tags, in addition to the TIE_POINT_* tags, for positioning decoded
rasters.
Bug fixTerrain Analysis Engine
TLcdProfileViewJPanel: the visibility lines are only calculated if a mark point has been set. The mark point can be
set by left clicking the profile view.
Bug fixTerrain Analysis Engine
TLcdProfileViewJPanel: the profile is cleared when the TLcdTerrainProfileController recieves a mouse click.
Bug fixAviation Standards
TLcdDAFIFRefuelingTrackDecoder incorrectly interpreted UHF frequencies as being
expressed in Hertz, where they should have been MegaHertz. The values of the
PRIMARY_UHF_FREQUENCY_UNIT and BACKUP_UHF_FREQUENCY_UNIT fields defined by
ILcdDAFIFRefuelingTrackFeature are now set to TLcdFrequencyUnit.MHZ_UNIT
instead of TLcdFrequencyUnit.HZ_UNIT.
Bug fixAviation Standards
A memory leak has been fixed in the DAFIF independent decoders:
- TLcdDAFIFIndependentAerodromeNavaidDecoder
- TLcdDAFIFIndependentATSRouteDecoder
- TLcdDAFIFIndependentHelipadDecoder
- TLcdDAFIFIndependentHoldingDecoder
- TLcdDAFIFIndependentILSDecoder
- TLcdDAFIFIndependentProcedureDecoder
- TLcdDAFIFIndependentRunwayDecoder
After decoding, these decoders still kept a reference to the external models needed while decoding
the domain objects.
Bug fixAviation Standards
A memory leak has been fixed in TLcdAIXMModelDecoder, which caused that all registered ILcdAIXMHandler
instances were still referenced after having invoked the method removeAllHandlersForTypeToBeDecoded().
Bug fixAviation Standards
The DAFIF ILS decoder TLcdDAFIFILSDecoder, which generates a model list with localizer, glide slope, marker and DME objects,
did not correctly parse the frequency feature: the implicit comma between the fourth and fifth character in the record value
was ignored, resulting in frequencies that were a factor 1000 larger than expected.
6.2.03
ImprovementLuciadLightspeed
TLcdTABRasterModelDecoder and TLcdTFWRasterModelDecoder now return more useful
display names in the model descriptors of decoded models.
ImprovementLuciadLightspeed
TLcdDTEDModelDecoder and related model decoders now return more useful display
names in the model descriptors of decoded models.
ImprovementLuciadLightspeed
TLcdLonLatGrid now checks the values set for deltaLat and deltaLon. If a negative value is
passed, an
IllegalArgumentException will be thrown.
ImprovementDefense Symbology
The icons for the following MIL-STD 2525b symbols were incorrect and have been fixed:
- Sensor Outpost / Listening Post (G*G*DPOS--****X, 2.X.2.4.1.2.4): the trapezium inside the triangle may
not be filled.
- Anti Armor Armored Tracked (S*G*UCAAAT*****, 1.X.3.1.1.3.7.1): the icon was not rendered when 'Friendly'
affiliation was chosen.
- Single Rocket Launcher (S*G*UCFRS-*****, 1.X.3.1.1.7.2.1): the icon has been updated to the latest
MIL-STD 2525b specification, version 2004.
- Multiple Rocket Launcher (S*G*UCFRM-*****, 1.X.3.1.1.7.2.2): the icon has been updated to the latest
MIL-STD 2525b specification, version 2004.
- Fire Support Station (G*F*PS----****X, 2.X.4.1.2): the example FSS label has been removed.
ImprovementDefense Symbology
The MIL-STD 2525b and APP-6A echelon symbols Towed Array Short and Towed Array Long were not rendered.
ImprovementDefense Symbology
The classes TLcdMS2525bGXYPainterProvider and TLcdAPP6AGXYPainterProvider has been extended with two new methods,
getIconProvider() and
setIconProvider(ILcdObjectIconProvider), that allow to set a custom icon provider implementation.
By default, TLcdMS2525bObjectIconProvider is used for MIL-STD 2525b and TLcdAPP6AObjectIconProvider for APP-6A.
Bug fixLuciadLightspeed
TLcdByteArrayTile and TLcdIntArrayTile now return the correct types and
pixel sizes.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the buttons on the redlining toolbar now get a help ID.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder now makes sure that the field names in the DBF file have a
maximum length of 10 characters (instead of 11), and that they only contain
letters and digits.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now also sets a valid display name on the model
descriptor if a GeoTIFF is decoded from a URL.
Bug fixLuciadLightspeed
TLcdGXYMagnifierController now closes the magnifying window created with a right mouse click
when deactivated.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now decodes the correct GRIB
bounds, without extending them by half a pixel in all directions. This would
cause problems for GRIB files that extend all the way to the north pole or
the south pole. For consistency, TLcdGRIBTileDecoder now discards the last
column and row of sample values, which are duplicated across tiles. The
sample value in the top left corner of each pixel is used as the pixel's
value.
Bug fixAviation Standards
The (optional) additional points between the low end and high end of runways were not correctly decoded by TLcdDAFIFRunwayDecoder.
6.2.02
ImprovementLuciadLightspeed
TLcdGeoTIFFModelEncoder is now more memory efficient when encoding rasters
containing a single large tile.
ImprovementLuciadLightspeed
Development licenses can now be used to test applications that are obfuscated
for deployment.
ImprovementGraph and Routing Engine
Edge directions of Navteq datasets are now decoded correctly (the encoding of edge
directions in Navteq data is not compliant with the GDF specification).
ImprovementDefense Symbology
All the tactical point symbols in MIL-STD 2525b and APP-6A now have four labels:
- Unique Designation (T): This label can be set through the modifiers ILcdMS2525bCoded.sUniqueDesignation
and ILcdAPP6ACoded.sUniqueDesignation
- Additional Information (H): This label can be set through the modifiers
ILcdMS2525bCoded.sAdditionalInformation and ILcdAPP6ACoded.sAdditionalInformation
- Date Time Group (W): This label can be set through the modifiers ILcdMS2525bCoded.sDateTimeGroup and
ILcdAPP6ACoded.sDateTimeGroup
- Effective Time (w): This label can be set through the modifiers ILcdMS2525bCoded.sEffectiveTime and
ILcdAPP6ACoded.sEffectiveTime
The tactical point symbols are the point symbols in the 2.X group, with a symbol code starting with 'G'.
As in the past, individual modifiers can be restrained from being displayed as a label by using the method
setLabelEnabled(String) in ILcdMS2525bStyle and ILcdAPP6AStyle.
A style can be associated with a symbol through ILcdMS2525bStyled and ILcdAPP6AStyled, or it can be set as a default
style on a (label) painter provider.
Bug fixLucy (LuciadLightspeed)
TLcyDataFormatManager.ALcyHandlerChooser is no longer obfuscated and therefore it is now
accessible
in the API.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Undoing the removal of layer lists now works as expected.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: "File | Save Layer Style" now also works if the source name of the model
descriptor
is a URI containing spaces.
Bug fixLuciadLightspeed
The projections TLcdStereographic, TLcdObliqueMercator and TLcdSwissObliqueMercator did not have
a correct
implementation of the clone method.
Bug fixLuciadLightspeed
TLcdRasterPainter and TLcdMultilevelRasterPainter now correctly implement the
clone method.
Bug fixLuciadLightspeed
TLcdSoft2DBoundsIndexedModel no longer throws a NullPointerException when
requesting its model descriptor or model reference, and the model cannot be
decoded.
Bug fixGraph and Routing Engine
The clustered partitioning algorithm has been improved, generating better partitionings (the algorithm
sometimes couldn't find any suitable partioning).
Performance of the algorithm has also been improved with a factor 3-4.
Bug fixDefense Symbology
The functionality to restrain a modifier from being displayed as a label in MIL-STD 2525b and APP-6A through
setLabelEnabled(String)/isLabelEnabled(String)
in ILcdMS2525bStyle/ILcdAPP6AStyle now works for all symbols. In the past, it was only used for framed icon symbols.
Bug fixMaritime Standards
Invisible objects are not selected anymore when using rectangle selection.
Bug fixMaritime Standards
A NullPointerException, occuring when the PaintOverscaleIndication flag was set to true and
both
PaintUnderscaleIndication and PaintChartScaleBoundaries were set to false, on a
TLcdGXYLevelLayerList, is fixed.
Upgrade considerationDefense Standards
Inner polygons (holes) in faces are now supported. The domain model objects representing
VPF areas now implement the ILcdComplexPolygon interface, instead of the ILcdPolygon interface.
6.2.01
ImprovementLuciadLightspeed
TLcdGXYEllipsePainter has two new properties: selectionMode and editingMode. These two
properties are rendering
modes
indicating how the ellipse should be rendered when it is selected and when it is being edited.
ImprovementLuciadLightspeed
GML3 model objects can now be cloned.
ImprovementRadar Connectors
toString() methods of TLcdASTERIXTrajectory and TLcdASTERIXTrack now return a human readable string.
Bug fixLucy (LuciadLightspeed)
Lucy no longer locks up when loading a workspace containing 3D in Solaris.
Bug fixLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: Lucy will no longer try to display ASTERIX files that contain only
unsupported ASTRERIX categories.
Bug fixLuciadLightspeed
TLcdUTMMgrsUtil now throws out of bounds exceptions when converting lon lat points to UTM
coordinates when the
point
is outside the valid area of the UTM projection.
Bug fixLucy (LuciadLightspeed)
TLcyJPEG2000DecoderAddOn: Added JPEG2000 default encoding settings in the
configuration file ( resources/lucy/decoders/jpeg2000decoderaddon.cfg ).
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: when creating a .ref file, the generated file sometimes did not match
the
information stated in the reference chooser.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: auto-fit and auto-center work again without auto-select being enabled.
Bug fixLucy (LuciadLightspeed)
TLcyJPEG2000DecoderAddOn: saving files as JPEG2000 now makes the progress bar provide feedback
to
the user.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: the vertical view is now cleared when the polyline it is showing is
removed
from the model, the layer is removed from the view or the view is closed.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: Loading a workspace with a 3D view exceptionally produced an incorrect 3D view:
icons and other textures were not loaded and colors were corrupt.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the customizer for pointlists will now insert new points at the right
locations
when the pointlist is contained in a model with a grid reference.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: "File | Save Layer Style" now also works if the source name of the model
descriptor
is a URI.
Bug fixLucy (LuciadLightspeed)
Zooming in/out on the map using the mouse scroll wheel could generate a NullPointerException in
very rare conditions.
6.2
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: in the edit menu, there is a point format submenu instead of lon lat
format.
This submenu offers the possibility to use UTM and Georef formats.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: support for configurable raster settings has been added. Please refer
to the
file default_decoders.cfg for more information.
ImprovementLuciadLightspeed
TLcdDTEDModelDecoder and related model decoders now accept DTED files
containing empty numerical fields, interpreting them as 0.
ImprovementLuciadLightspeed
TLcdBufferedTile now avoids repeatedly trying to load missing tiles.
ImprovementLuciadLightspeed
To allow better error handling when using the WMS Client API, three new classes have been added
that define specific error conditions:
- TLcdOGCWMSServiceException: represents an IOException that results from an OWS Service Exception Report
sent by the WMS server.
- TLcdOGCWMSHttpException: represents an IOException that results from an invalid HTTP response that was
received from a server.
- TLcdOGCWMSException: represents an IOException, different from an HTTP error or service exception report,
that occurred while connecting with a WMS server or while parsing the result.
These exceptions are thrown by the following methods:
- TLcdOGCWMSProxyModelDecoder.decode(String): uses the GetCapabilities request to retrieve the capabilities
of the server.
- ALcdWMSProxy.createImageInputStream(int, int, ILcdXYWorldReference, ILcdBounds, Color): uses the GetMap
request to retrieve a map.
ImprovementLuciadLightspeed
TLcdObliqueMercator now has an ellipsoidal implementation, according to the Hotine formulas.
ImprovementLuciadLightspeed
The GML element name providers now have a protected method that can be overridden to control the
way feature names are mapped on xml names. The default implementation now also performs a check
on duplicate names.
ImprovementLuciadLightspeed
The GML3 decoder, encoder, reader and apter providers now have methods to register
readers/adapters
for anonymous types.
ImprovementLuciadLightspeed
The XML encoder now removes control characters that are not allowed by the XML specification
from
all XML content that is encoded.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now supports GeoTIFF files containing signed shorts,
by default interpreting them as elevation values (isElevation of the
decoded model descriptor returns true).
ImprovementLuciadLightspeed
TLcdSLDSymbolizerPainterFactory now creates a raster painter provider which provides a raster
painter for
ILcdBounded objects. This allows applying an SLD raster symbolizer to ILcdBounded objects.
ImprovementLuciadLightspeed
TLcdGXYPanController, TLcdGXYZoomController and ALcdGXYNewControllerModel now implement
the ILcdUndoableSource interface; they already contained the methods of that interface.
ImprovementLuciadLightspeed
The new class TLcdISO19103Measure can be used to represent any measure: a distance measure,
a speed measure, ...
ImprovementLuciadLightspeed
TLcdInputStreamFactory now provides the possibility to specify request
properties when opening connections.
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: support for airport and heliport communication features has been added. The
communication features
can be viewed by selecting an airport or heliport and opening the map editor.
ImprovementLuciadLightspeed
The new classes TLcdByteArrayTile, TLcdIntArrayTile, and TLcdShortArrayTile
provide simple implementations of the ILcdTile interface.
ImprovementLuciadLightspeed
A new client API for OGC Web Coverage Services (WCS) has been introduced. More
information can be found in Wcs_client_DeveloperGuide.pdf and in the reference
documentation for the package com.luciad.ogc.wcs.client. An example program can
be found in samples.ogc.wcs.proxy.
ImprovementLuciadLightspeed
A new client API for OGC Web Feature Services (WFS) has been introduced. More
information can be found in Wfs_client_DeveloperGuide.pdf and in the reference
documentation for the package com.luciad.ogc.wfs.client. An example program can
be found in samples.ogc.wfs.proxy.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: the new method setElevationProviderFactory() and the new
interface ILcyG4JElevationProviderFactory allow users to override the
ILcdElevationProvider used by the 3D terrain wizard to retrieve terrain
elevations.
ImprovementLuciadLightspeed
TLcdRasterGXYLayerCodec and TLcdMultilevelRasterGXYLayerCodec: setting the correct color model
to the raster painter based on the contents of the style file (*.sty) now works more robust:
even if no existing color model is found on the painter or the model, the colors are restored.
ImprovementLuciadLightspeed
TLcdDMEDModelDecoder now avoids creating bounds that are larger than necessary,
for valid DMED files and for malformed DMED files alike.
ImprovementLuciadLightspeed
Performance of the TLcdGXYLayerList.getGXYPainter() and TLcdGXYLayerList.getGXYEditor() methods
has been
improved;
in case multiple sublayers return a valid painter/editor for a given object, all equal (i.e.,
equals() returns
true for all painters/editors), a significant performance improvement might be noticed for large
or lazy loaded
models.
Performance of the TLcdGXYLayerList.selectObject() method has also been improved; the method
will stop now as
soon
as the object to be selected has been found in one of the sublayers (it used to iterate over all
sublayers in
all
cases).
ImprovementLuciadLightspeed
Addition of the setSchemaLocationsMap method to the TLcdSLDFeatureTypeStyleEncoder10 class. This
method in fact
delegates to the underlying XML encoder. The schema locations will be declared in all XML
document encoded by
the encoder, in the xsi:schemaLocations="namespace schemaLocation ..." attribute of the root
element.
ImprovementLuciadLightspeed
A new method pair setPreserveMeasurement/isPreserveMeasurement was added to
TLcdAdvancedMapRulerController to either preserve the measurement between
successive calls to startInteraction and terminateInteraction, or to start from
scratch every time the controller is started.
ImprovementLucy (LuciadLightspeed)
TLcyWCSClientAddOn: this new addon allows users to connect to an OGC Web
Coverage Service (WCS) and obtain data from it.
ImprovementLucy (LuciadLightspeed)
TLcyWFSClientAddOn: this new addon allows users to connect to an OGC Web
Feature Service (WFS) and obtain data from it.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: Unknown, invalid and negative raster values are now handled more consistent.
Please refer to the
package com.luciad.tea for more information.
ImprovementLucy (LuciadLightspeed)
TLcyHypsometryAddon: The hypsometry package provides the addon that computes and renders slopes,
orientations,
azimuths, and other parameters derived from elevations.
ImprovementLuciadLightspeed
TLcdSHPModelDecoder now also decodes non standard files in which the first record does not have
record number
0001.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn: there is now undo support for the changes made to the print area.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now has two properties to restrict the acceptance
of GeoTIFF files containing tie points without additional scaling
information: minimumTiePointCount and maximumResidualTiePointError.
ImprovementLuciadLightspeed
TLcdTFWModelDecoder now supports rotated rasters.
ImprovementLuciadLightspeed
TLcdModelXYWorldBoundsCalculation now computes tighter transformed bounds
for complex cases where some boundary points cannot be transformed.
ImprovementLucy (LuciadLightspeed)
Lucy now depends on the JGoodies Binding framework. Please include bindings.jar in your
classpath
when running Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyASTERIXDecoderAddOn: Lucy now supports the ASTERIX format. Realtime representations of the
ASTERIX trajectories can be derived using the Previewer AddOn.
ImprovementLuciadLightspeed
TLcdGeodeticDatum has an extra parameter to support prime meridians which are not equal to the
Greenwich
meridian.
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddOn: support for procedures has been added.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: the model reference chooser can now import .ref files.
ImprovementLuciadLightspeed
TLcdRasterModelDescriptor and TLcdMultilevelRasterModelDescriptor now have
a boolean elevation property, which specifies whether the rasters in the
corresponding models contain elevation data.
ImprovementLuciadLightspeed
TLcdAltitudeFormat, TLcdDistanceFormat, and TLcdSpeedFormat now have
a NaNString property, which specifies the string to be used for the NaN
value.
ImprovementLuciadLightspeed
Elevation controllers and vertical view classes have been improved to
handle negative elevations and unknown elevations in a consistent way.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: the same options are available when editing the projection of the map as when
changing the coordinate system or creating .ref files.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: the model reference chooser now supports the UTM grid reference.
ImprovementLuciadLightspeed
TLcdETOPOModelDecoder is a new raster model decoder for the ETOPO2,
ETOPO2v2, and ETOPO5 data sets.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn: support for airport/heliport/enroute communications has been added.
ImprovementLucy (LuciadLightspeed)
TLcyMagneticNorthAddOn: In the combo box of the magnetic north panel, "Show selected on" was
renamed to "Add selected on".
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: Undo support has been added for the modification of PIMs.
ImprovementLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: Editing areas of interest can now be undone.
ImprovementLucy (LuciadLightspeed)
TLcyUSRPDecoderAddOn: The legends contained in USRP files can now be viewed in the layer
properties
dialog of USRP layers.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: It is now possible to adjust the active Area of Interest to the bounds of the
selected
layer.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAreaCustomizerFactory now creates a customizer which contains the possiblity to
adjust the page orientation (landscape or portrait) right from the print area customizer.
ImprovementLucy (LuciadLightspeed)
'File | Save As' is adjusted so that the dialog uses the file type descriptor
corresponding to the model of the saved layer as best encoding type. It for example per default
chooses to encode redlining layers as redlining files.
ImprovementLucy (LuciadLightspeed)
TLcyJPEG2000DecoderAddOn: Now a customizer is displayed when a layer is saved to JPEG2000
format;
it allows to change the encoder settings.
ImprovementOGC Server
To provide better support for dynamic WMS server implementations, a number of enhancements haven been implemented:
- A new interface com.luciad.wms.server.ILcdWMSCapabilitiesUpdater has been introduced which can be used
to implement an update strategy for the WMS server. This interface contains one method
update(HttpServletRequest),
which will be invoked for each incoming request. To register an implementation on the WMS, the new factory
method
createWMSCapabilitiesUpdater(ServletConfig, TLcdOGCWMSCommandDispatcher, ILcdWMSCapabilitiesDecoder)
in ALcdOGCWMSCommandDispatcherFactory must be implemented.
- A new factory method createModelProvider() has been introduced in ALcdOGCWMSCommandDispatcherFactory,
which returns
an ILcdModelProvider. In the past, an ILcdModelProvider was created internally and set on the command
dispatcher, which
made it more difficult to insert a custom ILcdModelProvider implementation.
- The WMS server sample has been extended with a sample implementation of ILcdWMSCapabilitiesUpdater.
- The implementation of TLcdOGCWMSCommandDispatcher has been improved in the context of a dynamic WMS:
- Extra measures have been taken to prevent any inconsistencies while updating the server at runtime.
- The getWMSCapabilities(HttpServletRequest) will now always return the same ALcdWMSCapabilities object
for the same HttpServletRequest object.
ImprovementTerrain Analysis Engine
The package com.luciad.tea.hypsometry has been added, providing hypsometric functionality like computation and
visualization of slope, orientation, and azimuth.
ImprovementTerrain Analysis Engine
Unknown, invalid and negative raster values are now handled more consistent. Raster values smaller than -20km or
larger than 20km are assumed to be invalid. In those cases, an elevation value of Double.NaN is used. Please refer
to the class TLcdElevationUtil for more information.
ImprovementAviation Standards
The decoders TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder are now capable of decoding respectively airport and heliport
communication records (regular records and remark records). These communication records are modeled by
com.luciad.ais.model.service.TLcdFeaturedService and are available as a feature for the associated airport/heliport object
(by default,
this is TLcdFeaturedAerodrome). The corresponding feature name is ILcdDAFIFAerodromeFeature.AERODROME_COMMUNICATIONS. The
communication
records are decoded by default by TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder. To prevent this, one can exclude
ILcdDAFIFAerodromeFeature.AERODROME_COMMUNICATIONS from the list of features through the methods setAirportFeaturesToBeDecoded()
and setHeliportFeaturesToBeDecoded() in respectively TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder.
The supported features for the communication object itself are listed in com.luciad.format.dafif.model.communication.ILcdDAFIFCommunicationFeature.
By default, all these features are decoded by TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder. To restrict this list,
one can use the new method setCommunicationFeaturesToBeDecoded() in TLcdDAFIFAerodromeDecoder and TLcdDAFIFHeliportDecoder.
Finally, the classes TLcdDAFIFAerodromeModelDescriptor and TLcdDAFIFHeliportModelDescriptor have two extra methods, setCommunicationDescriptor()
and getCommunicationDescriptor(), that allow to set/retrieve a featured descriptor for the communication object.
ImprovementAviation Standards
The class TLcdAIXMDefaultLayerFactory has been extended with a protected method createGXYLayer(), which by default
returns an instance of TLcdGXYLayer. This method is used to create a layer instance for each model.
ImprovementAviation Standards
The class TLcdARINCDefaultLayerFactory has been extended with a protected method createGXYLayer(), which by default
returns an instance of TLcdGXYLayer. This method is used to create a layer instance for each model.
ImprovementAviation Standards
New ILcdARINCHandler implementations have been added to com.luciad.format.arinc.decoder to decode airport/heliport/enroute
communications: TLcdARINCAirportCommunicationHandler, TLcdARINCHeliportCommunicationHandler and TLcdARINCEnrouteCommunicationHandler.
All the handlers make use of the general service domain object in AIS (see com.luciad.ais.model.service) to model the communication
objects. Decoded models have as model descriptor respectively an instance of TLcdARINCAirportCommunicationModelDescriptor,
TLcdARINCHeliportCommunicationModelDescriptor and TLcdARINCEnrouteCommunicationModelDescriptor.
The interface ILcdARINCCommunicationFeature represents general features of an ARINC communication object;
ILcdARINCAerodromeCommunicationFeature and ILcdARINCEnrouteCommunicationFeature extend this
interface to add more specific features for airports/heliports and enroutes.
ImprovementAviation Standards
A new ILcdAIXMHandler implementation has been added com.luciad.format.aixm.decoder to decode procedures
(SID, STAR, IAP): TLcdAIXMProcedureHandler. The package com.luciad.format.aixm.model.procedure
contains classes and interfaces for all procedure related aspects within AIXM.
ImprovementAviation Standards
TLcdDAFIFLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.
ImprovementAviation Standards
TLcdARINCLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.
ImprovementAviation Standards
TLcdAIXMLayerConfiguration has been extended with new properties to set the icon size for all icon-based symbols.
ImprovementAviation Standards
The class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider has been extended with the methods setIconSize(int)
and
getIconSize(), which allow to change the icon size. The default value is still the same, namely 16.
Furthermore, image icons are now lazy loaded instead of precomputed as in the past. Image icons that are never requested
will therefore not be cached in memory anymore.
ImprovementAviation Standards
A new domain object is added to AIS to represent service objects (e.g. an Air Traffic Control service).
The new package com.luciad.ais.model.service contains several interfaces and classes that can be used
to model services. The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended
with two factory methods to create service objects. Please refer to the AIS Developer's Guide and
the reference guide for more details.
ImprovementDefense Standards
TLcdNITFModelDecoder now provides methods that can be overridden in order to
modify the decoding of model references and raster bounds based on the NITF
fields.
ImprovementDefense Standards
Added support for long floating point values in all bounding rectangle tables an LAT tables.
ImprovementDefense Standards
The VPF model decoder now supports databases that do not have a variable-length index file.
If missing, the decoder will build an index in memory on-the-fly.
Bug fixLuciadLightspeed
TLcdGXYLayer no longer paints all objects of a bounded model when the edge
of the projection is visible in the view or the view clip.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Inserting points into an extruded pointlist no longer throws an exception.
Bug fixLucy (LuciadLightspeed)
UTM coordinates now respect the geodetic datum set using "Edit | Coordinate System | Choose
Coordinate System...". Before, UTM coordinates were always displayed in WGS84 geodetic datum.
Bug fixLuciadLightspeed
TLcdSVGUnstyledXYShapeFactory did no longer allow to set the text on a text object.
Bug fixLuciadLightspeed
The GML3 VectorType is now properly supported.
Bug fixLuciadLightspeed
TLcdGXYZoomController: undo on the zoom controller did not respect the change in
world/view origin. Therefore undoing a zoom operation restored the map to the correct
scale, but not necessarily at the correct location.
Bug fixLuciadLightspeed
Fix in the encoding of the SLD FeatureTypeStyles. The default values of the scale denominators
of the
TLcdSLDRule objects are not encoded anymore.
Bug fixLuciadLightspeed
The license server now correctly handles empty properties in license files.
Bug fixLuciadLightspeed
TLcdTransverseMercator.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
TLcdGnomonic.boundaryLats now returns correct results for all longitudes.
Bug fixLuciadLightspeed
TLcdEckertVI.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
TLcdGnomonic.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
TLcdVerticalPerspective.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
TLcdStereographic.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
TLcdOrthographic.world2lonlatOnEllipsoidSFCT no longer returns NaN
in its results for some points near the edge of the projection.
Bug fixLuciadLightspeed
The raster tile decoders no longer use NIO by default, in order to avoid
unexpected resource and locking problems.
Bug fixLucy (LuciadLightspeed)
Opening the layer properties dialog of a Border Grid used to throw an InvocationTargetException.
Now there is a specialized customizer for the border grid layer.
Bug fixAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now correctly handles "SENSOR_OFFSET" keys in .RSC
files.
Bug fixAviation Standards
The airspace decoders TLcdDAFIFAirspaceDecoder and TLcdDAFIFSpecialUseAirspaceDecoder did not correctly handle altitude
values that were defined by 6 instead of 5 characters in a data record. In that case, the last character was skipped.
Bug fixAviation Standards
ILcdDAFIFMilitaryTrainingRoutePointFeature and ILcdDAFIFRefuelingTrackFeature
contain several new features to represent altitude values. These new features
supersede all previously existing altitude features for which the unit of
measure was specified as a TLcdDistanceUnit. The new features have the same
names as the originals, but use an additional "_MEASURE" suffix. The value of
these new features is of type ILcdISO19103Measure, which provides both the
altitude value and an appropriate unit of measure (a TLcdAltitudeUnit).
Bug fixAviation Standards
TLcdDAFIFMilitaryTrainingRouteDecoder and TLcdDAFIFRefuelingTrackDecoder now
always fill in the altitude unit features of the decoded domain objects.
Previously, altitudes expressed as Flight Levels would result in the altitude
unit features being null.
Bug fixAviation Standards
The implementations of ILcdDefaultDisplayNameSettable.getDefaultDisplayName() in com.luciad.ais.model.* did not check
whether the feature at the default display name index was set.
Bug fixAviation Standards
TLcdDAFIFLoader could not handle source paths that contained the prefix "file:".
Bug fixDefense Standards
The TILEREF coverage is now properly decoded.
Bug fixDefense Standards
A bug, causing a NullPointerException during the decoding of untiled feature classes, is fixed.
Bug fixDefense Standards
TLcdNITFModelDecoder now correctly decodes relative positioning of attached
images.
Bug fixDefense Symbology
The label positions for some tactical point symbols in MIL-STD 2525b and APP-6A did not take
the offset (if defined) into account.
Bug fixDefense Symbology
The icons for the MIL-STD 2525b/APP-6A symbols 'Antitank Obstacles: Tetrahedrons, Dragons Teeth, and
Other Similar Obstacles' (MIL-STD 2525b: 2.X.3.1.3.3.1/2/3, G*M*OAOF--****X/G*M*OAOM--****X/G*M*OAOP--****X;
APP-6A: 2.X.2.2.1.3.3, G*C*BOATD-*****), 'Nuclear Detination' (MIL-STD 2525b: 2.X.3.4.2, G*M*NZ----****X;
APP-6A: 2.X.2.2.4.3, G*C*BWE---*****) and 'Biological/Chemical Release Event' (MIL-STD 2525b: 2.X.3.4.7.1/2,
G*M*NEB---****X/G*M*NEC---****X;
APP-6A: 2.X.2.2.4.10, G*C*BWK---*****) were not correct and have been fixed.
Bug fixDefense Symbology
The rendering of the Supply Route Symbols in MIL-STD 2525b (2.X.5.2.2.1/2/3/4/5) and APP-6A (2.X.2.4.2.2.1/2/3/4/5)
has been significantly improved.
Bug fixDefense Symbology
Fixed a bug in TLcdAPP6AObjectCustomizer and TLcdMS2525bObjectCustomizer which sometimes caused the removal of a
specified echelon
when setting an object.
Upgrade considerationLuciadLightspeed
The com.luciad.format.xml and com.luciad.format.xml.schema packages have been
refactored signifantly, influencing also some other packages making use of the
XML framework (GML3, SLD, ...):
- The interface ILcdXMLElementAdapter has been extended with extra
methods for visiting an XML element; an XML element can now be inspected
by passing an ILcdXMLElementVisitor to the adapter, which will call the
visitor for each attribute/content/child element of the XML element being
visited.
-
The abstract classes ALcdXMLElementAdapter and ALcdXMLTypedElementAdapter
have been removed. They have been replaced by 4 new classes:
- ALcdXMLIndexBasedElementAdapter
- ALcdXMLTypedIndexBasedElementAdapter
- ALcdXMLVisitorBasedElementAdapter
- ALcdXMLTypedVisitorBasedElementAdapter
The first two adapters replace the old adapters; extensions of these classes
should override the index-based methods (getXXX(index) and getXXXCount());
the visitXXX() methods of these adapters delegate to the index-based methods.
The other two adapters work in the opposite direction: extensions of these classes
should override the visitor-based methods, and the index-based methods of these adapters
delegate to the visitor-based ones.
All existing adapter implementations should rename their super class from
ALcdXML(Typed)ElementAdapter to ALcdXML(Typed)IndexBasedElementAdapter.
New implementations of ILcdXMLElementAdapter should preferably extend one of the
two visitor-based adapter classes, since these are easier to implement, less
error-prone and more efficient.
All existing adapters, available in the LuciadMap API, have beed adjusted to these changes.
-
New editable interfaces have been added for name and object stacks, ILcdXMLEditableNameStack
and ILcdXMLEditableObjectStack. The default implementations, TLcdXMLNameStack and
TLcdXMLObjectStack, have been updated to implement these interfaces.
-
A default implementation of ILcdXMLDocumentContext, TLcdXMLDocumentContext, has been made
available in the API. Interface and implementation have additional startElement() and
endElement() methods to control the XML stack depth.
-
A new Exception class has been introduced, TLcdXMLInterruptedException, which can be used
to interrupt a running XML call.
-
The method signatures of several classes have been harmonized:
- ILcdXMLElementAdapterAdapter.getAdapterForObject
- ILcdXMLElementNameProvider.getElementNameForObject
- ILcdXMLElementAdapter.getName
They now all take as arguments a name and object stack, pointing to the parent XML
name/object, and an additional name and object, identifying the XML name/object to
be inspected/handled.
-
The order in which element name provider and element adapter provider are called by the XML
encoder has been changed. The element name provider is no longer called directly by the
encoder; all XML element names are retrieved now using the ILcdXMLElementAdapter.getName()
method,
even that of the root object. This implies that element adapter providers should be able
to return element adapters for objects, without knowing the exact XML name.
The setElementNameProvider() and getElementNameProvider() methods of the TLcdXMLEncoder
class have been deprecated.
-
The ILcdXMLElementNameProvider.getElementNameForObject() method now has an additional
TLcdXMLName argument, indicating the XML type to which the returned element name should
belong.
-
XML element adapter libraries have been removed from the API. Composite adapter providers
should now be constructed using the new TLcdXMLCompositeElementAdapterProvider class.
Basic adapter providers for GML3, SLD, and so on, can be registered with a composite
adapter provider, to create one large element adapter provider.
Upgrade considerationLuciadLightspeed
The method createColorModel of TLcdSLDSymbolizerPainterfactory has been removed as the color
model can now be
set in the implementation of ILcdSLDRasterPainterConfigurator. ILcdSLDRasterPainterConfigurator
is a new
interface that configures a raster painter for a given object so that a style defined in a
TLcdSLDRasterSymbolizer is applied when rendering the object.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPIM and TLcyPIMBeanInfo have been removed from the API. Code relying on these classes will
no
longer compile. This should pose no problem as the reference documentation contained a warning
that
this would happen.
Upgrade considerationTerrain Analysis Engine
All classes have been improved to handle negative elevations and unknown
elevations in a consistent way. Unknown elevations are now returned as
Double.NaN, for the sake of the efficiency and simplicity of any code that
processes elevations.
Upgrade considerationAviation Standards
A new interface ILcdEditableAirspaceAssociation has been introduced in the package com.luciad.ais.model.airspace,
which defines the operations to edit the attributes and relationships of an airspace association. The class
TLcdAirspaceAssociation now also implements this interface, next to ILcdAirspaceAssociation. The general
domain object factory class com.luciad.ais.model.ALcdAISObjectFactory has been extended with a
factory method createEditableAirspaceAssociation() to create objects of the type ILcdEditableAirspaceAssociation.
Upgrade considerationDefense Symbology
The class TLcdEditableAPP6AObject in the APP-6A API previously accepted symbol codes that represented directories,
because they are defined
in the APP-6A specification. These codes are now listed as invalid, because they do not represent a real symbol and
cannot be drawn on map:
when such a code is now set on a TLcdEditableAPP6AObject, an IllegalArgumentException will be thrown, as this was
the default behavior for other
invalid codes.
6.1
6.1.19
ImprovementLuciadLightspeed
An ILcdInputStreamFactory can now be configured on the TLcdXMLSchemaProvider.
6.1.18
ImprovementDefense Standards
The protected fields of TLcdVPFFeatureClass are removed from the API, as they are unusable
(the class cannot be extended).
Bug fixLucy (LuciadLightspeed)
TLcyPrintAreaAddOn: The layer containing the print area now has a decent layer properties
dialog.
Bug fixLuciadLightspeed
When the XML decoder encounters a valid XML element with no element reader associated, the
default element
reader is not invoked anymore. This solves some unexpected ClassCastException.
Bug fixDefense Standards
Feature classes containing primitives of type Connected Node are now supported properly (these
feature classes were not always shown in the VPF tree).
Bug fixDefense Standards
An NullPointerException that was thrown in absence of certain VPF tables, is no longer thrown.
6.1.17
ImprovementLuciadLightspeed
The GML3 element reader and object factory libraries no longer contain a default element reader
and
default object factory for decoding of unknown parts of XML as generic ILcdXMLElement objects
(unknown parts are ignored now). Only for child elements of gml:AbstractFeature elements
(typically
the (geometric) properties of that element), a default reader and factory are available.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: no more NullPointerException when textually editing the geometry of a
polyline.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when an extruded shape was selected and its geometry was displayed in the
"Map | Editor" panel, the labels for the minimum and maximum altitude were incorrect.
Bug fixOGC Server
The GML model and schema encoders used by the WFS now properly respect the
feature type name specified in ILcdWFSFeatureType.
Bug fixAviation Standards
TLcdRefuelingTrackModelDescriptor no longer returns the same feature index for
the RECEIVER_CHANNEL and TANKER_CHANNEL attributes defined in
ILcdDAFIFRefuelingTrackFeature.
Bug fixMaritime Standards
Performance of selection has been improved signifantly for multileveled ECDIS models. Note
that
this optimization requires the use of the same TLcdS52GXYPainterProvider class for all
layers in
a catalogue layerlist. Please refer to the EcdisLayerFactory sample class for an example of
how
to do this.
Bug fixMaritime Standards
Selection visibility on Ecdis layers is improved; selected point, line and area objects are
now
outlined in a clearly distinguisable color.
6.1.16
Bug fixAviation Standards
TLcdDAFIFMilitaryTrainingRouteDecoder no longer duplicates the
ENROUTE_ALTITUDE_2_UNIT feature, and correctly reads the ENROUTE_ALTITUDE_2
value instead.
6.1.15
ImprovementOGC Server
The WMS server developer guide has been extended with extra information about offering support for GetFeatureInfo
requests.
It now also includes an example of a ILcdWMSFeatureInfoRequestEncoder implementation.
ImprovementDefense Symbology
The classes TLcdEditableAPP6AObject, TLcdEditableMS2525bObject, TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle
are now properly serializable.
Bug fixAviation Standards
The properties TLcdAIXMLayerConfiguration.CFG_GEOBORDER_ICONSTYLE_COLOR and
TLcdAIXMLayerConfiguration.CFG_GEOBORDER_ICONSTYLE_SELECTIONCOLOR were not used in the past.
This has been fixed.
6.1.14
ImprovementLuciadLightspeed
The standard raster painters now have a property to change the contrast of
rasters that are painted, by means of gamma correction.
ImprovementLuciadLightspeed
TLcdJetIndexColorModelFactory now also supports negative color indexes,
which can be useful for creating hypsometric color models.
Bug fixLuciadLightspeed
TLcdJetIndexColorModelFactory no longer automatically extends the number of
colors to a minimum of 256 colors, in order to avoid incompatibilities when
creating BufferedImage instances.
Bug fixLuciadLightspeed
TLcdDMEDModelDecoder and TLcdDTEDDirectoryModelDecoder now (again) handle
the minimum DTED level correctly.
Bug fixLuciadLightspeed
The contains2D method TLcdCartesian incorrectly handled some special cases (horizontal, vertical
line segments).
Bug fixLuciadLightspeed
The parameters standard parallel, central meridian and azimuth were not stored correctly in the
properties for
oblique Mercator projections when these parameters were passed in the constructor of
TLcdObliqueMercator.
Bug fixLuciadLightspeed
TLcdSymbol drew circles which were one pixel too big.
Bug fixAviation Standards
The icon used by com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider to represent a VORTAC object (see enhancement
2607)
was corrupted in all previous 6.1 releases. This has been fixed.
Bug fixDefense Standards
The Java class returned by TLcdVPFModelDescriptor.getFeatureClass() now corresponds to
the values that are returned in the ILcdFeatured VPF objects.
Bug fixDefense Symbology
TLcdEditableMS2525bObject and TLcdEditableAPP6AObject now allow to set custom ILcd2DEditablePointList
implementations
through the method set2DEditablePointList(ILcd2DEditablePointList). This generated a ClassCastException in the past.
Note that custom implementations should also implement ILcdEditableRestrictedLengthPointList, as described in the
documentation.
Bug fixDefense Symbology
A bug has been fixed in MIL-STD 2525b and APP-6A API which caused an incorrect rendering of the Joker and Faker
affiliation frames for icon-based symbols. The geometry of these frames was based on the Hostile affiliation frame
while it should be based on the Friendly affiliation frame according to the specification.
Bug fixDefense Symbology
Fixed a bug in TLcdAPP6AObjectCustomizer and TLcdMS2525bObjectCustomizer which sometimes caused an
IllegalArgumentException
when echelons were used in an 'Installation' symbol.
6.1.13
ImprovementLuciadLightspeed
The GML3 decoder and encoder now support URI and URL types.
ImprovementLuciadLightspeed
XML schemas are now encoded with the elementFormDefault="qualified" attribute (some XML files
did not
validate against the schema, due to this missing attribute).
ImprovementLuciadLightspeed
The order in which the elements of a GML3 model are encoded, has been changed: geometric
properties
are now decoded at the end of the element, instead of at the beginning. The generated XML schema
has been modified accordingly, and is further simplified.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn, TLcyAPP6AAddOn: the original resolution of the icons in 3D has been restored
again, since
this was incorrectly decreased in version 6.1.0.
Bug fixLuciadLightspeed
TLcdSLDSymbolizerPainterFactory did not support complex polygons correctly in the fill painter
provider. As a
result the holes in a complex polygon were filled when a fill style was applied in a polygon
symbolizer.
6.1.12
ImprovementOGC Server
LMAP-1440
An interface ILcdWFSServiceMetaData has been introduced in the WFS package. By
creating an ILcdWFSServiceMetaData in the command dispatcher factory, WFS users
can customize the <Service> section of the WFS capabilities document.
ImprovementOGC Server
The WCS server now performs proper escaping of all user-specifiable values that appear
in the GetCapabilities and DescribeCoverage responses.
ImprovementOGC Server
The WFS now performs proper escaping of all user-specifiable values that appear
in the GetCapabilities response.
Bug fixLucy (LuciadLightspeed)
TLcyGridCoordinateAddOn now takes into account the 10M false northing for UTM coordinates in the
southern
hemisphere.
Bug fixLuciadLightspeed
TLcdLonLatBorderGridPainter now properly paints a border if the labels have
been switched off.
6.1.11
Bug fixLuciadLightspeed
The GML3 model encoder now handles models with an empty display name correctly (an
IndexOutOfBoundsException was thrown before).
6.1.10
Bug fixLuciadLightspeed
TLcdUtmMgrsUtil is refactored to:
- return correct results when transforming LonLat to UTM MGRS when the resulting Y
value was
a multiple of 100K.
- return correct results when transforming UTM MGRS to LonLat when the Y value was
a multiple of 100K.
- take into account the southern hemisphere northing offset
- return correct results when transforming LonLat to UTM MGRS when the point was at the
edge of
2 zones.
Bug fixLuciadLightspeed
The UTM grid now takes into account that the zones 31 through 37 are not uniform on the northern
hemisphere.
Upgrade considerationLuciadLightspeed
TLcdUTMZonePainter now only paints one hemisphere of a zone. This is due to the fact that the
reference for
the northern hemisphere and for the southern hemisphere within a zone are different.
6.1.09
Bug fixMaritime Standards
Sounding depths less than or equal to -10m (10m above sea level) are now supported (this
generated a NullPointerException in previous version).
Bug fixMaritime Standards
S-52 colors now render correctly when different symbology instances are used within the same
JVM. The static method TLcdS52Symbol.setColorProvider() method has been deprecated.
6.1.08
Bug fixLuciadLightspeed
TLcdXMLEncoder now also escapes attribute values (before, only content was escaped).
6.1.06
ImprovementLuciadLightspeed
The following methods have been introduced in
com.luciad.ogc.sld.xml.TLcdSLDFeatureTypeStyleEncoder10:
- setPrefixMap(ILcdPrefixMap), getPrefixMap(): allows to control the mapping between
the
fully qualified namespaces and their corresponding prefixes in the resulting XML document.
- setDefaultNamespace(String), getDefaultNamespace(): allows to set the default
namespace
in the resulting XML document. This is the namespace for which no prefix will be used.
ImprovementLuciadLightspeed
Implementations of ILcdGML3AbstractFeature now return a shallow copy in their clone()
implementation,
instead of returning null.
ImprovementOGC Server
The following methods have been introduced in com.luciad.wms.sld.xml.TLcdSLDStyledLayerDescriptorEncoder10:
- setPrefixMap(ILcdPrefixMap), getPrefixMap(): allows to control the mapping between the
fully qualified namespaces and their corresponding prefixes in the resulting XML document.
- setDefaultNamespace(String), getDefaultNamespace(): allows to set the default namespace
in the resulting XML document. This is the namespace for which no prefix will be used.
ImprovementAviation Standards
The default configuration properties in TLcdAIXMLayerConfiguration are now fully documented.
ImprovementAviation Standards
The default configuration properties in TLcdARINCLayerConfiguration are now fully documented.
Bug fixLucy (LuciadLightspeed)
Hiding and showing again the Lucy frame used to cause the split pane dividers to reset to their
original locations.
Bug fixLuciadLightspeed
The TLcdSVGModelEncoder can now encode non-ASCII characters correctly.
This allows it to correctly encode characters such as the degree character.
Bug fixLucy (LuciadLightspeed)
TLcyShowPreviewDialogAction: Now the print preview action will, instead of replacing the content
of the map frame, hide the map frame and show a new frame containing the print preview content.
Bug fixLuciadLightspeed
The EPSG resources are updated to EPSG database v6.11. To make use of this change update the jar
lcd_epsg_resources.jar in your classpath.
Bug fixLuciadLightspeed
TLcdGeodeticReference now has a WGS 84 geodetic datum when the parameterless constructor is
used.
Bug fixLuciadLightspeed
TLcdGXYPointListPainter now takes into account the mode of the painter when using the paint
cache.
Before, this could lead to incorrect results when painting the same object in the same layer
twice
with point list painters with different point list painter modes, POLYLINE and POLYGON for example.
Bug fixLuciadLightspeed
TLcdTFWRasterModelDecoder now positions decoded rasters properly shifted by
half a pixel in both ordinates.
Bug fixLuciadLightspeed
TLcdPNMImageDecoder now avoids accidentally skipping bytes from URL input
streams.
Bug fixLuciadLightspeed
TLcdBILTileDecoder now avoids accidentally skipping bytes from URL input
streams.
Bug fixDefense Standards
Implementations of ILcdVPFFeature now return a correct attribute count. The getAttributeName(int
aIndex)
method now returns the correct name (it used to return the name of attribute[aIndex - 1]).
Bug fixDefense Standards
TLcdUSRPModelDecoder now correctly decodes TRANSH01.THF files pointing to
multiple datasets.
Bug fixDefense Standards
TLcdNITFUncompressedImageDecoder now avoids accidentally skipping bytes from
URL input streams.
Bug fixDefense Standards
TLcdNITFModelDecoder now avoids accidentally skipping bytes from URL input
streams.
Bug fixDefense Standards
TLcdNITFModelDecoder now correctly uses the input stream factory for decoding
the contained images.
Bug fixDefense Standards
TLcdNITFModelDecoder now supports decoding JPEG images from URLs.
6.1.04
ImprovementLucy (LuciadLightspeed)
Improved the performance of the layer control when adding a large layerlist.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: Deselecting the only selected item in the table view using ctrl-click now also
deselects this item in the GXY view.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: The Tote addon no longer interferes with the selection of Areas of Interest.
Bug fixLuciadLightspeed
Several painters no longer supported snapping when creating a new object. These painters now
also accept snap
targets
when the objects they are editing are in an 'initial' state:
- TLcdGXYBoundsPainter: when the bounds has width and height 0,
- TLcdGXYArcPainter: when the A and B of the ellipse the arc is part of is 0,
- TLcdGXYArcBandPainter: when the minimum and maximum radius of the arcband are 0,
- TLcdGXYEllipsePainter: when the A and B of the ellipse are 0.
Bug fixLucy (LuciadLightspeed)
TLcyPrintPreviewFactory: Used to throw a NullPointerException if no print services were found.
Bug fixLucy (LuciadLightspeed)
The title text shown for the options when saving or opening are no longer taken from
java.awt.Component#getName but from the customizer factory that made the options panel.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: the zoom in and zoom out buttons in the 3D view are no longer
affected by 'scrollUpZoomOut' configuration property.
Bug fixLuciadLightspeed
TLcdUndoManager: Locks are now released before notifying listeners of change so these listeners
can access the manager from another thread if necessary.
Bug fixLucy (LuciadLightspeed)
TLcyGridAddOn: the visibility of the extra layers is now stored in the workspace.
Bug fixLucy (LuciadLightspeed)
No more NullPointerExceptions are thrown when dragging a layer from the layer control after
the Look and Feel has changed.
6.1.01
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the dialog that pops up when an attempt is made to draw a redlining object
when no redlining layers are available now has a parent frame. Therefore it can no longer get
lost
behind the application.
ImprovementLuciadLightspeed
Magnetic north maps can now be loaded using an ILcdInputStreamFactory object. The input stream
factory can
be set on TLcdWMMModelDecoder and TLcdIGRFModelDecoder.
ImprovementAviation Standards
Support for the following geodetic datum codes has been added: ROM, BRN, DGI, IGL, DLX
PRD and RNB. All geodetic datum codes defined by the AIXM 3.3 specification are now supported.
Bug fixLucy (LuciadLightspeed)
The "File | Save As..." menu item now presents the layers in the same order as the layer
control.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: The vertical view can now be used without the TEA specialized package,
though no terrain profile functionality will be available in that case.
Bug fixLucy (LuciadLightspeed)
TLcyUSRPDecoderAddOn: now only displays *.img files in its file type descriptor.
Bug fixLucy (LuciadLightspeed)
Layer control: when a new layer name was provided (using the layer properties button), and that
new
name was longer, three dots used to be displayed in the layer label. Now the label is correctly
rendered.
Bug fixLuciadLightspeed
A bug in TLcdXMLTypedElementAdapterProvider, causing an invalid adapter to be returned for some
objects,
was fixed. Data, decoded with the TLcdGML3ModelDecoder, can now be encoded again with the
TLcdGML3ModelEncoder.
Bug fixLuciadLightspeed
TLcdColorMapCustomizer now correctly restores the colors when toggling from gradient to
non-gradient mode and back.
Bug fixLuciadLightspeed
Use of layer codecs no longer cause a HeadLessException in a headless environment.
Bug fixLuciadLightspeed
TLcdSVGModelDecoder now correctly reads point coordinates for lines in scientific notation.
Bug fixAviation Standards
TLcdDAFIFLonLatParser did not correctly handle longitudes or latitudes that contained a single '/' character
in the part which represent the 100th of a second, which is possible according to the DAFIF specification.
In that case, the coordinates where moved to N00000000, E000000000.
6.1
ImprovementLuciadLightspeed
The TLcdGML3ModelDecoder now automatically upgrades gml2:fid attributes to gml3:id attributes.
The ILcdGML3AbstractGML.getId() method now returns the gml2:fid attribute value for GML2
datasets.
ImprovementLuciadLightspeed
TLcdGXYBufferPainter and TLcdGXYLonLatHeightBufferPainter have a width formatter to allow
formatting
of the width as a String when changing the width.
ImprovementLuciadLightspeed
TLcdGXYArcBandPainter has 4 formatters to control label display when editing the arc band:
minRadiusFormat,
maxRadiusFormat, centerPointFormat, anglesFormat.
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn is completely reworked to support printing on multiple pages, offer a legend,
overview, allow to define the area to print on the map, show a nice preview and much more.
Lots of settings can be configured, and the package 'com.luciad.lucy.addons.print' offers
an API to allow more advanced changes to the printing functionality.
ImprovementLuciadLightspeed
The package com.luciad.ogc.filter was extended.
It now contains an API and implementation for decoding, encoding, evaluating and representation
of OGC filters.
The API is based on the OGC 02-059 and 04-095 Filter Encoding Implementation Specification,
version 1.0 and 1.1.
This specification describes an XML encoding of a system neutral representation of a query
predicate.
OGC filters are constructs used to constrain the property values of an object type for the
purpose of
identifying
a subset of object instances.
The package com.luciad.ogc.filter contains now the following subpackages:
- com.luciad.ogc.filter.model: contains the domain model to represent OGC filters and
expressions
- com.luciad.ogc.filter.model.capabilities: contains the domain model to represent OGC
filter
capabilities
- com.luciad.ogc.filter.xml: contains XML decoding and encoding facilities for OGC
filters and
filter capabilities. These facilities are built upon the general LuciadMap XML framework.
- com.luciad.ogc.filter.xml.capabilities: contains XML decoding and encoding facilities
for OGC
filter
capabilities. These facilities are built upon the general LuciadMap XML framework.
- com.luciad.ogc.filter.evaluator: contains the implementation of the OGC Filter
Evaluator. The OGC
Filter
Evaluator allows you to build an ILcdFilter that can be used for accepting or rejecting a
given object
or to build
an ILcdPropertyRetriever than can be used for computing a property of a given object
- com.luciad.ogc.filter.spatial: contains the implementation of the OGC Filter Spatial
Evaluator that
provides
the ability to perform advanced spatial filtering
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: the 3D terrain wizard now supports generation of compressed
texture data. Texture compression is performed using OpenGL's
GL_ARB_texture_compression extension, and can improve rendering performance by
decreasing the bandwith requirements for disk and memory I/O.
ImprovementLucy (LuciadLightspeed)
A configuration option 'scrollUpZoomOut' was added to 'resources/lucy/lucy.cfg' to define
whether
scrolling the mouse wheel up should zoom in or out. The property has an application wide effect.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the labels displayed when editing arcbands or buffers now respect the
default
user units selected in Lucy.
ImprovementLucy (LuciadLightspeed)
All grid coordinates are now presented as X, Y instead of Y, X.
ImprovementLuciadLightspeed
TLcdGXYArcBandPainter now supports switching the min and max radius when editing either of the
radii.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: 'resources/lucy/map/dynamic_grid.cfg' was changed to allow 30 degrees between grid
lines when zoomed out, instead of 10 degrees.
ImprovementLuciadLightspeed
If the shape that will snap implements ILcd3DEditable, the part of the shape that will snap
assumes the 3
coordinates
of the snap target for all editors that support snapping.
ImprovementLuciadLightspeed
TLcdGXYEllipsePainter has support now to snap an end point of the major or minor axis of an
ellipse.
ImprovementLuciadLightspeed
Methods have been added to allow snapping to invisible (not painted) snappable points
(set/isSnapToInvisiblePoints)
for all painters where a point defines the shape, but is not needed to paint the shape. Eg. if
the center of a
circle is not drawn, you can still snap to the center point if the snapToInvisiblePoints
property is set to
true.
ImprovementLuciadLightspeed
setModelModelTransformation have been added to all editors that support
snapping, to enable snapping to points defined in other georeferences.
ImprovementLuciadLightspeed
All ILcdGXYPainter instances that provide a point as snaptarget now have a property snapIcon.
ImprovementLuciadLightspeed
Methods to paint the axis (set/isDrawAxis and set/isDrawAxisWhenSelected) and the axispoint
handles
(set/isDrawAxisPoints and set/isDrawAxisPointsWhenSelected) have been added to all painters
which handle
buffers.
Editing by dragging a point or moving the axis is supported only when the point or axis is
visible.
ImprovementLuciadLightspeed
Methods to paint the center point (set/isDrawCenter and set/isDrawCenterWhenSelected) have been
added to
all painters which handle rotational shapes i.e., arcbands, arcs, circles and ellipses.
Editing by dragging a point is supported for a point only when it is visible.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: now has a getDataFormatManager() method that returns a TLcyDataFormatManager. All
concepts that are required to add a data format to Lucy, for example ILcdModelDecoder and
ILcdGXYLayerFactory, can now be retrieved and registered there. The existing methods of
ILcyLucyEnv
(for example addModelDecoder) are now considered a shortcut to the data manager.
ImprovementLuciadLightspeed
TLcdGXYEllipsePainter now has support for creating ILcdEllipse objects with three clicks.
ImprovementLuciadLightspeed
TLcdGXYEllipsePainter has changed the two click creation mechanism for ILcdEllipse objects:
the rotation angle is now also adjusted, the major axis end point is set to the mouse position.
ImprovementLuciadLightspeed
TLcdGMLModelDecoder now returns a TLcd2DBoundsIndexedModelList instead of a
TLcdModelList.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: If a default workspace is set, and that workspace file is removed afterwards
from the file system and Lucy is started, a better error message is now provided.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: intersection points between all redlining geometries (arcs, circles,
polylines,
buffers, ...) can now be calculated, except for rectangles and parallels as those are composed
of
rhumbline segments.
ImprovementLuciadLightspeed
A new package, com.luciad.ogc.sld, was added. It contains an API and implementation for
decoding,
encoding and representation of OpenGIS SLD Feature Type Styles. The API is based on the OGC
02-070
Styled Layer Descriptor Implementation Specification, version 1.0. This specification allows
user-defined
symbolization
of feature data, by determining which features or layers are rendered with which colors or
symbols.
The package com.luciad.ogc.sld contains the following subpackages:
- com.luciad.ogc.sld.model: contains the domain model to represent Feature Type Styles.
- com.luciad.ogc.sld.view.gxy: contains the GXY view representation of the Feature Type
Style model
applied to ILcdModel objects.
The classes in this package enable conversion of a Feature Type Style model/ILcdModel
combination into
ILcdGXYPainter and ILcdGXYLayer instances which can be used in an ILcdGXYView.
- com.luciad.ogc.sld.xml: contains an XML decoder and encoder for Feature Type Styles.
The decoder
and encoder are
built upon the general LuciadMap XML framework.
ImprovementLuciadLightspeed
com.luciad.util.ILcdChangeListener and com.luciad.util.TLcdChangeEvent were added.
They offer general purpose change listener support.
ImprovementLuciadLightspeed
TLcdPrintComponentAction and TLcdComponentPrintable now provide a more basic
rasterized printing mode, in addition to the existing layered printing mode.
It rasterizes all printed graphics in memory-efficient strips, without
printing vector graphics in a separate layer on top.
ImprovementLucy (LuciadLightspeed)
TLcyVPFDecoderAddOn: The root VPF node in the layer control can now be fit on.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: replaced "Maximum/Minimum" with "Minimum/Maximum" wrt finding the extreme
altitude.
ImprovementLucy (LuciadLightspeed)
Splash screen: feedback about which addon is being initialized is now more accurate.
ImprovementLuciadLightspeed
TLcdXMLSchemaDecoder.decodeSchema(aNamespaceURI, aSourceName) has been deprecated in favor of
the method decodeSchema(aSourceName). The namespace is now read from the schema during the
decoding.
ImprovementLucy (LuciadLightspeed)
TLcyVPFDecoderAddOn: the browse dialog now has a parent frame configured (can't be clicked away
anymore).
ImprovementLuciadLightspeed
GML3 domain model objects implementing an ILcdShape interface, now also implement the editable
extension, if there is one is available.
ImprovementLuciadLightspeed
LuciadMap now provides the interface ILcdEditableShapeList, which provides methods for adding
and removing shapes to/from the shapelist, and notification of shape changes.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn and TLcyMapOverviewAddOn: whenever the user changes the object selection of the map
(polyline(s), point(s), ...), the layer(s) those objects belong to will be selected in the layer
control. This allows to easily identify the layer of an object by simply selecting it on the
map.
This feature can be disabled in the configuration files ('map_addon.cfg' and
'mapoverview_addon.cfg' in 'resources/lucy/map') by setting the property
'mapLayerControl.selectLayersForObjectSelection' to 'false'.
ImprovementLuciadLightspeed
ALcdXMLElementReader and ALcdXMLTypedElementReader now provide methods to control whether to
trim
XML character content or not.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the colorchooser now uses the color of the selected object.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: changing to another tab while still editing the table now commits the edit.
ImprovementLuciadLightspeed
TLcdBILModelDecoder now supports a forced transparent color index.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the Redlining addon now supports predefined layers which can be configured
through the configuration file.
ImprovementLucy (LuciadLightspeed)
Lucy now has support for copying and pasting objects in a map. The actual implementatios are
delegated to a ALcyLayerSelectionTransferHandler, instances of which can be registered with the
TLcyDataTransferManager that can be retrieved from ILcyLucyEnv using the
getDataTransferManager()
method. Please refer to the developer guide for more information on how to implement such an
ALcyLayerSelectionTransferHandler. A new addon, TLcyCopyPasteAddOn was added to Lucy to add the
the relevant menu items.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: Redlining supports the new undo mechanism available in Lucy and LuciadMap.
Creating, removing and editing redlining objects can now be undone.
ImprovementLucy (LuciadLightspeed)
Lucy now uses the new LuciadMap Undo mechanism. A TLcdUndoManager is available in ILcyLucyEnv,
and
can be obtained by invoking getUndoManager(). A new addon, TLcyUndoAddOn was added to Lucy to
add
the relevant menu items and configure the TLcdUndoManager.
ImprovementLuciadLightspeed
LuciadMap now contains a TLcdGML2ModelEncoder and corresponding adapter library, to encode
LuciadMap models into a GML2 compatible XML document, using the same mechanism as the GML 3
model encoder.
ImprovementLuciadLightspeed
The XML decoder/encoder framework now provides better support for anonymous types and global
elements.
Element readers and adapters for these types and elements can now be registered directly on the
corresponding reader/adapter providers (only global types could be registered before).
ImprovementLucy (LuciadLightspeed)
The file open API allows a mechanism other than a model decoder, to handle files differently.
E.g. opening a
DAFIF file, will show dafif dialog ; opening a VPF file, will show vpf dialog ; opening a
Workspace file, will
open the selected workspace.
ImprovementLucy (LuciadLightspeed)
All mutable models (pim, redlining, ms2525b, app6a, pol) have a ILcdModelEncoder associated to
their ILcdModel.
ImprovementLucy (LuciadLightspeed)
The menu item "Save" will use the model encoder of the selected layer model to save the layer to
the
file found in the model descriptor.
ImprovementLucy (LuciadLightspeed)
It is possible to drag and drop a number of files to a lucy map component.
ImprovementLucy (LuciadLightspeed)
The file open dialog supports opening multiple files at once (multiple select).
ImprovementLucy (LuciadLightspeed)
Lucy allows in its file dialog boxes to select file types, using the standard mechanism: combo
box with
file types. By default, there is a "All Known" file type to select all supported formats. It is
possible
to add file type descriptor groups to the combo box, it is possible to adjust the filters by
adjusting
the corresponding configuration file.
ImprovementLucy (LuciadLightspeed)
Snapping now works much faster when working with large data sets.
ImprovementLucy (LuciadLightspeed)
Workspace management now supports the GML3 format.
ImprovementLuciadLightspeed
The zoom controller of all samples now drags a rectangle from the left top to the right bottom,
instead of from the center to the outside. This change can easily be reverted by passing 'true'
to the 'setDragCentered' method in 'samples.toolBar.ToolBarSW' and 'samples.toolBar.ToolBarAWT'.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: fixed bug that was causing Lucy to freeze
when looking for the extreme terrain elevation, but there was no terrain raster available.
ImprovementLucy (LuciadLightspeed)
TLcyJPEG2000DecoderAddOn now supports encoding of JPEG2000 files, as well.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: It is now possible to textually edit the width and height of buffers.
ImprovementLucy (LuciadLightspeed)
TLcyExportAddOn: GML2 has been added as export format.
ImprovementLucy (LuciadLightspeed)
Dragging a layer list to the delete button now removes the layer list again.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: The configuration for the toolbar is now consistent with the rest of Lucy.
As a
result the toolbar can be more extensively customized.
ImprovementAdvanced GIS Engine
The package com.luciad.ogc.filter.spatial contains classes to model enhanced spatial filtering according to
the OGC 02-059 and 04-095 standards.
ImprovementOGC Server
A new sample is available, samples.wms.client.sld.MainApplet, that illustrates the use of an SLD-enabled
WMS server at the client side.
ImprovementOGC Server
The SLD-enabled WMS server now supports GetMap requests that use HTTP XML POST instead of HTTP GET.
These type of requests are described in the OGC 02-017r1 Web Map Service Implementation Specification,
Part 2: XML for Requests using HTTP POST. Note: servers that use the regular ALcdOGCWMSCommandDispatcherFactory
and TLcdOGCWMSCommandDispatcher do not support these types of requests, since SLD support is required to handle
them.
ImprovementOGC Server
The WMS server now contains support for OpenGIS Styled Layer Descriptors (SLD), as defined in the OGC 02-070
Styled Layer Descriptor Implementation Specification version 1.0. The following classes and packages are added:
- com.luciad.wms.server.ALcdOGCSLDWMSCommandDispatcherFactory: this abstract class is an extension of the
regular
ALcdOGCWMSCommandDispatcherFactory that adds support for Styled Layer Descriptors. This class must be
implemented by
the user to create an SLD capable WMS server. The class samples.wms.server.OGCWMSCommandDispatcherFactory in the
samples
illustrates an example implementation.
- com.luciad.wms.server.TLcdOGCSLDWMSCommandDispatcher: this class is an extension of the regular
TLcdOGCWMSCommandDispatcher that adds support for Styled Layer Descriptors. This class must be used to handle
WMS requests in an SLD capable WMS server. The class ALcdOGCSLDWMSCommandDispatcherFactory automatically
registers an object of TLcdOGCSLDWMSCommandDispatcher on the servlet to handle all incoming requests.
- com.luciad.wms.server.ALcdSLDWMSGXYLayerFactory: this abstract class is an implementation of
ILcdWMSGXYLayerFactory, that is used by the server to create ILcdGXYLayer instances for all ILcdModels,
with or without an SLD model. Implementations can be registered on the WMS server by implementing
the method ALcdOGCSLDWMSCommandDispatcherFactory.createSLDWMSGXYLayerFactories(). This method
replaces the previously used factory method createWMSGXYLayerFactories(), which is now declared final.
- com.luciad.wms.server.ILcdRemoteOWSModelDecoder, ILcdRemoteOWSModelDecoderFactory,
ILcdRemoteOWSModelProvider:
these interfaces are used in the WMS server to decode ILcdModel objects based on remote data (typically located
on a
remote WFS or WCS server). Through the method
ALcdOGCSLDWMSCommandDispatcherFactory.createRemoteOWSModelDecoderFactories(),
the user can register one or more ILcdRemoteOWSModelDecoderFactory objects on the WMS server. By default, this
method returns
null, as this is an optional feature according to the SLD specification..
- com.luciad.wms.sld.model: contains the domain model for Styled Layer Descriptors. This domain model
builts
upon the Feature Type Style domain model that is available in the package com.luciad.ogc.sld.model.
- com.luciad.wms.sld.xml: contains an XML decoder and encoder for Styled Layer Descriptors. Both the
decoder
and encoder respectively built upon the Feature Type Style decoder and encoder that are available in the package
com.luciad.ogc.sld.xml.
To inform a client about the SLD support of the WMS server, TLcdOGCSLDWMSCommandDispacher uses the XML capabilities
document that is sent
to the client after a GetCapabilities request:
- for version 1.1.1 and earlier, the XML capabilities document includes the XML element
UserDefinedSymbolization, which is
defined by the OpenGIS WMS 1.1.1 Capabilities DTD (see
http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd). This element
contains some attributes that indicate the SLD support.
- for version 1.3.0, the OpenGIS WMS 1.3.0 Capabilities XML Schema does not include an SLD related XML
element. Therefore,
a custom LuciadMap WMS 1.3.0 Capabilities XML Schema is available (see
build/wms/resources/schemas/wms/1.3.0/sld_capabilities_1_3_0.xsd),
which extends the OpenGIS WMS 1.3.0 Capabilities Schema (see
http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd).
This extension adds the element UserDefinedSymbolization to the default schema, which was present in the OpenGIS
WMS 1.1.1 Capabilities DTD.
ImprovementOGC Server
The WFS has been extended to support most of the WFS 1.1 specification:
- GetFeature requests support the "resultType" parameter, allowing
clients to retrieve the number of features matched by a request without
having to retrieve the actual corresponding features.
- Features can be retrieved in both GML2 and GML3 formats.
- The OGC Filter 1.1 specification is supported.
Please refer to the "Upgrade considerations" section for more information on
how these changes may affect your application.
ImprovementOGC Server
Section 5.2.1 "Description of the default configuration format" in the WMS server developer guide
has been extended with a description of how to configure the possible output formats for a
GetFeatureInfo request.
ImprovementOGC Server
The class com.luciad.wms.server.viewencoder.TLcdGXYViewPNGEncoder, which is used by the WMS to encode images to PNG,
has been updated with support for the native codecLib plugin for ImageIO. This plugin delivers a higher performance
than the default JAI PNG encoder, which was used in the past. It also allows to control the compression to be used,
which makes it possible to determine a trade-off between compression and speed; in contrast, the default JAI PNG
encoder always uses
best compression. To adjust the compression, the following two methods have been introduced: setCompressionLevel()
and getCompressionLevel().
The codecLib plugin requires the installation of some extra libraries, which are available in the LuciadMap_xxx/lib
directory
in the LuciadMap WMS distribution. The following libraries are needed:
- clibwrapper_jiio.jar: JAR file containing core JAI Image I/O class files
- jai_imageio.jar: the codecLib JNI interfaces
- the codecLib JNI libraries for your platform. The available platforms are Win32
(native/win32/clib_jiio*.dll),
Linux i586 (native/linux/libclib_jiio.so), Linux AMD64 (native/linux64/libclib_jiio.so) and Solaris Sparc V9
(native/solaris_sparc/libclib_jiio.so, native/solaris_sparc/sparcv9+vis/libclib_jiio_vis.so or
native/solaris_sparc/sparcv9+vis2/libclib_jiio_vis2.so).
If one of these libraries is not found, the default PNG encoder in JAI will be used again instead of the ImageIO
codecLib plugin.
ImprovementOGC Server
WCS GetCapabilities responses now also contain keywords for each coverage offering, if there are any defined.
ImprovementAviation Standards
The mechanism that is used by the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting
discretizations can now be controlled by the user of the API: the class has been extended with a protected method
acceptCorrection(ILcdGeoPathLeg, int, ILcdPoint, ILcdPoint), which is invoked for each planned data correction.
By default, this method returns true in all cases. Please refer to the javadoc of the class and the method for more details.
ImprovementAviation Standards
Support has been added for additional local horizontal datums in the method getLocalHorizontalDatum(String) in
com.luciad.format.dafif.decoder.ALcdDAFIFDecoder: OEG, VOR, OGB, AFG, CHU, QAT, YAC, ZAN, LIB, LUZ, MIK, MAS, LEH.
ImprovementAviation Standards
The performance of the DAFIF data preparator (samples.decoder.dafif.datapreparator.DAFIFDataPreparator or
com.luciad.format.dafif.tools.TLcdDAFIFDataPreparatorMain) has been greatly improved.
This tool can be used to split large DAFIF files into smaller ones. The division of the DAFIF data
is based on the two letter ICAO region found in each record.
ImprovementAviation Standards
The class com.luciad.ais.model.airspace.TLcdAirspace has been extended with a method getSegmentIndexForPoint(int),
which returns the airspace segment that contains the discretized point at a given index.
ImprovementAviation Standards
Layers created with TLcdDAFIFDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects,
following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.
ImprovementAviation Standards
Layers created with TLcdARINCDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects,
following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.
ImprovementAviation Standards
Layers created with TLcdAIXMDefaultLayerFactory now use a separate icon for VOR, VOR-DME and VORTAC objects,
following the ICAO Annex 4 standard. In the past, the same icon was used for all VOR objects.
ImprovementAviation Standards
The class com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider has been extended with a method
setNavaidTypeIndex(int), which allows to set the index of a feature that specifies the navaid type; these
types are defined in the type safe enumeration class TLcdNavaidType. When the index is specified,
this feature is used to make a distinction between a VOR, a VOR-DME and a VORTAC object to provide a
separate icon for these types following the ICAO Annex 4 standard. Otherwhise, the same icon is used
for all VOR objects, as in the past.
ImprovementDefense Standards
TLcdVPFLibrary now returns its coverages in the order they are stored in the VPF database.
ImprovementDefense Standards
The VPF model descriptor now contains the sourcename, if the VPF data were loaded from a
properties file.
ImprovementDefense Standards
With the new sample code, it's possible to customize the behaviour of the tree and layer
manager,
to pop up messages, to do a fit or to perform other actions, if the current Area of Interest
doesn't overlap with the VPF library bounds.
ImprovementDefense Symbology
It is now possible in APP-6A and MIL-STD 2525b to render a limited set of arrows (see the list below) with a certain
curvedness instead of painting them straight. This is meant to be used for aviation-related arrows, which indicate a
certain movement
of an aircraft; painting the arrow curved accents this relation. Next to the curved arrows, it is now also possible
to render a limited set
of areas (see the list below) with rounded corners. This can improve the visibility in some cases and also
contributes to a more realistic rendering.
Currently, the following areas can be painted with rounded corners:
- Objective area (APP-6A: 2.X.2.1.5.3.5, MIL-STD 2525b: 2.X.2.5.3.5)
- Strong point (APP-6A: 2.X.2.2.3.5, MIL-STD 2525b: 2.X.3.3.5)
- Battle position (APP-6A: 2.X.2.1.4.1.2.*, MIL-STD 2525b: 2.X.2.4.3.1 and 2.X.2.4.3.1.1)
The aviation-related arrows in APP-6A (situated in 2.X.2.1.5.2.1) and MIL-STD 2525b (situated in 2.X.2.5.2.1) can be
painted curved.
To control these new properties, the interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle, and their respective implementations TLcdDefaultMS2525bStyle and
TLcdDefaultAPP6AStyle are extended with several new methods:
-
setCornerSmoothness(double), getCornerSmoothness(): this property is used to indicate how much the corners of an
area should be rounded.
The argument is a number in the interval [0.0, 1.0]. A value of 0.0 indicates no rounding - this is the default
value, as it corresponds to the behavior in the past;
a value of 1.0 indicates maximum rounding.
-
setArrowCurvedness(double), getArrowCurvedness(): this property is used to control the curvedness of an arrow.
The argument is a number in the
interval [-1.0, 1.0]. A value of 0.0 indicates no curvedness - this is the default value, as it corresponds to
the behavior in the past;
a value of -1.0 or 1.0 indicates maximum curvedness, each in an opposite direction perpendicular to the axis of
the arrow.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn: when the map editor was used to edit a symbol, the symbol
customizer
didn't always disabled/enabled the correct editing options for a particular symbol (e.g. editing
the country
code of a MIL-STD 2525b METOC symbol may not be possible).
Bug fixLuciadLightspeed
The performance of the TLcdGXYLayerSubsetList class has been improved significantly. Other
classes
relying on this class (for example classes involving object selection) will also benefit from this
improvement.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when trying to draw on an invisible layer, the layer is made visible first.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the height of spheres and domes is now editable.
Bug fixLuciadLightspeed
When a new controller (TLcdGXYNewController) is left active after an object has been created,
snapping will work
for the first point of subsequent objects. Keep in mind that only objects which have an
undefined state (eg.
polygon,
polyline, buffer) support snapping of the first point.
Bug fixLuciadLightspeed
TLcdBMPImageDecoder has been fixed.
Bug fixLuciadLightspeed
When one point of a selection of multiple points is snapped to a single point, the selection is
moved as a whole
and only the touched point is snapped.
Bug fixLuciadLightspeed
TLcdGXYArcPainter now has support for creating ILcdArc objects with three or five clicks.
Bug fixLuciadLightspeed
TLcdGXYArcBandPainter has support for modifying angles of arcbands objects.
Bug fixLuciadLightspeed
ALcdBounds.equals( null ) used to throw a NullPointerException instead of returning false.
Bug fixLuciadLightspeed
The methods elementChanged(Object, int) or elementsChanged(Vector, int) in
com.luciad.ais.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel
did not update any registered indices.
Bug fixLuciadLightspeed
The method canAddElement(Object) in com.luciad.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel
throwed a
NullPointerException
when a unique index was defined on the model.
Bug fixLuciadLightspeed
TLcdGeodetic2Geodetic now supports bounds transformations.
Bug fixLuciadLightspeed
TLcdInputStreamUtil did not take into account reaching the end of the input stream in the
methods readFully and
skipAll.
This could have resulted in infinite loops.
Bug fixLuciadLightspeed
The TLcdNoWarpRasterPainter and related painters now round correctly, avoiding
occasional blank lines of pixels between raster tiles.
Bug fixLuciadLightspeed
TLcdMultivaluedRasterPainter now paints ILcdMultivaluedRaster instances, as
documented, instead of just TLcdMultivaluedRaster instances.
Bug fixLucy (LuciadLightspeed)
TLcyPersistentPreferencesAddOn: now removes preferences from the persistent store if they were
removed from ILcyLucyEnv.getPreferencesManager.getUserPreferences() during program execution.
Bug fixLuciadLightspeed
A race condition in com.luciad.format.xml.TLcdXMLName.getInstance() was fixed. Performance of
the equals() method has been improved.
Bug fixLuciadLightspeed
The SHP model encoder did not encode the current day correctly when saving the DBF file.
Bug fixLucy (LuciadLightspeed)
Sometimes no popup dialog was displayed if an incorrect license file was used. Lucy would then
start but only empty split panes were visible, and a message was only printed to the console
about
the incorrect license file.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: The painter properties for circles are once again editable. You can now
specify
whether the circle center should be drawn or not.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: editing Integer or Double features in the selection editor no longer
generates
errors.
Bug fixAviation Standards
The class com.luciad.format.arinc.decoder.TLcdARINCRunwayHandler didn't reset its internal state when decoding a new model,
which caused problems when the same object of this class was used for multiple decoding steps.
Bug fixAviation Standards
TLcdARINCDecoder failed to close its input streams if an exception occured while
decoding.
Bug fixAviation Standards
ALcdDAFIFMultiModelDecoder failed to close its input streams if an exception
occured while decoding.
Bug fixDefense Standards
Grid referenced datasets are now supported.
Bug fixDefense Symbology
The MIL-STD 2525b and APP-6A painter for T-based symbols, L-based symbols and for the 'Final Protective Fire' symbol
(2.X.4.2.6)
showed some inacurracies while editing a symbol. These problems have been corrected.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly sets the layer of
elements of inserted blocks.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly decodes the extrusion
of LwPolyline and MLine objects.
Upgrade considerationLucy (LuciadLightspeed)
TLcyPrintAddOn is completely reworked (see note under enhancements). If however the behavior
prior
to version 6.1 is needed, simply change the property 'TLcyPrintAddOn.usePriorTo6_1' to 'true'
in 'resources/lucy/print.cfg'.
Upgrade considerationLuciadLightspeed
The class TLcdGML3ModelEncoder now requires an ILcdXMLEditableSchemaProvider in its constructor,
instead of an ILcdXMLSchemaProvider.
Upgrade considerationLuciadLightspeed
The interface com.luciad.format.gml3.model.base.ILcdGML3XLinkSimpleLink has been replaced by
the com.luciad.format.xml.xlink.ILcdXMLSimpleLink interface.
Upgrade considerationLuciadLightspeed
ILcdUndoable and TLcdUndoManager have been greatly enhanced, and now offer a full-blown
and flexible undo/redo mechanism together with some new classes and interfaces. However, some
method signatures of the aforementioned classes had to be changed.
Upgrade considerationLuciadLightspeed
The lcd_gml_resources.jar archive has been removed from the distribution: all OGC schemas used
by
LuciadMap are now grouped into one JAR file, lcd_ogc_schema_resources.jar.
Upgrade considerationLuciadLightspeed
The ILcdXMLElement and ILcdXMLElementAdapter interfaces are extended with methods to
retrieve attribute and contents based on their names. The ILcdXMLEditableElement
interface contains some additional methods for editing an XML element. All implementations
of these interfaces are adapted accordingly. Classes extending from TLcdXMLElement or
ALcdXMLTypedElementReader will not need to be modified - these two classes offer already default
implementations for all new methods. Classes implementing the ILcdXMLElementAdapter interface
directly might be refactored to extend the new class ALcdXMLElementAdapter.
Other classes, implementing directly one or more of the modified interfaces will
need to be adapted.
Upgrade considerationLuciadLightspeed
Undo/redo support of TLcdGXYNewController, TLcdGXYZoomController and TLcdGXYPanController has
been
deprecated and replaced with a new mechanism. Furthermore, these classes no longer implement
ILcdUndoable and no longer set themselves to the TLcdUndoManager using a static method, thus
avoiding a memory leak. Undo/redo support has been replaced with a new mechanism, using an
'addUndoableListener' method. Undo/redo support for creating new objects is now available in
ALcdGXYNewControllerModel instead of in TLcdGXYNewController.
Upgrade considerationLuciadLightspeed
The method TLcdXMLEncoder.encode() is renamed to TLcdXMLEncoder.encodeXML().
Upgrade considerationOGC Server
ILcdWFSFilteredModelFactory:
- The signature of createFilteredModel() was changed to include an
ILcdWFSGetFeatureConstraints argument. ILcdWFSGetFeatureConstraints
contains all parameters that can restrict the result of a GetFeature
request, including a filter.
- Filters are passed in as a TLcdOGCFilter object (contained in the
ILcdWFSGetFeatureConstraints object) rather than as a JDOM element.
Analogously, getFilterCapabilities() must return a
TLcdOGCFilterCapabilities rather than a JDOM element.
Upgrade considerationOGC Server
ILcdWFSClientModelEncoderFactory:
- The method createModelSchemaEncoder() has been added. This method
shall return an ILcdWFSModelSchemaEncoder, which is responsible for
encoding the result of a DescribeFeatureType request. The class
TLcdWFSClientModelEncoderFactory can produce encoders for standard GML
application schemas.
- Both createModelSchemaEncoder() and createModelEncoder() have an
argument of type ILcdWFSRequestContext, which contains context
information about the request currently being handled.
Upgrade considerationOGC Server
ALcdOGCWFSCommandDispatcherFactory:
- The registerFilterFactories() has been removed, as it is no longer
applicable. Applications that require customized filtering behaviour may
override the createFilteredModelFactory() method to return an extension
of the new class TLcdWFSFilteredModelFactory. This class provides a hook
similar to registerFilterFactories() to allow filtering customization.
Please consult the reference documentation for details.
- The class TLcdWFSClientModelEncoderFactory was made available as
the default implementation of ILcdWFSClientModelEncoderFactory. This
factory supports GML2 and GML3 output formats, and may be extended by
applications that wish to add additional output formats. GML output will
not be available unless the model encoder factory advertises it.
Upgrade considerationAviation Standards
The method getLocalHorizontalDatum(String) in com.luciad.format.dafif.decoder.ALcdDAFIFDecoder now always
throws an IllegalArgumentException when a geodetic datum code is not supported or unknown. In the past,
this method returned null for a partial list of unsupported codes and generated an exception for the remaining
unsupported codes, which was not consistent. All implementations of ALcdDAFIFDecoder have been updated to
properly catch this exception, and add a corresponding message to the error message object (see ALcdDAFIFDecoder.getErrorMessage()).
Upgrade considerationDefense Standards
The methods
- ILcdVPFLabel getPointLabel(ILcdVPFFeature aVPFFeature)
- ILcdVPFLabel getLineLabel(ILcdVPFFeature aVPFFeature)
- ILcdVPFLabel getAreaLabel(ILcdVPFFeature aVPFFeature)
have been removed from the TLcdVPFGeoSymProvider class.
Upgrade considerationDefense Standards
The ILcdVPFFACCFeature has been added to the VPF package. This interface provides access to
DIGEST FACC data (which is supported by VPF). ILcdVPFFeature now extends from this new
interface,
and GeoSym has been generalized to work with ILcdVPFFACCFeature instead of ILcdVPFFeature I.e.,
all objects implementing the FACC interface can be visualized now using GeoSym.
Upgrade considerationDefense Standards
The TLcdVPFPointFeature class is no longer available in the API. All properties of VPF domain
objects can be accessed via the ILcdVPFFeature, ILcdFeatured and ILcdShape interfaces.
Upgrade considerationInfrastructure Standards
com.luciad.format.dgn.TLcdDGNEllipse2D now extends TLcdXYEllipse instead of
TLcdXYArc.
6.0
6.0.14
ImprovementLuciadLightspeed
TLcdDMEDModelDecoder now handles swapped min/max values of the DMED bounding
rectangle.
ImprovementLuciadLightspeed
The DMED/DTED model decoders now handle malformed two's complement negative
elevation values more robustly.
ImprovementLuciadLightspeed
The DMED/DTED model decoders now try to create file names that work in more
cases on case-sensitive file systems.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now decodes files with fixed length records.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now decodes rasters with transparent borders.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now decodes tiled rasters.
ImprovementAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler, which is used to decode airspaces,
contained a filter that removed all airspaces of type TLcdAirspaceType.PART. This filter has been removed
to let the user choose whether these airspaces must be filtered or not. By implementing ILcdAIXMModelFilter,
one can create a custom filter for the decoder.
ImprovementDefense Standards
TLcdUSRPModelDecoder now decodes USRP legends as properties of
TLcdUSRPDatasetModelDescriptor.
ImprovementDefense Standards
TLcdUSRPModelDecoder now decodes USRP files containing deviant VDR:NOV fields
of length 3.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModel has been corrected to be thread-safe in its getBounds()
method.
Bug fixLuciadLightspeed
TLcdComponentPrintable has been fixed to handle some complex combinations of
transparency and transformations correctly.
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder now correctly computes the raster rotation from a
given transformation matrix.
Bug fixLuciadLightspeed
TLcdDMEDModelDecoder now decodes the references specified in DTED cells,
provided checkTilesImmediately is set to true.
Bug fixLuciadLightspeed
TLcdRaster no longer throws a NullPointerException due to rounding errors when
computing tile coordinates.
Bug fixLuciadLightspeed
TLcdBILModelDecoder now decodes HDR files with fixed length records.
Bug fixLuciadLightspeed
TLcdDatabaseModelDescriptor is now properly serializable.
Bug fixLuciadLightspeed
TLcdRasterPainter and TLcdMultilevelRasterPainter now correctly handle rasters
that are displayed in their model reference but that wrap around.
Bug fixLuciadLightspeed
TLcdJetIndexColorModelFactory no longer goes into an infinite loop when a color
model is created for which the size is smaller than 1<<bits.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder tried to create a model reference before checking whether the shp file could
be read.
Bug fixAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now correctly handles UTM references on the Southern
hemisphere.
Bug fixTerrain Analysis Engine
The line-of-sight computation was not complete when the raster was to be filled and the start angle was negative.
Although all computations were performed, they were not all included in the resulting raster.
Bug fixTerrain Analysis Engine
The line-of-sight computation for a point and its environment sometimes produced a ArrayIndexOutOfBoundsException,
due to a rounding error computing the number of angular steps.
Bug fixTerrain Analysis Engine
The bounds of the result of a line-of-sight computation between a point and its surroundings were incorrect when the outer
arc
of the area to compute was such that its bounds did not include the center, e.g. start angle equal to 35, arc angle
equal to 45.
Bug fixAviation Standards
A bug has been fixed in TLcdARINCProcedureHandler which caused a wrong altitude setting for
an ILcdProcedureLeg, when a procedure record contained the value 'V' for the altitude description.
Bug fixAviation Standards
A problem has been fixed in com.luciad.format.aixm.decoder.TLcdAIXMAirspaceHandler which sometimes
caused an invalid airspace reference inside ILcdAirspaceAssociation objects, in the case the source
data contained multiple level airspace associations.
Bug fixAviation Standards
An additional issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath, which sometimes
resulted in the lack of a point on the boundaries of a discretized airspace segment of type SUB_POINT_LIST (e.g. a geoborder).
Bug fixAviation Standards
All ILcdAIXMHandler implementations now use WGE (WGS 1984) as default datum code instead, as defined in the AIXM 3.3 specification.
In the past, domain objects without datum code were ignored and an error message was printed.
Bug fixDefense Standards
Latin-1 text fields are now supported (the VPF model decoder sometimes crashed during the
decoding of datasets containing Latin-1 text fields).
Bug fixDefense Standards
TLcdUSRPModelDecoder now accepts "01.THF" extensions, instead of only full
"TRANSH01.THF" file names.
Bug fixMaritime Standards
A bug in TLcdS52ComplexStroke, causing the stroke to use the fallback stroke on line
segments
were the pattern fits perfectly, is fixed.
6.0.13
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: Intervisibility between PIM tracks and other objects is now supported.
ImprovementLuciadLightspeed
TLcdGMLModelEncoder now has a refined canSave() and canExport() method, inspecting the model
descriptor and the model's elements (both methods always returned true before).
Bug fixDefense Standards
The toString() method of VPF objects no longer throw an ArrayIndexOutOfBoundsException when no
ILcdFeatured properties are available.
6.0.12
Bug fixAviation Standards
Carriage returns and/or newlines in feature values of domain objects were ignored by the decoder.
Bug fixMaritime Standards
Transparency of S-52 symbols is now taken into account.
Bug fixMaritime Standards
A bug in TLcdS52ConditionalSymbology, causing an ArrayIndexOutOfBoundsException to be thrown
sometimes when the style of a Light object is retrieved, is fixed.
Bug fixMaritime Standards
TLcdS52ConditionalSymbology no longer throws a NullPointerException when a style of a Light
object is retrieved, that does not contain a Category of Light attribute.
6.0.11
Bug fixDatabase Connectors
The model decoder now properly closes all its JDBC statements.
6.0.10
ImprovementLuciadLightspeed
GML3 features implementing the ILcdShape interface now return a valid focus point, calculated
based on
the bounds of their geometric properties (a null value was returned before).
6.0.09
ImprovementLuciadLightspeed
TLcdXMLSchemaDecoder now supports elements that have no explicit type definition (i.e.,
extending the
xsd:anyType type).
ImprovementAviation Standards
A new method getSubPointlist() has been introduced in the class com.luciad.ais.model.airspace.TLcdSubPointlistAirspaceSegment,
to allow the user to retrieve the associated ILcdPointList.
Bug fixLuciadLightspeed
TLcdComponentPrintable now works around
Sun bug
#4138921, which may cause an IllegalArgumentException when printing empty
labels in JDK 1.4.2 or older.
Bug fixLuciadLightspeed
TLcdComponentPrintable now avoids disposing or finalizing Graphics instances
too soon.
Bug fixLuciadLightspeed
TLcdDTEDModelDecoder now throws an IOException when a given DTED file has an
invalid number of coordinates in an accuracy subregion outline.
Bug fixDefense Symbology
The classes TLcdAPP6AObjectIconProvider and TLcdMS2525bObjectIconProvider
didn't update cached icons that used the default style, when this style
was changed.
Bug fixDefense Symbology
The direction of movement indicator for MIL-STD 2525b and APP-6A icons of type 'Ground track' (part of the
'Warfighting' and
'Signals intelligence' domains) was not painted correctly, according to the MIL-STD 2525b/APP-6A standards.
These indicators must start from the bottom of the frame of an icon, instead of from the center.
6.0.08
ImprovementLuciadLightspeed
TLcdXMLSchemaDecoder now supports nested attribute and element groups (groups, embedded in other
groups were ignored before).
ImprovementLuciadLightspeed
TLcdGML3ModelDecoder and TLcdGML3ModelEncoder now have methods to retrieve reader, adapter,
factory
and name providers.
ImprovementLuciadLightspeed
TLcdXMLSchemaEncoder now supports the encoding of imported schemas, using the import tag.
ImprovementOGC Server
A memory leak has been closed in the handling of a feature request that contained a filter.
Bug fixLucy (LuciadLightspeed)
Adding and removing actions to an action bar sometimes caused ArrayIndexOutOfBoundsExceptions.
The cause for this problem was eliminated.
Bug fixLucy (LuciadLightspeed)
TLcyMapComponentFactory: the mouse location component below the map now also updates on
mouseDragged
events, where it used to respond only to mouseMoved events.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn and TLcyMapOverviewAddOn: used to assume that the value of their config file
property
'backgroundDataFileName' was a valid file or url, if not the file was skipped. They now only
test
if there is an ILcdModelDecoder registered with ILcyLucyEnv that knows what to do with it.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: If multiple simulator models were available, disabling and re-enabling one of
them using the checkbox in the preview panel caused the view to be inconsistent: all models
were at the begin date, except the re-enabled model, that one was at its previous date. Changing
the time slider resolved the problem.
Bug fixLucy (LuciadLightspeed)
TLcyPOLDecoderAddOn: reading and displaying a POL file could cause endless updating of the map
under rare circumstances, causing a large performance hit.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: 3D icons no longer disappear when closing and reopening the 3D view.
Bug fixLucy (LuciadLightspeed)
Some French translations were fixed so that they no longer contain '{0}', but instead an actual
value is filled in.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDescriptor now properly stores the level
at which the parameter is defined.
Bug fixWeather & Environment Standards
com.luciad.format.grib.gxy.TLcdGRIBWindIcon has been corrected to draw the
wind barbs on the left side of the arrow.
Bug fixAviation Standards
A bug has been fixed in the parsing mechanism of longitude and latitude coordinates: a fraction was always
interpreted as the fraction for seconds, but this is not always correct as it sometimes represents the
fraction for degrees or minutes, depending on the position of the period.
Bug fixAviation Standards
After decoding AIXM update files, the updated models now generate correct model changed events for
each new, withdrawn or changed object.
6.0.07
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddon: the GML3 decoder now remembers which schemas were already cancelled in
the
past, and doesn't ask for them again anaymore.
ImprovementLuciadLightspeed
The new sample samples.encoder.mif.Main illustrates the use of the TLcdMIFModelEncoder.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddon: the GML3 painters now support arcs and circles.
Bug fixLuciadLightspeed
The transformation between WGS84 and WGS72 UTM MGRS coordinates was incorrect.
The conversion of the coordinate in local geocentric datum reference to global WGS 84 geocentric
datum reference
contained a sign error.
Bug fixLuciadLightspeed
TLcdGML3ElementAdapterLibrary now has a method createElementAdapter, which was missing in the
API.
Bug fixLuciadLightspeed
TLcdGML3ModelDescriptor.getTypeName() now returns "GML3" instead of an empty String.
Bug fixLuciadLightspeed
The vertical view (TLcdVVJPanel) did not repaint correctly while a paint was being edited and
either the
starting
point or the ending point are not at their default values.
Bug fixLuciadLightspeed
Setting a model with not model points on the VV model no longer causes a NullPointerException.
Bug fixLuciadLightspeed
TLcdMIFModelDecoder has been fixed to correctly decode string features containing commas.
Bug fixTerrain Analysis Engine
The vertical view profile sometimes had a gap beneath the main profile points. The smaller the distance between 2
consecutive points, the larger the gap was. This was due to a slight miscalculation of the stepLengthRatio
for the points.
Bug fixAviation Standards
Additional improvements have been made to com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting
discretizations.
Bug fixAviation Standards
An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath that sometimes
resulted in a wrong mapping between a point index and a geopath leg, which is used by the methods
getLegForPoint() and getLegIndexForPoint(). In the case of SUB_POINT_LIST legs, the first point of the next
leg was in some case assumed to be part of the SUB_POINT_LIST leg.
Bug fixAviation Standards
Fixed an issue in TLcdDAFIFProcedureDecoder that could make the decoder fail to
retrieve runways referenced by a procedure leg.
6.0.06
ImprovementLuciadLightspeed
TLcdGXYLayer now computes uniform precision estimates for the methods applyOnInteract and paint.
ImprovementOGC Server
The capabilities decoders for the default XML server configuration format,
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, now also accept the 'PaintStyle' element
for layers with data sources other than ESRI Shape (.shp) or Oracle Spatial Object-Relational (.ora).
Bug fixLuciadLightspeed
TLcdGeoTIFFModelDecoder and TLcdTABRasterModelDecoder now correctly throw an
IOException instead of an IllegalArgumentException upon encountering a problem
in a TAB file.
Bug fixLuciadLightspeed
TLcdMAPModelDecoder now decodes the size and style of custom bitmap icons properly.
Bug fixLuciadLightspeed
TLcdMIFModelEncoder now encodes custom bitmap symbols and TrueType symbols.
Bug fixLuciadLightspeed
TLcdTransverseMercator no longer throws TLcdOutOfBoundsExeception for an area where the
projection is valid.
When not close to the central meridian and when the origin latitude was different from 0, the
projection threw
an
out-of-bounds exception when it should not have. This was apparent in the projections sample for example,
where the mouse
location
readout was blank for this area.
Bug fixAdvanced Raster Connectors
TLcdMrSIDModelDecoder now correctly throws an IOException instead of an
IllegalArgumentException upon encountering a problem in a TAB file.
Bug fixAdvanced Raster Connectors
TLcdECWModelDecoder now correctly throws an IOException instead of an
IllegalArgumentException upon encountering a problem in a TAB file.
Bug fixAdvanced Raster Connectors
TLcdMrSIDModelDecoder now correctly throws an IOException instead of an
IllegalArgumentException upon encountering a problem in a an ERS file.
Bug fixOGC Server
When a layer style was sent that did not exist for a layer, the WMS returned
an incorrect service exception report: the name of the wrong layer style was not
mentioned. The service exception report now clearly describes that the
requested layer style does not exist for the requested layer.
Bug fixDefense Symbology
The supported country code list in the MIL-STD 2525b and APP-6A package has been extended
and is now fully up to date. The possible country codes are defined by the
FIPS PUB 10-4 list, which can be found on http://earth-info.nima.mil/gns/html/fips10-4.html.
6.0.05
Bug fixLuciadLightspeed
The class com.luciad.wms.client.model.TLcdOGCWMSProxyModelDecoder did not handle relative locations to a DTD or
XML Schema when performing validation of a WMS capabilities document.
Bug fixLuciadLightspeed
TLcdGML3ModelDecoder now supports arcs and circles within multiGeometries.
Bug fixLuciadLightspeed
TLcdXMLSchemaElement.getReferencedElement() now loads the referenced schema automatically if it
is
not in memory yet, instead of returning null.
Bug fixLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: Used to throw a NullPointerException if
'Tracks | Radar View | Center on Selection' was used multiple times on different objects, the
centering was disabled and then the object that was used for centering was moved. Furhtermore
the
menu item was disabled if the centering was activated and then deactivated without changing the
selection.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: You can now set any type of ILcd2DEditableBounds as active AOI
without
this causing ClassCastExceptions.
6.0.04
ImprovementLuciadLightspeed
TLcdGML3ModelDecoder now supports the gml:ArcByCenterPoint and gml:CircleByCenterPoint elements.
TLcdGML3ModelEncoder supports the encoding of ILcdArc and ILcdCircle objects to these GML
elements.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: The layer style popup menu for selected layers in the layer selection dialog
now contains checkboxes,
which allow the user to see the currently selected layer style (if any).
ImprovementLuciadLightspeed
The class com.luciad.wms.client.model.TLcdOGCWMSProxyModelDecoder has been extended with three new methods
to control the XML validation and the reference to external entities in a WMS capabilities document.
- setValidating(boolean), isValidating(): specifies whether XML validation (DTD and XML Schema) is enabled
for the WMS capabilities document provided by a server.
- setEntityLocation(String aEntityID, URL aEntityLocation): sets the URL to be used for an entity defined
in the WMS capabilities document provided by a server.
A typical example of an entity definition in an XML document is a reference to a DTD or XML Schema. By using
this method, one can replace such a reference with a reference
to a locally stored copy of the DTD or XML Schema. If no locations are specified, the original entity locations
defined in the XML document are used.
Bug fixLucy (LuciadLightspeed)
If the TLcyPIMTrackAddOn was loaded, and 'File | Save As...' was used on Solaris, a
NullPointerException used to be thrown.
Bug fixLuciadLightspeed
If the icon of an ILcdAction wrapped in an TLcdSWAction was changed, the TLcdSWAction used to
fire
a property change event with instances of ILcdIcon in its old and new values, instead of
instances
of javax.swing.Icon.
Bug fixLuciadLightspeed
The painter that is used by com.luciad.wms.client.gxy.TLcdWMSProxyGXYLayerFactory for each new layer now uses an
enhanced mechanism to synchronously load images that are returned by a WMS server. This new mechanism removes the
occurrence of a deadlock, which was sometimes observed when starting a print job that involved the WMS layer.
Bug fixLuciadLightspeed
XML schema's, included or imported in another schema from a location on the internet are now
resolved correctly by the XML schema decoder.
Bug fixLuciadLightspeed
TLcdXMLSchemaDecoder can now handle schema's using to the older version of the XMLSchema schema
(http://www.w3.org/2000/10/XMLSchema instead of http://www.w3.org/2001/XMLSchema)
Bug fixLuciadLightspeed
TLcdGMLSchemaEncoder now properly declares the <FeatureCollection>
element used as the root element of encoded GML files.
Bug fixLuciadLightspeed
TLcdGMLModelEncoder now escapes all characters that are invalid for use in XML
element names.
Bug fixLuciadLightspeed
TLcdGMLModelEncoder now ignores domain objects of which the geometry cannot be
described as GML, such as circles, arcs and text.
Bug fixLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: Fitting to a layer containing dwg data now works accurately, previously it
was
sometimes necessary to fit 2 or 3 times for an accurate result.
Bug fixReal-time Engine
The previous fix for this bug caused a severe performance degradation, checking whether the element changed was
in the model through its integer index. The check is now performed using the spatial index of an element.
Bug fixReal-time Engine
TLcdSimulator no longer throws a NullPointerException when setting the date before setting a simulator model.
6.0.03
Bug fixLuciadLightspeed
TLcdXMLSchemaProvider now tries to load each schema location only once (when a schema location
was
corrupted, it tried to reread the schema again, each time an XML element of that schema
was encountered).
Bug fixLuciadLightspeed
TLcdGML3ModelDecoder can now handle URL sources (some URL's caused an exception during the
decoding).
Bug fixLuciadLightspeed
TLcdGML3ModelDecoder now decodes the gml:location child element of gml:AbstractFeatureType
elements.
If the location element has a gml:_Geometry child, the bounds of this geometry are included in
the
bounds calculation of the feature.
Bug fixLucy (LuciadLightspeed)
When too many error messages occurred when loading a workspace, the 'Ok' button of the dialog
could
disappear.
Bug fixLucy (LuciadLightspeed)
All configuration of the menu items associated with areas of interest, including icons,
descriptions
etc., is now stored in the workspace.
Bug fixLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: Dialog to confirm shutdown when workspace is changed and file modified
dialog
used to handle the 'Esc' key as the 'No' button instead of as the 'Cancel' button.
Bug fixDatabase Connectors
The decoder now handles the SQL exception "All fragments of the Rtree index
are empty", when decoding a model from an empty table. The problem only
manifested itself if the spatial table never contained any rows.
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder now properly
takes into account the selection of user attributes to be decoded.
6.0.02
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now also supports transparency masks that are stored as
separate images (with PhotometricInterpretation = 4) in the same GeoTIFF files
as the actual images.
ImprovementOGC Server
The schema documents that are present in the servlet sample have been updated to the
latest versions published by OGC (17 May 2006).
Bug fixLucy (LuciadLightspeed)
The dialog box asking to delete multiple layers will no longer grow bigger than the screen size.
Bug fixLucy (LuciadLightspeed)
Drag and Drop support has been added for multiple layers.
Bug fixDefense Symbology
The classes TLcdAPP6AIcon and TLcdMS2525bIcon are now made thread safe. In the past,
these classes sometimes caused problems regarding the visualization in multithreaded environments.
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder now properly
takes into account the selection of levels to be decoded.
6.0.01
ImprovementWeather & Environment Standards
com.luciad.format.grib.ILcdGRIBConstants has been added, collecting all GRIB
constants for generated models and processes, for parameters, and for levels
and layers in a single location.
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBTileDecoder now supports numbers of packing
bits that are larger than 16.
Bug fixLuciadLightspeed
The ILcdXMLDocumentContext that is managed by the TLcdXMLDecoder is now updated correctly when
an XML element is read, for which no ILcdXMLElementReader is available.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddon: the GML3 encoder is no longer suggested as an encoder for raster and
grid layers. Only models that contain at least one exportable element (an ILcdShape or
ILcdGML3AbstractFeature) are still accepted.
Bug fixLucy (LuciadLightspeed)
All dialogs now pop up on the correct screen when a multi screen environment is used.
Bug fixLuciadLightspeed
TLcdGML3ModelDecoder now supports the interior polygons of a gml:polygonPatch element (these
were
not read yet).
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder now ignores
dummy text elements corresponding to group data.
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder now ignores
empty cells, consistent with com.luciad.format.dgn.TLcdDGNModelDecoder.
6.0
ImprovementLucy (LuciadLightspeed)
Layer tree now displays the layers out of scale range in gray as well.
ImprovementLuciadLightspeed
TLcdSHPModelDecoder now also decodes SHX index files.
ImprovementLucy (LuciadLightspeed)
Lucy now has an about dialog, added by the TLcyAboutBoxAddon. It can be disabled
by removing that addon from the 'addons.xml' file.
ImprovementLucy (LuciadLightspeed)
TLcyOBJDecoderAddOn: a new addon which allows 3D models in WaveFront OBJ format
to be loaded into Lucy. The 2D view will display such models as a bounding box,
the 3D will properly display the 3D geometry.
ImprovementLucy (LuciadLightspeed)
All map controllers now allow zooming with the mouse wheel.
ImprovementLuciadLightspeed
LuciadMap now comes with an additional file Worlddata.zip containing detailed
sample data files. New vector data are cities.mtm representing the cities of
the world, and countries.mtm representing the countries of the world. They
are stored in the efficient new MTM format, indexing a set of SHP files.
New raster data are bluemarble.tif containing a Blue Marble satellite view of
the earth, and etopo2.tif containing a visual representation of the ETOPO2
global relief data. They are stored as efficiently tiled, multilevel GeoTIFFs.
ImprovementLuciadLightspeed
TLcdGXYLayer now provides better precision estimates to the function that is passed to the
applyOnInteract
method.
ImprovementLuciadLightspeed
TLcdGXYLayer now provides better precision estimates to the function that is passed to the
applyOnInteract
method.
ImprovementLuciadLightspeed
The class com.luciad.wms.client.model.ALcdOGCWMSCapabilities has been extended with three new methods
to retrieve extra information about the capabilities of a Web Map Service:
- getGetFeatureInfoURL(): returns the URL prefix that must be used for GetFeatureInfo requests.
- getSupportedFeatureInfoFormatCount(): returns the number of supported feature info formats by a Web Map
Service.
- getSupportedFeatureInfoFormat(int): returns the supported feature info format at a given index.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: a tab now uses as title the concatenation of the label of the particular layer
with the labels of its parent layers, if any.
ImprovementLucy (LuciadLightspeed)
TLcyDynamicLonLatGridLayer: Added extra-options to the dynamic_grid.cfg file, to specify for
each view scale the number of major/minor ticks per delta lon/lat.
ImprovementLucy (LuciadLightspeed)
The time label in the lower right of the frame is no longer displayed by default. You can enable
it again by changing the property 'timeLabel' in 'resources/lucy/lucy.cfg' to 'true'.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddon: a GML3 decoder and encoder have been added.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceManager: added convenience methods 'isDecodingWorkspace()' and
'isEncodingWorkspace()'.
ImprovementLucy (LuciadLightspeed)
The VPF application pane location can now be configured in the VPF addon config file.
ImprovementLucy (LuciadLightspeed)
The default setting for the shared buffer size (see 'lucy.cfg') has been increased from 20Mb to
64Mb.
ImprovementLucy (LuciadLightspeed)
TLcyOpenFlightDecoderAddOn: this addon now has workspace support. This means OpenFlight data
that was
loaded when the workspace was saved will be restored when the workspace is opened.
ImprovementLucy (LuciadLightspeed)
The min/max elevation panel of the TEA add-on displays different icons for the minimum and the
maximum (yellow triangle for maximum,
blue, upside-down triangle for minimum).
ImprovementLuciadLightspeed
The documentation now contains prerequisites for every Additional Component and Industry
Specific Component. The prerequisites contain
dependencies on
- other LuciadMap specialized packages,
- third party jars,
- JDK versions,
- operating systems.
ImprovementLucy (LuciadLightspeed)
The status bar at the bottom of the Lucy window now no longer drops the text completely if it
does
not fit, instead it displays the text partially, with 3 dots at the end.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: The maximum elevation panel has been changed to "extreme" elevation - now it can
also compute the minimum elevation within a shape.
ImprovementLucy (LuciadLightspeed)
The ILcdFeatured customizer (shown when an object, e.g. polyline, is double clicked) can now
retrieve featured descriptor information for ILcdFeatured objects whose ILcdFeaturedDescriptor
is
provided via the model descriptor of the containing model, provided that the model descriptor
implements the ILcdFeaturedDescriptorProvider interface.
ImprovementLucy (LuciadLightspeed)
ALcyWorkspaceCodec: now allows applications build on Lucy to write custom header information.
ImprovementLucy (LuciadLightspeed)
TLcyWorkspaceAddOn: The file extension of the workspaces can now be configured in
'workspace_addon.cfg'.
ImprovementLuciadLightspeed
There is a new multilevel tiled data format available, called MultiLevelTiled format (MTM). It
consists of
one Java
properties file with the extension ".mtm" and a set of subdirectories, one for each level.
Each subdirectory
contains a
set of files, one for each tile at that level. The number of tiles can be different between
levels. Tiles
are not
required to be in a regular grid and they may overlap. Each tile may have a different data
format. At
runtime only the
visible tiles from the appropriate level are decoded, loaded and cached for future usage.
The decoder for .mtm files is TLcdMultilevelTiledModelDecoder, which returns a
TLcdMultilevel2DBoundsIndexedModel (an already existing model) with a
TLcdMultilevelTiledModelDescriptor.
Requires Java2.
The new MTM data format can be used to display the background data for the world.
ImprovementLucy (LuciadLightspeed)
The Lucy package now contains an example build script (in 'build/lucy') that shows how Lucy can
be
deployed. Please refer to the Lucy developer's guide for more detailed information.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn and TLcyMapOverviewAddOn: configuration property 'backgroundDataFileName' now
supports
loading multiple data files.
ImprovementLuciadLightspeed
A new package, com.luciad.format.gml3, was added. It contains an API and implementation for
decoding,
encoding and representation of GML data. The API is based on the GML 3.1.0 specification, but
the
decoder is backwards compatible with older GML version, starting of GML 2.1.2.
The decoder is built upon the general LuciadMap XML framework. Custom readers and/or object
factories
can be plugged into the framework, extending the GML decoder to support custom application
schemas.
ImprovementLuciadLightspeed
A new package, com.luciad.format.xml, was added. It offers support for decoding of XML data in
an
event-driven way, comparable to SAX. The framework allows to plug multiple handlers in the
decoder,
each dedicated to one or more XML elements.
ImprovementLucy (LuciadLightspeed)
Opening a workspace now displays a progress dialog. If needed, this dialog can be disabled in
the 'workspace_addon.cfg' config file.
ImprovementLuciadLightspeed
Support is added to have an ILcdModel that can be indexed on values of ILcdFeatured objects.
These
classes were added for this purpose: com.luciad.model.ILcdFeatureIndexedModel,
ILcdFeatureIndexedAnd2DBoundsIndexedModel and TLcdFeatureIndexedAnd2DBoundsIndexedModel.
ImprovementLucy (LuciadLightspeed)
TLcyMain now logs the debug output to a file named 'lucy.log'. The name of this file can be
configured in 'lucy.cfg'. If no log file is specified, the logging will be disabled.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn, TLcyDAFIFAddOn, TLcyAIXMAddOn: support has been added to view airspaces in 3D.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdAWTUtil.centerWindow() and centerWindowOnScreen() now properly support multi
screen setups if Java 1.4 or above is available.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: the TLcdMIFModelEncoder that is registered to ILcyLucyEnv now produces
status events, providing feedback to the user about the progress.
ImprovementLucy (LuciadLightspeed)
TLcyAPSAddOn: a new addon that allows to view/edit the aircraft performance settings of a
procedure,
e.g. coming from an ARINC or DAFIF dataset. The aircraft performance settings are used to
calculate
the procedure trajectory. This addon can be used in two ways:
- through the new menu item 'Tools', 'Procedures', 'Set default aircraft performance':
this action
can be used to apply custom aircraft performance settings to all procedures that are
currently available on the active map.
- through the selection editor, which can be used to edit the aircraft performance
settings of a single procedure.
The functionality to view/edit the aircraft performance settings was partially present in the
ARINC and DAFIF addon, via
a special model customizer for procedure data. This model customizer also contained some extra
functionality to hide/display
individual procedures. Because this functionality is now covered by the new TLcyAPSAddOn and the
general model customizer from TLyToteAddon,
this special model customizer has been disabled.
ImprovementLucy (LuciadLightspeed)
TLcyGridAddon: Added maritime border grid.
TLcyDynamicLonLatGridLayer: Support for the new TLcdLonLatBorderGridLayer from LuciadMap.
TLcyGridLayerCodec: Updated to accommodate TLcdLonLatBorderGridLayer.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: The addon supports models encoded in multilevel tiled format (.mtm
files).
TLcyChangebaseMapColorAction: Updated findPointListPainter to work with multilevel tiled models,
as well.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: added property 'displayCircleCenters' in the dwg config file 'dwg.cfg'. It
allows to display and snap to circle centers in dwg files.
ImprovementLuciadLightspeed
TLcdSWAction now makes sure all key-value pairs are equal between the wrapped ILcdAction and the
javax.swing.Action
ImprovementLuciadLightspeed
TLcdLonLatFormatter now implements a new interface, ILcdLonLatFormatter.
ImprovementLuciadLightspeed
TLcdMultilevel2DBoundsIndexedModel now implements ILcdIntegerIndexedModel.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The labeling of 2D layers in the 3D terrain wizard or the layer configuration
panel has been improved:
a 2D layer label is now concatenated with the labels of its parent layers, if any. This
corresponds to the labeling in
the layer control panel.
ImprovementLuciadLightspeed
TLcdMAPModelDecoder now decodes features from the DAT files corresponding to the
geometries from the MAP files.
ImprovementLucy (LuciadLightspeed)
TlcyGridAddOn: This addon now integrates with the workspace management support in Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyMapRotationAddOn: This addon now integrates with the workspace management support in Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: This addon now integrates with the workspace management support in Lucy.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: The dialog now supports drag&drop for multiple map selections.
ImprovementLucy (LuciadLightspeed)
The layer control has been reworked. Instead of having the layer order panel and the
hierarchical
view visible at any time, you can now toggle between the two representations.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: The overview layer can now be labeled.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: It is now possible to have the addon create some vertical views when it
is
started. The number of vertical views it creates is controlled through the property
TLcyVerticalViewAddOn.verticalViewCount in the configuration file.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: Several methods were added to TLcyVerticalViewComponentFactory so
subclasses can
now override the naming mechanism for the vertical views, consistent with the way this is done
in
TLcyMapComponentFactory.
ImprovementLuciadLightspeed
TLcdBILModelDecoder now attaches TLcdBILModelDescriptor instances to decoded
models.
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn: support for holdings has been added.
ImprovementOGC Server
ILcdWFSFeatureType and its implementation TLcdWFSFeatureType have been extended
with methods to define keywords, which are included in the FeatureTypeList
section of the WFS capabilities if available.
ImprovementOGC Server
To ease the deployment of a WFS server, a sample Ant build script has been created:
build/wfs/deploy_wfs.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
To ease the deployment of a WCS server, a sample Ant build script has been created:
build/wcs/deploy_wcs.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
To ease the deployment of a WMS server, a sample Ant build script has been created:
build/wms/deploy_wms.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
The WMS server sample package has been extended with two new packages:
- samples.wms.server.config.editor: this package contains a new sample representing
a graphical configuration editor for the server capabilities.
- samples.wms.server.config.xml: this package contains the source of a decoder for
the server capabilities. This decoder uses the new LuciadMap decoder framework for XML
data, available in the package com.luciad.format.xml in LuciadMap. The decoder is
used by the samples.wms.server.config.editor sample to load server capabilities files.
The purpose of this code is to enable WMS server developers to extend the default
XML server configuration format without writing a whole new decoder. As in the past, one
can use a custom server capabilities decoder in the server by extending the method
createWMSCapabilitiesDecoder() in com.luciad.wms.server.ALcdOGCWMSCommandDispatcherFactory.
ImprovementOGC Server
A method createWCSCommandDispatcherInstance() has been added to
ALcdOGCWCSCommandDispatcherFactory. This method is used to instantiate a
TLcdWCSCommandDispatcher. By overriding this method, users can plug in their
own extensions of TLcdWCSCommandDispatcher.
ImprovementOGC Server
A method createWFSCommandDispatcherInstance() has been added to
ALcdOGCWFSCommandDispatcherFactory. This method is used to instantiate a
TLcdWFSCommandDispatcher. By overriding this method, users can plug in their
own extensions of TLcdWFSCommandDispatcher. Also note that this class was final
prior to version 6.0; this is now no longer the case.
ImprovementOGC Server
WCS DescribeCoverage responses now also contain the bounds of the coverage in its
native CRS, in addition to the already supplied WGS84 bounds.
ImprovementOGC Server
The GeoTIFF encoder used in the WCS now supports encoding of non-georeferenced
images. If the model being encoded does not have an ILcdGeoReference, the
resulting image will be a plain TIFF, without any GeoTIFF-specific tags.
ImprovementOGC Server
A new class com.luciad.ogc.common.log.TLcdOGCLogFilter has been added which can be used to log
servlet requests for licensing purposes on behalf of Luciad.
ImprovementOGC Server
The WMS server now supports the UPDATESEQUENCE parameter:
- The root element of the capabilities that are sent to the client contains
an attribute "updateSequence", indicating its current version.
- The optional UPDATESEQUENCE parameter in a GetCapabilities request will be decoded
and compared with the current update sequence value of the capabilities. The response
follows the OGC Web Map Service specification.
Through the API, the update sequence value of the capabilities can be retrieved/updated: the
class com.luciad.wms.server.model.ALcdWMSCapabilities has been extended with a method
getUpdateSequence(), and its implementation com.luciad.wms.server.model.TLcdWMSCapabilities
with a method setUpdateSequence(). The default configuration file decoder
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder sets an initial update sequence value
when it has created a new ALcdWMSCapabilities object. When the capabilities are updated through
the API (e.g. adding a new layer), the update sequence value should be updated accordingly,
to indicate a new capabilities version.
ImprovementOGC Server
A GetFeatureInfo request for a particular layer will now also be delegated to its child layers.
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now supports user-defined
parameter tables. The new jar lcd_grib_resources.jar contains standard
parameter tables that are supported by default, as well as a number of
additional parameter tables that can be loaded by the user.
ImprovementAviation Standards
A new ILcdARINCHandler implementation has been added to com.luciad.format.arinc.decoder to decode holdings: TLcdARINCHoldingHandler.
Decoded models have as model descriptor an instance of com.luciad.format.arinc.model.procedure.TLcdARINCHoldingModelDescriptor.
The interface ILcdARINCHoldingFeature represents the features of an ARINC holding object,
and the class TLcdARINCHoldingFeatureClassMapper keeps track of their corresponding classes.
ImprovementDefense Standards
TLcdVPFGeoSymProvider now has a static getInstance() method, replacing the non-static
getStyleProvider() method.
ImprovementDefense Standards
The existing VPF samples are replaced by two new ones, illustrating the use of the new code and
API changes in 6.0:
- The first sample illustrates the basic usage of VPF, i.e., how to set up a VPF model
decoder and layer factory, and show some VPF data on a map.
- The second sample illustrates the use of the new VPF tree and layer manager, included
with
the samples, and some other VPF functionality (use of the ModelType flag of the VPF decoder,
use of GeoSym, auto-bounds mode)
ImprovementDefense Standards
A new class, TLcdVPFPainterProvider, was added to the VPF API, enabling the use of VPF in a
way similar to other LuciadMap formats, i.e., by setting up a small layer factory that creates
a layer and sets a dedicated painter provider on it.
A sample layer factory is included with the samples, which should be preferred in new code above
the
deprecated TLcdVPFLayerFactory class. The new factory implements the ILcdGXYLayerFactory
interface, which was missing in the latter one.
ImprovementDefense Standards
The elements() method of the VPF on-the-fly model (corresponding to the "empty model" in
previous releases), does not return empty enumerations, as the empty model did. Instead,
at the moment the model is accessed via its elements() method or via its ILcdIntegerIndexedModel
interface, the model shall switch to in-memory mode. This change does not affect existing code,
using the deprecated TLcdVPFDatabaseTree or TLcdVPFLayerFactory classes.
ImprovementDefense Standards
New sample code was added, containing functionality for
- showing a VPF database structure in a tree, and letting users make a selection of
feature classes of the database
- synchronizing a selection of feature classes with a view, using a layer manager
that adds/removes VPF layers to the view whenever the selection has changed
This code replaces the VPF tree functionality included in the VPF API. The following classes
are from now on deprecated, in favour of the new sample code:
- TLcdVPFDatabaseTree
- TLcdVPFDatabasePanel
- TLcdVPFLayer
- TLcdVPFLayerFactory
These classes remain their functionality, but should no longer be used in new code.
ImprovementDefense Standards
The MemoryUsage property on the TLcdVPFModelDecoder class has become deprecated, as it wasn't
used
at all by the decoder (which memory usage model to use, used to be decided at the level of the
TLcdVPFDatabaseTree and TLcdVPFLayerFactory). The VPF model decoder now has a property
ModelType,
which can be used to control the memory usage and performance of a VPF model. It replaces the
corresponding functionality in the TLcdVPFDatabaseTree and TLcdVPFLayerFactory classes, as these
classes have become depreacted.
ImprovementDefense Standards
A number of methods were added to TLcdVPFDatabaseGroup, TLcdVPFDatabase, TLcdVPFLibrary and
TLcdVPFFeatureClass, to facilitate browsing through the VPF structure:
- TLcdVPFDatabaseGroup.getDescription()
- TLcdVPFDatabase.getLibraries()
- TLcdVPFDatabase.getLibraries(ILcdBounds)
- TLcdVPFLibrary.getPathName()
- TLcdVPFLibrary.getCoverages()
- TLcdVPFCoverage.getPathName()
- TLcdVPFFeatureClass.getCoverage()
The following methods are deprecated in favour of the new ones, but remain their functionality:
- TLcdVPFLibrary.retrieveLibraries()
- TLcdVPFLibrary.retrieveLibraries(ILcdBounds)
- TLcdVPFFeatureClass.getVPFCoverage()
ImprovementDefense Standards
All decodeXXX methods of TLcdVPFDatabase and TLcdVPFLibrary are now called automatically
the first time they're needed - they no longer have to be called manually by users.
These methods are made deprecated, but still remain their functionality, i.e., all existing
code should behave as before.
ImprovementMaritime Standards
Support for AML (Additionally Military Layers) data was added. AML object and attribute
classes
are available in the object and attribute class maps. The
TLcdS57ModelDecoder.canDecode(String)
method was refined to be able to differentiate between AML and S-63 files. A sample
demonstrating how to load AML data and create a custom symbology was also added.
ImprovementMaritime Standards
The S-57 decoder now supports ARCC and AR2D records.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: When a layer was dragged below the map to show the table view, and that layer was
removed, but not the table tab, and the workspace was saved and loaded, a NullPointerException
was
thrown if the checkboxes next to the table were used.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: Menu accelerator keys (shortcuts) assigned to areas of interest are
now preserved after saving and loading the workspace.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn now displays a message if no or multiple objects are selected.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the 3D view now properly displays shapes within nested groups.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: model reference chooser dialog now has 'Ok' button as its default
button.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: if individual dted tiles were read (.dt1, .dt0, ... files), their
layer
state (e.g., visible) was not stored in the workspace.
Bug fixLucy (LuciadLightspeed)
Removed com.luciad.lucy.map.TLcyMapComponent.get/setTreeLayerControl() and
com.luciad.lucy.addons.redlining.TLcyRedliningAddOn.getRedliningLayerFactory.
This should not cause any problems as the parameters/return types were obfuscated anyway.
Bug fixLucy (LuciadLightspeed)
When a data file (referred to by a workspace, some objects of that data file selected) is
replaced
by an empty file and that workspace is read, it used to throw a NullPointerException.
Bug fixLuciadLightspeed
TLcdMercator now returns an empty array for boundaryLons() when the latitude passed is outside
the latitude
limit
(89.5 degrees).
TLcdLambertConformal now only returns boundaryLons if the latitude passed is within the latitude
limits. Outside
these
limits an empty array is returned.
Bug fixLuciadLightspeed
TLcdGXYEditController did not take into account other selected objects when
setUseEditingBoundsForRepaint was
set to
true. When multiple objects were selected and one of the selected objects was moved, only the
object touched by
the
mouse was moved while dragging the mouse. When the mouse was released, all objects selected were
moved.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: Fixed ArrayIndexOutOfBoundsException when the table header was clicked in the
gray
space next to the rightmost column.
Bug fixLucy (LuciadLightspeed)
TLcyMain: Fixed '... not on dispatch thread ...' warning when workspaces are disabled. The
'plugInto' method of the addons is now invoked on the AWT Event dispatching thread (instead of
main
thread), decoding addons is still on the main thread that started the application.
Bug fixLuciadLightspeed
TLcdNoWarpRasterPainter and TLcdNoWarpMultilevelRasterPainter now work correctly
when using an ILcdGXYViewXYWorldTransformation with non-uniform scaling on the
X and Y axes.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the redlining layer combo box no longer relies on the behavior of issue 2012
(see Core).
Bug fixLucy (LuciadLightspeed)
When Lucy is started in FRAME_MODE, it no longer displays the big black 'Lucy' label.
Bug fixLucy (LuciadLightspeed)
Accelerator keys can now be assigned to menu items (both in config files and through
programming),
e.g. ctrl O for File|Open.
Bug fixLuciadLightspeed
TLcdInputStreamFactory now provides a global flag to switch off the use of Java
NIO. This allows to avoid input files (typically raster files) being locked by
the NIO code, preventing them to be modified or removed in Windows.
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn: DAFIF objects can now be viewed in a table using the default model customizer
(see TLcyToteAddOn).
Bug fixLuciadLightspeed
TLcdMIFModelDecoder now properly sets the feature classes in the
TLcdMIFModelDescriptor.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Restoring a workspace no longer causes this addon to throw an
java.lang.ArrayIndexOutOfBoundsException sometimes.
Bug fixGraph and Routing Engine
A bug, causing the partitioned routing algorithm not to find the shortest route
in some cases, was fixed.
Bug fixOGC Server
Fixed an issue in TLcdOGCFilterDecoder that caused incorrect decoding of
the upper boundary value of PropertyIsBetween elements.
Bug fixDefense Standards
Some large models which caused the VPF model decoder to throw an IllegalArgumentException,
when running in full-model mode, can now be decoded correctly.
Bug fixDefense Standards
VPF no longer throws an exception or blocks when no DQT file is available and the
getDataQualityDescriptor() method is executed on a database, library or coverage.
Bug fixDefense Standards
The paths to the GeoSym resources in the GeoSym resources library are now added as defaults to
the VPF code. It is no longer necessary to explicitly initialize GeoSym paths. Existing code,
relying on the old default paths, will not be affected by this change.
Bug fixDefense Standards
When using the new sample tree, an exception is no longer thrown when switching from an
in-memory
model to an on-the-fly model (a NullPointerException was thrown in some cases).
Bug fixDefense Standards
Fitting works now with the new samples in JDK1.2.
Bug fixDefense Standards
The new samples no longer flicker when using JDK1.2.
Bug fixDefense Standards
The new samples can deal with spaces in filenames.
Bug fixDefense Standards
VPF now supports uppercase names for all files.
Bug fixMaritime Standards
The decoder now verifies explicitly whether the end of the input stream has been reached,
thereby no longer causing an OutOfMemoryException when reading corrupt S-57 files.
Bug fixMaritime Standards
The S-52 default style (a purple question mark and line) is now initialized correctly in the
S-52 symbology.
Upgrade considerationLuciadLightspeed
TLcdContourFactory now creates ILcdValuedPolygons objects based on TLcdXYFloatPolygon instead of
TLcdLonLatFloatPolygon
in the method createContour(). If you require ILcdValuedPolygons objects based on
TLcdLonLatFloatPolygon use
the new TLcdLonLatContourFactory in the package com.luciad.geometry.ellipsoidal instead.
Upgrade considerationLuciadLightspeed
ILcdGXYView has been extended with a method
setXYWorldReference( ILcdXYWorldReference aXYWorldReference, boolean aRepaint, boolean
aAdjusting);
The method with aAdjusting parameter was missing from the interface. It has been added to be
consistent
with setViewOrigin, setWorldOrigin and setScale.
Upgrade considerationLuciadLightspeed
ILcd2DEditablePointFactory and ILcd3DEditablePointFactory and their implementations
TLcdLonLatPointFactory and TLcdXYPointFactory, and
TLcdLonLatHeightPointFactory and TLcdXYZPointFactory, have been removed.
The factories were used in TLcd2DEditablePointList/TLcd3DEditablePointList to create new
ILcdPoint from
coordinates
given and could be set with a static method.
TLcd2/3DEditablePointList has a protected method create2/3DEditablePoint which by default
returns a
TLcdXY(Z)Point. This method should be overwritten to simulate setting another
ILcd2DEditablePointFactory.
In the LuciadMap API this is done in the ALcd2/3DEditablePolyPoint. The extension
TLcdLonLatPolypoint
(and its extensions TLcdLonLat(Height)Polygon and TLcdLonLat(Height)Polyline) has been adapted
to create
TLcdLonLat((Height)Point objects on insertion of new points through the
coordinates. Since this was the only use of the ILcd2/3DEditablePointFactory in the LuciadMap
API, and all
extensions of
ALcd2/3DEditablePolyPoint have a constructor with an ILcd2/3DEditablePointList parameter,
adapting your code
consists of constructing the ALcd2DEditablePolyPoint with a TLcd2DEditablePointList that returns
the same
ILcd2DEditablePoint as your factory would. An example for LonLatPolygons is
private class MyLonLatPointFactory implements ILcd2DEditablePointFactory {
public ILcd2DEditablePoint create2DEditablePoint(double aX, double aY) {
return new MyLonLatPoint( aX, aY );
}
}
TLcd2DEditablePointList.set2DEditablePointFactory(new MyLonLatPointFactory());
TLcdLonLatPolygon polygon = new TLcdLonLatPolygon();
becomes
private class MyLonLatPointList extends TLcd2DEditablePointList {
protected ILcd2DEditablePoint create2DEditablePoint(double aX, double aY) {
return new MyLonLatPoint( aX, aY );
}
}
TLcdLonLatPolygon polygon = new TLcdLonLatPolygon(new MyLonLatPointList());
This fix alleviates the user of having to set the point factory for the LuciadMap
implementations, which
could result in the TLcdLonLatPolygon containing TLcdXYPoint objects, for example.
Upgrade considerationLuciadLightspeed
ILcdGXYView has a missing method added. All properties except XYWorldReference influencing the
'position' of the
view (scale, viewOrigin, worldOrigin) could be set using a method with 3 parameters, the
property, a boolean
indicating whether the view should be repainted and a boolean indicating whether other property
changes would
follow.
Upgrade considerationLuciadLightspeed
LuciadMap packaging has changed slightly:
- The distribution will now unzip to LuciadMap_X.Y.Z, where X.Y.Z are the major, minor
and patch
number of the
release.
-
The LuciadMap beans jar, lcd_beans.jar is no longer packaged in a separate zip file. It is
now located
in the
lib directory in LuciadMap zip.
-
Third party jars no longer have prefixes prepended to designate their use in LuciadMap, for example
raster_jai_core.jar
is now jai_core.jar. The use of third party jars is now documented in the prerequisites
pages of the
HTML
documentation (Technical Notes -> Prerequisites).
Upgrade considerationLuciadLightspeed
The class com.luciad.wms.client.model.ALcdWMSProxy has been extended with two new abstract methods to
control an image caching property: setCacheImage() and isCacheImage(). Implementations of ALcdWMSProxy
are recommended to take this property into account.
Upgrade considerationLucy (LuciadLightspeed)
TLcyJavaHelpAddOn: This addon and its third party jar (lucy_jh.jar) have been removed. In case
anyone relies on the presence of this addon, here is the source code:
public class TLcyJavaHelpAddOn extends ALcyDefaultAddOn {
public void plugInto( ILcyLucyEnv aLucyEnv ) {
aLucyEnv.setHelpManager( new ALcyHelpManager(){
public String getHelpIDString( Component aComponent ) {
return CSH.getHelpIDString( aComponent );
}
public void putHelpIDString( Component aComponent, String aHelpID ) {
CSH.setHelpIDString( aComponent, aHelpID );
}
} );
}
}
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn and TLcyMapOverviewAddOn: the zoom controller now drags a rectangle from the left
top to the right bottom, instead of from the center to the outside. This change can easily be
reverted by adapting the configuration property 'TLcyMapAddOn.zoomController.dragCentered' for
the TLcyMapAddOn and property 'TLcyMapOverviewAddOn.zoomController.dragCentered' for the
TLcyMapOverviewAddOn.
Upgrade considerationLucy (LuciadLightspeed)
Lucy now needs Java 1.4 or above. Older versions (3.x, 4.x and 5.x) remain compatible with Java
1.3.
Upgrade considerationLuciadLightspeed
Some events were fired with property names not following the beans conventions. This is now
fixed for:
-
TLcdGXYArcBandPainter: lineStyle, fillStyle,
-
TLcdGXYArcPainter: lineStyle,
-
TLcdGXYBufferPainter: drawAxis, fillStyle, lineStyle,
-
TLcdGXYCirclePainter: fillStyle, lineStyle,
-
TLcdGXYEllipsePainter: fillStyle, lineStyle,
-
TLcdGXYLonLatHeightBufferPainter: drawAxis, fillStyle, lineStyle,
-
TLcdGXYPointListPainter: fillStyle, lineStyle,
-
TLcdGXYTextPainter: fillStyle, fontStyle,
-
TLcdLonLatGridPainter: color, labelColor, labeled, labelFont, lonLatFormatter,
slantedLabels, zeroColor,
-
TLcdUTMZonePainter: automaticRescaling, color, colorScales, cornerLabelColor, labelColor,
labeled,
labelFont,
maxZoomForGridDetails, minimalZoomForLabels (was ScaleForLabels), paintGridWhenLabeling,
quickDraw,
scaled
(was Scales), scaleDistance, UTMCoordinateSeparator.
Note that this change will not have any effect at compile time, only at runtime. Wherever the
property names are
checked without ignoring the case, the code will have to be adapted to either ignore the case or
to use the same
case
as the property names above.
Upgrade considerationLucy (LuciadLightspeed)
When a blocking START_BUSY status event is now received by the default frontend
com.luciad.lucy.TLcyMain, it immediately blocks the user interface, where it used to delay this
for 1 second. The delay can be configured however by using the command line option
'busyCursorDelay' or by specifying that property in 'lucy.cfg'. By setting this value to 1000,
the original behavior can be enabled. Please refer to the reference documentation of
com.luciad.lucy.TLcyMain.main for details on configuring this option.
Upgrade considerationLuciadLightspeed
com.luciad.view.TLcdLayeredSupport.addLayeredListener used to fire a LAYER_REMOVED and
LAYER_ADDED
event for every layer, but only to the ILcdLayeredListener that was just added. These events are
no longer fired. For backward compatibility reasons, the old behavior can still be enabled by
invoking this method:
com.luciad.view.TLcdLayeredSupport.setFireInitialEvents( true )
or by setting the system property 'com.luciad.view.TLcdLayeredSupport.fireInitialEvents' below
to
'true'. A system property can be set when Java is started using a command line parameter, for example:
java -Dcom.luciad.view.TLcdLayeredSupport.fireInitialEvents=true -classpath ...
Upgrade considerationLuciadLightspeed
TLcdMapLonLatGridLayer now fires property change events with property names starting with
lowercase characters.
This will
only show up at runtime, not at compile time. When checking for the property names use
equalsIgnoreCase or adapt
the
property name.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: When using 'FRAME_MODE' (see lucy.cfg), no longer an empty frame is
created
for the layer control. This was happening because in FRAME_MODE, every created application pane
was
made visible some time after it was created. This code has been removed: it is left to the user
of
the API to make the application pane visible, and to pack it if required. An example of how to
do
this can be found in samples.bestpractice.lucy.TxxxShowFlightPlanApplicationPanelAction
Upgrade considerationReal-time Engine
TLcdSimulator fired events which were not according to the standard. Events for these properties used to
start with capitals: maxCPUUsage, delayBetweenUpdateMs. This change will not have an effect at compile time, but may
appear at runtime. Adapt the property change listeners to either ignore the case or to use the new property name.
Upgrade considerationAviation Standards
com.luciad.ais.model.ILcdFeatureIndexedModel, ILcdFeatureIndexedAnd2DBoundsIndexedModel and
TLcdFeatureIndexedAnd2DBoundsIndexedModel were moved to the Core in package com.luciad.model.
This means any code referring these classes will no longer compile. By just making
these search and replaces in (the import statements of) the source code, things will compile again:
- "com.luciad.ais.model.ILcdFeatureIndexedModel" -> "com.luciad.model.ILcdFeatureIndexedModel"
- "com.luciad.ais.model.ILcdFeatureIndexedAnd2DBoundsIndexedModel" -> "com.luciad.model.ILcdFeatureIndexedAnd2DBoundsIndexedModel"
- "com.luciad.ais.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel" -> "com.luciad.model.TLcdFeatureIndexedAnd2DBoundsIndexedModel"
5.3
5.3.19
ImprovementInfrastructure Standards
com.luciad.format.dgn.ILcdDGNModelDecoder and its implementations have a new
property useFloat that can specify to store decoded coordinates in float
arrays, for reducing memory usage of the decoded models.
Bug fixLuciadLightspeed
The previous fix for this bug cased a new bug: the origin of the projection was not set
correctly when
constructing
a TLcdPolarStereographic for the north pole.
5.3.18
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now decodes metadata, which can be found through the
decoded TLcdGeoSPOTModelDescriptor and TLcdGeoSPOTRaster instances.
ImprovementAdvanced Raster Connectors
The native ECW library is now available for Linux as well.
It has been reduced to a single shared library on all platforms.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: the name of the tab now equals the name of the menu item.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModel now correctly updates its spatial index after allElementsChanged has
been called.
Bug fixDefense Standards
The TLcdVPFLayerFactoryModel.setLabelIndices() and getLabelIndices() methods work correctly now,
and can be used to configure the label indices to be used for the painting of VPF features.
Bug fixDefense Symbology
The MIL-STD 2525b and APP-6A API can now be used again in a headless environment. This was not possible
from version 5.3 on.
Upgrade considerationLuciadLightspeed
Following controllers and action were registered with TLcdBeanManager by default when using the
parameterless
constructor:
- TLcdGXYDragRectangleController
- TLcdGXYEditController
- TLcdGXYNewController
- TLcdGXYNoopController
- TLcdGXYOverviewController
- TLcdGXYPanController
- TLcdGXYSelectController
- TLcdGXYZoomController
- TLcdMapGridRulerController
- TLcdMapRulerController
- TLcdGXYSetControllerAction
To avoid memory leaks, controllers are now no longer registered as beans with TLcdBeanManager by
default.
All constructors with the aRegisterInstance parameter are deprecated to discourage their use.
5.3.17
Bug fixLuciadLightspeed
Unscaled text can now be scaled and rotated again. This was not possible from version 5.3 on.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModelList no longer performs overly strict checks on the types of bounds of
models that are
added.
Bug fixLuciadLightspeed
TLcdCADRGModelDecoder and TLcdCADRGImageDecoder now have expandColorMap properties to expand
CADRG color maps of
decoded tiles to a full ARGB color model. This avoids problems in case of clashing color maps.
Bug fixOGC Server
The class com.luciad.wms.server.TLcdOGCWMSCommandDispatcher used the ISO-8859-1 character encoding to send
XML data (e.g. the capabilities) to the client instead of UTF-8, while the XML declaration tag
in the data itself always specified the UTF-8 encoding. This caused problems when special
characters were used, like the degree symbol. UTF-8 is now used as default character encoding.
Bug fixAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMRunwayHandler now uses Double instances for the features
ILcdRunwayFeature.WIDTH and ILcdRunwayFeature.LENGTH instead of Float instances, which was not correct according
to the documentation of these features.
5.3.16
ImprovementLuciadLightspeed
The package om.luciad.format.mif.gxy now supports MIF custom bitmap symbols.
ImprovementAviation Standards
The class com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter has been extended with a new method
setClassIndex(int), which is used to set the index of the airspace class feature (ILcdAirspaceFeature.CLASS).
The airspace class feature will be used in the label to display the actual class instead of the airspace type feature,
if the type feature has as value TLcdAirspaceType.CLASS.
ImprovementDefense Symbology
Support for a new symbol has been added to the MIL-STD 2525b API: the symbol has as unique code
S*Z*------***** (hierarchy is 1.X), and it represents a general warfighting symbol
with an unknown battle dimension.
ImprovementDefense Symbology
An enhancements has been made in the visualization of the APP-6A symbology: the icon
for Maintenance Collection Point (2.X.2.4.1.8) was not available.
Bug fixLuciadLightspeed
When a new polyline or polygon was created with the TLcdGXYPointListPainter snapping of the
first point to other
points
is now possible again.
Bug fixLuciadLightspeed
TLcdMAPModelDecoder now correctly decodes rectangles with swapped corner coordinates.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModel now returns the full 3D bounds instead of just the 2D bounds.
Bug fixLuciadLightspeed
TLcdLonLatFormatter now works correctly when created with the parameterless constructor.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder now checks whether a model is featured and whether it can export the feature
classes in the
canExport
method.
Bug fixOGC Server
The class com.luciad.wms.server.TLcdOGCWMSCommandDispatcher ignored the optional TRANSPARENT parameter
in a GetFeatureInfo request, making it impossible to retrieve an image with a transparent background using
this type of request. This issue has been fixed.
Bug fixWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder now properly uses its input
stream factory for decoding the raster data.
Bug fixAviation Standards
An issue has been fixed in the class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath, which sometimes
resulted in the lack of a point on the boundaries of a discretized airspace segment of type SUB_POINT_LIST (e.g. a geoborder).
Bug fixDefense Standards
projection parameters are now read correctly from the library's GRT file.
5.3.15
ImprovementDefense Symbology
The interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle,
and their respective implementations TLcdDefaultMS2525bStyle and TLcdDefaultAPP6AStyle are extended with new methods
to control the affiliation
color of symbols:
-
setAffiliationColor(int, Color), getAffiliationColor(int): Sets/returns the color for a given affiliation. These
colors will be used for
all icon symbols; for line symbols, affiliation colors are only used when the affiliation color mode has been
enabled (see next item).
-
setAffiliationColorEnabled(boolean), isAffiliationColorEnabled(): When this mode is enabled, the color
for unframed icon symbols, line symbols and off-set lines of icon symbols will automatically be adapted to the
affiliation of a symbol.
If the affiliation is not determined, the color returned by getColor() will be used; otherwhise,
the affiliation color has precedence (see method getAffiliationcolor(int)).
Note that the unframed icon symbols were always painted black in the past, regardless of the getColor()
property, which was not entirely correct.
Note that the setColor(Color) and setAffiliationColorEnabled(boolean) methods don't have
any effect regarding Weather symbology (APP-6A: 3.X, MIL-STD 2525b: 5.X): this symbology defines
its own colors (e.g. weather fronts).
ImprovementDefense Symbology
The interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle,
and their respective implementations TLcdDefaultMS2525bStyle and TLcdDefaultAPP6AStyle are extended with new methods
to enabled/disable the
automatic scaling of the font size for labels of icon symbols: setLabelFontScalingEnabled(boolean),
isLabelFontScalingEnabled().
If enabled, the font size for labels around icon symbols will be scaled according to the size of the symbol. If
disabled, the original
size of the font returned by the method getLabelFont() will be used.
Bug fixLuciadLightspeed
The methods createImageInputstream() and createImage() in com.luciad.wms.client.model.ALcdWMSProxy
now check whether there are any visible styled named layer objects registered before executing a GetMap request.
If not, no request will be sent anymore because this was unnecessary. To provide backwards compatibility,
createImage() will return null in that case and createImageInputstream() will throw an IOException,
which is in both cases similar to the behaviour when a service exception report is received from the server.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: When a second checkbox is enabled in the panel of the preview addon,
the time jumps to the begin time. The time slider in the preview panel did not update
correctly to this event.
Bug fixLuciadLightspeed
Labels for arcbands are painted at the same location regardless of whether the arcband is
selected or not.
Bug fixLuciadLightspeed
Some ILcdGXYPainter implementations did not fire property change events consistently when a
property was set.
This is
now adapted for the following properties:
-
ALcdGXYPainter: displayName,
-
TLcdGXYArcBandPainter: createCounterClockwise, drawCenterWhenSelected, mode, paintCache
-
TLcdGXYArcPainter: drawCenter, drawCenterWhenSelected, paintCache, snapIcon,
-
TLcdGXYAreaShapeListPainter: defaultColor, selectionColor,
-
TLcdGXYBoundsPainter: paintCache, snapIcon,
-
TLcdGXYBufferPainter: creationBufferWidth, mode, paintCache, snapIcon
-
TLcdGXYCirclePainter: displayCenter, displayCenterOnSelection, distanceFormat, editingLabel,
editingLabelBackground,
editingLabelFilled, editingLabelFont, editingLabelForeground, editingLabelFrame, mode,
paintCache,
pointFormat,
snapIcon
-
TLcdGXYEllipsePainter: drawCenter, mode, paintCache, snapIcon,
-
TLcdGXYIconPainter: icon, selectionIcon, snapIcon,
-
TLcdGXYLonLatHeightBufferPainter: creationBufferWidth, mode, paintCache,
-
TLcdGXYPointListPainter: fillSelection, mode, moveOnlyOnEdit, paintCache, snapIcon,
-
TLcdGXYPointShapeListPainter: defaultIcon, selectionIcon,
-
TLcdGXYPolylineShapeListPainter: defaultColor, paintCache, selectionColor,
-
TLcdGXYShapeListPainter: editTouchedOnly, shapeGXYPainterProvider, shapeGXYEditorProvider
-
TLcdGXYTextPainter: creationMode, framed.
Bug fixAviation Standards
The geopath leg types GEODESIC_LINE, RHUMB_LINE, ARC and ARC_BY_EDGE in com.luciad.ais.shape.ILcdGeoPathLeg
mentioned in their documentation that the geometry was determined by the previous leg and the current leg,
which was not correct and did not correspond to the implementation in TLcdDiscretizedLonLatGeoPath.
This implementation uses the next leg instead of the previous leg to determine the geometry.
The documentation in ILcdGeoPathLeg has been updated accordingly.
5.3.14
ImprovementDefense Symbology
A number of enhancements have been made in the visualization of the APP-6A and MIL-STD 2525b symbology:
-
Some point symbols erroneously contained example labels, like a number, on the place where labels for particular
modifiers should be drawn.
This was not correct and caused sometimes an overlap between the example label and a configured label. The
following symbols have been adapted:
-
Point Of Interest (APP-6A: 2.X.2.1.1.1.1, MIL-STD 2525b: 2.X.2.1.1.2.4): the example character has been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Air Control Point (APP-6A: 2.X.2.1.2.1.1, MIL-STD 2525b: 2.X.2.2.1.1): the example number has been removed
from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Communications Checkpoint (APP-6A: 2.X.2.1.2.1.2, MIL-STD 2525b: 2.X.2.2.1.2): the example number has been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Target reference point (APP-6A: 2.X.2.1.4.1.1, MIL-STD 2525b: 2.X.2.4.1.1): the example number has been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Engineer Regulating Point (APP-6A: 2.X.2.2.2.2.8, MIL-STD 2525b: 2.X.3.2.2.8): the example number has been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Decontamination Point symbols (APP-6A: 2.X.2.2.4.11.1/2/3/4/5/6/7, MIL-STD 2525b: 2.X.3.4.8.1/2/3/4/5/6/7):
the example numbers have been
removed from the icons. The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation
will be used as label on their positions.
-
Point/Single Target (APP-6A: 2.X.2.3.1.1.1, MIL-STD 2525b: 2.X.4.1.1.1): the example text/numbers have been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
in the upper-right corner.
The modifier ILcdAPP6ACoded.sAdditionalInformation / ILcdMS2525bCoded.sAdditionalInformation will be used
for the labels in the
lower-left and lower-right corners; by using the separator character ':' in this modifier, one can create
these two labels:
the part before ':' will appear in the lower-right corner, while the part after ':' will appear in the
lower-left corner.
-
Circular target (APP-6A: 2.X.2.3.1.1.2, MIL-STD 2525b: 2.X.4.1.1.3): the example text/number has been
removed from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
in the center of the circle.
-
Fire Support Station (APP-6A: 2.X.2.3.1.2, MIL-STD 2525b: 2.X.4.1.2): the example number has been removed
from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Nuclear Target (APP-6A: 2.X.2.3.3.9, MIL-STD 2525b: 2.X.4.1.1.2): the example text/numbers have been removed
from the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Combat Service Support Point symbols (APP-6A: 2.X.2.4.1.1/2/3/4/5/6/7/8/9/10/11/12/13, MIL-STD 2525b:
2.X.5.1.1/2/3/4/5/6/7/8/9/10/11/12/13):
the example numbers have been removed from the icons. The modifier ILcdAPP6ACoded.sUniqueDesignation /
ILcdMS2525bCoded.sUniqueDesignation will
be used as label on their positions.
-
Ammunition Point symbols (APP-6A: 2.X.2.4.1.15.1/2, MIL-STD 2525b: 2.X.5.1.15.1/2): the example numbers have
been removed from the icons.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on their positions.
-
Checkpoint (APP-6A: 2.X.2.5.2.1, MIL-STD 2525b: 2.X.2.1.1.8.1): the example number has been removed from the
icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Contact Point(APP-6A: 2.X.2.5.2.2, MIL-STD 2525b: 2.X.2.1.1.8.2): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Decision Point (APP-6A: 2.X.2.5.2.4, MIL-STD 2525b: 2.X.2.1.1.8.4): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Linkup Point (APP-6A: 2.X.2.5.2.5, MIL-STD 2525b: 2.X.2.1.1.8.5): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Passage Point(APP-6A: 2.X.2.5.2.6, MIL-STD 2525b: 2.X.2.1.1.8.6): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Rally Point (APP-6A: 2.X.2.5.2.7, MIL-STD 2525b: 2.X.2.1.1.8.7): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Release Point (APP-6A: 2.X.2.5.2.8, MIL-STD 2525b: 2.X.2.1.1.8.8): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Start Point (APP-6A: 2.X.2.5.2.9, MIL-STD 2525b: 2.X.2.1.1.8.9): the example number has been removed from
the icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Waypoint (APP-6A: 2.X.2.5.2.10, MIL-STD 2525b: 2.X.2.1.1.8.10): the example number has been removed from the
icon.
The modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation will be used as label
on its position.
-
Point Of Departure (APP-6A: 2.X.2.1.5.1.1, MIL-STD 2525b: 2.X.2.5.1.1): this point symbol was not painted
correctly and has been updated.
-
Supply Point symbols (APP-6A: 2.X.2.4.1.14.1/2/3/4/5/6/7/8/9/10/11, MIL-STD 2525b:
2.X.5.1.14.1/2/3/4/5/6/7/8/9/10/11): the label
for the modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation erroneously overlapped
with the graphic inside
the point symbol. This has been fixed.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: when the control buttons in the layer selection dialog were used to change
the layer order
without having selected one, an exception occurred. This has been fixed.
Bug fixLucy (LuciadLightspeed)
When an exception occurred during workspace decoding, it was sometimes masked by an IOException
thrown by the Lucy framework as a result of the original exception. The original exception was
lost
however.
Bug fixLucy (LuciadLightspeed)
It is now documented in the developer guide how custom ILcdModel's can be saved using the
'File|Save' and 'File|Save As' menu items.
Bug fixLucy (LuciadLightspeed)
All threads now show an error dialog in case an uncaught exception occurs. This allows the
application to recover gracefully from an OutOfMemoryError when reading large data files.
Bug fixDefense Symbology
For a specific setup (Linux, JDK 1.4.2), loading an icon symbol via the APP-6A and MIL-STD 2525b API
could lead to a deadlock. This issue has been fixed.
5.3.13
ImprovementDefense Symbology
A number of enhancements have been made in the visualization of the APP-6A and MIL-STD 2525b symbology:
-
Minimum safe distance zone (APP-6A: 2.X.2.2.4.1, MIL-STD 2525b: 2.X.3.4.1): the circles are now also painted
when
one of the points is being edited or when the symbol is being translated.
-
Fortified Area (APP-6A: 2.X.2.1.1.3.2.8, MIL-STD 2525b: 2.X.2.1.3.4): the line segments are now connected,
resulting
in a fully closed area. A label for the modifier ILcdAPP6ACoded.sUniqueDesignation /
ILcdMS2525bCoded.sUniqueDesignation has been added.
-
Encirclement (APP-6A: 2.X.2.1.6.1.1.1, 2.X.2.1.6.1.1.2; MIL-STD 2525b: 2.X.2.6.2.4):
A label for the modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation has been added.
-
Obstacle free area (APP-6A: 2.X.2.2.1.9):
This symbol was erroneously painted as a point in the past; it is now painted as an area.
-
Obstacle restricted area (APP-6A: 2.X.2.2.1.9.1):
This symbol was erroneously painted as a point in the past; it is now painted as an area.
-
Circular target (APP-6A: 2.X.2.3.1.1.2, MIL-STD 2525b: 2.X.4.1.1.3): this symbol is now represented as a circle
with
two points - circle center and circle point indicating the radius - instead of an icon. This makes it possible
to change the radius. A label for the modifier ILcdAPP6ACoded.sUniqueDesignation has been added, following
MIL-STD 2525b.
-
Fire Support Coordination Line (APP-6A: 2.X.2.3.2.1, MIL-STD 2525b: 2.X.4.2.1): By using the separator character
':' in the modifier
ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation, one can create two labels: the text
before ':' will be
shown before the letters FSCL, while the other part of the text will be shown after the letters PL. Possible
label overlappings have been removed.
-
Coordinated Fire Line (APP-6A: 2.X.2.3.2.2, MIL-STD 2525b: 2.X.4.2.2): By using the separator character ':' in
the modifier
ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation, one can create two labels: the text
before ':' will be
shown after the letters CFL, while the other part of the text will be shown after the letters PL. Possible label
overlappings have been removed.
-
Restrictive Fire Line (APP-6A: 2.X.2.3.2.6, MIL-STD 2525b: 2.X.4.2.4): By using the separator character ':' in
the modifier
ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation, one can create two labels: the text
before ':' will be
shown after the letters RFL, while the other part of the text will be shown after the letters PL. Possible label
overlappings have been removed.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: when a .shp file was loaded (without an associated .sty file), empty
labels used to be drawn when labeling was enabled and after the layer properties button for that
layer was used.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: Now writes .ref files that can be read by any LuciadMap based
application,
not only by Lucy.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Exception "java.lang.IllegalArgumentException: null incompatible with
Text-specific
antialiasing enable key" was thrown when ILcyMapComponent.getMainGXYView was encoded using
TLcdGXYViewSVGEncoder.
Bug fixLucy (LuciadLightspeed)
When Lucy automatically provides an icon for a layer that does not have one by itself, and the
ILcdGXYPainterProvider of that TLcdGXYLayer was changed to an instance that is not a
ILcdGXYPainter,
a class cast exception occurred.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: The unit combo boxes are now properly initialized, including the very first
one.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly handles polyline
bulges larger than 1.
5.3.12
ImprovementLuciadLightspeed
The clipping done in com.luciad.view.gxy.TLcdAWTPath has been further improved
to avoid some spurious diagonal lines when zooming in a lot.
ImprovementLuciadLightspeed
The performance of TLcdSelectionSupport when selecting large numbers of objects has been
improved.
Bug fixLuciadLightspeed
TLcdUTMGridLayer did not have a model reference. It now returns the reference of zone 30 in the
northern
hemisphere.
Bug fixLuciadLightspeed
TLcdUPSGridLayer: the model on the layer did not have any model reference. It now has the
reference for the
northern
hemisphere. The layer also takes into account the icon set. The selected
objects method of the layer now returns an empty enumeration instead of null.
Bug fixAviation Standards
TLcdDAFIFLoader didn't work correctly under JDK 1.5 when a DAFIF source path was used that contained spaces.
Bug fixDefense Symbology
It was wrongfully not possible to add a point on the last segment of an MIL-STD 2525b area using the CTRL key.
5.3.11
ImprovementAviation Standards
The class com.luciad.format.aixm.decoder.TLcdAIXMModelDecoder makes it possible to set a custom ILcdInputStreamFactory,
but this ILcdInputStreamFactory was never used when performing an AIXM update operation.
This has been fixed.
Bug fixLuciadLightspeed
TLcdGXYLayerLabelPainter and TLcdGXYViewLabelPainter now handle multilabel painters correctly
(previously, an IndexOutBoundsException was thrown in some cases).
Bug fixLuciadLightspeed
TLcdAdvancedMapRulerController used to indicate a wrong measurement if the ruler controller was
deactivated, the projection was changed, the ruler was activated again and if it was set to
display
the projection plane distance.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly decodes the thickness
of LwPolyline objects.
5.3.10
ImprovementLuciadLightspeed
TLcdCADRGImageDecoder now accepts invalid transparent output pixel codes in
CADRG files.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: Added get/setLucyEnvState( int ). This allows custom frontends (see
TabbedPanesFrontendMain)
to set the correct state to ILcyLucyEnv (initializing, initialized, closing, ...).
ImprovementDefense Symbology
A number of enhancements have been made in the visualization of the APP-6A and MIL-STD 2525b symbology:
-
Boundaries (APP-6A: 2.X.2.1.1.2.1.1.1, 2.X.2.1.1.2.1.1.2, 2.X.2.1.1.2.1.1.3, 2.X.2.1.1.2.1.2, 2.X.2.1.1.2.1.3,
2.X.2.1.1.2.1.4; MIL-STD 2525b: 2.X.2.1.2.1):
The scaling of the hostile indicator "ENY" label and the echelon/unique designator labels has been improved, to
prevent overlapping.
By using the separator character ':' in the modifier ILcdAPP6ACoded.sUniqueDesignation /
ILcdMS2525bCoded.sUniqueDesignation, one
can create two labels: the text before ':' will be used at one side of the boundary, the other part of the text
at the other side.
-
Fort (APP-6A: 2.X.2.2.3.2; MIL-STD 2525b: 2.X.3.3.2):
This symbol was erroneously painted as a point in the past; it is now painted as an area with proper
decorations.
A label for the modifier ILcdAPP6ACoded.sUniqueDesignation / ILcdMS2525bCoded.sUniqueDesignation has been added.
-
Mined Area (APP-6A: 2.X.2.2.1.6.9; MIL-STD 2525b: 2.X.3.1.6.4):
The scaling of the mine indicator "M" and hostile indicator "ENY" has been improved.
A label for the modifier ILcdAPP6ACoded.sAdditionalInformation / ILcdMS2525bCoded.sAdditionalInformation has
been added.
-
Friendly encirclement (APP-6A: 2.X.2.1.6.1.1.1):
This symbol was erroneously painted as a point in the past; it is now painted as an area with proper
decorations.
-
Encirclement (APP-6A: 2.X.2.1.6.1.1.1, 2.X.2.1.6.1.1.2; MIL-STD 2525b: 2.X.2.6.2.4):
When the orientation of the area was counter-clockwise, the decorations were painted at the wrong side of the
polygon. This has been fixed.
-
Anti-tank ditch (APP-6A: 2.X.2.2.1.3.1):
This symbol was not painted correctly in the past; it is now painted as a polyline with proper decorations.
-
General minefields (APP-6A: 2.X.2.2.1.6.1, 2.X.2.2.1.6.2 ; MIL-STD 2525b: 2.X.3.1.6.2):
These areas are now filled with mines.
-
Anti-tank minefield (APP-6A: 2.X.2.2.1.6.5):
This symbol was erroneously painted as a point in the past; it is now painted as an area filled with mines.
A label for the modifier ILcdAPP6ACoded.sAdditionalInformation / ILcdMS2525bCoded.sAdditionalInformation has
been added.
-
Scatterable mines (APP-6A: 2.X.2.2.1.6.6; MIL-STD 2525b: 2.X.3.1.6.1):
This symbol was erroneously painted as a point in the past; it is now painted as an area filled with mines,
together with the symbol indicator "S".
Labels for the modifiers ILcdAPP6ACoded.sAdditionalInformation / ILcdMS2525bCoded.sAdditionalInformation,
ILcdAPP6ACoded.sDateTimeGroup / ILcdMS2525bCoded.sDateTimeGroup have been added.
Bug fixLuciadLightspeed
TLcdLonLatFormatter now correctly rounds the least significant digits again,
fixing a bug introduced in a previous minor update.
5.3.09
ImprovementLuciadLightspeed
TLcdSHPModelEncoder supports encoding in different character sets.
ImprovementLuciadLightspeed
The new TLcdLonLatBorderGridPainter paints a maritime-style grid around the map.
ImprovementLuciadLightspeed
TLcdRaster no longer tries to access a tile in its constructor, thus avoiding unnecessary
loading of tiles.
ImprovementLuciadLightspeed
TLcdGXYLayerLabelPainter and TLcdGXYViewLabelPainter have a new property
labelPriorityProvider. Its type is the new interface
ILcdGXYLabelPriorityProvider. It allows to specify priorities for labels that
are decluttered.
ImprovementLuciadLightspeed
TLcdJPLGeodeticDatumFactory can create a RPF93 geodetic datum and has an alias for RT90 added.
As a result model
references with EPSG codes 2154, 2400, 3019-3024, 4124, 4171, 4369, 4370, 4964, 4965 can now be
decoded by the
TLcdEPSGReferenceParser.
ImprovementLuciadLightspeed
TLcdEPSGReferenceParser supports EPSG code 2400.
ImprovementLuciadLightspeed
The EPSG resources have been updated to EPSG database version 6.8. For the update to have effect
the
new version of the lcd_epsg_resources.jar should be put in the classpath.
ImprovementLuciadLightspeed
Raster model decoders that support the forcedTransparencyIndex property now also apply it to
grayscale images.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: the layer combo box in the redlining toolbar now shows a tooltip with the
currently selected layer. This allows to easily read long layer names. The combo box is slightly
wider now.
ImprovementDatabase Connectors
The decoder now also supports reading features from other tables than the
table containing the geometries.
ImprovementDatabase Connectors
TLcdOracleSpatialModelDecoder now also supports reading features from other
tables than the table containing the geometries.
Bug fixLucy (LuciadLightspeed)
The split pane divider location between the map and the layer control was too far to the right
(wrt version 5.2) when no workspaces were used.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: It used to be possible to create workspaces that, when loaded again, gave this
error
message: "Opening workspace failed. Proportional location must be between 0.0 and 1.0".
Bug fixLucy (LuciadLightspeed)
TLcdVerticalViewAddOn: labels for points and the red cursor line are shown to the left of the
point/cursor if there is
not enought room on the right.
Bug fixLuciadLightspeed
TLcdLonLatHeightPolyline calculated its bounds in 2 instead of in 3 dimensions.
Bug fixLuciadLightspeed
Error message "Model changed received from model which is not contained in this view" used to be
displayed when a model changed event was fired for a model of which the layer was added twice and
removed
once (or just added more often than it was removed).
Bug fixLuciadLightspeed
The warping raster painters no longer paint ghosting artifacts in some
projections.
Bug fixLuciadLightspeed
The warping raster painters no longer produce blocky artifacts near the edges
of the projections. They also properly paint rasters that wrap around the
180-degrees meridian.
Bug fixLuciadLightspeed
TLcdImageIcon now has an implementation for hashCode.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder did not correctly decode polylineZ and polygonZ objects. As a result only
the first object
in the
SHP file was decoded.
Bug fixLuciadLightspeed
TLcdGXYSelectController clear the previous selection when dragging in ALTERNATE mode. It now
adds the objects
selected
in the rectangle to the current selection.
Bug fixLuciadLightspeed
TLcdGXYEditController now checks whether its selection is editable. If not, it reverts to the
behaviour of the
select
controller. This allows dragging a rectangle from within a polygon, which was previously not
possible, since the
edit controller would try to edit the selected polygon.
Bug fixLuciadLightspeed
TLcdWKTReferenceParser did not correctly decode Lambert Conformal projections.
Bug fixLuciadLightspeed
Switching poles in a TLcdPolarStereographic projection gave incorrect results.
Bug fixLuciadLightspeed
The rotational parameters for some geodetic datums in TLcdJPLGeodeticDatumFactory were
incorrect.
Bug fixLuciadLightspeed
The list of TLcdImageIcon objects created stored in TLcdImageIcon contained duplicates,
decreasing the caching
performance.
Bug fixLuciadLightspeed
All ILcdISO19115Entity implementations now uniformly implement ILcdCollectionFeaturedDescriptor.
Before, only ILcdISO19115Entity implementations with one or more multivalued features
implemented this
interface.
The implementation for classes without multivalued features delegates to
ILcdFeaturedDescriptor.getFeatureClass(int).
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: When a new ILcyMapComponent was added to the ILcyMapManager, it used to fire a
PropertyChangeEvent that the active map was changed before the event was fired that the map
was added. These events are now fired in the opposite order.
Bug fixLuciadLightspeed
TLcdMultivaluedRasterModelDescriptor has been fixed so the argument names of
its constructor reflect the correct order of source name, type name, and
display name.
Bug fixLuciadLightspeed
TLcdLonLatFormatter has been fixed to correctly format according to the
DEC_MIN_1, DEC_MIN_2, and NSWE2. The formatter also supports new formats
DEFAULT1, SHORT_DEC_DEG_x, SHORT_DEC_MIN_x, and SHORT_DEC_SEC_x.
Bug fixLuciadLightspeed
Each ALcdISO19103CodeList implementation that is not declared final now overrides the protected
method
addCode(ILcdISO19103Code)
to check whether the supplied code has the correct type. For example,
TLcdISO19115DateTypeCodeList
now only accepts TLcdISO19115DateTypeCode instances. If the check fails, an
IllegalArgumentException is thrown.
Bug fixLuciadLightspeed
TLcdPropertyCanvasSW no longer directly calls JComponent.paint.
Bug fixLuciadLightspeed
TLcdGXYPointListPainter and TLcdGXYBufferPainter will only accept snap targets when one of their
points is
touched. Point lists which are dragged by a segment over a point to which it can snap will no
longer trigger
painting a snap icon when no point of the point list is touched by the mouse.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Creating a new map (Tools|New|Map) and closing it now properly releases the memory
used by that map.
Bug fixOGC Server
WCS DescribeCoverage requests for an ILcdCoverageOffering with null bounds now
produce a descriptive error message rather than an exception.
Bug fixOGC Server
Closing the OutputStream object in a custom implementation of ILcdModelEncoder resulted in a
duplication of the result. This bug has been fixed.
Bug fixDefense Standards
TLcdNITFModelDecoder now correctly decodes the bounds of geodetic rasters
that wrap around the 180-degrees meridian.
Bug fixDefense Standards
TLcdUSRPModelDecoder now correctly decodes the position of ASRP rasters with
padding.
Bug fixDefense Standards
The data quality descriptor can now handle dqt files containing empty date
attributes.
Bug fixDefense Standards
TLcdUSRPModelDecoder now correctly handles transparent colors.
Bug fixMaritime Standards
Using a custom ILcdInputStreamFactory no longer causes the checksum validation to fail.
Bug fixMaritime Standards
A bug, occuring when an object class of type soundings or meta coverage is excluded from the
decoded model, is fixed.
5.3.08
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: very rarely a NullPointerException was thrown when the application was started.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: The TLcdGeoTIFFModelDecoder registered in Lucy does not use
ILcyLucyEnv.getCompositeModelReferenceDecoder(), therefore no model reference
chooser dialog was popped up if the geotiff does not have a proper model reference defined.
5.3.06
Bug fixLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: Layer selector (see 'showLayerSelector' property in dwg.cfg) is no longer
displayed when a workspace containing dwg data is opened.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewComponentFactory: Overriding the createComponent method to return null for
LAYER_CONTROL_COMPONENT no longer throws a NullPointerException. This bug was introduced in
v5.3.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: Loading a 3D view on start up (be it in a default workspace, be it through
configuring
the active settable to be active at startup) now properly inserts the 3D view.
Bug fixLucy (LuciadLightspeed)
Lucy automatically provides icons for GXY layers that don't have any. This threw a
NullPointerException in case the first GXY layer for which this feature was triggered had a
TLcdGXYShapeListPainter.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: The addon now checks to see if there is an AOI layer available
before trying to add any areas to that layer's model.
Bug fixLucy (LuciadLightspeed)
addons.xml file now obeys addons.xsd schema file.
5.3.05
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: the check for layers that are not available anymore was invalid,
as some layers were marked offline (red font color) while still available. This is now fixed.
Bug fixLucy (LuciadLightspeed)
TLcyDAFIFAddOn and TLcyGotoAreaOfInterestAddOn no longer keep dangling references to disposed
maps.
5.3.04
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: has new method 'TLcyPreferencesManager getPreferencesManager()'. This manager
allows
you to store and restore user preferences. The preferences are made persistent by the
TLcyPersistentPreferencesAddOn.
ImprovementLucy (LuciadLightspeed)
TLcyPersistentPreferencesAddOn: This new addon makes the preferences of the ILcyLucyEnv
persistent
(ILcyLucyEnv.getPreferencesManager()).
It does so by storing them in the registry on Windows platforms or to a file in the users home
folder on other platforms.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverViewAddOn: Previously, the map overview addon was configured to create one overview
map
when the addon was loaded. This default was changed to create no overview at all when the map
overview addon is started ('map_overview.new_overview_on_startup' is set to 'false' instead of
to
'true' in 'mapoverview_addon.cfg'). This change was made because now a default workspace is
loaded
at startup. This default workspace already contains one overview map, so there is no longer a
need
to create an overview map which will shortly after be replaced by the overview map of the
workspace.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: Previously, the map addon was configured to create one map when the addon was
loaded.
This default was changed to create no map at all when the map addon is started
('mapcomponentcount'
is set to '0' instead of to '1' in 'map_addon.cfg'). This change was
made because now a default workspace is loaded at startup. This default workspace already
contains
one map, so there is no longer a need to create a map which will shortly after be replaced by
the
map of the workspace.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: when the terrain analysis addon is loaded, the distance ruler on the map is
adapted and
can now measures distances between points, taking into account the terrain data loaded
underneath
the path between the two points.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: The workspace codec no longer assumes non-null values for the
group-descriptors and submenus.
Upgrade considerationLucy (LuciadLightspeed)
Lucy now supports workspaces. This means you can restore the application to the state it was
when
you stored it. Note that not all addons store their settings. Furthermore, note that not all
addons that support workspace management, store every single property. Please refer to the
LucyUserGuide.pdf for more information on what exactly is supported.
This new addon adds some new menu items in the 'File' menu: 'Open workspace', 'Save workspace',
'Save workspace as' and 'Set default workspace'.
When the application starts, a default workspace is loaded. This default workspace can be set in
'default_preferences.cfg' or by using 'File | Set default workspace'. This default workspace
setting is made persistent by the TLcyPersistentPreferencesAddOn (see other release note).
Previously the TLcyMapAddOn used to create a map on startup. The TLcyMapOverViewAddOn
used to create an overview on startup. They no longer do this, because the default workspace now
contains all that information (how many maps to create, where to put the overview, ...).
When upgrading an existing application to this new Lucy version, you might want to disable the
workspace management. You can do so by taking these steps:
- Remove TLcyWorkspaceAddon from your addons.xml file
- Set the property 'mapcomponentcount' to '1' in 'map_addon.cfg' (see other release
note
for details)
- Set the property 'map_overview.new_overview_on_startup' to 'true' in
'mapoverview_addon.cfg' (see other release note for details)
5.3.03
Bug fixLucy (LuciadLightspeed)
TLcyFileWorkspaceCodec: no longer creates relative paths for files on different drives.
Previously
if a data file was loaded from e.g. 'z:\data\test.shp' and the workspace was saved as
'c:\test.lws',
the data file was stored using a relative path 'data/test.shp', which was incorrect.
Bug fixLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: Workspace decoding now respects the configuration file when adding
menu
items for re-fitting the AOI and creating a new AOI.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Various comboboxes containing altitude units are now initially set to the
default altitude unit set in Lucy.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: The heights of the points in the axis polyline are now saved and restored.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: the correct labels for the models are now retrieved when switching between
mapcomponents
Bug fixLucy (LuciadLightspeed)
Removing a TLcyToolbar from the containment hierarchy now also removes it's dropdown menu, if
any.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: The dialog for extruding shapes now takes the default altitude unit set in
Lucy.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: The values entered in the contours panel are now checked for validity: the step
height
must not be equal to zero.
5.3.02
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: The dialog that is displayed for redlining layers when 'Layer properties' is
pressed (in the layer control) now has a nice GUI. A.o. it is now possible to change the layer
name.
ImprovementLucy (LuciadLightspeed)
TLcyPOLDecoderAddOn: it is now possible to snap to pol data using for example redlining.
ImprovementLucy (LuciadLightspeed)
The S-52 style editor no longer contains the Day White Back and Day Black Back color schemes,
as they are no longer supported by the S-52 Presentation Library.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: it is now possible to snap to DWG data using for example redlining.
ImprovementLucy (LuciadLightspeed)
TLcyMain: the addons are now loaded on the main thread that starts the application instead of on
the
AWT Event dispatching thread.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: The dialog shown from the 'layer properties' button in the layer
control
for a raster layer now shows an extra property 'Load asynchronous'. If checked, raster data will
be loaded asynchronous, meaning that the view is first panned or zoomed, and data that still
needs
to be loaded is painted some time later. The checkbox corresponds to
TLcd(MultiLevel)RasterPainter.setUseDeferredSubTileDecoding and setUseSubTileImageCaching.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: Textual editor for points now displays 'Altitude' instead of 'Height'.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when grouping shapes and then editing (dragging) them, the
changes are now properly reflected in the 3D view.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: the layer control is now displayed correctly at startup when the application is
started in FRAME_MODE (see lucy.cfg).
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: when a new URL is added to the resource file predefined.wms,
it will now automatically be added to the current cache.
Bug fixLucy (LuciadLightspeed)
When a maximum elevation point was marked on the map, it could not longer be removed from the
layer it was put in
using the default delete action. This is now fixed.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn: the model decoder didn't release a file from memory after
checking whether it could be decoded
or when an exception occurred while reading it.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Zooming in on the edge of the projection no longer makes the application block for
a
long time, caused by the grid layer. This is a workround for bug #1195 in the core.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddon: Fixed possible display corruption when repeatedly closing and
reopening the 3D view and generating 3D terrains.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: Removed this addon's dependency on the LuciadMap 3D specialized package.
Upgrade considerationLucy (LuciadLightspeed)
TLcyMapAddOn: The layer control is now always put in a separate ILcyApplicationPane. Previously,
if
a custom ILcyApplicationPaneFactory was used, or if the mode in lucy.cfg was INTERNAL_FRAME_MODE
or
FRAME_MODE, the layer control was put in the same panel as the map itself. If needed, the layer
control can still be put in the same ILcyApplicationPane as the map itself, by changing the
'mapLayerControl.putInSeparateApplicationPane' property in 'map_addon.cfg' and/or
'mapoverview_addon.cfg'. Furthermore it is now possible to configure the application pane
location
of the layer control with the property 'mapLayerControl.applicationPaneLocation'.
5.3.01
Bug fixLucy (LuciadLightspeed)
The addons TLcyMS2525bAddOn and TLcyAPP6AAddOn were not compatible with a look&feel other
than Alloy.
5.3
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn/TLcyMapOverviewAddOn: The property 'map.scaleIcon.create' has been removed from
'map_addon.cfg' and 'mapoverview_addon.cfg'. It can still be used however, but for new code it
is
advised to use the property 'TLcyMapAddOn.showScaleIconActiveSettable.menuBar.active'.
ImprovementLuciadLightspeed
TLcdMIFModelEncoder can have an ILcdOutputStreamFactory set. This factory is used to create
output streams
in the methods createBufferedWriter() and createMIDBufferedWriter().
ImprovementLuciadLightspeed
TLcdDistanceUnit, TLcdSpeedUnit and TLcdAltitudeUnit implement the new interface
ILcdISO19103UnitOfMeasure.
ImprovementLuciadLightspeed
com.luciad.util.iso19103 contains utility classes as defined in the ISO standard 19103:
-
ILcdISO19103CodeList: an extendable list of constants.
-
ILcdISO19103Code: an element of a code list.
-
ILcdISO19103UnitOfMeasure: a general definition of units for measurements.
-
ILcdISO19103Measure: a general definition of a measurement.
-
ILcdISO19103Record: an interface for a dictionary, where values are referred to by String
keys.
-
TLcdISO19103MeasureTypeCode: codes for types of measurement.
ImprovementLuciadLightspeed
ILcdCollectionFeaturedDescriptor is an extension to ILcdFeaturedDescriptor which adds a level of
redirection for
features which are multivalued. As a feature can be multivalued, the class of the feature is a
collection, an Enumeration for example. This hides the class of the objects inside the collection. The
ILcdCollectionFeaturedDescriptor allows to retrieve the class of elements in the collection.
ImprovementLuciadLightspeed
TLcdMultilevelRasterPainter, TLcdNoWarpMultilevelRasterPainter, and
TLcdWarpMultilevelRasterPainter now provide
utility methods to find the most suitable raster level in a multi-level raster, in a given
context.
ImprovementLuciadLightspeed
com.luciad.metadata.iso19115 and com.luciad.metadata.iso19139 are two new packages which contain
implementations
for the
ISO 19115 standard and ISO 19139 draft on metadata. ISO 19115 contains a comprehensive
conceptual description of
a
metadata which can be associated to a dataset. The package com.luciad.metadata.iso19115 contains
a java
implementation
of this schema. ISO 19139 describes an XML implementation of the ISO 19115 standard and
describes how XML files
containing metadata information should be structured.
The package com.luciad.metadata.iso19139 enables decoding these XML files. As ISO 19139 is not
yet an accepted
standard
this code has to be considered as beta code at least until the ISO 19139 is published as a
standard.
ImprovementLuciadLightspeed
TLcdRasterModelDecoder now attaches TLcdRSTModelDescriptor instances or
TLcdMultilevelRSTModelDescriptor instances to decoded models.
ImprovementLuciadLightspeed
TLcdJAIModelDecoder, TLcdTABRasterModelDecoder, and TLcdTFWRasterModelDecoder
now attach TLcdJAIModelDescriptor instances or
TLcdMultilevelJAIModelDescriptor instances to decoded models.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder now attaches TLcdGeoTIFFModelDescriptor instances or
TLcdMultilevelGeoTIFFModelDescriptor instances to decoded models.
ImprovementLuciadLightspeed
TLcdGXYLayerLabelPainter and TLcdGXYViewLabelPainter no longer keep a reference to the
ILcdGXYLayer
they last used.
ImprovementLuciadLightspeed
TLcdGXYLayer.applyOnInteract was keeping a reference to the ILcdFunction argument last passed
when
an TLcdOutOfBoundsException occurred.
ImprovementLuciadLightspeed
TLcdGXYSelectController no longer keeps dangling reference to ILcdGXYLayer is has last used.
ImprovementLuciadLightspeed
TLcdGXYMagnifierController now cleans up its listeners from the ILcdGXYView.
ImprovementLuciadLightspeed
TLcdTiled2DBoundsIndexedModel no longer keeps a dangling reference to the ILcdFunction that is
passed
in applyOnInteract2DBounds.
ImprovementLuciadLightspeed
These classes no longer keep a strong reference from the listener they add to an associated
object
to themselves (requires Java 1.2 or above to be available). The classes are: TLcdModelList,
TLcdGXYLayerList, all ILcdGXYView implementations and TLcdLayer (TLcdGXYLayer is extension of
TLcdLayer).
This simplifies garbage collection of ILcdGXYView objects, ILcdGXYLayer objects, and so on. Prior to this
enhancement, users of the API had to explicitly remove an object from its parent. For example,
it was needed to use TLcdLayer.setModel( null ) to make sure a layer was garbage collected when
the
ILcdModel was still used elsewhere.
ImprovementLuciadLightspeed
These classes now clone their collection of listeners before firing an
event: TLcdSelectionSupport, TLcdStatusEventSupport, TLcdGXYOverviewController,
TLcdMapGeorefGridLayer, TLcdMapLonLatGridLayer, TLcdUPSGridLayer, TLcdUTMGridLayer,
TLcdLayeredSupport and TLcdPropertyChangeDispatcher.
This allows listeners to remove themselves while handling an event.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder now attaches TLcdECWModelDescriptor instances to
decoded models.
ImprovementAdvanced Raster Connectors
TLcdGeoSPOTModelDecoder now attaches TLcdGeoSPOTModelDescriptor instances to
decoded models.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now attaches TLcdMrSIDModelDescriptor instances to
decoded models.
ImprovementTerrain Analysis Engine
TLcdTerrainRulerController is an TLcdAdvancedMapRulerController extension which takes into account the terrain
underneath when computing the distance between consecutive points.
ImprovementTerrain Analysis Engine
TLcdTerrainDistanceUtil is a utility class that calculates the distance between two points taking into account the
terrain underneath. To this end a terrain elevation provider (ALcdTerrainElevationProvider) and a segment scanner
(ILcdSegmentScanner) should be provided. The segment scanner determines the path to follow between the two points.
The terrain elevation provider provides the elevation data for the intermediate points generated by the segment
scanner.
ImprovementTerrain Analysis Engine
TLcdGXYViewBasedTerrainElevationProvider and TLcdVVTerrainProfileModel no longer keep a strong
reference from the listener they add to an associated object to themselves (requires Java 1.2 or
above to be available).
This simplifies garbage collection of these classes. Prior to this
enhancement, it was necessary to use TLcdGXYViewBasedTerrainElevationProvider.setGXYView( null )
or TLcdVVTerrainProfileModel.setPointListGXYLayer( null ) to make sure a
TLcdGXYViewBasedTerrainElevationProvider or TLcdVVTerrainProfileModel were garbage collected
when the (terrain) layers were still used elsewhere.
ImprovementInfrastructure Standards
samples.decoder.dgn.MainApplet now illustrates the decoding and display of
DGN files.
ImprovementMaritime Standards
TLcdS57Point now has a setter/getter pair for its minimum depth.
ImprovementMaritime Standards
The S-52 Presentation Library (style tables, conditional symbology) is upgraded to version
3.3.
ImprovementMaritime Standards
Two new classes, TLcdS57DepthAreaEdgeModel and ILcdS57DepthAreaEdge, are provided in the
S-57
package, providing access to the individual edges of depth areas, and some of their
properties
thar are required for their visualisation in S-52. As a result, the safety contour can now
be
calculated more precisely, when the safety depth does not correspond to one of the
predefined
depth contours.
ImprovementMaritime Standards
Performance of the TLcdS57ModelDecoder is increased for models containing large numbers of
points.
ImprovementMaritime Standards
A new class, TLcdS52CatalogueLayerList, was added, which enhances multileveling performance
of
S-52. This class depends on the JTS library, which is from now on included in the ECDIS
module.
ImprovementMaritime Standards
Depth contour labels are painted now.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: when a point was being edited the label was no longer painted, due to an
earlier fix.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: When more that one map is open, the Tote addon now correctly searches for a
suitable
filter before adding it's own filter.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: If the main map was resized using the slider panels, the recentering of
the
overview used to be slanted.
Bug fixLuciadLightspeed
TLcdSphereUtil did not return the correct point when looking for the closest point to a point on
a geodetic
segment when
the point was one of the end points of the segment.
Bug fixLuciadLightspeed
TLcdSHPModelEncoder can encode BigInteger features as numericals. This is mainly a convenience
for models
produced by
database model decoders. The TLcdSHPModelDecoder will not produce BigInteger objects when
decoding the same dbf
file.
Bug fixLuciadLightspeed
TLcdGXYLayer had no intention to stop painting when stopPainting() was called on a layer which
had a
ILcd2DBoundsIndexedModel.
Bug fixLuciadLightspeed
The fonts used to display MIF and MAP true type font symbols have a slightly larger size. In
some cases the
details of
the symbols were lost because the font size was too small as compared to the size defined in the
MAP file.
Bug fixLuciadLightspeed
TLcdVVJPanel has a new property snapViewToGrid which by default is true (for backward
compatibility reasons).
When switching
to false the vertical view no longer snaps to multiples of 10,100,1000,... but instead shows a
grid line with
the
actual minimum and maximum set to the view.
Bug fixLuciadLightspeed
TLcdSHPModelDecoder can have a character set set for DBF decoding. This enables decoding of DBF
files with
characters
not in the ISO8859-1 set.
Bug fixLuciadLightspeed
TLcdGXYBoundsPainter no longer accepts a snap target if not one of the corner points is touched.
This allows
snapping only when one of the four corner points is over another point.
Bug fixMaritime Standards
The decimal value for sounding depths is shown now for depths less than 31 meters.
Bug fixMaritime Standards
Overscale indication is now painted only when the current map scale is more than two times
larger than the compilation scale, as suggested in the updated S-52 specification.
Bug fixMaritime Standards
A bug in the update mechanism, causing some updated not being applied correctly, was fixed.
Upgrade considerationLuciadLightspeed
All domain objects of the core, such as TLcdXYCircle, TLcdLonLatEllipse and so on, and all optional
modules
now implement their ILcdCache using weak references to the keys. This allows cleaning up the
value
if a key is no longer strongly reachable. Although this change is marked incompatible, the
actual
incompatibilities you experience should be minimal. You will only be affected if you wrote your
own
code (an ILcdGXYPainter for example) that stores information in the ILcdCache of domain objects using
an
object as a key that is not strongly referenced elsewhere. For example, if you are using a
construct
similar to ILcdCache.insertIntoCache( new MyKey(), new MyValue ), you might experience a
performance
degradation for that specific part. If you use constructs similar to
ILcdCache.insertIntoCache( this, new MyValue ), you will not be affected. If needed, the behavior
of
the caches can be reverted to its original behavior using
com.luciad.util.TLcdCache.setUseWeakKeyReferences( false ).
Upgrade considerationMaritime Standards
The library no longer contains the Day White Back and Day Black Back color schemes (they are
no
long supported by the S-52 standard). The DAY_WHITE_BACK_COLORS and DAY_BLACK_BACK_COLORS
constants defined in ILcdS52Symbology are deprecated and should no longer be used.
Upgrade considerationMaritime Standards
The conditional procedures variables defined in ILcdS52ConditionalSymbology are replaced by
new
ones, which no longer have a number in their name. The old ones, with numbers, are made
deprecated and should no longer be used.
Upgrade considerationMaritime Standards
ILcdS57Object and its implementations now have a method getGroup(), returning the group to
which
the object belongs. Correspondingly, a method setGroup() has been added to
ILcdS57EditableObject
and its implementations.
Upgrade considerationMaritime Standards
TLcdS52ModelListBuilder now adds an additional model to the constructed modellist: a
TLcdS57DepthAreaEdgeModel is added in the modellist containing line features with display
priority 8. This model is contains the edges of all depth areas in the original model. These
edges are the spatial components making up the depth areas, and are not S-57 objects
themselves;
they do not implement the ILcdS57Object interface.
Upgrade considerationMaritime Standards
Isolated dangers in shallow water can be painted now. ILcdS52ConditionalSymbology,
TLcdS52ConditionalSymbology and TLcdS52GXYPainterProvider have a setter and getter added.
5.2
5.2.12b
ImprovementLucy (LuciadLightspeed)
The VPF addon now shows a popup with a button to automatically fit the area of interest
to the VPF library bounds when the AoI and the library bounds do not overlap and the
update button is pressed.
5.2.11b
ImprovementLucy (LuciadLightspeed)
The S52/S57 addon now supports painting of underscale indications, comparable to
outline painting of rasters. This is not part of the S52 symbology, and can be turned
off in the s57 decoder config file.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn: the creation of MS2525b / APP6A symbols now works again for
manually created
layers. This bug was introduced in v5.1. Note that a manually created layer should have a model
(may be empty) that
has a model reference of type ILcdMS2525bModelDescriptor / ILcdAPP6AModelDescriptor.
5.2.10b
ImprovementLucy (LuciadLightspeed)
TLcyPrintAddOn: Printing has improved raster quality by using the new property
'setRasterizedLayerQualityFactor' of 'TLcdPrintComponentAction'. If needed, this property can be
reset
to its original value of 1 using
TLcyPrintAddOn.getPrintComponentAction().setRasterLayerQualityFactor.
ImprovementLucy (LuciadLightspeed)
In TLcyToolBar, the right most component(s) will be replaced by a double arrow if they don't
fit,
however there used to be a gap of a few pixels after the component was removed and before the
double
arrow was shown.
ImprovementLucy (LuciadLightspeed)
TLcyMain: When Lucy starts, and Java 1.4 or above is available, the frame is now maximized.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: Start date can now be edited again using the textual editor for PIM tracks.
This
bug was introduced in v5.1.
5.2.09b
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: Maximum elevation in a shape and contour calculation now take into account data
defined in a
grid reference.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: The Lucy 3D addon now uses the JOGL binding by default, instead of the GL4Java
binding
(3d_DeveloperGuide.pdf explains in detail what that means). Note that Java 1.4.2 or above is
required for JOGL. If such a Java version is not available, it will fall back transparently to
the
GL4Java binding. If this behavior is undesirable, so when you always want to use GL4Java, you
can
modify the .bat or .sh scripts used to start Lucy. Just modify this
"com.luciad.view.opengl.binding.jogl.TLcdJoglGLBinding" into this
"com.luciad.view.opengl.binding.gl4java.TLcdG4JGLBinding".
ImprovementLucy (LuciadLightspeed)
All default (style) properties of raster layers can now be configured through
'default_decoders.cfg', 'defaultRaster.cfg', 'defaultMultilevelRaster.cfg' and
'defaultDMED.cfg'.
The previous properties to set start resolution factor, stop resolution factor and level switch
factor can still be used, but we recommend to use the new properties.
Raster layers are now by default not selectable, all other properties remained the same.
ImprovementLucy (LuciadLightspeed)
More azimuth formats have been added, among which DDD.dddddddd . In addition, the names of the
existing formats have been
changed to reflect the output of the format. The default azimuth format of lucy
(ILcyLucyEnv.getDefaultAzimuthFormat)
used to trim the given angle under certain circumstances, it does no longer do that.
ImprovementLucy (LuciadLightspeed)
Decoders: TLcdGMLModelDecoder, TLcdGMLModelEncoder, TLcdGeoTIFFModelEncoder, TLcdSHPModelEncoder
and
TLcdSVGModelEncoder now report their progress to the ILcyLucyEnv, so that the progress bar is
used.
ImprovementLucy (LuciadLightspeed)
TLcyMain: The error dialog that is displayed in case of uncaught exceptions on the AWT thread
now
has a parent, so that it cannot be hidden behind the main window.
ImprovementLucy (LuciadLightspeed)
The menu item for saving the 3D view has moved from "3D View -> export to GIF" to "File -> Save
as image -> 3D View"
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: The 'Scale to raster' button in the layer control now enables/disables correctly.
Bug fixLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: S-63 is only loaded now when enabled in the S-57 config file
and the JDK version is larger than 1.4 (S-63 relies on javax.crypto, which is not
available in older versions).
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: 3D terrain generation now works correctly with elevation data contained in model
lists.
Bug fixLucy (LuciadLightspeed)
RunLucy.sh and RunLucyDebug.sh did not work on all linux platforms. The complex
find construct (to avoid recursive search) caused the problem. It has been replaced with an ls.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: right clicking on an empty profile tab no longer results in an exception.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: used to print a fail message when legacy property
map_overview.make_new_action_in_menu of mapoverview_addon.cfg was set to false.
Bug fixLucy (LuciadLightspeed)
TLcyMapOverviewComponentFactory: Used to throw NullPointerException if
createActiveSettable( ORTOGRAPHIC_PROJECTION_ACTIVE_SETTABLE, mapComponent ) returned null.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: Used to throw a NullPointerException when
some ILcyObjectCustomizerFactory returned null in createObjectCustomizerDisplayName.
5.2.08b
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: The overview controller used to request focus on mouse move.
It now only requests focus on mouse down.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: When saving a layer, it is possible for some formats to specify the options of the
encoder.
Bug fixLucy (LuciadLightspeed)
TLcyMS2525bAddOn and TLcyAPP6AAddOn: the creation of MS2525b / APP6A symbols didn't work
correctly when using more than one map.
5.2.03
ImprovementLuciadLightspeed
TLcdMIFPenGXYPainterStyle and TLcdMIFBrushGXYPainterStyle now have public setters for the line
style and fill
style, respectively, making it easier to modify the default MIF symbolization.
ImprovementLuciadLightspeed
TLcdLonLatGridPainter now sends out PropertyChangeEvent objects with the correct old values.
ImprovementLuciadLightspeed
TLcdGXYViewFitAction will produce some output on TLcdLog when the fit failed and tracing is on.
ImprovementLuciadLightspeed
TLcdMapLocation will produce some output on TLcdlog when no view is set and tracing is on.
ImprovementLuciadLightspeed
TLcdGeoTIFFModelDecoder, TLcdTFWRasterModelDecoder, and TLcdBILModelDecoder now use filename
extensions with
matching case when looking for corresponding metadata files.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: The combo box displaying the current scale is now editable. It also has moved
inside the
toolbar, instead of to the right of the toolbar. If it is necessary to keep the scale combo in
its
original position, it requires some programming. An example can be found in
samples/lucy/guifactory.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: When pressing the "Fit to selected layer" button in the layer controls, the fit
will be done
with a small margin.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: TLcyPIM now provides pitch and roll angles in addition to the already
available heading.
ImprovementLucy (LuciadLightspeed)
TLcyG4JPointPainter: if the points being drawn implement ILcd3DOriented, the painter properly
takes pitch and roll into account.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: new controls allow the user to set the roll angle of the camera in the 3D view.
Furthermore, if the 3D
camera is linked to an ILcd3DOriented object, it will now take the pitch and roll angle of that
object into account.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: supports polylines of any references. Raster data taken into account now
includes DHM data.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: maximum altitude points and contours can now be computed in a shape in any
reference. Terrain data taken into account
now also includes DHM data.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder now uses filename extensions with matching case when
looking for corresponding metadata files.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now uses filename extensions with matching case when
looking for corresponding metadata files.
ImprovementAviation Standards
The available configuration properties in com.luciad.format.aixm.TLcdAIXMLayerConfiguration are now fully documented.
ImprovementAviation Standards
The available configuration properties in TLcdDAFIFLayerConfiguration are now fully documented.
ImprovementAviation Standards
The available configuration properties in TLcdARINCLayerConfiguration are now fully documented.
ImprovementInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationServlet now uses
TLcdModelReferenceDecoder for trying to decode model references on the
server side.
Bug fixLuciadLightspeed
Previously the TLcdGXYEditController would edit the selection even if it was not touched. This
lead to
unexpected
results when selecting in ALTERNATE mode by dragging the mouse. The edit controller now checks
whether at least
one
object in the selection is touched.
Bug fixLuciadLightspeed
TLcdGXYEditController wrongfully removed objects from the snappables when they were removed from
the selection.
Bug fixLuciadLightspeed
TLcdVVJPanel has an extra property to set whether the label of a point should painted while
editing the point.
For backward compatibility the property is initialized to true.
Bug fixLuciadLightspeed
TLcdGXYNewController now asks the painter of the snap target to paint in SNAPS mode (usually
this is a snap
icon)
when snapping to objects defined in another reference. Though snapping to
objects defined in other references was enabled, it was not visually marked by the appearance of
snap icons.
Bug fixLuciadLightspeed
TLcdModelList now also redispatches ALL_OBJECTS_CHANGED to its associated listeners.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn, TLcyPIMTrackAddOn: The editing of polylines and points where the height
above
ground is kept constant (redlining points and polylines, PIM tracks) did only work with DTED
data
level 0.
Bug fixLucy (LuciadLightspeed)
TLcdTeaAddOn: marked maximum altitude points are now much closer to the contour with the highest
value. Though the point
might still be outside the contour, computations in the highest precision (DTED level 2) will
return points which are
no further than 10 meters from the contour with the highest altitude.
Bug fixLucy (LuciadLightspeed)
TLcyDecodersAddOn: When DTED files (e.g. dt0, dt1, dt2) are opened using File|Open, they now
also
have a 'Colors' tab in their layer customizer which is accessed through the 'Layer Properties'
button in 'Map Layers' panel.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: when ILcdGXYView.removeAllLayers was used, and a layer was added afterwards, a
null
pointer exception occurred.
Bug fixDefense Standards
TLcdNITFModelDecoder now handles NITF 2.0 files with geocentric references
(ICORDS = "C").
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationModelDecoder no longer throws
a NullPointerException when decoding tags without transformations.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now correctly fills out the source
name in the model descriptor.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now decodes bulges of LWPOLYLINE
objects.
Bug fixInfrastructure Standards
com.luciad.format.dgn.server.TLcdDGNMicroStationClientModelDecoder now
encodes the ampersands in its URLs.
Bug fixMaritime Standards
Pen width of symbols is taken into account now (was always 1 before).
Bug fixMaritime Standards
The fractional value of sounding points between 10 and 31 meters is shown now (only
fractional
values of sounding points under 10 meters were displayed before).
Upgrade considerationAviation Standards
Improvements have been made to com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath to prevent self-intersecting
discretizations, which is typically caused by data inaccuracies. In particular, the discretization of
ILcdGeoPathLeg instances of the type ILcdGeoPathLeg.ARC and ILcdGeoPathLeg.SUB_POINT_LIST
are adapted to resolve these self-intersections. Additionally, the parameter list of an ILcdGeoPathLeg of type
ILcdGeoPathLeg.ARC can now optionally be extended with a radius, which will be used in the case of an inaccurate
arc center. This change will only be incompatible in some implementations which have an explicit check on the number of
parameters associated with an ILcdGeoPathLeg instance of type ILcdGeoPathLeg.ARC: this was before exactly 4 but can now be
5.
5.2.02b
ImprovementLucy (LuciadLightspeed)
TLcyAIXMAddOn: new addon that allows to load AIXM snapshot and update data.
ImprovementLucy (LuciadLightspeed)
The 3D addon no longer modifies the current area of interest when opening a 3D view.
ImprovementLucy (LuciadLightspeed)
TLcyGotoAreaOfInterestAddOn: The area of interest has been enhanced to work with more than one
AOI. An Area of Interest can now have a name and
a preferred scale. These can be edited using the selection editor addon. Please refer to the
user guide to see what new features
have been added.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn, TLcyVerticalViewAddOn: It is now possible to save map views and vertical views to
images. The images of the map view can be saved to the
georeferenced GeoTIFF format. Please refer to the user guide for the specifics.
ImprovementLucy (LuciadLightspeed)
The available layer configuration files for ARINC, DAFIF and AIXM, and the default aircraft
performance setting file
are now centralized in 'resources/lucy/ais'.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: The user will now be notified by a dialog when a server doesn't respond
anymore or
when its capabilities have changed. Furthermore, the layer customizer shows extra information
about the particular Web Map Server and contains a button that enables the user to refresh
the information that is displayed; when a selected layer is not available anymore, it will be
displayed
in red in the right column.
ImprovementDefense Standards
TLcdUSRPModelDecoder now uses filename extensions with matching case when
looking for corresponding QAL/GEN files.
Bug fixDefense Symbology
The APP-6A symbols with coding scheme 'Military Operations' ('G' as first character) were only supported if they had
'Control Markings' as value for the 'Order Of Battle' ('X' as last character). This was not correct according to the
specification
and has been fixed: each 'Order Of Battle' value is now supported for these symbols.
5.2.01
ImprovementLuciadLightspeed
TLcdDTEDColorModelFactory now creates a default ColorModel that also has colors for negative
elevations
(depths).
ImprovementLucy (LuciadLightspeed)
Data flavors for drag&drop are now available in com.luciad.lucy.map.TLcyMapDataFlavor.
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: the user can set the minimum and maximum values for the vertical view
through the GUI.
ImprovementLucy (LuciadLightspeed)
TLcyDWGDecoderAddOn: Performance of layered dwg data has been improved when zoomed in.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: computation of line of sight has been enhanced: any point in any reference can now
be set as center
point for the computations. Terrain layers taken into account now also include DHM data.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: intervisibility has been enhanced to support multiple references:
The intervisibility can be computed between sets of shapes which are not in the same coordinate
system, even
shapes within the same set do not need to be defined in the same coordinate system. Terrain
layers taken
into account now also include DHM data.
Bug fixLuciadLightspeed
TLcdMAPModelDecoder now properly decodes the color of TrueType font symbols.
Bug fixLuciadLightspeed
TLcdMAPModelDecoder and TLcdMIFModelDecoder now support the multipoint and collection geometry
types (with new
MIF shape classes TLcdMIFMultipoint and TLcdMIFCollection).
Bug fixLuciadLightspeed
TLcdGMLModelEncoder and TLcdGMLSchemaEncoder now prefix attribute names
(obtained vian ILcdFeatured) with an underscore if they start with a numerical
digit. XML does not allow element names to start with a digit, so this scenario
previously resulted in unreadable GML files.
Bug fixLuciadLightspeed
The raster painters now properly take into account scaling of the Graphics objects when checking
the densities
of rasters to be painted.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModel.applyOnInteract2DBounds now correctly applies the given function to
points that are
clumped together.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Nothing happened when a layer list structure of at least 3 levels was removed
using
the garbage button in the Lucy layer control (e.g. the layer list structure added by the vpf
addon).
Now layer list structures of arbitrary depth can be removed.
Bug fixLucy (LuciadLightspeed)
Bestpractice sample: When a moving point (TimeStampedTrack) was selected and deselected, a
NullPointerException was sometimes thrown.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Fitting to a redlining layer containing small objects now works accurately.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: When the selection editor is enabled and disabled, and the look&feel
is changed afterwards, no longer a NullPointerException is thrown.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Terrain following mode works again for polylines.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddon: when no elevation data is present, the 3D terrain wizard will now
generate terrain using height 0.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddon: fixed an issue that caused TLcyG4JPointPainter to sometimes paint
airplanes with the nose straight down.
Bug fixLucy (LuciadLightspeed)
When a tab application pane is disposed that has already been disposed, no longer a
NullPointerException is thrown. Instead a debug message is written to TLcdLog.
Bug fixLucy (LuciadLightspeed)
When a new tab was added (e.g. by using Tools | New | Map), that tab was in metal look&feel
instead of in the current look&feel (e.g. Alloy)
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: when redlining was started on two maps, and an attempt was made to draw some
object on the first map, redlining was asking to create a new layer, while the original layer
was
still there.
Bug fixLucy (LuciadLightspeed)
TLcyMain: When TLcdStatusEvent's with progressIndeterminate set to true were sent to
ILcyLucyEnv,
the END_BUSY event did not cause the indeterminate progress bar to stop animating.
Bug fixLucy (LuciadLightspeed)
TLcyPreviewAddOn: the combo box for the max cpu usage (e.g. 70%) and for the time factor (e.g.
1x)
were not updated correctly when the values were changed by a 3rd party
(e.g. TLcyPreviewAddOn.setTimeFactor).
Bug fixLucy (LuciadLightspeed)
When a default projection is set in map_addon.cfg using e.g.
TLcyMapAddOn.polarStereographicNorthProjectionActiveSettable.menuBar.active=true,
the projection combo box in the toolbar is now updated as well.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: Line of Sight panel now displays altitude unit correctly when in point selection
mode.
Bug fixLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: the range is adapted when a polyline is set at a certain height when no
terrain data is available.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Changes to the position and radius of a dome or sphere were not correctly
saved to file.
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: A layer style is now indicated with its title instead of its name, which is
more human-readable.
Furthermore, an update now always occurs when only the layer style of a layer is changed via the
layer customizer.
Bug fixMaritime Standards
Light descriptions (procedure LITDSN01) are painted now.
Bug fixMaritime Standards
Missing pattern fills in dredged areas are painted now.
Bug fixMaritime Standards
Soundings are now being painted when the display category is DISPLAY_BASE or STANDARD and
the
setDisplaySoundings flag is set on the S52 painter provider.
5.2
ImprovementLuciadLightspeed
TLcdVVJPanel has a property buffered which when set to true caches the grid lines, the main
profile and the
subprofiles
thus improving performance. The default value is false for backward compatibility reasons.
ImprovementLuciadLightspeed
TLcdPrintComponentAction now supports more flexible print scaling and better quality and memory
usage.
ImprovementLuciadLightspeed
The new class TLcdGeoTIFFModelEncoder provides support for encoding raster models as GeoTIFFs.
ImprovementLuciadLightspeed
TLcdDefaultObjectInModelFilter has improved performance for ILcd2DBoundsIndexedModel
implementations.
ImprovementLuciadLightspeed
TLcdGXYSelectController allows control over the fact whether interaction with the selection clip
should be
strict
or not. Default setting is false for backwards compatibility. Setting this value to true can
have an effect on
performance if the view contains layers with data which is lazily loaded.
ImprovementLuciadLightspeed
TLcdVVJPanel has new methods getMin/MaxViewAltitude which return the model altitudes of the top
and
bottom pixels in the vertical view. This facilitates the transformation of pixel coordinates to
model
altitudes.
ImprovementLuciadLightspeed
The class com.luciad.view.gxy.controller.TLcdGXYContinuousPanController has
been introduced. This extension of the standard pan controller allows for
continuous panning, i.e. without blank borders around the edges of the view.
The raster painters (TLcdRasterPainter and TLcdMultilevelRasterPainter) have
been extended with new features that enhance the performance of continuous
pan operations for raster data. A demonstration of these new features can be
found in the samples.continuouspan package.
ImprovementLuciadLightspeed
TLcdVVAltitudeRangeSliderJPanel listens to the vertical view jpanel to adapt its minimum and
maximum when this
is set
by any other source than the slider.
ImprovementLuciadLightspeed
TLcdDefaultVVRenderer can have a formatter set to paint the labels of the points of the main
profile.
ImprovementLuciadLightspeed
The TLcdDMEDModelDecoder and TLcdDTEDDirectoryModelDecoder now have the flag to fall back to
higher resolution
DTED levels set to false, by default. This is done to avoid unexpected long loading times when
only high
resolution DTEDs are available. The flag can still be set to true to obtain the previous default
behavior.
ImprovementLuciadLightspeed
The TLcdDMEDModelDecoder, and TLcdDTEDDirectoryModelDecoder now allow to check the presence of
DTED tiles
immediately instead of lazily. Raster levels that are not present are not created.
ImprovementLuciadLightspeed
The TLcdDMEDModelDecoder, TLcdDTEDModelDecoder, and TLcdDTEDDirectoryModelDecoder now support
geodetic datums
other than the standard WGS84.
ImprovementLuciadLightspeed
The TLcdDMEDModelDecoder, TLcdDTEDModelDecoder, and TLcdDTEDDirectoryModelDecoder now also
retrieve DTED
metadata.
ImprovementLuciadLightspeed
The TLcdCADRGModelDecoder now also retrieves CADRG/CIB metadata.
ImprovementLuciadLightspeed
The new ILcdDatabaseEncoder2 interface supports updating by means of a single UPDATE statement
instead of a
DELETE statement followed by an INSERT statement. Apart from being more efficient, it also
solves some problems
with automatically generated keys.
ImprovementLuciadLightspeed
The vertical view has methods to retrieve and set the location of the vertical cursor at a point
of the main
profile.
ImprovementDatabase Connectors
Updating is now performed in a single UPDATE statement instead of a DELETE
statement followed by an INSERT statement. Apart from being more efficient,
it also solves some problems with automatically generated keys.
ImprovementGraph and Routing Engine
The setDecodeCurviMetricPositionMeasurement flag is removed from TLcdGDFModelDecoder.
The data supplier name field in the header record is used now to detect whether the
data are created by a provider not supporting the curvimetric position measurement field.
ImprovementGraph and Routing Engine
As of LuciadMap 5.2, this package is no longer BETA.
ImprovementGraph and Routing Engine
As of LuciadMap 5.2, this package is no longer BETA.
ImprovementOGC Server
A new interface ILcdWFSFilteredModelFactory has been introduced.
ALcdOGCWFSCommandDispatcherFactory has been extended accordingly, with a new
createFilteredModelFactory() method. This method can be overridden by
applications that wish to extend or reimplement the filtering behaviour of
the WFS. The default implementation performs filtering exactly as it was done
in previous LuciadMap versions. Please refer to the API documentation for
further details.
ImprovementOGC Server
The WFS now supports the MAXFEATURES parameter, allowing clients to
restrict the number of features returned by a query.
ImprovementTerrain Analysis Engine
TLcdP2PFactory and TLcdRadarP2PFactory have been enhanced. They have the ability to
-
support points in any reference,
-
support terrain data in any reference,
-
control the sampling rate of the underlying terrain data,
-
return a point list in any given reference.
The results are stored in implementations of the ILcdExtendedPoint2Pointintervisibility which is an extension
of ILcdPoint2PointIntervisibility. The result implements ILcdPointList with the input points contained as points
in a given reference.
ImprovementTerrain Analysis Engine
TLcdLOSFactory and TLcdRadarCoverage have been enhanced. They have the ability to
-
support center points in any reference,
-
support terrain data in any reference,
-
return LOS/radar rasters in any reference, with a pixel density independent of the underlying terrain
data,
-
return LOS/radar rasters which contain minimum or maximum or nearest neighbor values,
-
return LOS/radar rasters which contain altitudes above terrain or above mean sea level (AMSL),
-
control the sampling rate of the underlying terrain data.
The resulting rasters are contained in a class which implements the new interface ILcdExtendedLineOfSightCoverage, an
extension of ILcdLineOfSightCoverage.
ImprovementTerrain Analysis Engine
The profile view and the vertical view support negative altitudes (depths).
ImprovementAviation Standards
A new interface com.luciad.ais.model.aerodrome.ILcdRunwayClinePoint has been added to model centre line points
of a runway. It has an editable extension ILcdEditableRunwayClinePoint, a default implementation TLcdRunwayClinePoint
and a featured extension TLcdFeaturedRunwayClinePoint.
The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create
runway centre line points.
ImprovementAviation Standards
The package com.luciad.format.aixm is a new LuciadMap option, available since v5.2.
This option can be used to decode AIXM data. A developer guide and a sample are included.
ImprovementAviation Standards
A new domain object is added to AIS to represent association-based airspaces. These airspaces are built from
other airspaces (single or also association-based) using different geometric combinations or association types. The AIXM
specification was taken as the basis for this domain object. The basic interface is
com.luciad.ais.model.airspace.ILcdAssociationBasedAirspace, which extends from ILcdShapeList. It has an editable
extension ILcdEditableAssociationBasedAirspace, a default implementation
TLcdAssociationBasedAirspace and a featured extension TLcdFeaturedAssociationBasedAirspace.
An association-based airspace contains one or more associations; these associations are represented by a new interface
ILcdAirspaceAssociation, which has a default implementation TLcdAirspaceAssociation. An ILcdAirspaceAssociation contains
an airspace (single or association-based), an association type and a sequence number. The association type is one of the
types defined by the new type safe enumeration class TLcdAirspaceAssociationType.
Furthermore, the interface com.luciad.ais.model.airspace.ILcdGenericAirspace is introduced to have
a new top-level airspace; the interfaces ILcdAirspace and ILcdAssociationBasedAirspace are extensions from this
general interface.
The airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter and airspace label painters
com.luciad.ais.symbology.icao.TLcdICAOAirspaceLabelPainter and com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter
are updated to provide support for ILcdAssociationBasedAirspace objects (next to the previously supported ILcdAirspace objects).
The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create
association-based airspaces.
ImprovementAviation Standards
A new ILcdARINCHandler implementation has been added to com.luciad.format.arinc.decoder to decode heliports: TLcdARINCHeliportHandler.
ImprovementDefense Standards
Data quality information is now available for VPF databases, libraries and coverage,
via the new class TLcdVPFDataQualityDescriptor.
ImprovementDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder now also supports TRANSH01.THF
table of contents files.
ImprovementDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder now also retrieves
USRP/ASRP/ADRG metadata.
ImprovementDefense Symbology
The classes com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer and
com.luciad.symbology.app6a.view.swing.TLcdAPP6AObjectCustomizer have been extended with two new constructors,
which let the user supply an ILcdStringTranslator instance (see the package com.luciad.util).
The API documentation contains a list of String objects for which the method translate(String) in
ILcdStringTranslator
will be invoked. By using a custom ILcdStringTranslator, one can provide support for a different language.
ImprovementMaritime Standards
TLcdS57CatalogueModelDecoder now supports different mechanisms of loading. Besides immediate
loading all data, lazy loading using soft or weak references is supported now. The loading
policy can be set via the setLoadingPolicy() method.
ImprovementMaritime Standards
TLcdS57CatalogueModelDecoder now supports multileveled data. Catalogues containing data on
different levels will be decoded into a modellist, containing a model for each level.
Bug fixLuciadLightspeed
TLcdGMLModelEncoder now properly sets up default namespaces and other properties
such that in its default state, it produces files which are readable by
TLcdGMLModelDecoder.
Bug fixLuciadLightspeed
TLcdFeaturedPointGXYLayerCodec, TLcdFeaturedPolygonGXYLayerCodec and
TLcdFeaturedPolylineGXYLayerCodec used 'new int[]{0}' as default feature indices. This
means that if there is an ILcdFeaturedDescriptor, but no features are available (for example .dbf
file cannot be read for .shp files), exceptions are thrown when labeling is enabled (or
selection + selection labeled). They now use 'null' as default feature indices.
Bug fixLuciadLightspeed
TLcdMapLocation returns the string mi/pixel as unit for the scale expressed in miles per pixel.
Bug fixLuciadLightspeed
TLcdMIFModelDecoder returned a TLcdVectorModel when the decoded model contained only 1 point,
regardless of the
setting
of useIndexedModel. It now returns a TLcd2DBoundsIndexedModel.
Bug fixDatabase Connectors
The interpretation of geodetic arcs and circles has been improved.
Bug fixOGC Server
The WMS now defers the sending of GetMap and GetFeatureInfo results until the features
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Bug fixOGC Server
The WFS now defers the sending of GetFeature results until the features
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Bug fixOGC Server
The WCS now defers the sending of GetCoverage results until the coverages
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Bug fixTerrain Analysis Engine
Line-of-sight rasters now also create images. As a result they can now also be painted by no warp raster painters.
Bug fixAviation Standards
The methods setBeginPoint(ILcdPoint) and setEndPoint(ILcdPoint) in the class com.luciad.ais.model.route.TlcdRouteSegment
cloned the supplied point as an ILcd3DEditablePoint, making it impossible to retain specific implementations (e.g. featured)
of ILcdPoint. This clone operation has now been removed.
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNMicroStationModelDecoder now decodes the
correct positions and sizes of displayable tags.
Bug fixMaritime Standards
No S52 complex strokes are used when running Mac OS X (custom strokes are not supported yet
in
Mac OS X current Java distribution).
Upgrade considerationGraph and Routing Engine
The com.luciad.network.graph.partition package is extended with support
for partitioned graph events.
Upgrade considerationGraph and Routing Engine
TLcdGDFMultilevelTiledModelEncoder now implements ILcdModelEncoder. The method
encode has been renamed to export.
Upgrade considerationGraph and Routing Engine
The boolean argument 'inverseDirection' in ILcdEdgeValueFunction has been replaced
by a typesafe enumeration com.luciad.network.graph.TLcdTraversalDirection.
Upgrade considerationGraph and Routing Engine
The editing methods (addNode, removeNode, ...) of ILcdEditableGraph and
ILcdLimitedEditableGraph interfaces and their implementations
do no long perform any checks on the validity of their arguments. The checks
on the arguments have been formulated as preconditions now, and can be checked
explicitly via the corresponding 'can...' method (canAddNode, canRemoveNode).
As a consequence, editing performance of graphs is increased significantly.
Upgrade considerationGraph and Routing Engine
The network.graph.partition package has been reorganized. The interface
ILcdBoundaryEditablePartitionedGraph and ILcdEditablePartitionedGraph have
been removed. TLcdEditablePartitionedGraph has been renamed to TLcdPartitionedGraph
and extends now TLcdLimitedEditablePartitionedGraph.
Upgrade considerationGraph and Routing Engine
Event support is added to all graph interfaces and implementations. All existing
calls to graph methods, requiring an ILcdFireEventMode, can be called with
ILcdFireEventMode.NO_EVENT to obtain the same effect as before.
Upgrade considerationGraph and Routing Engine
All model descriptor interfaces (ILcdGDFDatasetModelDescriptor,
ILcdGDFLayerModelDescriptor, IlcdGDFSectionModelDescriptor) have been
replaced by concrete classes.
Upgrade considerationOGC Server
When doing a GetFeature request, earlier versions of the WFS looked for any
<PropertyName> elements in the "wfs" namespace. The WFS specification,
however, places these elements in the "ogc" namespace. The WFS has been
modified to conform with the specification, which means that applications
may need to be updated accordingly.
Upgrade considerationAviation Standards
The interface com.luciad.ais.model.route.ILcdEditableRoute has been extended with two methods
removeSegment(ILcdRouteSegment) and removeSegmentAt(int) which make it possible to remove
ILcdRouteSegment objects. To remain compatible, each implementation of this interface (either directly or through an extension)
should provide an implementation for these methods:
- removeSegment(ILcdRouteSegment) removes the given ILcdRouteSegment object from the route.
- removeSegmentAt(int) removes the ILcdRouteSegment with the given index from the route.
Upgrade considerationAviation Standards
The return type of the method getAirspace() in com.luciad.ais.symbology.icao.TLcdICAOAirspaceDetailedLabelPainter
and in com.luciad.ais.symbology.icao.TLcdICAOAirspaceLabelPainter has been changed from ILcdAirspace to the more
general interface ILcdGenericAirspace from which ILcdAirspace extends. It is however improbable that this method
is called from user code.
5.1
5.1.10b
ImprovementLucy (LuciadLightspeed)
TLcyGridAddOn: now uses the name defined in the configuration file as the label of the grid
layer that is added to the gxy view.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Points of polylines and polygons could be moved (by moving the complete
polyline) to an invalid location, e.g. to above 90 degrees latitude.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: When a filled shape in redlining is saved to a .red file, then read from
that
file, and saved again, the transparancy used to be changed by 1/255th percent.
5.1.09b
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: it is now possible to define a compound sort (on multiple columns)
and sorting is clearly indicated with an arrow in the table header.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Style file names are now correctly generated for files containing a dot in the
path
name but no dot in the file name. Furthermore no attempt is made any longer to save a style file
for a model with a corrupt source name.
Bug fixLucy (LuciadLightspeed)
TLcyDIMAPDecoderAddOn: Dimap files can now be read again. This bug was introduced in V5.0.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: The 3D layer selection dialog now uses a scroll bar when there are to much layers
to display. The dialog is now also centered properly.
5.1.08
Bug fixLuciadLightspeed
ALcdShapeList updates its focus point when a new set of shapes is set to the shape list.
Bug fixAviation Standards
When using the default constructor of TLcdDAFIFDefaultLayerFactory, each created layer was initially not visible.
Bug fixAviation Standards
When using the default constructor of TLcdARINCDefaultLayerFactory, each created layer was initially not visible.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder no longer throws exceptions with
"Unexpected handle code" for polygons without points.
Bug fixMaritime Standards
A problem with the visualization of complex polygons is fixed.
5.1.07
ImprovementLuciadLightspeed
TLcdWKTReferenceParser now decodes the prime meridian and the angular units. This enables the
TLcdEPSGReferenceParser
to decode the following references:
-
France: EPSG codes 27571-27274, 27581-27584, 27591-27594, 2192
-
Cuba: EPSG codes 2085, 2086
-
Guatemala: EPSG codes 32061, 32062
In order to decode these references correctly the lcd_epsg_resources.jar needs to be updated.
Bug fixLuciadLightspeed
Removed a possible deadlock during view painting when the paintInBackground was active on a
view.
Bug fixLuciadLightspeed
TLcdGMLSchemaDecoder now recognizes elements of which the type is defined by a nested
<simpleType> element. Such elements were previously ignored.
Bug fixLuciadLightspeed
TLcdDIMAPModelDecoder now properly fills out the source name in the decoded
TLcdDIMAPModelDescriptor.
Bug fixReal-time Engine
TLcdTrackModel now implements the method allElementsChanged. This method rearranges the objects so that they
are put in the correct bucket. In absence of this method objects were not painted when moving
from one bucket to another with the original bucket not showing in the view while the new bucket
shwoing in the view.
Bug fixAviation Standards
The class com.luciad.ais.shape.TLcdDiscretizedLonLatGeoPath has been extended with a method invalidate(),
which makes it possible to discard the cached discretisation and recalculate it. This is necessary when an individual ILcdGeoPathLeg
has been changed. Other domain object implementations of ILcdGeoPath that performed a discretisation using this class
had the same problem: TLcdAirspace, TLcdHelipad and TLcdParachuteJumpArea. These classes have also been extended with a method
invalidate().
5.1.06
ImprovementLuciadLightspeed
TLcdBufferedTile now provides methods to retrieve the file name and image index of the tile that
it reads.
Bug fixDefense Symbology
The sample ProGuard file luciadmap.pro did not contain the right commandos for the MIL-STD 2525b and APP6a symbology
painters.
5.1.05
Bug fixLuciadLightspeed
Fixed null pointer exception which sometimes occurred when resizing a view with paint in
background enabled.
Bug fixLuciadLightspeed
Fixed deadlock when panning with paint in background enabled on a view.
Bug fixLuciadLightspeed
TLcdGXYBoundsPainter no longer paints the outline of the bounds when it is in FILLED mode. The
outline is now
only painted when the painter is in OUTLINED or OUTLINED_FILLED mode.
Bug fixLuciadLightspeed
TLcdMIFModelEncoder no longer returns true for canExport of an ILcdModel that contains a
ILcdBounded
object. ILcdBounded objects were not encoded anyway. Only ILcdBounds objects are encoded.
Bug fixReal-time Engine
TLcdSimulator now fires property change events for all of its properties.
5.1.04
ImprovementLuciadLightspeed
Two extra classes have been added to the API, namely
com.luciad.wms.client.model.ALcdOGCWMSCapabilities and com.luciad.wms.client.model.ALcdOGCWMSService.
The class ALcdOGCWMSCapabilities contains information about the capabilities of a Web Map Service.
It can be accessed via the method getWMSCapabilities() in com.luciad.wms.client.model.ALcdWMSProxy.
Some of its information (like the layer descriptions) was already accessible via ALcdWMSProxy; this
class now delegates to ALcdOGCWMSCapabilities to retrieve that information.
The class ALcdOGCWMSService contains general information about a Web Map Service (corresponding to
the 'Service' tag in the capabilities document). It can be accessed via the method getWMSService() in
ALcdOGCWMSCapabilities.
ImprovementMaritime Standards
S-57 decoder performance is increased significantly. Especially models with lots of depth
contours will benefit from this.
Bug fixLuciadLightspeed
When moving a point which was just selected, the selection changed event threw a
NullPointerException when
retrieving the
change for that object. For this purpose the TLcdSelectionChangedEvent was adapted to accept 2
Vector objects
with
selected objects and deselected objects. It is up to the creator of the event that no object is
in both of these
vectors.
To speed up performance one can now retrieve the selected objects and deselected objects
separately through the
methods
selectedElements and deselectedElements.
Bug fixLuciadLightspeed
Featured models with featurenames longer than 11 were not exported correctly in SHP format.
These feature names
are now
truncated at 11 characters.
Bug fixLuciadLightspeed
TLcdGXYTextPainter can have a null frame style set.
Bug fixLuciadLightspeed
The magnifier window (displayed when setting the TLcdGXYMagnifierController) now adapts to
changes of its
underlying view, for example a projection change.
Bug fixLuciadLightspeed
TLcdGXYLayerList fires property change events when the label, icon or GXYpen is set.
Bug fixLuciadLightspeed
TLcd2DBoundsIndexedModelList does not accepts TLcdVectorModel objects when added. The
canAddModel method has
been adapted.
Bug fixLuciadLightspeed
ALcdGXYSmartController is not dragging by default. The value returned by isDragging is now false
on
construction.
Bug fixLuciadLightspeed
TLcdGXYPointListPainter calls setupGraphicsForPoint before painting a point.
Bug fixLuciadLightspeed
The vertical view does not throw an exception any more when dragging the mouse while no model
was set yet.
Bug fixLuciadLightspeed
TLcdGMLDecoder now correctly creates ILcdComplexPolygon objects when
encountering a "MultiPolygon" element in the GML document. Before this fix,
such elements would be decoded as ILcdShapeList objects.
Bug fixLuciadLightspeed
Some elements in TLcd2DRegularTiledBoundsIndexedModel: positioned outside the regular raster,
within the raster but overlapping with multiple tiles, or within the raster but on a place where
no tile exists,
were skipped sometimes in applyOnInteract. A new constructor has also been added offering the
possibility to
auto-generate a regular raster
Bug fixLuciadLightspeed
TLcdVVJPanel sometimes displayed a non-empty filled subprofile when the minimum and maximum
values were equal.
Bug fixLuciadLightspeed
The class com.luciad.format.database.gxy.TLcdDatabaseGXYPainterProvider now correctly handles
shape lists when
being used as an editor provider.
Bug fixReal-time Engine
TLcdTrackModel now checks whether it contains an object when elementChanged is called. Previously objects could have
been added to the model this way.
Bug fixTerrain Analysis Engine
TLcdProfileViewJPanel no longer throws exceptions when the mouse is dragged and no profile is set yet.
Bug fixMaritime Standards
A special exception handler interface, ILcdS57InvalidCellExceptionHandler, is added to
handle
cell exceptions, and can be set on TLcdS57CatalogueModelDecoder, allowing to decode partly
corrupted catalogues.
Bug fixMaritime Standards
The conditional symbology now always returns the same style for a given object.
Bug fixMaritime Standards
Paper chart symbols are painted correctly now (topmark symbols on lights and buoys were
missing).
Bug fixMaritime Standards
The attribute and object class maps are updated (some definitions were missing).
Bug fixMaritime Standards
Directional lights are oriented right now (some were oriented the opposite direction).
Bug fixMaritime Standards
Depth values of S-57 objects are computed all now (some objects were having a NaN depth
value).
Bug fixMaritime Standards
The safety contour is computed correctly now (some values were resulting in an incomplete
contour).
Bug fixMaritime Standards
Points, lines and areas with the same display priority are painted in that order now (some
points were hidden by areas having the same display priority).
Bug fixMaritime Standards
Display priority of paper chart symbols is correct now (some symbols were hidden due to a
wrong
display priority).
Bug fixMaritime Standards
Area fill patterns are painted correctly now (only part of the patterns were painted).
Bug fixMaritime Standards
Icons sizes of S-52 symbols are correct now (was fixed to 16x16 pixels).
Bug fixMaritime Standards
Text contents are shown correct now (the same text was displayed on different places
before).
Bug fixMaritime Standards
Danger symbols on the center of lines are painted now (were missing before).
Bug fixMaritime Standards
Checksum verification of individual ENC cells is performed now. An new exception is added,
TLcdS57InvalidCellException, that will be thrown whenever a checksum mismatch occurs.
Bug fixMaritime Standards
A class TLcdS52GXYLayerList was added, implementing the S-52 DATCVR procedure. This
procedure
describes how overscale indication and chart scale boundaries should be painted.
Bug fixMaritime Standards
TLcdS52GXYPainterProvider now implements ILcdGXYLayelPainterProvider, allowing to paint text
always with display priority 8 (as required by S-52). (text was always painted together with
the
object to which it belonged).
Bug fixMaritime Standards
All S-57 domain objects, making up an S-57 model, now implement the java.io.Serializable
interface,, allowing quick storage of manual updates.
Bug fixMaritime Standards
TLcdS57AttributeClassMap and TLcdS57ObjectClassMap now have a new method,
getStringFromAttributeClass() and getStringFromObjectClass(), making it possible to do an
inverse mapping, from attribute or object class code to string.
Bug fixMaritime Standards
TLcdS52Symbology has a method getPresentationLibraryVersion(), which can be used to retrieve
the
version of the presentation library that is implemented.
Bug fixMaritime Standards
Complex strokes (used to symbolize ferry routes etc.) are painted now. TLcdS52ComplexStroke
has
a new method, setAlternativeStroke(), which can be used to set a fallback-stroke that should
be
used whenever the primary (complex) stroke cannot be used.
Bug fixMaritime Standards
Unidentified objects are show as a question mark now, as required by the S-52 specification.
Bug fixMaritime Standards
Advanced text settings (font size, font style, offsets) are supported now.
Bug fixMaritime Standards
Support for text groups is added (offering the possibility to use a fine-grained text
filter).
TLcdS52GXYPainterProvider has a method setDisplayTextGroup() and getDisplayTextGroup() to
control which text groups are shown. TLcdS52Text has additional method setTextGroup() and
getTextGroup() to set and retrieve its text group.
Bug fixMaritime Standards
TLcdS52GXYPainterProvider and TLcdS52ConditionalSymbology now have a setSafetyDepth() and
getSafetyDepth() method, allowing to set the safety depth (only safety contours were
supported
before).
Bug fixMaritime Standards
Light sectors (procedure LIGHTS05) are painted now. TLcdS52GXYPainterProvider has a method
setDisplayFullLightSectorLines() and getDisplayFullLengthLightSectorLines(), to control how
light sectors are painted.
Bug fixMaritime Standards
The SCAMIN attribute indicating the minimum scale for an S-57 object to be shown is
supported
now.
Bug fixMaritime Standards
Icons oriented w.r.t. the north (trafic arrows, lights sectors, ...) are rotated now when
the
map is rotated.
Bug fixMaritime Standards
The resource files objectclasses.txt and attributes.txt have been updated to include missing
classes.
Upgrade considerationLuciadLightspeed
The model class com.luciad.model.TLcdModelList now also accepts other model
descriptors than the default TLcdEditableModelListDescriptor. The impact of this change should
be minimal as
TLcdEditableModelDescriptor implements ILcdModelDescriptor.
Upgrade considerationMaritime Standards
ILcdS57ObjectClassMap now has a method getStringFromObjectClass().
Upgrade considerationMaritime Standards
ILcdS57AttributeClassMap now has a method getStringFromAttributeClass().
Upgrade considerationMaritime Standards
ILcdS52Text now has a method getTextGroup().
Upgrade considerationMaritime Standards
ILcdS52Symbology now has a method getPresentationLibraryVersion().
Upgrade considerationMaritime Standards
ILcdS52ConditionalSymbology now has a method getSafetyDepth() and setSafetyDepth().
Upgrade considerationMaritime Standards
TLcdS52Area now extends TLcdComplexPolgyon, allowing donut and island topologies (only
simple
polygons were supported before, resulting in wrong depth calculations on some places). It
has no
longer a constructor with a ILcd2DEditablePointList.
5.1.03
ImprovementDefense Standards
A feature class selection can be set on the VPF tree via the
TLcdVPFDatabasePanel.setSelection(TLcdVPFFeatureClass[]) method. The current
selection can also be retrieved via the TLcdVPFDatabasePanel.getSelection()
method.
Bug fixDefense Standards
models without a tileref are now decoded correctly (were returning a
null model).
5.1.02
Bug fixLuciadLightspeed
The SHP model decoder and encoder now use the ISO-8859-1 character set to decode/encode DBF
files. This solves
some
problems with characters in the DBF file which were outside the classic ASCII range.
Bug fixLuciadLightspeed
Take some special cases for line segment intersection into account, i.e., two line segments on
same meridian
or on equator.
5.1.01b
ImprovementLucy (LuciadLightspeed)
TabbedPanesFrontendMain: now respects menu bar ordering, fixes issues with look&feel addon
and
properly adds its top level component to ILcyLucyEnv.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponent: TLcyMapComponent.getSnapList is now updated lazily, and objects
from invisible layers or objects of layers that are out of scale range are ignored.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: Area of interest layer is no longer drawn using straight lines.
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: now has a column with check boxes the toggle the visibility of every object.
ImprovementLucy (LuciadLightspeed)
TLcyMain: the default progress bar now respects new properties of TLcdStatusEvent.
When TLcdStatusEvent.isBlockHint returns false, the user interface is not blocked.
When the TLcdStatusEvent.isProgressIndeterminate returns true and when java 1.4 or above is
available, the progress bar is put in indeterminate mode.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: all angles in the textual editors (arc, sector, ellipse) now start at 12 o
clock, positive clockwise.
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: heavily improved performance when previewing a lot of pim tracks at the same
time.
ImprovementLucy (LuciadLightspeed)
TLcyMapOverviewAddOn: now has a toggle button to enable/disable the layer control of the map
overview.
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: default fill color of the grid now matches default background color of the 2D
view.
ImprovementLucy (LuciadLightspeed)
Colors of GRIB, DTED and swiss DHM data can now be modified using the 'Layer properties' button
in the
layer control. The colors can also be stored in a style file using File|Save layer style.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn: If multiple ms2525b layers are present, the user can choose the layer to add
the object to.
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn: If multiple app6a layers are present, the user can choose the layer to add the
object to.
ImprovementLucy (LuciadLightspeed)
TLcyTabbedPaneLucyEnvFactory now has three new methods:
- public ILcyLucyEnv createLucyEnv( JTabbedPane[] aApplicationPaneContainerArray,
ILcyMenuBar aMainMenuBar, boolean aMergeMenuBars );
- public ILcyLucyEnv createLucyEnv( Container aSingleMapContainer, JTabbedPane[]
aApplicationPaneContainerArray, ILcyMenuBar aMainMenuBar, boolean aMergeMenuBars );
- public ILcyLucyEnv createLucyEnv( Container[] aContainers, ILcyMenuBar aMainMenuBar,
boolean aMergeMenuBars );
These allow you to create a custom frontend with your own ILcyMenuBar (e.g. using the new
TLcyMenuBar). This allows to define the menu bar ordering.
ImprovementLucy (LuciadLightspeed)
TLcyMain now prints out the java version to TLcdLog.debug when the application is started.
ImprovementLucy (LuciadLightspeed)
TLcyLucyEnvFactory now has two new methods:
- public ILcyLucyEnv createLucyEnv( ILcyApplicationPaneFactory aApplicationPaneFactory,
ILcyMenuBar aMainMenuBar, boolean aMergeMenuBars );
- public ILcyLucyEnv createLucyEnv( ILcyApplicationPaneFactory aApplicationPaneFactory,
ILcyMenuBar aMainMenuBar, boolean aMergeMenuBars );
These allow to automatically merge the menu bars when creating a custom frontend, similar to
TLcyTabbedPaneLucyEnvFactory.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv now has two new methods:
- void addTopLevelComponent( Component aTopLevelComponent );
- void removeTopLevelComponent( Component aTopLevelComponent );
This allows to register top level components dynamically. Please refer to
TabbedPanesFrontendMain for an example.
ImprovementLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: now supports .prj reference files (next to .ref files) for all file
formats that don't have references by themselves.
ImprovementLucy (LuciadLightspeed)
TLcyMapEditUnitAddOn: now allows to change the azimuth format in the 'Edit' menu.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponent: now sorts the layer list leafs in the tree layer control according to the
order in which they appear in the ILcdGXYView.
If desired, this can be disabled in the 'resources/lucy/map/map_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: now uses the TLcdAdvancedMapRulerController by default.
If desired, this can be disabled in the 'resources/lucy/map/map_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: Full screen mode now shows the toolbar and the status bar of the map.
If desired, this can be disabled in the 'resources/lucy/map/map_addon.cfg'.
ImprovementLucy (LuciadLightspeed)
Toolbar items can now be configured in the various config files similar to configuring the menu
bar items.
Toolbar ordering can be defined in the 'resources/lucy/map/map_addon.cfg' file.
ImprovementLucy (LuciadLightspeed)
TLcyToolBar: If the toolbar does not receive its needed width, it now properly shows a button to
show the remaining toolbar items.
ImprovementLucy (LuciadLightspeed)
The Lucy API now foresees a new layer filter policy (see Lucy developer's guide). New classes
- com.luciad.lucy.util.ALcyCompositeFilter
- com.luciad.lucy.util.TLcyCompositeAndFilter
ImprovementLucy (LuciadLightspeed)
The API has new classes to work with action bars (menu bars and tool bars).
It is now possible to implement your own menu bars or tool bars or to customize the
existing ones. New classes are:
- com.luciad.lucy.gui.ALcyActionBar
- com.luciad.lucy.gui.TLcyMenuBar
- com.luciad.lucy.gui.TLcyToolBar
- com.luciad.lucy.gui.TLcyPopupMenu
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: now uses the new package for 3D terrain visualization that has been introduced in
the 3D specialized package
of LuciadMap v5.1. This new package offers support for tiling and adaptive level-of-detail
(LOD), both for geometry and
textures. Furthermore, terrain data can be preprocessed and stored to disk. These preprocessed
data sets are used in
combination with on-the-fly loading to support very large data sets, well beyond the limitations
of available system
memory.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyVPFDecoderAddOn has been deprecated in favour of
com.luciad.lucy.addons.vpf.TLcyVPFDecoderAddOn. The new addon offers the possibility
to show different VPF data sets transparently together. Data sets covering different
areas can be browsed as one virtual VPF data set, as well as data sets covering the
same area but with different levels of detail. In the latter case, the addon will
automatically select one of the available levels to show on the map, based on the
current map scale. A warning will be shown if the area of interest does not overlap
with the bounds of at least one of the available VPF libraries.
The new addon no longer contains a 'save memory' button.
Bug fixLuciadLightspeed
The methods createImageInputstream() and createImage() in com.luciad.wms.client.model.ALcdWMSProxy
executed sometimes an unnecessary GetMap request to a LuciadMap Web Map Server when using certain projections,
causing a performance penalty.
Bug fixMaritime Standards
com.luciad.format.s52.TLcdS52Symbology now selects the proper symbol when multiple symbols
are
present in the lookup table.
Bug fixMaritime Standards
com.luciad.format.s52.gxy.TLcdS52GXYPainterProvider now properly handles the special S-52
case
of the ORIENT attribute, previously causing an exception.
5.1
ImprovementLuciadLightspeed
TLcdLonLatParser takes commas into account as decimal separator char and TLcdLonLatFormatter can
have a
character set
to separate the longitude and latitude coordinate.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdAdvancedMapRulerController is a tool to measure distances on the map.
The
visualisation of the distances is highly customizable using ILcdGXYPainter's, ILcdGXYEditor's
and
ILcdGXYLabelPainter's. Distances can be measured in different modes: geodesic distance,
rhumbline
distance and projection plane distance. samples.gxy.ruler.MainApplet shows how it can be used.
ImprovementLuciadLightspeed
com.luciad.gui.swing.TLcdColorMapCustomizer is a Customizer for a TLcdColorMap object. This
enables
visual and textual editing of color maps. Such a color map can be used to create a
TLcdIndexColorModel. All this together allows to easily change the coloring of raster data, such
as
DTED or GRIB data, in the user interface. MainApplet in samples.gxy.colormap demonstrates this.
ImprovementLuciadLightspeed
Some new modeldescriptors are introduced to facilitate detection of the origin of data. Model
decoders now
produce models
with a specific model descriptor:
- com.luciad.format.magneticnorth.TLcdIGRFModelDecoder:
com.luciad.format.magneticnorth.TLcdIGRFModelDescriptor
- com.luciad.format.magneticnorth.TLcdWMMModelDecoder:
com.luciad.format.magneticnorth.TLcdWMMModelDescriptor
ImprovementGraph and Routing Engine
This package is a new LuciadMap option since v5.1.
ImprovementGraph and Routing Engine
This package is a new LuciadMap option, provided as a BETA in LuciadMap v5.1.
ImprovementAviation Standards
A separate model descriptor for each domain object used by DAFIF has been introduced (as an extension of the corresponding
general AIS model descriptor),
to facilitate detection of the origin of data. DAFIF decoders now produce models using these specific
model descriptors instead of the general AIS model descriptors.
ImprovementAviation Standards
A separate model descriptor for each domain object used by ARINC has been introduced (as an extension of the corresponding
general AIS model descriptor),
to facilitate detection of the origin of data. ARINC handlers now produce models using these specific
model descriptors instead of the general AIS model descriptors.
ImprovementAviation Standards
A new domain object is added to AIS to represent geographical borders. The basic interface is com.luciad.ais.model.geoborder.ILcdGeoborder.
This interface has a default implementation com.luciad.ais.model.geoborder.TLcdGeoborder and a featured extension
com.luciad.ais.model.geoborder.TLcdFeaturedGeoborder. For a list of features and the corresponding class mappings, see
com.luciad.ais.model.geoborder.ILcdGeoborderFeature and com.luciad.ais.model.geoborder.TLcdGeoborderFeatureClassMapper.
The AIS domain object factory com.luciad.ais.model.ALcdAISObjectFactory is extended with two methods to create
TLcdFeaturedGeoborder instances.
ImprovementAviation Standards
The interface com.luciad.ais.shape.ILcdGeoPathLeg is extended with a new leg type SUB_POINT_LIST. This leg
type can be used to create geopath segments containing a subset of a pointlist, for example a geographical border.
The subset is automatically determined in the context of a geopath: it consists of the points lying between the points
that are repectively closest to the previous and the next geopath vertex.
As a geographical border segment is often used in the context of airspaces, a new memory-efficient
implementation of com.luciad.ais.model.airspace.ILcdEditableAirspaceSegment with SUB_POINT_LIST as leg type
is introduced (com.luciad.ais.model.airspace.TLcdSubPointlistAirspaceSegment). This implementation uses
a shared pointlist instead of copying the data like the default implementation com.luciad.ais.model.airspace.TLcdAirspaceSegment.
ImprovementDefense Standards
A new class, TLcdVPFDatabaseGroup, was added to the API, for working with
multiple VPF databases.
ImprovementDefense Standards
TLcdVPFPropertiesUtil now contains a method createFeatureProperties that can
generate VPF decoder properties for a given VPF feature class and bounds.
ImprovementDefense Standards
The VPF tree structure can be preloaded (setPreloadDatabaseTree), which
avoids accessing the disk/CD every time a tree node is expanded.
ImprovementDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder now supports UTM references
on the southern hemisphere and UPS references on the poles.
ImprovementDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder has an improved detection of
ASRP versions.
ImprovementDefense Symbology
The ILcdGXYView implementations (that extend java.awt.Component) no longer recalculate their caches
multiple times when one of the invalidate methods is called multiple times with the repaint flag set
to true.
ImprovementDefense Symbology
A default style for MIL-STD 2525b or APP-6A can now be set on the icon provider
(com.luciad.symbology.milstd2525b.view.TLcdMS2525bObjectIconProvider
and com.luciad.symbology.app6a.view.TLcdAPP6AObjectIconProvider), the painter provider
(com.luciad.symbology.milstd2525b.view.gxy.painter.TLcdMS2525bGXYPainterProvider
and com.luciad.symbology.app6a.view.gxy.painter.TLcdAPP6AGXYPainterProvider) and the label painter provider
(com.luciad.symbology.milstd2525b.view.gxy.painter.TLcdMS2525bGXYLabelPainterProvider
and com.luciad.symbology.app6a.view.gxy.painter.TLcdAPP6AGXYLabelPainterProvider). This style will be used when a
particular symbol doesn't have an associated style
(by implementing ILcdMS2525bStyled or ILcdAPP6AStyled). The former methods to set a default icon size and default
outline behaviour in some of these classes
are now redundant and have been made deprecated.
ImprovementDefense Symbology
The line color/width for tactical graphics in MIL-STD 2525b and APP-6A can now be properly customized using the
methods
setLineColor() and setLineWidth() in com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle.
ImprovementDefense Symbology
The interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle,
and their respective implementations TLcdDefaultMS2525bStyle and TLcdDefaultAPP6AStyle are extended with new methods
to control
the display behaviour of icon symbols:
-
setSymbolFrameEnabled(boolean), isSymbolFrameEnabled(): Sets/returns whether the symbol should be displayed
framed. The frame
corresponds to the affiliation icon that forms the background of a symbol (e.g. a blue square for friendly
symbols).
-
setSymbolFillEnabled(boolean), isSymbolFillEnabled(): Sets/returns whether the symbol should be displayed
filled. It replaces
the method setOutlined(boolean aOutlined) which is now deprecated.
-
setSymbolIconEnabled(boolean), isSymbolIconEnabled(): Sets/returns whether the hierarchy icon inside the symbol
should be displayed.
A new child customizer to control these display options for styled icon symbols is introduced in the MIL-STD 2525b
customizer
(com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer) and the APP-6A customizer
(com.luciad.symbology.app6a.view.swing.TLcdAPP6AObjectCustomizer). The former outline child customizer has been
removed .
ImprovementDefense Symbology
The classes com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer and
com.luciad.symbology.app6a.view.swing.TLcdAPP6AObjectCustomizer
are extended with some protected methods that can be overriden to change its layout, to control which child
customizers (e.g. the affiliation combobox)
should be present/absent or to create own child customizers.
ImprovementDefense Symbology
The interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle are
extended with two new methods to control the hiding/displaying of each label of a symbol. These methods are:
-
setLabelEnabled(String aLabel, boolean aEnabled): This method sets whether the given label should be displayed
or hided.
The label must be identified using the static members of com.luciad.symbology.milstd2525b.model.ILcdMS2525bCoded
for MIL-STD 2525b
or com.luciad.symbology.app6a.model.ILcdAPP6ACoded for APP-6A.
-
isLabelEnabled(String aLabel): This method returns whether the given label will currently be displayed or hided.
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now has improved handling of
NumberFormatExceptions
due to unreadable input files.
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57CatalogueModelDecoder now allows delegation to a user-specified
instance of com.luciad.format.s57.TLcdS57ModelDecoder.
ImprovementS-63
New package com.luciad.format.s63 for decoding S-57 data encrypted using the
S-63 standard.
Bug fixLuciadLightspeed
The name of the layer style file that TLcdMultilevelRasterGXYLayerCodec (and the other layer
codec
implementations) tried to find was wrong when the path contains a dot (.), but the
file does not contain a dot. For example, release\LuciadMap\5.0\LuciadMap\samples\Data\Dted\Alps\dmed
Bug fixLuciadLightspeed
The property change event fired when the model changes on a TLcdVVJPanel now includes the old
and new values of
the models.
Bug fixLuciadLightspeed
The EPSG reference parser API documentation contains a list of supported EPSG codes.
Bug fixLuciadLightspeed
TLcdOpenAction methods setPredefinedFileNames and getPredefinedFileNames have been added to
replace
setPredefinedFileNames
and getPredefinedFileNames. These methods are now deprecated.
Bug fixLuciadLightspeed
The class com.luciad.wms.client.model.ALcdWMSNamedLayer has been extended with two methods, getMinScaleDenominator()
and getMaxScaleDenominator. These methods retrieve the minimum and maximum scale range from a layer as defined in
the
WMS 1.3.0 specification.
Bug fixLuciadLightspeed
ALcdPoint implements the method hashCode, since it already implemented equals.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdRasterPainter and
com.luciad.format.raster.TLcdMultilevelRasterPainter no longer
try to reuse a cached image when their ColorModel properties have changed.
Bug fixDefense Symbology
The classes com.luciad.symbology.app6a.view.gxy.painter.TLcdAPP6AGXYPainterProvider and
com.luciad.symbology.app6a.view.gxy.painter.TLcdAPP6AGXYEditorProvider
don't accept objects which do not implement the interface com.luciad.symbology.app6a.model.ILcdAPP6AShape. This is
as before, but now a proper IllegalArgumentException is thrown when
this condition is not satisfied. The documentation of these classes is also improved concerning this problem.
Bug fixDefense Symbology
The classes com.luciad.symbology.milstd2525b.view.gxy.painter.TLcdMS2525bGXYPainterProvider,
com.luciad.symbology.milstd2525b.view.gxy.painter.TLcdMS2525bGXYEditorProvider and
com.luciad.symbology.milstd2525b.view.gxy.painter.TLcdMS2525bGXYLabelPainterProvider don't accept objects which do
not implement the interface com.luciad.symbology.ms2525b.model.ILcdMS2525bShape. This is as before, but now a proper
IllegalArgumentException is thrown when
this condition is not satisfied. The documentation of these classes is also improved concerning this problem.
Bug fixDefense Symbology
A correct implementation of the method equals() and hashCode() is now provided in
com.luciad.symbology.app6a.model.TLcdEditableAPP6AObject.
Bug fixDefense Symbology
A correct implementation of the method equals() and hashCode() is now provided in
com.luciad.symbology.milstd2525b.model.TLcdEditableMS2525bObject.
Bug fixDefense Symbology
The documentation in the interfaces com.luciad.symbology.milstd2525b.view.gxy.ILcdMS2525bStyle and
com.luciad.symbology.app6a.view.gxy.ILcdAPP6AStyle
has been improved. Some unused methods have been made deprecated.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now decodes all sounding points again.
Upgrade considerationLuciadLightspeed
Deployment licenses are now expected to be in a file name deployment_license.txt instead of
runtime_license.txt.
The change is incompatible in the sense that the license may not be found if it is still in a
file called
runtime_license.txt. Note that this text file is looked for in the classpath and may be
contained in a jar file.
The name of the jar file is of no importance (as long as it is in the classpath). Renaming the
jar file will
thus not solve this incompatibility.
5.0
5.0.06
ImprovementWeather & Environment Standards
com.luciad.format.grib.TLcdGRIBModelDecoder.canDecode(String) now also returns
true for compressed GRIB files.
ImprovementWeather & Environment Standards
com.luciad.format.grib.gxy TLcdGRIBGXYController now supports multi-valued
GRIB values.
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57CatalogueModelDecoder now allows setting a selection of object
classes to be decoded, like com.luciad.format.s57.TLcdS57ModelDecoder.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdRasterPainter and
com.luciad.format.raster.TLcdMultilevelRasterPainter have been
fixed to throw PropertyChangeEvents again.
Bug fixLuciadLightspeed
The clipping done in com.luciad.view.gxy.TLcdAWTPath has been improved to avoid integer
overflows.
Bug fixLuciadLightspeed
Some DTED level 2 files could not be read, due to the fact that the resolution and the number of
horizontal/vertical lines was not encoded in 4 figures.
Bug fixLuciadLightspeed
For a specific setup (Linux, JDK 1.5.0, System look and feel), the TLcdGXYViewJJPanel caused a
null pointer
exception on instantiation.
Bug fixOGC Server
The WMS 1.3.0 service exception reports are now always well-formed XML.
Bug fixOGC Server
When using a spatial filter with a multiple geometries only the first geometry was taken into account.
Bug fixDefense Symbology
The arrow in the friendly aviation symbol from the tactical graphics group in MIL-STD 2525b (hierarchy
2.X.2.5.2.2.1) and
APP-6A (hierarchy 2.X.2.1.5.2.2.1) is now positioned correctly.
Bug fixDefense Symbology
Removed possible occurrence of a NullPointerException when performing echelon-based operations in
com.luciad.symbology.milstd2525b.view.TLcdMS2525bIcon
and com.luciad.symbology.app6a.view.TLcdAPP6AIcon.
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNLevelSymbology now has a method to go from level
index to level ID.
5.0.05
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder returns a model with a
com.luciad.format.s57.TLcdS57ModelDescriptor, which now contains various metadata.
Bug fixAviation Standards
The default (selection) color in the airspace painter com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter
can now be customized: the (selection) color of the line style (see method setLineStyle()) will be used as default
(selection) color when an airspace has no classification or when no specific classification - color match can be retrieved.
Bug fixDefense Standards
sample 2 works now on JDK 1.2.2 (getPath() in java.net.url was not
supported in JDK 1.2.2).
Bug fixDefense Standards
TLcdVPFLayer.getBounds() throws a TLcdNoBoundsException now if the model is
empty (returned null before).
Bug fixDefense Standards
TLcdVPFModelDescriptor.getFeatureCount() returns the correct number of
features now.
Bug fixDefense Standards
The layout of the first sample is modified so that all labels are clearly
readable now.
Bug fixDefense Standards
The border of checkboxes in the VPF database tree is completely visible
now (was missing on the right side).
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now has a display name that
corresponds to the type name of com.luciad.format.dgn.TLcdDGNModelDescriptor.
Upgrade considerationMaritime Standards
com.luciad.format.s57.TLcdS57CatalogueModelDecoder now returns a model with a
com.luciad.format.s57.TLcdS57CatalogueModelDescriptor (previously
com.luciad.format.s57.TLcdS57ModelDescriptor). Its elements are still S-57 elements. Any
"instanceof" tests should be extended, if models decoded from catalogues are to be taken
into
account.
5.0.04
ImprovementLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: PIM Trajectories can now be labeled.
ImprovementLucy (LuciadLightspeed)
TLcyMapAddOn: Can now specify the application pane location of newly created maps in the config
file.
ImprovementLucy (LuciadLightspeed)
TLcyRedliningAddOn: Rectangle's now have textual editor available.
ImprovementLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: now supports partitioning of Ecdis data according to the display
priorities.
ImprovementLuciadLightspeed
The UTM grid layer can be based on any geodetic datum, not just WGS 84. The utility classes
com.luciad.view.map.TLcdUTMMgrsUtil and com.luciad.view.map.TLcdMapLocation take this into
account from now on.
ImprovementAdvanced Raster Connectors
The ECW native libraries have been updated with the latest versions.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder now works around the 254 file limit of the native MrSID
library.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: Empty text modifiers of MS2525b objects are now saved and restored correctly.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Duplicating objects now preserves their style properties. All objects can
now be duplicated.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Style changes are now applied to groups inside groups and when either one of
line width, line dash or arrow style is changed, no longer the current setting for these 3 is
applied on the selection, but only the changed setting.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Redlining now saves all possible line styles.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Parallel shapes are now saved and restored correctly.
Bug fixLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: When the name of the map was changed, the title of the application
pane was not updated.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: The method getLayerControl() of ILcyMapComponent now no longer returns null.
Bug fixLucy (LuciadLightspeed)
TLcyPrintAddOn: print preview dialog can no longer be resized.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: When in civilian mode, and the map is rotated, icons are rotated correctly.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Selection is now labeled when using label decluttering.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Removing layer lists from layer lists now works.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Parsing coordinates in grid references in units other than the known units
(m, km, ft, ...) now works correctly.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Circle painter now respects lon lat format and distance format for showing
the distance and center label when editing.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: No longer error message popup when application pane is dragged to map when using
Java 1.3
Bug fixLucy (LuciadLightspeed)
TLcyXMLAddOnLoader: Now loads addons dependant on specialized packages correctly if license file
has floating licenses per specialized package.
Bug fixLuciadLightspeed
The arcband painters isTouched sensitivity was hardcoded and not accessible in the class. This
could result in
unexpected behaviour when extending the method. The pens hotpoint size is now used as the
sensitivity. Remark
that by default this is less than the previous value.
Bug fixLuciadLightspeed
Setting a new model on a sub layer of a TLcdGXYLayerList caused a NoSuchElementException when
removing the sub
layer
from the layer list.
Bug fixLuciadLightspeed
The TLcdMapJPanel sometimes displayed only the background when it was invalidated before it was
visible and its
size was changed shortly after.
Bug fixLuciadLightspeed
The buffer painter no longer stops creation of a buffer when the last point created was put on
top of another
point of that same buffer.
Bug fixAdvanced GIS Engine
The method checkTopology in com.luciad.geometry.topology.ALcd2DBasicBinaryTopologyMultiShape caused a
IllegalArgumentException when
passing an ILcdPoint implementation which was not an ILcdPolyPoint implementation.
This happened if the first shape argument was a polygon and the second argument a ILcdPoint.
The reverse case was handled correctly.
Bug fixAdvanced GIS Engine
The method checkTopology in com.luciad.geometry.topology.ALcd2DBasicBinaryTopologyMultiShape caused a ClassCastException when
passing an ILcdPoint implementation which was not an ILcdPolyPoint implementation.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now accepts files containing ISO/IEC 8211 strings
with
field terminators instead of unit terminators.
5.0.03
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdEPSGReferenceParser has clearer error messages.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdLambertFrenchGridReference supports a carto property to
specify whether the zone number should be prefixed to the false northing.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYViewFitAction reverts the view to a predefined scale if the layer to
fit has bounds
with
width and height equal to 0. This is typical for layers with an ILcd2DBoundsIndexedModel
containing only 1 point.
This avoids extreme zoom in on this kind of layers.
ImprovementLuciadLightspeed
The SHP model encoder (com.luciad.format.shp.TLcdSHPModelEncoder)requires a
ILcdFeaturedDescriptor instead of a
TLcdFeaturedModelDescriptor to encode the features in a DBF file.
ImprovementLuciadLightspeed
The label painters com.luciad.view.gxy.TLcdGXYLabelPainter and
com.luciad.view.gxy.TLcdGXYEditableLabelPainter
have
a method paintPin which can be overwritten to change the pin style.
ImprovementLuciadLightspeed
Most of the projections used a shared instance of a out of bounds exception
(com.luciad.util.TLcdOutOfBoundsException) for performance reasons. When this exception is
thrown and not caught, the stack trace could not be used to detect the origin of the exception.
For debuggin
purposes, the exception class now has a static method to return a new exception
every time. The stack trace of the exception is then filled at the location it occurs.
ImprovementLuciadLightspeed
The method geodesicPointSFCT in com.luciad.geodesy.TLcdEllipsoid which computes a point at a
fraction between two
given points has improved accuracy.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDecoder has a method setWithFeatures to turn of reading the
DBF file.
ImprovementOGC Server
The API has been slightly relaxed to allow the implementation of custom WFS
requests through the API:
- The "final" modifier has been removed from the createCommandDispatcher()
method of ALcdOGCWFSCommandDispatcherFactory;
- The registerRequestHandler() method of ALcdOGCCommandDispatcher has
been promoted from protected to public.
This enables users to extend the WFS by installing their own implementations of
the ILcdRequestHandler interface.
ImprovementOGC Server
The API has been slightly relaxed to allow the implementation of custom WCS
requests through the API:
- The "final" modifier has been removed from the createCommandDispatcher()
method of ALcdOGCWCSCommandDispatcherFactory;
- The registerRequestHandler() method of ALcdOGCCommandDispatcher has
been promoted from protected to public.
This enables users to extend the WCS by installing their own implementations of
the ILcdRequestHandler interface.
ImprovementTerrain Analysis Engine
2 factories:
- com.luciad.tea.TLcdRadarP2PFactory
- com.luciad.tea.TLcdRadarCoverageFactory
can display line-of-sight computations based on radar visibility .
ImprovementInfrastructure Standards
The painter styles now handle DGN V8 levels whose numbers differ from their
indices (instead of throwing ArrayIndexOutOfBoundsExceptions).
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now has a significantly better performance.
Bug fixLuciadLightspeed
The icon painters method to return an icon based on the painter mode has been refined, since the
icon painter
painted the default icon on top of the selection icon when the layer was editable.
Bug fixLuciadLightspeed
Fitting to layers containing very large objects (compared to the scale) in a TLcdVector model is
now more
accurate. This voids the need to apply consecutive fit actions to achieve the correct result.
Bug fixLuciadLightspeed
The UTM grid parallels at the highest scale are now painted more accurately.
Bug fixLuciadLightspeed
The UTM grid is now painted when partially out of bounds on every zoom level.
Bug fixLuciadLightspeed
The grid pen (com.luciad.view.map.TLcdGridPen) did not construct its AWT path correctly for
polygons. The one
but last
point of the point list was connected to the first point to close the polygon, instead of the
last point
of the point list.
Bug fixLuciadLightspeed
In a multiple selection a circle would move along when another object in the selection was being
edited (in RESHAPED mode).
Bug fixLuciadLightspeed
An arc in a multiple selection did not move when the rest of the selection was moved if it was
not touched by
the mouse
pointer.
Bug fixLuciadLightspeed
Very flat ellipses are now painted better. Parts of the ellipse were not painted before due to
clipping settings
which
were too strict.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder correctly supports the french
grid systems.
Bug fixLuciadLightspeed
The edit controller repaints even when the edited object no longer has bounds, for example, when the
text of an
ILcd2DEditableText
is emptied.
Bug fixLuciadLightspeed
The text painter throws a TLcdNoBoundsException when the text is null or has zero length. This
will avoid
unclear exceptions
when ILcdText creation is canceled when entering the text.
Bug fixLuciadLightspeed
The polygon label painter (com.luciad.view.gxy.TLcdGXYPolygonLabelPainter) did not throw a no
bounds exception
when
the object to which the label belonged was out of bounds. This had an effect amongst others on
the label
deconfliction.
Bug fixLuciadLightspeed
com.luciad.reference.format.TLcdWKTReferenceParser better parses projection parameters.
Bug fixLuciadLightspeed
When one of the models in a model list (com.luciad.model.TLcdModelList) did not contain any
elements
hasMoreElements returned false, while the next model(s) could still contain elements.
Bug fixLuciadLightspeed
com.luciad.geometry.cartesian.TLcdXYZRotation no longer throws a NullPointerException after
changing one of the
angles.
Bug fixOGC Server
When performing a GetFeature request in XML format, the "outputFormat" attribute is now no longer ignored.
Bug fixMaritime Standards
Fixed an issue in the handling of update files that resulted in the decoder printing out
warnings about missing elements in the file.
5.0.02
ImprovementLucy (LuciadLightspeed)
The path of the file with the predefined url's can now be set in
wmsclient_addon.cfg, via the key TLcyWMSClientAddon.predefinedurls.path (default
value is still lucy/wmsclient/predefined.wms).
Bug fixLucy (LuciadLightspeed)
TLcyWMSClientAddOn: No longer throws NullPointerException when enter was pressed after an
erroneous url was entered.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: When the label of a layer is modified, the tote panel did not update the text in
its tab.
Bug fixLucy (LuciadLightspeed)
TLcyToteAddOn: Filtering objects from display now also works if tote panel is moved to another
location.
5.0.01
ImprovementLuciadLightspeed
The release contains a sample Proguard configuration file for end user
applications using LuciadMap.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder has clearer
error messages
when the reference cannot be decoded.
Bug fixDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder has an improved handling of
transparent colors.
5.0
ImprovementLuciadLightspeed
com.luciad.beans.swing.TLcdPropertySheetSW and com.luciad.beans.awt.TLcdPropertySheetAWT throw
an exception with
a clearer message when cloning fails.
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder
uses the model descriptor to determine the attribute type if available. If that information is
not available it
falls back to the schema.
ImprovementLuciadLightspeed
All decoders by default do not use NIO, except for the tiledecoders in the raster package
(com.luciad.format.raster.ALcdTile extensions).
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder has a stricter check for what it can decode (
a.toc instead of
.toc).
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder supports C-89041A specification.
ImprovementLuciadLightspeed
com.luciad.util.TLcdSubEnumeration has the possibility to specify a key provider.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYEditableLabelPainter has an extra property to configure the label
text alignment. The
label text can be placed right,left or centered next to the old mode which placed the text
depending on the
labels position with regard to the object.
ImprovementLucy (LuciadLightspeed)
These classes were removed from package com.luciad.lucy.map.painter:
- TLcyBrightnessPropertyEditor
- TLcySmartMultilevelRasterPainter
- TLcySmartMultilevelRasterPainterBeanInfo
- TLcySmartMultilevelRasterPainterCustomizer
- TLcySmartMultilevelRasterPainterPropertyEditor
- TLcySmartRasterPainter
- TLcySmartRasterPainterBeanInfo
- TLcySmartRasterPainterCustomizer
- TLcySmartRasterPainterPropertyEditor
- TLcyTransparencyPropertyEditor
These classes were removed from package com.luciad.lucy.map:
- ALcyGXYLayerEncoder
- ALcyGXYLayerDecoder
ImprovementLucy (LuciadLightspeed)
Startup scripts now support .jar license files, before they only supported .txt license files.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: now has new createIcon and insertIcon methods
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: now adds two new menu items 'Save layer style' and 'Save layer style
as' to save the style of certain layers.
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: now adds a scale icon to the map
ImprovementLucy (LuciadLightspeed)
TLcyMapComponentFactory: now has scale combo box instead of scale label
ImprovementLucy (LuciadLightspeed)
Lucy status bar now accepts TLcdStatusEvent.MESSAGE events.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.gui.TLcyGroupDescriptor: now has a constructor with a UID (string)
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: now has a feature only display the selected items
ImprovementLucy (LuciadLightspeed)
TLcyToteAddOn: now has a feature to find text in a table
ImprovementLucy (LuciadLightspeed)
TLcyDAFIFAddOn: now reads possible layer configurations from config file instead of from
directory listing
ImprovementLucy (LuciadLightspeed)
TLcyARINCAddOn: now reads possible layer configurations from config file instead of from
directory listing
ImprovementLucy (LuciadLightspeed)
TLcyPimTrackAddOn: smaller airplane icon in civilian mode
ImprovementLucy (LuciadLightspeed)
TLcyVerticalViewAddOn: now uses lucy units for altitude.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: contours panel now uses lucy units for altitudes.
ImprovementLucy (LuciadLightspeed)
TLcyTeaAddOn: line of sight panel now uses lucy units for altitudes, angles, distances and
points.
ImprovementLucy (LuciadLightspeed)
TLcyMS2525bAddOn: now respects correct outline of MS2525b symbols
ImprovementLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: renamed 'screen kilo' to 'compass grid'
ImprovementLucy (LuciadLightspeed)
TLcyG4JAddOn: now applies default alitude unit for intersection plane slider.
ImprovementLucy (LuciadLightspeed)
TLcyS57DecoderAddOn: now also reads catalog (.31) files.
ImprovementLucy (LuciadLightspeed)
TLcyMrSidDecoderAddOn: now delegates layer creation/encoder/decoding to TLcdRasterGXYLayerCodec.
ImprovementLucy (LuciadLightspeed)
TLcyECWDecoderAddOn: now delegates layer creation/encoder/decoding to TLcdRasterGXYLayerCodec.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: raster file loading now delegates layer creation/encoder/decoding to
TLcdRasterGXYLayerCodec.
ImprovementLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: reading shp files now delegates layer creation/encoder/decoding to
TLcdFeaturedPointGXYLayerCodec, TLcdFeaturedPolylineGXYLayerCodec and
TLcdFeaturedPolygonGXYLayerCodec.
ImprovementLucy (LuciadLightspeed)
TLcyDataRepositoryAddOn: can now read data from multiple data roots and supports style files.
ImprovementLucy (LuciadLightspeed)
TLcyTabbedPaneLucyEnvFactory: All 'createLucyEnv' methods now have a boolean 'aMergeMenuBars'.
ImprovementLucy (LuciadLightspeed)
All menu items of the core and all addons are now configurable in the respective configuration
files.
ImprovementLucy (LuciadLightspeed)
Various javadoc improvements.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: changed GXYLayerEncoder/Decoder methods to work with new ILcdGXYLayerEncoder and
ILcdGXYLayerDecoder interfaces.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: added add/remove/getCustomizerFactory, getCompositeCustomizerFactory and
getCustomizerFactoryCount.
ImprovementLucy (LuciadLightspeed)
ILcyLucyEnv: added get/setScreenResolution.
ImprovementLucy (LuciadLightspeed)
TLcyWMSClientAddOn: new addon that allows Lucy to be a WMS client.
ImprovementLucy (LuciadLightspeed)
TLcyAPP6AAddOn: new addon that allows to draw APP6a symbology on the map.
ImprovementLucy (LuciadLightspeed)
TLcyGRIBDecoderAddOn: new addon that support the GRIB weather format.
ImprovementOGC Server
If a request specifies a bounding box that does not lie completely inside
the bounds of the selected coverage, the WCS server will now return only the area for which the coverage is defined. Prior
to version 4.4, the WCS would return an image that contained blank areas where the coverage was undefined.
ImprovementAviation Standards
ARINC has been separated from the AIS package. For changes and bug fixes
prior to LuciadMap 4.4,please refer to
releaseNotes_Ais.html.
ImprovementAviation Standards
DAFIF has been separated from the AIS package. For changes and bug fixes
prior to LuciadMap 4.4, please refer to
releaseNotes_Ais.html.
ImprovementAviation Standards
The bandwidth parameter in the method setBandWidth() in com.luciad.ais.symbology.icao.TLcdICAOAirspacePainter must
now be specified in meters.
ImprovementAviation Standards
ImprovementDefense Symbology
com.luciad.symbology.milstd2525b.view.TLcdMS2525bIcon supports the visual difference
between present and anticipated status (respectively plain and dashed border).
ImprovementDefense Symbology
com.luciad.symbology.milstd2525b.model.TLcdMS2525bOrderOfBattleModifier is extended with a new type of order of
battle "Control Markings".
ImprovementDefense Symbology
com.luciad.symbology.milstd2525b.model.TLcdMS2525bStatusModifier is extended with an Undefined status.
ImprovementDefense Symbology
com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer is extended with customizers for the status
and the order of battle of a symbol.
ImprovementDefense Symbology
A method isSelectionOk() is added to com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer: this
method lets the user
check whether the current selection in the customizer is valid (e.g. the selection of a directory in the tree is
invalid). Note: the property change event
with name TLcdMS2525bObjectCustomizer.PROPERTY_SELECTION_OK is still present and thrown when the user selects
a symbol.
Bug fixLuciadLightspeed
Creating a point list by snapping to existing points is now
possible
with the point list painter (com.luciad.view.gxy.TLcdGXYPointListPainter).
When the icons of the points snapped to were big, this failed because the point was moved over such a distance that
it was no longer
recognized as being touched by the mouse.
Bug fixLuciadLightspeed
The point list painter
com.luciad.view.gxy.painter.TLcdGXYPointListPainter
incorrectly handled insertion of 3D editable points into a polygon.
Bug fixLuciadLightspeed
The arc painter and ellipse painter,
com.luciad.view.gxy.painter.TLcdGXYArcPainter and
com.luciad.view.gxy.painter.TLcdGXYEllipsePainter display
cursors consistent with the behavior of the painter.
Bug fixLuciadLightspeed
TLcdGXYArcPainter and TLcdGXYArcbandPainter in
com.luciad.view.gxy.painter are
more consistent with regard to the painter mode HANDLES.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYEditController has a
stricter check
on the editor mode: for the editor mode RESHAPED, only the CTRL key
has to be pressed.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYNewController threw a
NullPointerException when no action was set to be triggered after creation. This was due to the new
controller not
implementing the paint method well.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYNewController no longer
needs the mouse
to move to perform a repaint. When the view was updated programmatically, the
newly created object would disappear when it was not created entirely yet.
Bug fixLuciadLightspeed
The filled triangle mode in com.luciad.gui.TLcdSymbol uses the fill color passed.
Bug fixLuciadLightspeed
The method intersection2DLineSegmentsSFCT in com.luciad.geodesy.TLcdSphereUtil did not move the
given point to
the intersection point in a special case, although the point was computed correctly. This
resulted in an
incorrect number of
intersection points (0 instead of 1).
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil occasionally had a
numerical problem in
closestPointOnGeodesic, which resulted in one of the end points being returned.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFF better computes bounds
of images
referenced by multiple tie points.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdRasterPainter supports
wrap-around for rasters.
This is useful for raster data spanning the whole globe.
Bug fixLuciadLightspeed
com.luciad.model.TLcdTiled2DBoundsIndexedModel returns null
for the
model reference if no submodels were added yet, instead of throwing an exception.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder sets the number of
features to
0 if no MID file could be decoded. This prevents a difference between the number
of features stated in the descriptor and the number of features of the objects
in the model.
Bug fixLuciadLightspeed
com.luciad.format.gml.TLcdGMLSchemaEncoder
handles all geometries even when the model is empty.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: Creating a polyline by snapping to
existing points used to fail after few points.
Bug fixLucy (LuciadLightspeed)
TLcyModelReferenceAddOn: some properties of the chosen
reference were sometimes not correctly applied.
Bug fixLucy (LuciadLightspeed)
TLcyVPFDecoderAddOn: no longer throws NullPointerException
when update button was pressed after vpf layers were removed.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Drag & drop of several layers to the
garbage can no longer throws InvalidDnDOperationException.
Bug fixLucy (LuciadLightspeed)
TLcyDefaultDecodersAddOn: CADRG files now have correct file
type descriptor.
Bug fixLucy (LuciadLightspeed)
TLcyMain: firing a TLcyVetoException in a ILcyLucyEnvListener
no longer causes IllegalArgumentException.
Bug fixLucy (LuciadLightspeed)
TLcyTeaAddOn: Removing the Tea intervisibility layer caused
nullpointer exception if feature was used afterwards.
Bug fixLucy (LuciadLightspeed)
TLcyRedliningAddOn: the 'Shape' and 'Draw' buttons in the
redlining toolbar are now translated.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: now also works without 3D specialized
package.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: double clicking the preview unit no longer
shows the class name.
Bug fixLucy (LuciadLightspeed)
TLcyPIMTrackAddOn: altitude of previewed track now sticks to
altitude set in waypoints.
Bug fixLucy (LuciadLightspeed)
TLcyMapRadarViewAddOn: screen kilo (compass grid) layer was
not updated when used with PIM tracks
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: Closing a second map with a pim track on it
used to throw a null pointer exception.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: The icon and checkbox of the selected layer in
the layer tree was not updated if it had the focus.
Bug fixLucy (LuciadLightspeed)
TLcyMapAddOn: The map addon config file decoder now prints
exception trace when the XY world reference cannot be parsed.
Bug fixLucy (LuciadLightspeed)
TLcyG4JAddOn: no longer throws unrecoverable exception when
language resources are not found.
Bug fixLucy (LuciadLightspeed)
Fixed jdom dependancies. All code is now compatible with
jdom.jar delivered with LuciadMap.zip.
Bug fixDefense Standards
TLcdNITFModelDecoder now checks for the NSIF 1.0 format.
Bug fixDefense Symbology
Removed the possible occurrence of a NullPointerException in some MIL-STD 2525b
painters and labelpainters.
Bug fixDefense Symbology
An IllegalArgumentException is thrown when providing an incorrect symbol (e.g. a
symbol with an incorrect code according to the specification) in
com.luciad.symbology.milstd2525b.model.TLcdEditableMS2525bObject,
com.luciad.symbology.milstd2525b.view.gxy.TLcdMS2525bGXYPainterProvider,
com.luciad.symbology.milstd2525b.view.gxy.TLcdMS2525bGXYEditorProvider,
com.luciad.symbology.milstd2525b.view.gxy.TLcdMS2525bGXYLabelPainterProvider or
com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer.
Bug fixDefense Symbology
When using offset dragging in MIL-STD 2525b, the object was dragged twice the
distance.
Bug fixDefense Symbology
A number of icons are corrected according to the MIL-STD 2525b specification.
Bug fixDefense Symbology
The amount of property change events thrown by
com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer is reduced: all the redundant events are
removed.
Bug fixDefense Symbology
The painters for MIL-STD 2525b and APP-6A ignored the map rotation when drawing
the movement direction.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now handles some R2000 files that
contain an unknown data block.
Bug fixMaritime Standards
The decoder is more robust: it silently ignores missing fields instead of throwing null
pointer
exceptions.
Upgrade considerationLuciadLightspeed
com.luciad.gui.swing.TLcdBasicRangeSliderUI allows labels to be placed at non-integer values of
the slider. This
is useful for sliders with small ranges. The methods paintHorizontalLabel and paintVerticalLabel
now have a
double argument instead of an integer. This only has an influence if you
have overridden these methods. The methods signature should then be changed.
4.3
4.3.13
ImprovementOGC Server
When creating objects to be inserted or updated in a model, the WFS now
uses the model descriptor (ILcdFeaturedDescriptor) to determine attribute types, rather than looking for the subset
of types that can be identified in an XML schema.
4.3.12
Bug fixDatabase Connectors
The handling of primary features and feature classes has been improved.
4.3.09
ImprovementOGC Server
Added WCS server optimizations that will lead to significant speedups when requesting
coverages from a tiled or multilevel raster source.
ImprovementAviation Standards
Improved robustness and error handling of TLcdProcedureGeometryCalculator.
4.3.08
ImprovementLuciadLightspeed
A test has been added to avoid a useless call to the Web Map Server,
ie, if no layers are visible.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYSelectController
deselects if there is
no potential selection when in CHOOSE mode.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdDTEDTileDecoder has support for
tiling large DTED
tiles.
Bug fixLuciadLightspeed
com.luciad.format.magneticnorth.TLcdIGRFMagneticNorthMap
assumed a space
between the last two columns, which newer data files do not have.
4.3.07
ImprovementLuciadLightspeed
A bug fix within LuciadMap core require to use a new version of lcd_epsg_resources.jar.
ImprovementOGC Server
A bug fix within LuciadMap core requires an upgrade of
lcd_epsg_resources.jar.
Bug fixLuciadLightspeed
Changing the altitude unit on the vertical view removed the point icons
on some of the points.
Bug fixLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDecoder read Z and M values
of
polygonZ in reverse order.
4.3.06
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdWKTReferenceParser and
com.luciad.reference.format.TLcdEPSGReferenceParser have
improved parsing. The EPSG resources jar has been updated to comply with the parser.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.TLcdLonLatHeightPolygon is the longitude-latitude equivalent of the
TLcdXYZPolygon.
ImprovementLuciadLightspeed
Both the vertical view (com.luciad.view.vertical.TLcdVVJPanel) and the default implementation of
the
ILcdVVGridRenderer (com.luciad.view.vertical.TLcdDefaultVVGridRenderer) can have an altitude
unit set to
regulate the altitude scaling of the view and the labeling of the grid.
Bug fixLuciadLightspeed
The UTM zone painter
(com.luciad.view.map.painter.TLcdUTMZonePainter) no longer
paints the corner labels in incorrect places when part of the map has to be
repainted.
Upgrade considerationLuciadLightspeed
com.luciad.view.gxy.TLcdGXYEditableLabelPainter,
which allows moving of labels, stores the delta of a label position in screen coordinates with respect to the
anchorpoint as
computed by the painter for an object. Before, the delta was stored with respect to the label's
original position.
However, this did not take into account that the original position could change through label
decluttering.
This change has to be taken into account when the methods putDeltaLabelLocation and
getDeltaLabelLocation are
called from outside the class.
Upgrade considerationLuciadLightspeed
com.luciad.format.raster.TLcdRasterPainter and
com.luciad.format.raster.TLcdMultilevelRasterPainter no longer extend
com.luciad.format.ALcdRasterPainter but
implement the new interface com.luciad.format.ILcdRasterPainter. The new implementations are
smart in that they
recognize whether warping of the raster is required or not, and then delegate to the warp- or
no-warp-(multilevel)raster painter. The class TLcdWarpRasterPainter contains the code of the old
TLcdRasterPainter and the class TLcdWarpMultilevelRasterPainter contains the code of the old
TLcdMultilevelRasterPainter.
This has to be taken into account when checking the classes against ALcdRasterPainter.
4.3.05
ImprovementLuciadLightspeed
com.luciad.gui.TLcdImageIcon has a property sourceName to provide a reference to the source it
was based on.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLonLatCoord has its precision doubled when parsing a longitude or latitude
string.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57CatalogueModelDecoder closes all input streams it opens.
Upgrade considerationLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYPointListPainter
edits the point
list
by translating the whole point list (translate2D) instead of by moving the list one point at a time
(translate2DPoint).
4.3.04
ImprovementAviation Standards
Changes to DAFIF data preparator:
- Added switch to disable output of bounds files.
- Changed buffer sizes to improve read/write performance.
- Added status listener mechanism with some basic progress messages.
ImprovementAviation Standards
The 3D procedure geometry calculator now also climbs during the transitions
between two legs (i.e. during turns).
Bug fixLucy (LuciadLightspeed)
Tote: Fixed repaint problem for table without scroll bar.
Bug fixLuciadLightspeed
Some decoders did not close all opened inputstreams:
- com.luciad.format.svg.TLcdSVGModelDecoder
- com.luciad.reference.TLcdModelReferenceDecoder
Bug fixLuciadLightspeed
The GML schema decoder tried to open the schema as a file, which caused
a security exception in a sandbox environment. The decoder now falls back on alternatives to
load the schema
file.
4.3.03
ImprovementAviation Standards
Improved the robustness of the DAFIF decoders when searching through
auxiliary models (e.g. navaids).
ImprovementAviation Standards
The DAFIF decoders now support the "WGX" datum.
4.3.02
ImprovementLucy (LuciadLightspeed)
Tote: added a checkbox to only show the objects that are selected in the table.
ImprovementLucy (LuciadLightspeed)
Dafif: Error message if model is emtpy when creating a layer.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder filters out
overview files
and legend files.
Bug fixLucy (LuciadLightspeed)
Arinc: when a user drags a submodel to the model customizer
panel, this gave a NoSuchElementException.
Bug fixLucy (LuciadLightspeed)
Tote: Auto fit and auto center did not support multiple
selection intervals
Bug fixLucy (LuciadLightspeed)
LayoutSample: map editor only shows customizer after mouse
moved
Bug fixLucy (LuciadLightspeed)
LayoutSample: did not allow drag&drop of layer to an
application pane
4.3.01
ImprovementLuciadLightspeed
Raster painters now support warping of raster images with different x and y scales. This enables
the display of
stretched images in a web map server, for example.
ImprovementLuciadLightspeed
The alias 'Luzon 1911' was added to the JPL geodetic datum factory.
ImprovementLucy (LuciadLightspeed)
TLcySelectionEditorAddOn: Removed braces ('[' and ']') from tab name.
ImprovementAviation Standards
The default DAFIF and ARINC layer factories now support configuration of
airspace and procedure layers.
Bug fixLucy (LuciadLightspeed)
Previewer: the '...' button to change the current date/time
used to floor the minutes and seconds to 0.
Bug fixLucy (LuciadLightspeed)
Data repository addon did not show all known file types in
the menu.
Bug fixLucy (LuciadLightspeed)
Redlining: When creating a text/multi-line text item, if the
user clicked on the Cancel Button, a text box containing "No text entered" was added instead of
no object at all.
Bug fixLucy (LuciadLightspeed)
Redlining: labels of polylines and polygons are now painted
using specific polyline and polygon label painters.
Bug fixLucy (LuciadLightspeed)
Redlining: a new point on top of terrain data with terrain
following mode activated was put at altitude 0 instead of on top of the terrain.
Bug fixLucy (LuciadLightspeed)
Adding a TLcdGXYLayerList to the TLcyMapComponent caused
multiple repaints.
Bug fixLucy (LuciadLightspeed)
When Look&Feel was changed at runtime, tree layer control
did not update well.
Bug fixDatabase Connectors
The creation of geodetic rectangles with width greater than 270 degrees,
for spatial filtering in SQL, has been corrected.
Bug fixDefense Symbology
The customizer for MIL-STD 2525B objects only fires relevant property
change events, events generated by Component settings are no longer fired.
4.3
ImprovementLuciadLightspeed
All ILcdShape implementations in com.luciad.shape and subpackages have their serialVersionUID
defined for more
robust serialization.
ImprovementLuciadLightspeed
The 2D bounds indexed model based on the R-tree has been refactored to allow adding a higher
number of identical
elements (i.e. at the same location).
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapWorkSpaceAddon: allows for limited workspace management
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.map.TLcyMapComponentFactory: now has config source name property
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.tote.TLcyToteAddOn: new addon that adds a model customizer for models
that have ILcdFeatured objects. Before, this customizer was added automatically. Slightly
enhanced auto fit function to fit with a small margin.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.vertical.TLcyVerticalViewAddOn: introduced GUI factory for the vertical
view addon: com.luciad.lucy.addons.vertical.TLcyVerticalViewComponentFactory
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.previewer.TLcyPreviewAddOn: introduced GUI factory for the preview addon:
com.luciad.lucy.addons.previewer.view.TLcyPreviewAddOnCustomizerFactory
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapEditUnitAddOn: made speed unit customizable
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapAddOn: introduced GUI factory for the layer control
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapAddOn: Layer control tree and order can be configured in
configuration file. Layer tree now contains all layers.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.g4j.TLcyG4JAddOn: added an action to save a 3D view as a gif file
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyS57DecoderAddOn: added general S52 style panel that changes
style for all s57 layers (Map|Colors|S57)
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyDefaultDecodersAddOn: added level switch factor property in
GUI for multilevel rasters
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyDefaultDecodersAddOn: now has configuration option for the
raster formats to set default start/stop resolution and level switch factor
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyDWGDecoderAddOn: now has configuration option to popup a
dialog to choose the layers to load
ImprovementLucy (LuciadLightspeed)
Removed progress dialog: only progress bar is left. Added wait cursor when application is busy.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.TLcyLucyEnvFactory: added method to create a lucy env with a regular JMenuBar
(instead of ILcyMenuBar)
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.ILcyLucyEnv: added new methods for layer encoder and decoder functionality:
- ALcyGXYLayerEncoder getCompositeGXYLayerEncoder();
- void addGXYLayerEncoder( ALcyGXYLayerEncoder aGXYLayerEncoder, ALcyFileTypeDescriptor
aFileTypeDescriptor );
- void removeGXYLayerEncoder( ALcyGXYLayerEncoder aGXYLayerEncoder );
- int getGXYLayerEncoderCount();
- ALcyGXYLayerEncoder getGXYLayerEncoder( int aIndex );
- ALcyFileTypeDescriptor getGXYLayerEncoderFileTypeDescriptor( int aIndex );
- ALcyGXYLayerDecoder getCompositeGXYLayerDecoder();
- void addGXYLayerDecoder( ALcyGXYLayerDecoder aGXYLayerDecoder, ALcyFileTypeDescriptor
aFileTypeDescriptor );
- void removeGXYLayerDecoder( ALcyGXYLayerDecoder aGXYLayerDecoder );
- int getGXYLayerDecoderCount();
- ALcyGXYLayerDecoder getGXYLayerDecoder( int aIndex );
- ALcyFileTypeDescriptor getGXYLayerDecoderFileTypeDescriptor( int aIndex );
ImprovementLucy (LuciadLightspeed)
3D: horizontal intersection plane can now be made transparent.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.pim.TLcyPIMTrackAddOn: reworked to have a PIM type, a speed on every
point and smoother turns. Can now also handle multiple PIM layers.
ImprovementLuciadLightspeed
Verify if formatted coordinate reference system (CRS) is supported by Web Map Service. If it is not try if other
formats, ie, try EPSG, AUTO, AUTO2.
ImprovementLuciadLightspeed
Support for WMS 1.3.0 has been added.
ImprovementOGC Server
The batik libraries have been updated to batik 1.5.1 release.
This also removes a prior incompatibility with the DAFIF and ARINC optional modules.
ImprovementOGC Server
Within the file web.xml a few initialization properties have changed.
- srs.epsg.cfg has become crs.epsg.cfg
- srs.auto.cfg has become crs.auto.cfg
- crs.auto2.cfg has been added for the additional AUTO2 namespace of WMS 1.3.0
ImprovementOGC Server
The schema file structure has changed to include the additional required
schema files.
ImprovementOGC Server
Debug output from the server has been improved to help diagnose failed
transactions.
ImprovementOGC Server
The server supports WMS 1.3.0 requests.
ImprovementAviation Standards
Changes to the API parts that were previously available from AIS. These should have been rarely used
in applications using ARINC or DAFIF decoders, as they were undocumented. If they were used explicitly
in an application, the changes may not be compatible with that application.
- com.luciad.ais.symbology.TLcdAISDefaultPointPainterSymbolProvider is now a standard ILcdObjectIconProvider. Support for separate
selection or snap icons has been removed. This can be implemented by using
separate instances of TLcdAISDefaultPointPainterSymbolProvider with different colors.
- ILcdDomainFactory has been renamed and made into an abstract class ALcdAISDomainObjectFactory.
ImprovementAviation Standards
Changes to the DAFIF decoder:
- Support for object filtering is added. The filter is applied before objects are added to the decoded model. Documentation
and sample code for filtering has been added.
- A TLcdDAFIFProcedureDecoder and TLcdDAFIFIndependentProcedureDecoder was added that decodes procedures from an DAFIF file.
- Next to the TLcdDAFIFDefaultLayerFactory, a TLcdDAFIFLayerConfiguration class was added. It follows the same idea of specifying
a number of style properties for DAFIF data, but can apply them on an
exisiting layer.
ImprovementAviation Standards
Changes to the ARINC decoder:
- Support for object filtering is added. The filter is applied before objects are added to the decoded model. Documentation
and sample code for filtering has been added.
- A TLcdARINCProcedureHandler was added that decodes procedures from an ARINC file.
- Next to the TLcdARINCDefaultLayerFactory, a TLcdARINCLayerConfiguration class was added. It follows the same idea of specifying
a number of style properties for ARINC data, but can apply them on an exisiting layer.
- ILcdARINCHandler has support for accumulating error messages through the newModel method.
ImprovementAviation Standards
Support for Terminal Procedures (based on ARINC 424 version 15), including SID, STAR and IAP, is added
to AIS.
ImprovementAviation Standards
The ARINC and DAFIF decoders are part of the AIS optional module. There are no separate zip files
and developer guides for ARINC or DAFIF. These are replaced by a single zip file containing AIS and
a single AIS_DeveloperGuide.pdf.
ImprovementAviation Standards
The API for AIS is opened up in 4.3. This means that all classes for domain objects, shapes, painters
etc. used in AIS are now available in the API. Previous releases only provided a stripped down API
for DAFIF (from 4.0) and ARINC (from 4.2) decoders. The availability of the full AIS API enables a
more flexible use of DAFIF and ARINC data (e.g. writing custom label painters), and allows
the development of AIS based applications that easily show aeronautical data on maps.
ImprovementDefense Symbology
The customizer of MIL-STD 2525b objects has a layout better suited for resizing.
Bug fixLuciadLightspeed
The DEM raster model decoder handles file containing negative values better.
Bug fixLuciadLightspeed
The CADRG raster model decoder can handle files with optional NITF headers.
Bug fixLucy (LuciadLightspeed)
3D: fog and camera button did not show properties in
deployment edition
Bug fixLucy (LuciadLightspeed)
Print: print did not respect the rotation of the map
Bug fixLucy (LuciadLightspeed)
Redlining: LLH Buffer was not drawn centered around the
polyline center in 3D, but above -> fixed.
Bug fixLucy (LuciadLightspeed)
Zoom controller: The zoomed window did not correspond to the
initial selection: the corners were truncated.
Bug fixLucy (LuciadLightspeed)
Vertical View: Replaced terminology "Height" with "Altitude".
Bug fixLucy (LuciadLightspeed)
Time in print preview window was not correct, it did not
display the current time.
Bug fixLucy (LuciadLightspeed)
PIM track preview used to have rotation 0 at the last point.
Bug fixLucy (LuciadLightspeed)
TEA contour calculation did not produce a result when the
result only had one level.
Bug fixLucy (LuciadLightspeed)
Resizing an ellipse (or a circle) sometimes caused a move
operation.
Bug fixLucy (LuciadLightspeed)
The bounds calculation of a PIM track used to be erroneous,
causing TEA operations to use a too big area.
Bug fixLucy (LuciadLightspeed)
Previewing a PIM track used to jump over very short line
segments.
Bug fixLucy (LuciadLightspeed)
When a layers icon is too large, it is now resized correctly
in the tree layer control.
Bug fixLucy (LuciadLightspeed)
When displaying coordinates in XY format, now uses the
distance unit of the coordinate system instead of the Lucy distance unit.
Bug fixLucy (LuciadLightspeed)
Table view 'Auto fit' sometimes fitted way to wide.
Bug fixLucy (LuciadLightspeed)
Fixed GML support for certain GML files.
Upgrade considerationLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYSelectController has a new
property mouseDraggedSensitivity which replaces the property mousePressedSensitivity. The
property
mousePressedSensitivity is now used to determine the size of the region in which selection will
occur when a user clicks the mouse.
Upgrade considerationLuciadLightspeed
All multilevel raster painters
(com.luciad.format.raster.TLcdMultilevelRasterPainter and
com.luciad.format.raster.TLcdNoWarpMultilevelRasterPainter) have better algorithms to switch
between raster
levels. This prevents premature switching to high-resolution images.
4.2
4.2.17
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdEPSGReferenceParser decodes the RD1918 Dutch grid system
reference.
ImprovementLuciadLightspeed
A 3D line is added (com.luciad.shape.shape3D.TLcdXYZLine).
4.2.15
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.TLcdXYZPolygon implements ILcdPolygon instead of ILcdPolyline as it
should.
ImprovementDefense Symbology
com.luciad.symbology.milstd2525b.view.swing.TLcdMS2525bObjectCustomizer has been extended:
- An information panel with the code of the currently selected symbol is added.
- A a country customizer is added.
- There is now the possibility of setting a filter. This filter determines which symbols (based on their
hierarchy) are to be displayed in the customizer.
Bug fixLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYArcBandPainter supports
snapping of
its center point to any point. For the snap target to be accepted, the
arc band should be moved by dragging its center point.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYSelectController no longer uses
timings to
detect double mouse clicks.
4.2.14
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder can have an input stream factory set.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLonLatParser allows ordinates with leading '+' signs, for example for coordinates
in NITF files.
ImprovementOGC Server
The WCS server now supports 16 bit paletted raster models as input (DTEDs are a
typical example). The color palette, however, will be lost when requesting coverages from such models, and a 16 bit
gray raster will be returned.
4.2.13
Bug fixLuciadLightspeed
The select controller sometimes allowed selected objects
which were not
near the mouse pointer. This was due to an integer overflow.
Bug fixLuciadLightspeed
Icons are no longer painted in the middle of a component when the
coordinates passed are negative.
4.2.12
ImprovementLuciadLightspeed
com.luciad.geometry.cartesian.TLcdCartesian has a contains3D method.
ImprovementLuciadLightspeed
com.luciad.view.vertical.TLcdVVJPanel can display heights in different altitude units.
ImprovementLuciadLightspeed
3 shapes have been added:
- com.luciad.shape.shape3D.TLcdXYZPolygon
- com.luciad.shape.shape3D.TLcdXYZPolyline
- com.luciad.shape.shape3D.TLcdXYZPolypoint
ImprovementLuciadLightspeed
com.luciad.util.TLcdSpeedUnit can be used to express speeds in different units, while
com.luciad.text.TLcdSpeedFormat can be used to display speeds as text.
ImprovementMaritime Standards
com.luciad.format.s52.TLcdS52SymbologyDecoder can set the scale factor for symbols.
ImprovementMaritime Standards
Computation and handling of underlying and adjacent points, lines, and areas has improved.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder decodes
geodetic datums
for user defined grid references.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder allows for the text
string to
be on the next line following the type TEXT.
4.2.09
Bug fixMaritime Standards
com.luciad.format.s52.gxy.TLcdS52GXYPainterProvider now clones all fields properly.
4.2.08
ImprovementOGC Server
The server accepts requests with WMTVER as version parameter.
Bug fixLuciadLightspeed
com.luciad.shape.ALcdPoint.equals() returns false on null
objects instead
of throwing a NullPointerException.
Bug fixLuciadLightspeed
com.luciad.geometry.cartesian.TLcdContourFinder has the
minimum number of
points for a contour set to 4 instead of 5. This allows for contour generation for data sets
where the data is
all situated within 1 contour.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdDEMModelDecoder handles
rounding errors better.
com.luciad.format.rater.TLcdDEMTileDecoder allows for variable-sized records.
4.2.06
Bug fixReal-time Engine
com.luciad.realtime.TLcdTrackModel threw a NullPointerException when
calling removeAllElements.
4.2.05
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now has a default input stream factory and sets a
model descriptor.
4.2.04
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder supports multilevel TIFF files.
ImprovementTerrain Analysis Engine
All heights greater than 32765 are regarded equal to 0. This has
an effect on line-of-sight computations when data is missing.
ImprovementMaritime Standards
Circles can now be filled.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayerList no longer returns null
selected elements
when two consecutive sublayers have no selected elements.
Bug fixLuciadLightspeed
elementsChanged in com.luciad.model.TLcd2DBoundsIndexedModel
was not
correctly implemented.
4.2.03
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil is made thread safe.
ImprovementOGC Server
The WMS server passes all compliancy tests for WMS 1.1.1.
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdEllipsoid did calculate the
intersection correctly for a
degenerate case.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder is more robust in parsing numeric values.
4.2.02
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYViewXYWorldTransformation can have different scale factors along
x-axis and y-axis.
ImprovementOGC Server
com.luciad.wms.server.TLcdOGCWMSCommandDispatcher can set up views
capable of different scale factor along x-axis and y-axis.
ImprovementOGC Server
com.luciad.wms.server.TLcdGXYViewPool can construct views
able of setting different scale factor along x-axis and y-axis.
Bug fixLuciadLightspeed
com.luciad.reference.format.TLcdAUTOReferenceParser did not
take the value
of the standard parallel into account for equidistant cylindrical projection.
Bug fixLuciadLightspeed
The new level switching for multilevel raster painters was
not always correct.
4.2.01
ImprovementLuciadLightspeed
The PNM image decoder (com.luciad.format.raster.TLcdPNMImageDecoder) better handles comments in
the header.
ImprovementLuciadLightspeed
com.luciad.geodesy.ILcdEllipsoid has a method forwardAzimuth. This makes the interface
consistent with the
method geodesicDistance. com.luciad.geodesy.TLcdEllipsoid implements this method.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdEllipsoidUtil has a method intersects2DLS with longitude/latitude as
doubles removing the
requirement to pass an ILcdPoint instance.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil has a forwardAzimuth to make the interface consistent with the
method
geodesicDistance.
ImprovementLuciadLightspeed
All com.luciad.projection.ILcdProjection implementations have better implementations of the
clone method,
avoiding the use of constructors.
ImprovementLuciadLightspeed
The transformation classes
- com.luciad.transformation.TLcdGeodetic2Geodetic
- com.luciad.transformation.TLcdGeodetic2Grid
- com.luciad.transformation.TLcdGrid2Grid
- com.luciad.transformation.TLcdModelXYWorldTransformation
- com.luciad.transformation.TLcdTopocentricCoordSysTransfo2
- com.luciad.transformation.TLcdTopocentricCoordSysTransformation
have hashCode implementations.
4.2
ImprovementLuciadLightspeed
The GeoTIFF decoder has support for additional grid references.
ImprovementLuciadLightspeed
Support for input streams using NIO has been added to com.luciad.io.TLcdInputStreamFactory and
TLcdIOUtil. By
default, when Java 1.4 or better is available, NIO input streams are used by these classes and
the decoders that
depend on them. This improves performance of the seek operation on input files, which is
important for several
decoders.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.map.action.TLcyStartNewMapComponentAction: removed method
getLastCreatedMapComponent()
because it inherently causes a memory leak. Functionality was replaced by adding
createAndAddMapComponent()
ImprovementLucy (LuciadLightspeed)
S57: initial load time was reduced for S57 data.
ImprovementLucy (LuciadLightspeed)
A new data format was added for aeronotical data: the ARINC format.
ImprovementLucy (LuciadLightspeed)
Milstd 2525b addon was redesigned to allow a.o. for the creation of tactical symbology.
ImprovementLuciadLightspeed
The ILcdGXYLayer returned by the layer factory now returns
the bounds based on the visible Web Map Server layers.
ImprovementOGC Server
Clients may request the WMS an image with a transparent background even
if the
map format they request does not support this. The WMS is then supposed to
return an image with the background pixels set to value of BGCOLOR.
A test has been added for formats that do not support a transparent background, ie, JPEG.
ImprovementTerrain Analysis Engine
Several classes have updated and extended reference documentation (Javadoc).
ImprovementDefense Symbology
Support for MIL-STD 2525b symbology (com.luciad.symbology.milstd2525b) is extended to all units, tactical and other
symbols
as defined in the MIL-STD 2525b standard. There is a new TLcdEditableMS2525bObject and a
corresponding painter provider, editor provider and icon provider
that support these. The package is backwards compatible, but several existing classes in
com.luciad.symbology.milstd2525b have been
deprecated in favor of the new ones. A sample MS2525b application for has been added.
ImprovementMaritime Standards
com.luciad.format.s52.gxy.TLcdS52GXYPainterProvider now has an additional setting that
controls
which objects are painted.
Bug fixLucy (LuciadLightspeed)
Redlining: in the features textual editor, you can now apply
a change by pressing the enter key
Bug fixLucy (LuciadLightspeed)
Redlining: the row height of the textual editor was increased
to improve readability
Bug fixLucy (LuciadLightspeed)
Redlining: the textual geometry editor of polylines and
polygons used to reset the column width after adding or removing a point
Bug fixLuciadLightspeed
TLcdGXYTextPainter did not edit non-scaled text correclty.
Bug fixLuciadLightspeed
TLcdGXYTextPainter did not rotate text correctly when a font
style was set on
the
painter.
Bug fixLuciadLightspeed
Fixed painting of multi-labels by an ILcdGXYMultiLabelPainter
on a TLcdGXYLayer
when
no label deconfliction was performed: Not all labels were painted.
Bug fixLuciadLightspeed
Fixed implementations of ILcdBounds methods contains2D and
interacts2D in
TLcdLonLatFloatPoint, TLcdLonLatPoint.
Bug fixLuciadLightspeed
TLcdEPSGReferenceParser did not always close the inputstream
when parsing a
reference.
Bug fixLuciadLightspeed
TLcdDialogManager cached dialogs, which could lead to small
resource leaks and
which ignored parent frame changes.
Bug fixLuciadLightspeed
Several classes implemented equals but not hashCode. hashCode
has been added
to:
- com.luciad.format.shp.TLcdSHPModelReferenceDecoder, TLcdSHPPointZ, TLcdSHPPointM
- com.luciad.geometry.cartesian.TLcdXYZRotation.java
- com.luciad.projection.ALcd* and TLcd*
Bug fixLuciadLightspeed
Corrected exception handling in
com.luciad.format.shp.TLcdSHPModelReferenceDecoder.
This reference decoder sometimes returned a null reference instead of throwing an IOException.
Bug fixDatabase Connectors
The encoding of null objects has been fixed.
Bug fixOGC Server
Clients may request the WMS an image with a transparent background even if the
map format they request does not support this. The WMS is then supposed to
return an image with the background pixels set to value of BGCOLOR.
A test has been added for formats that do not support a transparent background, ie, JPEG.
Bug fixTerrain Analysis Engine
TLcdGXYViewBasedTerrainElevationProvider did not take into account the
property 'UseOnlyVisibleLayers' correctly. This could cause a null pointer exception.
4.1
4.1.09
ImprovementLuciadLightspeed
Layers displaying magnetic north calculations
(com.luciad.format.magneticnorth.gxy.TLcdMagneticNorthGXYLayerFactory) now have a label painter
assigned
(com.luciad.format.magneticnorth.gxy.TLcdMagneticNorthGXYLabelPainter).
ImprovementLuciadLightspeed
The MIF model decoder (com.luciad.format.mif.TLcdMIFModelDecoder) truncates the file name to use
as display name
in the model descriptor for models produced.
ImprovementLuciadLightspeed
The GeoTIFF model decoder (com.luciad.format.raster.TLcdGeoTIFFModelDecoder) has support for UTM
on the southern
hemisphere and UPS on the poles.
ImprovementLuciadLightspeed
The multilevel raster painter has a property to store a border for larger cached images. This
might allow for
quicker panning actions, for example.
ImprovementLuciadLightspeed
The layer label painter (com.luciad.view.gxy.TLcdGXYLayerLabelPainter) and the view label
painter
(com.luciad.view.gxy.TLcdGXYViewLabelPainter) have a property to set the quality of label
decluttering. A new
higher quality algorithm can be used to place more labels in the view.
ImprovementDefense Standards
TLcdNITFModelDecoder can now read NITF 2.0 files without reference.
Bug fixLuciadLightspeed
The pan controller did not pan the view when moving out of
the view slowly
at the bottom or at the right, even when panOnMouseMoveExit or panOnMouseDragExit were set to
true.
Bug fixDefense Standards
A VPF layer accepts null models.
Bug fixDefense Standards
A performance problem was fixed which occurred when using the
GeoSym symbology.
Bug fixInfrastructure Standards
The painter styles now display the correct colors.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder has been fixed for decoding block
definitions and for decoding text in DWG R2000.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now closes the input stream of the the update
files.
4.1.08
ImprovementLuciadLightspeed
The shape list painter (com.luciad.view.gxy.painter.TLcdGXYShapeListPainter) throws an
IllegalArgumentException
when a object other than an ILcdShapeList is set to it.
Bug fixLuciadLightspeed
The point list painter
(com.luciad.view.gxy.painter.TLcdGXYPointListPainter)
did not implement the method isTouched correctly.
4.1.05
Bug fixDatabase Connectors
The swapping of coordinates when inserting points has been fixed.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now handles update files.
4.1.04
ImprovementMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now accepts zipped (extension .zip) or gzipped
(extension .gz) files.
Bug fixLuciadLightspeed
The buffered image view
(com.luciad.view.gxy.TLcdGXYViewBufferedImage)
could get into an infinite loop when displaying a vector model.
Bug fixLuciadLightspeed
The no warp raster painter
(com.luciad.format.raster.TLcdNoWarpRasterPainter)
sometimes left one-pixel gaps between tiles, due to rounding errors.
4.1.03
ImprovementLuciadLightspeed
The GML decoder takes into account schema files given through a URL.
ImprovementLuciadLightspeed
The CADRG decoder (com.luciad.format.raster.TLcdCADRGModelDecoder) supports
the formats MIL-PRF-89038 and MIL-PRF-89041.
ImprovementLuciadLightspeed
The USRP/ASRP decoder (com.luciad.format.raster.TLcdUSRPModelDecoder) has
- support for southern hemisphere UTM references and UPS references on the poles.
- improved detection of ASRP versions.
- handling of more than 256 colors.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdUPSGrid is a new grid reference for data over the North Pole and South
Pole.
com.luciad.view.map.TLcdUpsMgrsUtil is a utility class to convert lonlat coordinates to UPS
coordinates.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdUTMGrid has a property to make the distinction between northern and
southern
hemisphere.
ImprovementDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder now handles more than 256
colors.
Bug fixMaritime Standards
com.luciad.format.s57.TLcdS57ModelDecoder now handles buffered input streams.
Bug fixMaritime Standards
The LIGHTS05 procedure always returns a result.
Upgrade considerationLuciadLightspeed
com.luciad.transformation.TLcdUpsMgrsUtil has been
removed. This class
was copied to the package com.luciad.view.map earlier.
4.1.02
Bug fixLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelEncoder always writes the
gml:boundedBy element, which is required for validation.
Bug fixLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder did not accept
geometries
passed through the gml:GeometryPropertyType tag.
4.1.01
ImprovementLuciadLightspeed
The GML decoder (com.luciad.format.gml.TLcdGMLModelDecoder) and the encoder
(com.luciad.format.gml.TLcdGMLModelEncoder) include OGC schema validation.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder handles
georeferences
defined by single-tie point transformations better.
4.1
ImprovementLuciadLightspeed
com.luciad.io.TLcdInputStreamFactory checks if a URL has the file protocol. If so it tries to
open it as a file.
ImprovementLucy (LuciadLightspeed)
Improved internationalization (translation of strings presented to user)
ImprovementLucy (LuciadLightspeed)
Javadoc of various classes was updated.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapOverviewAddOn: only loads background data to overviews it has
created itself, not to all overviews
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapAddOn: only loads background data to maps it has created
itself, not to all maps
ImprovementLucy (LuciadLightspeed)
Layer control themes panel now allows to select a layer and use the layer control buttons on it.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.modelreference.TLcyModelReferenceAddOn: Improved user interface to choose
a geo reference (now also supports to enter a geodetic datum/ellipsoid)
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyNITFDecoderAddOn: support for NITF files
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyGeoSPOTDecoderAddOn: support for GeoSPOT files
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyDIMAPDecoderAddOn: support for DIMAP files
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.decoders.TLcyDefaultDecodersAddOn: support for the CGM format was added.
MIF support of TLcyDefaultDecodersAddOn now also reads map files.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.gui.ILcyApplicationPane: Added methods isDisposable and setDisposable
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.map.TLcyMapComponentFactory: method setMenuBar no longer adds the menu bar to
the gui of the map component
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.gui.ILcyActionBar: added a methods to listen to changes in an action bar and to
retrieve the existing action bar items and their properties
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.TLcyMain: multi map mode no longer has two menu bars
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.TLcyXMLAddOnLoader: this new class offers possibility to load addons from xml
file into ILcyLucyEnv. The addon loader does not load an addon if its necessary optional modules
(as specified in the xml) are not available.
ImprovementLucy (LuciadLightspeed)
The gui of the layer control has been simplified. Painter properties, label properties,
transparency slider and filled checkbox were removed: all properties are now accessible through
the layer properties. The global label decluttering button has been moved into the map menu.
ImprovementLucy (LuciadLightspeed)
You can now choose transparent colors in all color choosers.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapAddOn, com.luciad.lucy.addons.map.TLcyMapOverviewAddOn and
com.luciad.lucy.map.action.TLcyStartNewMapComponentAction now work with new
ALcyMapComponentFactory instead of TLcyMapComponentFactory.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.map.ILcyMapComponent: a method getMapComponentFactory was added to know which
factory created the map
ImprovementLucy (LuciadLightspeed)
LucyUserGuide.pdf is updated.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapColorAddOn now also works on the maps created by the
com.luciad.lucy.addons.map.TLcyMapOverviewAddOn
ImprovementLucy (LuciadLightspeed)
A new data format was added for aeronotical data: the DAFIF format.
Bug fixLucy (LuciadLightspeed)
com.luciad.lucy.addons.modelreference.TLcyModelReferenceAddOn: now works width java 1.4
Bug fixLucy (LuciadLightspeed)
Interference between background data of overview and regular
map is fixed.
Bug fixLucy (LuciadLightspeed)
Ruler controller: Fixed inaccurate distance measuring when
snapping to points.
Bug fixLucy (LuciadLightspeed)
Application pane content was sometimes not correctly
repainted when using the layout sample
Bug fixLucy (LuciadLightspeed)
Fixed menu items that were sometimes disappearing in single
map mode
Bug fixLucy (LuciadLightspeed)
Redlining: duplicating a 3D polyline threw exception
Bug fixLucy (LuciadLightspeed)
Vpf: fixed case where vpf browser hangs the application
Bug fixLucy (LuciadLightspeed)
Redlining: Extract parallel created not only a parallel line,
but two additonal lines
Bug fixLucy (LuciadLightspeed)
Previewer: the pim model was not shown after restarting the
preview addon
Bug fixLuciadLightspeed
com.luciad.model.TLcdOpenAction returns silently when no
decoder is chosen from
the list.
Bug fixLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder throws an
IllegalArgumentException
when encoding a model which has no bounds, for example when it contains no objects.
4.0
4.0.09
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder and com.luciad.format.gml.TLcdGMLModelEncoder can
handle GML 2.
ImprovementLuciadLightspeed
com.luciad.projection.TLcdOrthographic has been optimized for better performance. It can take
into account
cached sine and cosine values.
Bug fixLuciadLightspeed
The arc band editor
(com.luciad.view.gxy.TLcdGXYArcbandPainter) did not edit
the arc band when the handles were dragged.
Bug fixLuciadLightspeed
com.luciad.reference.format.TLcdEPSGReferenceParser sometimes
incorrectly parsed
WGS84 references.
Bug fixDefense Symbology
The text modifiers panel for the MIL-STD 2525b unit symbols no longer requires
enter to be pressed to retain the values.
4.0.08
Bug fixLuciadLightspeed
com.luciad.projection.TLcdOrthographic switched coordinates
when
constructed with an ILcdPoint parameter.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder takes into
account
user-defined central meridians for Mercator projections.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdDTEDDirectoryModelDecoder could
not be
constructed without initial bounds.
4.0.06
ImprovementLuciadLightspeed
CGM has improved decoding and painting of line and fill styles.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMAPModelDecoder throws an IOException when the
model reference could not be decoded.
element. This allows for easier extension of the SVG format to custom formats.
ImprovementLuciadLightspeed
The svg package has some new classes and methods to allow easier decoding and encoding of
extensions to the SVG
format:
- ILcdSVGModelDescriptorFactory creates model descriptors that take into account
attributes of the
root element of an SVG file.
- the name of the root element and the grouping element can be retrieved as properties
of the
decoder.
- the model encoder takes the model into account when writing the file header.
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil creates more precise buffer
contours, by
taking into account both forward and backward azimuth angles. This reduces effects on the buffer
when it is in the
neighborhood of the poles.
Bug fixInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now handles Solid objects.
Upgrade considerationLuciadLightspeed
com.luciad.format.cgm.TLcdCGMFillStyle and
com.luciad.format.cgm.TLcdCGMLineStyle have been moved to the com.luciad.format.cgm.gxy package and
renamed to
TLcdCGMFillGXYPainterStyle and TLcdCGMLineGXYPainterStyle.
4.0.05
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdRenderedImageTile handles images
with
an alpha channel. This enables the use of TIFF images with transparency expressed per pixel.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceParser correctly
handles
unit conversion of custom defined datums.
Bug fixLuciadLightspeed
SRS token ending with spaces are now better handled.
Bug fixAdvanced Raster Connectors
Bounds were incorrectly handled when specified in the ECW file, while the
model reference was not in the ECW file.
Bug fixTerrain Analysis Engine
Point-to-point line-of-sight computations take into account the unknown value for DTED data.
Bug fixDefense Standards
com.luciad.format.raster.TLcdUSRPModelDecoder can handle image files with
alternative extensions.
4.0.04
ImprovementLuciadLightspeed
com.luciad.gui.swing.TLcdRangeSlider has a basic UI implementation for XP. The implementation
does not take into
account the theme loaded in XP.
ImprovementLuciadLightspeed
com.luciad.shape.shape3d.ILcd3DEditablePolyline extends
com.luciad.shape.shape2d.ILcd2DEditablePolyline
ImprovementLuciadLightspeed
com.luciad.transformation.ILcdModelModelTransformation has methods to transform bounds.
ImprovementLuciadLightspeed
com.luciad.transformation.TLcdGeoReference2GeoReference support transformations between geodetic
references.
ImprovementLuciadLightspeed
com.luciad.transformation.TLcdGeodetic2Geodetic transforms from one geodetic reference to
another geodetic
reference.
ImprovementLuciadLightspeed
com.luciad.util.ILcdFeaturedDescriptorProvider is an interface to provide featured descriptors.
com.luciad.model.TLcdFeaturedModelDescriptor implements this interface by always returning
itself.
ImprovementLuciadLightspeed
The following painters com.luciad.view.gxy.painter support snapping to points of a model with a
different model reference:
- TLcdGXYArcPainter
- TLcdGXYBoundsPainter
- TLcdGXYBufferPainter
- TLcdGXYCirclePainter
- TLcdGXYEllipsePainter
- TLcdGXYLonLatHeightBufferPainter
- TLcdGXYPointListPainter
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdMapLocation, com.luciad.TLcdUtmMgrsUtil and TLcdUTMZonePainter can have
a separator
character for UTM coordinate representations.
Bug fixLuciadLightspeed
com.luciad.shape.shape3d.TLcdLonLatHeightDome and
com.luciad.shape.shape3D.TLcdLonLatHeightSphere have their altitude equal to the Z coordinate of
the center
point.
Bug fixLuciadLightspeed
com.luciad.gui.TLcdIconImageUtil contained a memory leak, the
tracker did not
release the images it loaded.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder did not read the
pen for an
arc correctly.
4.0.03
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelEncoder has methods to retrieve the file extension and the
root element name.
ImprovementLuciadLightspeed
com.luciad.transformation.ILcdModelModelTransformation is an interface to describe coordinate
transformations
from one model reference to another model reference
com.luciad.transformation.TLcdGeoReference2GeoReference
implements this interface.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdGeodeticDatumFactory includes the
com.luciad.geodesy.TLcdGenericGeodeticDatumFactory for
exporting geodetic datums.
Bug fixLuciadLightspeed
com.luciad.format.pol.TLcdPOLGeometryfactory only created
closed geometries.
4.0.02
Bug fixLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDecoder splits up numerical
feature values, based on their type:
-
F: Float
-
B: Double
-
I : Integer
-
N : Double/Integer (when the number of decimals is 0, an Integer is returned)
4.0
ImprovementLuciadLightspeed
com.luciad.format.cgm.TLcdCGMModelDecoder decodes the CGM format (Computer Graphics Metafile),
as defined by the
military standard MIL-STD-2301. com.luciad.format.cgm.gxy.TLcdCGMGXYPainterProvider provides
painters for the
decoded objects.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDescriptor implements
com.luciad.util.TLcdClassContentDescriptor.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceFormatter supports formatting
com.luciad.projection.TLcdLambertAzimuthalEqualArea.
ImprovementLuciadLightspeed
com.luciad.format.pol contains classes to decode and encode pol format files as produced by the
TAAM application
of the Preston Group PTY Ltd.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdBILModelDecoder can be customized to read any format of model
reference.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDTEDModelDecoder and
com.luciad.format.raster.TLcdDTEDDirectoryModelDecoder have
additional properties for performance tuning.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDescriptor implements
com.luciad.util.TLcdClassContentDescriptor.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdGenericGeodeticDatumFactory creates geodetic datums based on a set of 9
parameters.
ImprovementLuciadLightspeed
com.luciad.geometry.ILcdSegmentScanner implementations
com.luciad.geometry.cartesian.TLcdGridSegmentScanner and
com.luciad.geometry.ellipsoidal.TLcdGeodeticSegmentScanner can discretize a
line segment into a set of points.
ImprovementLuciadLightspeed
com.luciad.gui.ILcdObjectIconProvider is extended with a method to notify whether an icon is
available for an
object.
ImprovementLuciadLightspeed
com.luciad.model.TLcdModelList is an com.luciad.model.ILcdModel implementation that contains a
list of models.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdSwissGridReference can be based on one of two grid systems (LV03 and
LV95).
ImprovementLuciadLightspeed
com.luciad.reference.TLcdUTMGrid implements the toString method.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdGeodeticReference has a method to set the geodetic datum.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D contains new com.luciad.shape.ILcdShape implementations to model 3D
objects:
- TLcdLonLatHeightSphere
- TLcdLonLatHeightDome
- TLcdLonLatHeightBuffer
- TLcdLonLatHeightPolyline
- TLcdLonLatHeightPolypoint
ImprovementLuciadLightspeed
com.luciad.text.TLcdAltitudeFormat has the property userUnit renamed to
displayUnit.
ImprovementLuciadLightspeed
com.luciad.transformation.TLcdGrid2Grid implements the equals method.
ImprovementLuciadLightspeed
com.luciad.util.ILcdContentDescriptor is deprecated in favor of
com.luciad.util.ILcdClassContentDescriptor.
ImprovementLuciadLightspeed
com.luciad.util.ILcdPointFunction is an interface for a function that can be applied to a point.
ImprovementLuciadLightspeed
com.luciad.util.TLcdAltitudeUnit has his units
renamed:
-
METRE_UNIT becomes METRE_AMSL
-
KM_UNIT becomes KM_AMSL
-
FT_UNIT becomes FEET_AMSL
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYLayerList defines an ordered list of com.luciad.view.gxy.ILcdGXYLayer
and implements
com.luciad.view.gxy.ILcdGXYLayer. This allows grouping of layers into themes.
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYMultilabelPainter is an interface for label painters which can paint
multiple labels
per object. Existing label decluttering algorithms takes this new type of label painter into
account.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.ArcPainter
- can have a null style set
- has a snap icon
- can have its center always painted
- allows snapping to its end points
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYBufferPainter
- has a snap icon
- allows snapping to its contour
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYCirclePainter
- allows snapping to its center
- allows snapping of its center to a point
- can have its center always/never/on selection painted.
- has a snap icon
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYEllipsePainter has a snap icon.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYLonLatHeightBufferPainter is a painter
for com.luciad.shape.shape3d.TLcdLonLatHeightBuffer objects.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdUPSGridLayer is new grid layer representing a UPS grid.
ImprovementLucy (LuciadLightspeed)
Added a exit menu item
ImprovementLucy (LuciadLightspeed)
License errors are now also displayed in a popup, not only in the console.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.redlining.TLcyRedliningAddOn:
- Redlining now supports different model references.
- Textual editing of circle, ellipse and arc was added.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.pim.TLcyPIMTrackAddOn: This new addon allows to draw tracks on a map.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapRadarViewAddOn: This new addon allows to use radar view on a
moving object
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.map.TLcyMapEditUnitAddOn: now allows to modify the
ILcyLucyEnv.getDefaultModelReference through menu items
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.addons.modelreference.TLcyModelReferenceAddOn: This new addon allows to open
data files that don't have a geo reference associated with them.
ImprovementLucy (LuciadLightspeed)
com.luciad.lucy.ILcyLucyEnv: These methods were added
- public void addModelReferenceDecoder( ILcdModelReferenceDecoder
aModelReferenceDecoder );
- public void removeModelReferenceDecoder( ILcdModelReferenceDecoder
aModelReferenceDecoder );
- public int getModelReferenceDecoderCount();
- public ILcdModelReferenceDecoder getModelReferenceDecoder( int aIndex );
- public ILcdModelReferenceDecoder getCompositeModelReferenceDecoder();
- public Format getDefaultSpeedFormat();
- public TLcdSpeedUnit getDefaultUserSpeedUnit();
- public void setDefaultUserSpeedUnit( TLcdSpeedUnit aDefaultUserSpeedUnit );
- public ILcdModelReference getDefaultModelReference();
- public void setDefaultModelReference( ILcdModelReference aDefaultModelReference );
ImprovementReal-time Engine
com.luciad.realtime.TLcdTrackModel is an com.luciad.model.ILcdModel
implementation that has less overhead than a com.luciad.model.TLcd2DBoundsIndexedModel for dynamic data without
having to paint all objects in a model like a com.luciad.model.TLcdVectorModel.
ImprovementReal-time Engine
com.luciad.realtime.TLcdSimulatorModelList is a composite
com.luciad.realtime.ILcdSimulatorModelList implementation.
ImprovementTerrain Analysis Engine
com.luciad.tea.ALcdTerrainElevationProvider provides height values for terrain. Extensions in the com.luciad.tea.package are:
- TLcdDensityBasedRasterElevationProvider
- TLcdFixedLevelBasedRasterElevationProvider
- TLcdGXYViewBasedTerrainElevationProvider
These elevation providers can be plugged into
- TLcdProfileGenerator
- TLcdTerrainSegmentScanner
and are used by the TLcdTerrainProfileController and the TLcdVVTerrainProfileModel.
ImprovementInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDescriptor now implements
com.luciad.util.ILcdClassContentDescriptor.
Bug fixLucy (LuciadLightspeed)
com.luciad.lucy.addons.datarepository.TLcyDataRepositoryAddOn: didn't put all possible files in
the menu
Bug fixLucy (LuciadLightspeed)
Icons in layer control didn't update if colors were changed.
Bug fixLucy (LuciadLightspeed)
com.luciad.lucy.addons.viewpoint.TLcyViewPointAddOn:
performance improvement, the 2D view is updated at most every 200ms when the 3D view is
changing.
Bug fixLucy (LuciadLightspeed)
com.luciad.lucy.addons.magneticnorth.TLcyMagneticNorthAddOn:
Creating a magnetic north layer froze the application.
Bug fixLucy (LuciadLightspeed)
com.luciad.lucy.addons.redlining.TLcyRedliningAddOn:
Saving can now save all shapes.
Bug fixLucy (LuciadLightspeed)
Sorting table columns: the wrong column was sorted after
columns were dragged to a different position.
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil returned incorrect values
when checking the
containment of points in polygons on the southern hemisphere.
Bug fixDefense Symbology
The Military Standard 2525b symbology codes where not correctly interpreted for
joker and faker alliances.
3.2
3.2.21
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceParser throws exceptions for unknown geodetic datums
and projection
mappings.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder encodes boolean features as Strings.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdEllipsoidUtil has a method to calculate the intersection point of two
line segments.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdAWTPath draws extremely long lines more accurate.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdMapLocation can display coordinates based on a given geodetic datum
instead of always on
WGS84.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdMapRulerController can express distances in millimeters.
Bug fixLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder correctly encodes
integer features
into the dbf file.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceFormatter
correctly formats Lambert
conformal conical projections.
3.2.20
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelDecoder has a method that allows subclasses to decode files
without having to
use a SAX parser.
Bug fixLuciadLightspeed
com.luciad.format.svg.TLcdSVGUnstyledLonLatShapeFactory
correctly decodes text
instead of returning null.
3.2.19
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDTEDColorModelFactory now returns the color white for values above
3500 meters for
the default color model.
ImprovementLuciadLightspeed
com.luciad.model.TLcdDefaultObjectInModelfilter is an com.luciad.util.ILcdFilter implementation
that accepts
only objects in a certain model.
ImprovementLuciadLightspeed
com.luciad.text.TLcdAltitudeFormat and com.luciad.util.TLcdDistanceFormat implement
com.luciad.util.ILcdFormatter.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLonLatFormatter formats longitude-latitude coordinates as decimals minutes.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdMapLocation includes a decimals minutes mode.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder is more memory efficient for
large images.
ImprovementInfrastructure Standards
The package now supports more than 64 levels, for DGN V8.
Bug fixLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYTextPainter correctly
handles a cancel on
the text input dialog.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYEditController and
com.luciad.view.gxy.controller.TLcdGXYSelectController clear the 'rectangle' on a repaint when the
rectangle
consisted only of a horizontal line.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdBILModelDecoder sometimes used
an incorrect
colormodel.
Bug fixLuciadLightspeed
com.luciad.reference.format.TLcdWKTReferenceParser throws
ParseExceptions
instead of returning null values.
Bug fixDefense Symbology
com.luciad.symbology.milstd2525b.model.TLcdEditableMS2525bUnit takes into account
the MS2525b code in the equals method.
3.2.18
Bug fixLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder uses the same
series of tests for encoding the header for the shp file as for encoding objects in the shp file.
This ensures that the header states the correct type of the objects in
the file.
3.2.16
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder can handle files with the NONE keyword.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdJAIRasterModelDecoder was extended to handle multiple image files,
in different
tiles and levels.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLicenseServer implements a license server which can be used to centralize
the control of the
number of floating licenses.
ImprovementDefense Standards
The following objects now implement
com.luciad.shape.ILcdShape:
- com.luciad.format.vpf.TLcdVPFAreaFeature
- com.luciad.format.vpf.TLcdVPFLightLinFeature
- com.luciad.format.vpf.TLcdVPFLineFeature,
so that all objects in VPF models implement com.luciad.model.ILcdShape.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder no longer fails on
the SMOOTH clause
for PLINE objects.
3.2.15
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder can have a ILcdModelReferenceDecoder set. This allows
the user to decode the reference from a custom formatted file.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder can have a ILcdModelReferenceDecoder set. This allows the
user to define his own reference format for the ECW files.
3.2.14
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdGeorefUtil has improved
accuracy by a factor 2.
ImprovementReal-time Engine
com.luciad.realtime.TLcdSimulator handles changes in the
simulator model by listening to change events of the property trackmodel.
This avoids the need of setting a new track model every time a change occurs.
3.2.12
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDecoder will decode references from a .PRJ files by default.
If no such file
is present it will look for a corresponding .ref file and decode that file. This behaviour can
be changed by
setting a com.luciad.model.ILcdModelReferenceDecoder.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdAWTPath explicitly checks for Windows
98
to set safe ordinate limits. This ensures better approximations on other
platforms for very long lines.
3.2.11
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceParser uses a better geodetic
datum for files containing geodetic datum id 1002.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdJAIRasterModelDecoder supports overriding
the images colormodel.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdIconImageUtil had some methods deprecated which had
unused parameters.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdUTMGrid can be based on a geodetic datum other
than WGS84. This is taken into account when importing from/exporting to
properties.
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdWKTReferenceParser decodes an alternative
format for geodetic datum names, where D_ precedes the name.
3.2.10
ImprovementLuciadLightspeed
com.luciad.projection.TLcdOrthographic can take the height of a point
into account.
3.2.09
ImprovementLuciadLightspeed
com.luciad.format.svg.ILcdSVGShapeFactory has been extended to create shapes from
the PATH element.
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelDecoder can decode paths not containing curves.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdNIMA8350GeodeticDatumFactory has been updated to include data of most
recent documents.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdTFWModelDecoder supports JPW/BPW files corresponding to JPEG/BMP
images.
ImprovementAdvanced GIS Engine
com.luciad.geometry.cartesian.TLcdBasicBinaryTopology supports
calculations with com.luciad.shape.ILcdArc and com.luciad.shape.ILcdArcBand
objects.
ImprovementDefense Standards
The use of GeoSym in VPF layers can be turned off.
Bug fixLuciadLightspeed
com.luciad.projection.TLcdStereographic is now correctly
created through the
constructor with com.luciad.shape.ILcdPoint argument.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder can decode ellipses
created
by MapInfo which do not follow the standard.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelEncoder did not encode the
radius of an
ellipse correctly.
3.2.07
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder and com.luciad.format.mif.TLcdMIFModelEncoder decode
and encode arc
elements.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder can export models that contain
com.luciad.shape.ILcdPolyline or
com.luciad.shape.ILcdPolygon objects which are not in a com.luciad.shape.ILcdShapeList.
ImprovementLuciadLightspeed
Setting the property smartPan on com.luciad.view.gxy.TLcdGXYViewCanvas or
com.luciad.view.gxy.TLcdGXYViewJPanel
or one of its subclasses only has an effect when paintInBackground is false.
This was disabled in version 3.2.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelEncoder wrote the Coordsys
clause twice.
Bug fixLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelEncoder encodes ellipses,
arcs and circles
created using delegation.
3.2.06
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdJPLGeodeticDatumFactory has an alias for MGI.
3.2.05
ImprovementLuciadLightspeed
the hardware keys can be installed on Solaris systems without having to change the read/write
permissions on a
tty.
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder has a new property to indicate whether the x
coordinate or the y
coordinate is given first.
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder can decode elements of type Box, while
com.luciad.format.gml.TLcdGMLModelEncoder can encode com.luciad.shape.ILcdBounds objects into
GML Box elements.
ImprovementLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYEditController and
com.luciad.view.gxy.controller.TLcdGXYNewController have a property to extend
the clip with a margin on a clipped repaint of the view.
Bug fixLuciadLightspeed
Pan behavior was changed as of version 3.2.
Bug fixLuciadLightspeed
As of version 3.2, view implementations did not repaint
correctly when
the number of cached background layers was set to 0.
3.2.04
ImprovementLuciadLightspeed
The following decoders update the descriptors of the resulting models with
the classes of the objects loaded in that model:
- com.luciad.format.mif.TLcdMAPModelDecoder
- com.luciad.format.mif.TLcdMIFModelDecoder
- com.luciad.format.shp.TLcdSHPModelDecoder
ImprovementLuciadLightspeed
com.luciad.text.TLcdAltitudeFormat allows to parse and format altitudes.
ImprovementLuciadLightspeed
com.luciad.util.TLcdAltitdeUnit defines altitude unit constants.
ImprovementInfrastructure Standards
com.luciad.format.TLcdDWGModelDescriptor now implements
com.luciad.util.ILcdContentDescriptor
3.2.03
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder throws an IOException when decoding fails instead of
returning a null
model.
Bug fixLuciadLightspeed
Line-of-sight calculations take into account that both
points should not
be over a raster.
Bug fixAdvanced Raster Connectors
Decoding of ERS reference files has been improved.
Bug fixInfrastructure Standards
The handling of 3D transformations has been improved.
3.2.02
ImprovementLuciadLightspeed
com.luciad.util.ILcdContentDescriptor is an interface that describes the classes a
com.luciad.model.ILcdModel
contains. Following model descriptors
implement this interface:
- com.luciad.format.mif.TLcdMIFModelDescriptor
- com.luciad.format.shp.TLcdSHPModelDescriptor
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayer fires an event when its icon
is set.
3.2
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder throws an IOException when decoding fails instead of
returning a null
model. This is more according to the com.luciad.model.ILcdModelDecoder interface.
ImprovementLuciadLightspeed
com.luciad.format.gml.TLcdGMLModelDecoder can have a com.luciad.model.ILcdModelReferenceDecoder
set.
ImprovementLuciadLightspeed
The messages for exceptions generated by the following classes were
clarified:
- com.luciad.format.raster.TLcdGeoTIFFImageDecoder
- com.luciad.format.raster.TLcdJAIRasterModelDecoder
- com.luciad.format.raster.TLcdRasterModelDecoder
- com.luciad.format.raster.TLcdTFWRasterModelDecoder
- com.luciad.format.raster.TLcdBufferedTile
This results in better messages presented by com.luciad.model.TLcdOpenAction.
ImprovementLuciadLightspeed
com.luciad.format.raster.ALcdRasterPainter has the property
maxNoOfOutlineTiles deprecated in favor of maxNumberOfOutlineTiles.
ImprovementLuciadLightspeed
com.luciad.model.TLcdModelChangedEventSupport has a new method allElementsChanged. This fires an
com.luciad.model.TLcdModelChangedEvent with ALL_OBJECTS_CHANGED added as mode. The hashtable of
changes contains
only the changes previous to and following the call to allElementsChanged. All subclasses of
com.luciad.model.ALcdModel use
this class to dispatch their model changed events.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLonLatParser automatically recognizes longitude-latitude formats.
ImprovementLuciadLightspeed
All com.luciad.view.gxy.ILcdGXYView implementations except
com.luciad.view.gxy.TLcdGXYViewBufferedImage and
com.luciad.view.map.TLcdMapBufferedImage
support painting in the background, com.luciad.view.gxy.ILcdGXYView has additional methods
to invalidate its content and to return only after the updating has completely finished.
ImprovementLuciadLightspeed
Setting the property smartPan on com.luciad.view.gxy.TLcdGXYViewCanvas or
com.luciad.view.gxy.TLcdGXYViewJPanel
or one of its subclasses no longer has an effect.
ImprovementReal-time Engine
com.luciad.realtime.TLcdSimulator has a property to allow the application
to manage the number of cached background layers.
ImprovementDefense Standards
com.luciad.format.vpf.TLcdVPFLayerFactory has a new
property UseScaleRange
which allows to use the scale ranges encoded in the vpf data.
Bug fixLuciadLightspeed
com.luciad.util.TLcdLonLatCoord takes into account NaN values
for string
representation of longitude/latitude coordinates.
Bug fixLuciadLightspeed
The model bounds to world bounds transformation calculations
have been
improved. Previously the upper right corner of the grid might not be painted in rare cases.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYCirclePainter only paints editing
labels when
instructed so.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYBoundsPainter can have its snap
icon set.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYIconPainter is adapted not to
paint icons when
they are positioned at very large AWT coordinates in order to avoid a
breakdown on certain Windows OS.
Bug fixLuciadLightspeed
The following com.luciad.view.gxy.ILcdGXYPainter
implementations
in com.luciad.view.gxy.painter can now
have null fill, line or font styles set:
- TLcdGXYArcBandPainter
- TLcdGXYArcPainter
- TLcdGXYBufferPainter
- TLcdGXYCirclePainter
- TLcdGXYEllipsePainter
- TLcdGXYPointListPainter
- TLcdGXYTextPainter
Bug fixLuciadLightspeed
com.luciad.view.gxy.ILcdGXYLayer objects with null scale
ranges are
handled better in LuciadMap.
Bug fixLuciadLightspeed
com.luciad.util.TLcdLonLatFormatter has improved precision
due to
the improved handling of rounding errors.
Bug fixLuciadLightspeed
All com.luciad.model.ILcdModel implementations check if the
model is
empty on an allElementsRemoved call. If so, no event will be fired.
Bug fixLuciadLightspeed
com.luciad.model.TLcdModelChangedEventSupport has been
adapted to allow
listeners to remove themselves while processing an event.
Bug fixLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelDecoder has improved
checking of
sourcenames when decoding.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdJAIRasterModelDecoder has a
better default
value for pixel density.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdGIFImageDecoder decodes
the
transparency index better.
Bug fixInfrastructure Standards
The new cell painter com.luciad.format.dgn.gxy.TLcdDGNCellGXYPainter now
supports cells with holes.
3.1
3.1.22
ImprovementLuciadLightspeed
com.luciad.format.raster.ILcdMultilevelRaster can contain com.luciad.format.raster.ILcdRaster
objects with
different bounds.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLicenseError is thrown when license checking fails.
3.1.21
ImprovementLuciadLightspeed
com.luciad.model.TLcd2DBoundsIndexedModel is serializable.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.ILcdExtrudedShape is an interface for extruded shapes which replace
com.luciad.shape.shape3D.ILcdExtrudeShape.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.ILcdEditableExtrudedShape is an interface for extruded shapes of which
maximum and minimum
Z values can be changed.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.TLcdExtrudedShape implements the above interfaces.
3.1.20
ImprovementLuciadLightspeed
A set of 3D shapes have been added to the package com.luciad.shape.shape3d:
- the interfaces:
- ILcd3DEditablePolygon
- ILcd3DEditablePolyline
- ILcd3DEditablePolypoint
- and their implementations:
- TLcdXYZFloatLine
- TLcdXYZFloatPolygon
- TLcdXYZFloatPolyline
- TLcdXYZFloatPolypoint
ImprovementLuciadLightspeed
com.luciad.util.ILcdOriented is an interface for objects that have an orientation.
ImprovementLuciadLightspeed
com.luciad.util.ILcdOrientationSettable is an interface for objects for which the
orientation can be set.
ImprovementDefense Standards
com.luciad.format.TLcdVPFDatabasePanel and
com.luciad.format.TLcdVPFDatabaseTree can have a default path for the
database chooser.
ImprovementDefense Symbology
com.luciad.symbology.milst2525b.model.TLcdEditableMS2525bUnit implements
com.luciad.util.ILcdOrientationSettable.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now supports the decoding of 3D
shapes in floating point precision.
Bug fixLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYTextPainter changes the
edited text
object after editing its representation in a dialog.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYMagnifierController no
longer throws
an exception when a layer is moved in the view before it is completely added.
Bug fixLuciadLightspeed
com.luciad.projection.TLcdCassini no longer throws an
exception on a call
to the toString method.
3.1.19
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGIFImageDecoder is a com.luciad.format.raster.ILcdTileDecoder to
decode GIF images
which is more memory-efficient than com.luciad.format.raster.TLcdImageDecoder.
ImprovementLuciadLightspeed
com.luciad.format.svg.ILcdShapeFactory has a new method endUnknownShape which is called whenever
the SVG
contenthandler reaches the end of an unknown element in an SVG file. This allows to make a
distinction between
nested unknown elements.
ImprovementLuciadLightspeed
com.luciad.util.TLcdDistanceUnit has a new unit: foot.
ImprovementDefense Symbology
When the jar containing the military standard 2525b symbols is not in the classpath a fail message is sent to the
LuciadMap log instead of throwing a FileNotFoundException.
ImprovementDefense Symbology
com.luciad.symbology.milst2525b.view.gxy.TLcdMS2525bUnitIconPainterEditor can be extended.
3.1.18
ImprovementDefense Standards
com.luciad.format.vpf.gxy.TLcdVPFGeoSym enables the user to choose whether to use the GeoSym
symbology. By default the GeoSym symbology is turned on.
ImprovementInfrastructure Standards
com.luciad.format.dwg.TLcdDWGModelDecoder now supports Face3D and Solid
primitives.
3.1.17
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdModelEncoder throws an IOException when saving a file fails.
ImprovementLuciadLightspeed
com.luciad.model.TLcd2DBoundsIndexedModel has a constructor without initial bounds. The elements
are then
ordered using an R-tree instead of a BSP-tree. The bounds returned by the getBounds method will
then be the
strict union of all the models elements bounds.
ImprovementLuciadLightspeed
com.luciad.model.TLcd2DBoundsIndexedModel is serializable.
ImprovementLuciadLightspeed
com.luciad.util.TLcdBuffer is thread safe.
3.1.16
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdMultilevelRasterPainter and
com.luciad.format.raster.TLcdRasterPainter
are thread safe on the condition that the shared buffer implementation is thread safe.
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelDecoder throws an IOException when decoding fails instead of
returning a null
model.
ImprovementReal-time Engine
com.luciad.realtime.TLcdSimulator sets autoUpdate to false before calling
setDate on the simulator model.
This allows simulator models to generate model changed events without
causing the view to repaint itself.
ImprovementDefense Symbology
com.luciad.symbology.milst2525b.view.gxy.TLcdMS2525bUnitIconPainterEditor can have custom icon providers.
3.1.15
Bug fixLuciadLightspeed
The degrees character is represented by its unicode code
throughout
LuciadMap.
3.1.14
ImprovementLuciadLightspeed
Mollweide has been added to the com.luciad.reference.format.TLcdAUTOReferenceFormatter and
com.luciad.reference.format.TLcdAUTOReferenceParser classes.
Bug fixLuciadLightspeed
com.luciad.view.vertical.TLcdVVJPanel does not reset its
leftscaling or
rightscaling index when a ChangeEvent is fired.
3.1.13
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdJPLEllipsoidFactory has increased precision for the WGS84 ellipsoid.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdJPLGeodeticDatumFactory has new aliases "World Geodetic System 1972" and
"World Geodetic
System 1984" for WGS72 and WGS84.
Bug fixLuciadLightspeed
com.luciad.reference.format.TLcdWKTReferenceParser throws
exceptions for
an unknown geodetic datum or an unsupported projection.
3.1.12
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceFactory has been deprecated in favor of
com.luciad.format.mif.TLcdMIFModelReferenceParser. The method createModelReference has been
renamed to
parseModelReference.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelReferenceFormatter is a class to convert model references into
Strings.
ImprovementLuciadLightspeed
com.luciad.model.TLcdModelChangedEvent has a new mode ALL_OBJECTS_CHANGED to indicate that all
objects of a
model have changed. This can be used for models which are completely updated at regular time
intervals.
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdAUTOReferenceFormatter takes the simple rectangular projection
into account.
ImprovementLuciadLightspeed
com.luciad.reference.format.TLcdEPSGReferenceParser includes the Belgian Grid System 72.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYTextPainter sometimes moved 3D
points due to
incorrect transformations.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder sometimes
positioned the
raster incorrectly when reading an a.toc file.
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now has improved support for
scaling and fill colors of user defined fonts, and zero size text elements.
3.1.11
ImprovementInfrastructure Standards
com.luciad.format.dgn.gxy.TLcdDGNCellGXYPainter has improved efficiency
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNCellGXYPainter can now paint unfilled cells with
holes.
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now decodes mirrored arcs
correctly.
3.1.08
ImprovementLuciadLightspeed
The following decoders have been adapted to avoid black borders around transformed rasters:
- com.luciad.format.raster.TLcdJAIRasterModelDecoder
- com.luciad.format.raster.TLcdTABRasterModelDecoder
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdJAIRasterModelDecoder can create a com.luciad.model.ILcdModel based
on a
java.awt.image.RenderedImage and properties set.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdRenderedImageTile has a method to suggest an index for the color to
be made
transparent.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdTFWRasterModelDecoder can have a
com.luciad.model.ILcdModelReferenceDecoder set.
ImprovementLuciadLightspeed
A package com.luciad.reference.format has been added. This package contains classes to parse and
format
reference systems. The following formats for reference systems are available:
- AUTO (as defined by openGIS)
- European Petroleum Survey Group (EPSG)
- Well Known Text format (WKT)
- LuciadMap specific format.
ImprovementLuciadLightspeed
com.luciad.view.ILcdXYReferenceFormatter and com.luciad.view.ILcdXYWorldReferenceParser are new
interfaces to
transform com.luciad.view.ILcdXYWorldReference objects to and from Strings.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now handles solids and 3D surfaces.
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdGeodeticDatum checks the ellipsoid
parameters for
equality to the reference geodetic datum.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdDTEDColorModelFactory handles incorrect
properties better.
3.1.07
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDIMAPModelDecoder decodes data in the Digital Image Map (DIMAP XML)
format.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayer handles null scaleranges.
Bug fixDefense Standards
Setting the scale range on a
com.luciad.format.vpf.TLcdVPFLayer to null
caused a NullPointerException.
3.1.06
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder supports on the fly multilevel creation. This
improves
performance at the cost of some extra memory usage.
ImprovementLuciadLightspeed
iButton support has been extended to USB ports. The iButton is now supported on the following
platforms:
- serial adapter: Windows XP/NT/2000, Linux, Solaris
- USB adapter: Windows XP/2000, Linux
3.1.05
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder supports rotated images (when specified by
means of a
transformation matrix and in combination with a gridreference).
3.1.04
ImprovementLuciadLightspeed
The package com.luciad.symbology contains classes to represent object on the map with different
symbols
depending on the objects features.
3.1.03
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdAWTPath now deals with large
coordinates better.
3.1.02
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYView implements the interface
com.luciad.view.gxy.ILcdGXYViewXYWorldTransformationProvider .
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYView supports clipped repainting with the method repaint(aX, aY,
aWidth, aHeight).
com.luciad.view.gxy.controller.TLcdGXYEditController and
com.luciad.view.gxy.controller.TLcdGXYNewController have a property useEditingBoundsForRepaint
which indicates
wheter these controllers should repaint the whole view or not on editing. All painters now take
into account the
modes CREATING, RESHAPING, TRANSLATING when calculating the bounds.
Bug fixLuciadLightspeed
The method geodesicPointSFCT in
com.luciad.geodesy.TLcdEllipsoid entered
an infinite loop on erroneous input.
3.1.01
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder can decode CARDG files which are composed of 3
byte images.
ImprovementLuciadLightspeed
com.luciad.view.vertical.ILcdVVRenderer has extra methods to allow pre- and postrendering when
painting
subprofiles.
Bug fixLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYBoundsPainter painted
bounds crossing the
the date line (180 degrees E/W) incorrectly in some projections.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYOverviewController did
not zoom in
correctly when the ratio of the zoom levels was extremely high.
3.1
Bug fixLuciadLightspeed
com.luciad.view.vertical.TLcdVVJPanel now fills
subprofiles better.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdCADRGModelDecoder returns a
com.luciad.model.TLcd2DBoundsIndexedModel when decoding an a.toc file.
Bug fixAdvanced Raster Connectors
The caching behavior of the native libraries has been improved by always
checking the closing views for ECW contents.
3.0
3.0.14
Bug fixTerrain Analysis Engine
com.luciad.tea.TLcdVVTerrainProfileModel takes
into account multiple DTED rasters which are contained in the
same model.
3.0.10
Bug fixTerrain Analysis Engine
com.luciad.tea.TLcdVVTerrainProfileModel takes
into account multiple DTED rasters. The profile is
displayed for all polyline segments which do not
cross raster boundaries.
Bug fixTerrain Analysis Engine
com.luciad.tea.TLcdTerrainProfileController works
over multiple DTED rasters.
3.0.09
ImprovementLuciadLightspeed
com.luciad.format.mif.gxy.TLcdMIFGXYLabelPainter can now be configured through feature indices.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdNoWarpMultilevelRasterPainter and
com.luciad.format.raster.TLcdNoWarpRasterPainter
support rotation.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDEMModelDecoder supports data with lon lat geographical references.
ImprovementLuciadLightspeed
com.luciad.shape.TLcdSHPModelDecoder has a property decodingBounds. If different from null only
objects
overlapping with these bounds will be decoded.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder accepts ERS reference files to decode the model reference.
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder throws an IOException when no model reference can be
found.
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder throws an IOException when no model reference can be
found.
Bug fixLuciadLightspeed
The outline of rasters is drawn completely when the raster
spans
a complete hemisphere.
Bug fixLuciadLightspeed
com.luciad.gui.TLcdPrintComponentAction has a workaround
for a JDK1.4.1 bug involving printing transparent objects.
Bug fixLuciadLightspeed
com.luciad.format.svg.TLcdSVGContentHandler decoded
text and unknown shapes without adding them to the model.
3.0.08
ImprovementAdvanced Raster Connectors
TLcdECWModelDecoder can now handle larger images (over 32768 pixels wide or
high).
ImprovementAdvanced Raster Connectors
TLcdMrSIDModelDecoder can now handle larger images
(over 32768 pixels wide or high).
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdTABRasterModelDecoder handles
larger size images ( over 32768 pixels ).
3.0.07
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdRasterModelDecoder had an
incorrect
default value set for the index of the forced transparent color. This
resulted in CADRG-decoded tiles being turned black.
3.0.06
ImprovementLuciadLightspeed
all com.luciad.reference.ILcdGeoReference implementations implement the method hashCode.
ImprovementLuciadLightspeed
the precision for all calculations involving the vertical view have increased.
Bug fixLuciadLightspeed
com.luciad.geometry.cartesian.TLcdCartesian handles
degenerate cases better when computing the intersection of lines.
Bug fixLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil and
com.luciad.geometry.cartesian.TLcdCartesian could return different
results on calculating the number of intersection points of short line
segments when the results should have been equal.
3.0.05
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder now also accepts TAB as separation character.
ImprovementLuciadLightspeed
com.luciad.format.svg.TLcdSVGModelEncoder and com.luciad.format.svg.TLcdSVGModelDecoder support
'unknown'
shapes.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdEllipsoid implements the method hashcode.
ImprovementLuciadLightspeed
all projections in com.luciad.projection implement the method hashcode.
ImprovementLuciadLightspeed
all com.luciad.reference.ILcdGridReference implementations implement the method hashcode.
ImprovementAdvanced Raster Connectors
MrSID files can now be read using rst files.
ImprovementAdvanced Raster Connectors
TLcdMrSidModelDecoder now supports GeoTIFF tags that specify model references.
Bug fixLuciadLightspeed
com.luciad.view.map.painter.TLcdLonLatGridPainter has
improved
continuity of labeling
offsets near the bottom/top edges of the view when labels are not slanted.
Bug fixInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now handles files with corrupt
attribute lengths and empty/corrupt shared cell definitions better.
3.0.04
ImprovementLuciadLightspeed
com.luciad.projection.TLcdTransverseMercatorSPCS has been deprecated in favor of
com.luciad.projection.TLcdTransverseMercator.
com.luciad.format.mif.TLcdMIFModelReferenceFactory,
com.luciad.projection.TLcdUTM and com.luciad.reference.TLcdUTMGrid have been adapted.
ImprovementAdvanced Raster Connectors
ECW files can now be read using rst files.
3.0.03
ImprovementLuciadLightspeed
com.luciad.util.TLcdQueu can now be cleared with the method clear.
Bug fixLuciadLightspeed
com.luciad.view.map.TLcdAzimuthRangeController caused a
NullPointerException on
terminateInteraction.
3.0.01
ImprovementLuciadLightspeed
the method set/getModelRefGrid is deprecated in favor of set/getGridReference in the class
com.luciad.transformation.TLcdGridReferenceUtil
ImprovementLuciadLightspeed
com.luciad.util.TLcdBuffer has the property allocateFullBufferSize set to true by default.
3.0
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYMultiFontLabelPainter allows to paint labels using multiple fonts per
label.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdDHDNGridReference has been added to the list of available references.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFGXYPainterProvider is the recommended painter provider for layers
containing models
created by the com.luciad.format.mif.TLcdMIFModelDecoder
and the com.luciad.format.mif.TLcdMAPModelDecoder as it takes into account the display hints of
the format.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdLayoutList has been deprecated in favor of com.luciad.gui.TLcdListLayout.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdModelReferenceEncoder is a com.luciad.model.ILcdModelReferenceEncoder
implementation
that creates a .ref file ( as can be read by a com.luciad.format.shp.TLcdSHPModelDecoder for example).
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayer now supports multiple painter providers, allowing to return
multiple painters
per object. All objects in the layer are painted using the first painter provider, then the
second painter
provider ... .
ImprovementLuciadLightspeed
com.luciad.view.gxy.controller.ALcdGXYSmartController has a property RequestFocusOnMouseEntered
to control
whether the component containing the com.luciad.view.ILcdGXYView should request the focus when
the mouse enters
it. Until java 1.4 this was required to catch the key events fired from the
keyboard to control the map, for example pan or zoom. In java 1.4 the AWT focus subsystem was
redesigned in a way
that this could lead to unwanted behaviour, the component containing the view would always come
to the front
when the mouse enters the map. In java 1.4 other mechanisms exist to catch the key events fired.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYCirclePainter has been extended to display information when
editing an
com.luciad.shape.ILcdCircle using com.luciad.text.TLcdDistanceFormat.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYPointListPainter has a property MoveOnlyOnEdit to set whether
the
com.luciad.shape.ILcdPoint can only move when being edited.
ImprovementLuciadLightspeed
A com.luciad.util.TLcdLonLatFormatter can be set to the
com.luciad.view.map.TLcdMapLonLatGridPainter to format
the grids labels.
ImprovementLuciadLightspeed
com.luciad.shape.TLcdValuedPolygon is a new shape to represent contours on a map. The factory
com.luciad.geometry.cartesian.TLcdContourFactory can be used to create contours based on
elevation data.
ImprovementLuciadLightspeed
com.luciad.projection.TLcdAlbersEqualAreaConic and
com.luciad.projection.TLcdLambertAzimuthalEqualArea have been
added to the list of projections.
ImprovementLuciadLightspeed
com.luciad.shape.shape3D.ILcdPlaneSet is a new shape to define a set of planes on different
heights.
ImprovementLuciadLightspeed
com.luciad.transformation.TLcdGridRefUtil has been deprecated in favor of
com.luciad.transformation.TLcdGridReferenceUtil.
ImprovementLuciadLightspeed
the com.luciad.format.mif package has improved support for decoding the MIF format: brushes,
pens, symbols.
com.luciad.format.mif.TLcdMIFBrush replaces com.luciad.view.TLcdFillStyle, and
com.luciad.format.mif.TLcdMIFPen
replaces com.luciad.view.TLcdLineStyle.
ImprovementLuciadLightspeed
com.luciad.format.mif.gxy.TLcdMIFGXYPainterProvider is
a new painter provider that supports the standard MIF style. This class can probably
replace any user-implemented painter provider.
ImprovementLuciadLightspeed
the painters com.luciad.format.raster.TLcdMultilevelRasterPainter and
com.luciad.format.raster.TLcdRasterPainter
now have support for globally reusing its internal image buffer, instead of creating one for
each raster.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelDecoder can now use a
com.luciad.reference.ILcdModelReferenceDecoder to decode
its model reference.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdSphereUtil now has better support for computing the intersection between
two line
segments.
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYViewXYWorldTransformationProvider is an interface that indicates that
it can provide
a valid com.luciad.view.gxy.ILcdGXYViewXYWorldTransformation for a
com.luciad.view.gxy.ILcdGXYView. Within
LuciadMap com.luciad.view.gxy.ILcdGXYView implementations are checked to see whether they also
implement this
interface whenever a com.luciad.view.gxy.ILcdGXYViewXYWorldTransformation is needed. If they do,
they request
the transformation from the provider. Otherwise, a default
com.luciad.view.gxy.ILcdGXYViewXYWorldTransformation
implementation, set up for the com.luciad.view.gxy.ILcdGXYView, is used.
ImprovementInfrastructure Standards
The new cell painter com.luciad.format.dgn.gxy.TLcdDGNCellGXYPainter now
supports cells with holes.
ImprovementInfrastructure Standards
All GXY specific classes have been moved to the package
com.luciad.format.dgn.gxy.
Bug fixLuciadLightspeed
com.luciad.format.raster.TLcdTABRasterModelDecoder now
handles very large JPEG
and BMP images more graciously.
Bug fixLuciadLightspeed
com.luciad.model.TLcd2DBoundsIndexedModel now correctly
handles expanding
bounds near the poles.
Bug fixLuciadLightspeed
When a SHP file was encoded with
com.luciad.format.shp.TLcdSHPModelEncoder, the
length of records in the accompanying DBF file was wrongly encoded when it exceeded 127.
Bug fixLuciadLightspeed
Editing a com.luciad.shape.shape3D.ILcd3DEditablePoint using
the
com.luciad.view.gxy.TLcdGXYIconPainter as an editor turned the z coordinate to 0 in some cases.
Bug fixLuciadLightspeed
The method setBackground in the ILcdGXYView implementations
did not take into
account the value of isAutoUpdate and always repainted the view.
Bug fixLuciadLightspeed
The model descriptor for models containing a grid now have
Grid as value for
name, type and displayname instead of UNKNOWN.
Bug fixLuciadLightspeed
The method modelPoint2WorldSFCT in
com.luciad.transformation.TLcdGrid2Grid has
better accuracy when dealing with two geodetic datums and/or projections.
Bug fixLuciadLightspeed
com.luciad.gui.TLcdLayoutList sometimes froze the
application.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYBufferPainter can now paint
buffers with sharp
angles.
Bug fixLuciadLightspeed
Selecting a com.luciad.shape.ILcdArc on the map fired a
com.luciad.model.TLcdModelChangedEvent.
Bug fixLuciadLightspeed
The labels on the UTM grid (com.luciad.map.TLcdUTMGridLayer)
were
sometimes painted multiple times after a pan.
Bug fixLuciadLightspeed
com.luciad.view.map.TLcdMapLocation only displayed correct
UTM
coordinates if the world reference was based on WGS84.
Bug fixTerrain Analysis Engine
When 2 contour levels computed with com.luciad.tea.TLcdContourFinder are exactly the same, the lower of the two was not painted.
Bug fixInfrastructure Standards
Objects with holes are now painted properly.
Upgrade considerationLuciadLightspeed
PropertyChangeEvents fired in Luciad implementations
of
com.luciad.view.gxy.ILcdGXYView, com.luciad.view.TLcdLayer and com.luciad.view.gxy.TLcdGXYLayer
started with
capitals.
The following properties now fire events starting with lowercase letters in accordance with Java standards:
- com.luciad.view.gxy.ILcdGXYView implementations:
- PaintingMode -> paintingMode
- Scale -> scale
- MinScale -> minScale
- MaxScale -> maxScale
- WorldOrigin -> worldOrigin
- ViewOrigin -> viewOrigin
- com.luciad.view.gxy.TLcdLayer:
- Visible -> visible
- Filter -> filter
- Selectable -> selectable
- Editable -> editable
- Label -> label
- com.luciad.view.gxy.TLcdGXYLayer:
- ModelXYWorldTransfoClass -> modelXYWorldTransfoClass
- Filter -> filter
- Labeled -> labeled
- PaintFromOverlaps -> paintFromOverlaps
- ScaleRange -> scaleRange
- LabelScaleRange -> labelScaleRange
- SelectionLabeled -> selectionLabeled
Upgrade considerationLuciadLightspeed
Some com.luciad.model.ILcdModelEncoder implementations
now have the ability to delegate the encoding of the model reference to
a com.luciad.model.ILcdModelReferenceEncoder.
2.1
2.1
ImprovementLuciadLightspeed
com.luciad.format.raster.ALcdRasterPainter has a property PaintOutline to decide whether to paint
the raster
outline when the scale is outside the resolution factor interval.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDMEDModelDecoder has properties to fall back to higher or lower
resolution data
when the requested data is not available.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGradientIndexColorModelFactory has the possibility to set a
transparent color to 1
index.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdMultilevelRasterPainter and
com.luciad.format.raster.TLcdRasterPainter have a
property to control the precision of raster painting.
ImprovementLuciadLightspeed
com.luciad.geometry.cartesian.TLcdCartesian now has a method to check if a point is inside an
ellipse.
ImprovementLuciadLightspeed
com.luciad.gui.swing.TLcdRangeSlider is displayed differently according to the Look and Feel.
ImprovementLuciadLightspeed
The latitude of a com.luciad.projection.ILcdTransverseCylindrical projection can now be set.
ImprovementLuciadLightspeed
com.luciad.shape.ILcdArc now has a method to compute the cornerpoint of an arc, while
com.luciad.shape.shape2D.ILcd2DEditableArc has a method to move the corner point of the arc.
ImprovementLuciadLightspeed
com.luciad.util.TLcdLog can extract messages from Exceptions.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYEditableLabelPainter displays the label pins only on moved labels.
ImprovementLuciadLightspeed
Arcbands can now be created clockwise or counterclockwise by the
com.luciad.view.gxy.TLcdGXYArcBandController.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdJetColorIndexModelFactory is a new ILcdColorModelFactory that
creates
java.awt.image.IndexColorModel objects with smoothly varying colors.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdJava2Util is a class to hold some useful methods that require java 1.2 or
higher.
ImprovementLuciadLightspeed
com.luciad.shape.ILcdEllipse has been added to the LuciadMap shapes. Two editable
implementations are available:
- com.luciad.shape.shape2D.TLcdLonLatEllipse
- com.luciad.shape.shape2D.TLcdXYEllipse
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdMapGeorefGridLayer is a grid layer that displays a georef grid.
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdNotLabelDeconflictableLayer is a marker interface to denote layers which
should not be
taken into account by label deconfliction algorithms. This could be applied to grid layers for
example.
ImprovementLuciadLightspeed
com.luciad.reference.ILcdModelReferenceDecoder, a interface to enable the decoding sources to
create com.luciad.model.ILcdModelReference objects, has been added.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYShapeListPainter now also implements
com.luciad.view.gxy.ILcdGXYEditorProvider.
ImprovementLuciadLightspeed
the precision of the method contains() in the class com.luciad.shape.shape2D.TLcdLonLatPolygon
has been
improved.
ImprovementLuciadLightspeed
A more accurate formula is now used for calculation of the geodesic distance on a sphere.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdBufferPainter has extra modes OUTLINED_FILLED, OUTLINED_OPEN and
OUTLINE_FILLED_OPEN. OPEN modes draw the buffer with open ends.
ImprovementTerrain Analysis Engine
Height contours based on raster maps can now be painted on maps.
ImprovementTerrain Analysis Engine
com.luciad.tea.TLcdTerrainProfileController and com.luciad.tea.TLcdTerrainProfileUtil can now also take height values of non
visible layers into account.
ImprovementDefense Standards
A com.luciad.util.TLcdStatusEvent is generated on
start and end when the view is updated in
com.luciad.format.vpf.TLcdVPFDataBaseTree. Listeners can be added directly or via
com.luciad.format.vpf.TLcdVPFDataBasePanel. This allows to show a message while loading vpf
data.
ImprovementDefense Standards
com.luciad.format.vpf.TLcdVPFLayer now have featured
label painters according to the following table:
- com.luciad.format.TLcdVPFFeatureClass.LINE:
com.luciad.view.gxy.TLcdGXYFeaturedPolylineLabelPainter
- com.luciad.format.TLcdVPFFeatureClass.AREA:
com.luciad.view.gxy.TLcdGXYFeaturedLabelPainter
- com.luciad.format.TLcdVPFFeatureClass.POINT:
com.luciad.view.gxy.TLcdGXYFeaturedLabelPainter
ImprovementDefense Standards
A com.luciad.util.ILcdStatusListener can listen to
the com.luciad.format.vpf.TLcdVPFDataBasePanel and to the
com.luciad.format.vpf.TLcdVPFDataBaseTree. Events are fired on start and end of updating the
view for vpf data.
ImprovementDefense Standards
A com.luciad.format.vpf.ILcdVPFLayerFactoryModel can
now be set to the com.luciad.format.vpf.TLcdVPFDataBasePanel and to the
com.luciad.format.vpf.TLcdVPFDataBaseTree. This allows customizing the colors used by the themes
in the vpf data.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now decodes 'place note' dimension
elements.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDescriptor now has additional methods to
retrieve information about reference files.
ImprovementInfrastructure Standards
com.luciad.format.dgn.TLcdDGNModelDecoder now has improved support for
decoding model references.
Bug fixLuciadLightspeed
com.luciad.gui.TLcdLayoutList could get into an infinite loop
in jdk1.4. The
class now also takes the size of the parent component, including insets, into account when laying out
components.
Bug fixLuciadLightspeed
ILcdGXYView implementations did not register themselves as a
com.luciad.model.ILcdModelChangeListener to the new model of a layer whenever
this layer was already added to the view.
Bug fixLuciadLightspeed
Using a different
com.luciad.view.gxy.painter.TLcdGXYBufferPainter as painter
and as editor
prohibited editing a buffer object.
Bug fixLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYSelectController and
com.luciad.view.gxy.controller.TLcdGXYEditController did not set the correct mode on checking
whether a selected objected was being edited.
Bug fixLuciadLightspeed
The magnifier controller,
com.luciad.view.gxy.controller.TLcdGXYMagnifierController, did not
repaint on changing the scale factor of the magnifier window.
Bug fixLuciadLightspeed
Since the number of pixels was expressed in integers,
decoding huge rasters led
to integer overflows. The number of pixels is now expressed as a double.
Bug fixLuciadLightspeed
Adding a grid layer to a com.luciad.view.map.TLcdMapJPanel
always caused a
repaint of the view,
irrespective of the value of autoUpdate.
Bug fixLuciadLightspeed
The com.luciad.view.map.TLcdGeodeticPen did not paint bounds
objects well when
they overlapped
the 180 degrees line in Equidistant Cylindrical or Mercator projection.
Bug fixLuciadLightspeed
The MIF model decoder did not take the unit of measure
specified in the MIF
file into
account.
Bug fixLuciadLightspeed
The arc painter now also supports snapping.
Bug fixLuciadLightspeed
The buffer painter only snapped to other points when in
creation mode.
Bug fixLuciadLightspeed
Sometimes the editing of an arc band by moving a point of it
beyond the -180
degrees angle
would cause the arcband to flip: it was drawn in the other direction.
Bug fixLuciadLightspeed
No labels were painted on the lon lat grid when only
meridians or only
parallels were
visible.
Bug fixLuciadLightspeed
com.luciad.view.gxy.ALcdGXYPen assumed different instances of
points were
returned when retrieving points from a point list. This led to wrong results for
the method isTouched() of the class
com.luciad.view.gxy.painter.TLcdGXYPointListPainter.
Bug fixLuciadLightspeed
The method cartesianModelDistance of the class
com.luciad.view.gxy.ALcdGXYPen
did not take
into account the differences in units of measure of the model reference and the view reference.
Bug fixLuciadLightspeed
Several memory leaks were closed to ensure proper
garbage collection.
Bug fixLuciadLightspeed
com.luciad.shape.shape2D.TLcd2DEditablePointList now has a
com.luciad.shape.shape2D.ILcd2DEditablePointFactory to create new
com.luciad.shape.shape2D.ILcd2DEditablePoint objects. Two point factories
are available:
- com.luciad.shape.shape2D.TLcdLonLatPointFactory
- com.luciad.shape.shape2D.TLcdXYPointFactory
Previously all new points added via the GUI were of the type
com.luciad.shape.shape2D.TLcdXYPoint.
Bug fixTerrain Analysis Engine
Line-of-sight rasters can now take multiple DTED raster into account, part of the same layer or dispersed over several layers.
Bug fixTerrain Analysis Engine
Line-of-sight rasters with a radius over 250 km were not painted. This was caused by an integer overflow.
2.0
2.0
ImprovementLuciadLightspeed
com.luciad.view.vertical package added. A vertical view can be used to visualize the third
dimension of a list
of points. See the user guide for a thorough explanation.
ImprovementLuciadLightspeed
com.luciad.view.gxy.controller.TLcdGXYMagnifierController allows the user to magnify a section
of the map
without the need to zoom in. Magnification area and factor can be controlled via the
numeric pad.
ImprovementLuciadLightspeed
com.luciad.shape.ILcdComplexPolygon and its implementation com.luciad.shape.ILcdComplexPolygon
are new classes
for representing complex polygons, for example polygons with holes.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYEditableLabelPainter enables the user to deconflict labels by moving
the labels
himself.
ImprovementLuciadLightspeed
com.luciad.shape.shape2D.TLcdXYText is a new com.luciad.shape.ILcdShape that implements
com.luciad.shape.shape2D.ILcd2DEditableText and com.luciad.shape.ILcdText to allow the user to
put scalable text
on map. To paint the text a standard ILcdGXYPainter implementation
com.luciad.view.gxy.TLcdGXYTextPainter is
provided.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelEncoder lets the user encode vector data in the MIF format.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDMEDModelDecoder and
com.luciad.format.raster.TLcdDTEDDirectoryModelDecoder now
sustain shading.
ImprovementLuciadLightspeed
com.luciad.format.shp.TLcdSHPModelEncoder lets the user encode vector data in the SHP format.
ImprovementLuciadLightspeed
com.luciad.model.TLcdMultilevel2DBoundsIndexedModel will refer to an appropriate
com.luciad.model.ILcd2DBoundsIndexedModel depending on a precision parameter.
ImprovementLuciadLightspeed
com.luciad.model.TLcdRegularTiled2DBoundsIndexedModel is composed of a regular tiled data set,
where an
individual tile implements com.luciad.model.ILcd2DBoundsInteractable.
com.luciad.model.ILcdTileProvider is
responsible for retrieving the requested tile.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDEMModelDecoder added. It allows you to decode individual DEM (
USGS Digital
Elevation Model) files.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdTFWRasterModelDecoder added. It allows you to decode TFW files
(TIFF World Files),
which specify a model reference for TIFF files.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdBILModelDecoder added. It allows you to decode BIL ( Band
InterLeaved by Line )
files.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdPrintComponentAction is an action to print the contents of a component. It
supports an
advanced mode to enhance vector data printing and allow printing of transparent filled areas.
ImprovementLuciadLightspeed
com.luciad.beans.TLcdPropertyChangeEvent added. This is an extension of
java.beans.PropertyChangeEvent with a
property isAdjusting to denote if any related events will follow.
ImprovementLuciadLightspeed
com.luciad.gui.TTFIcon is a com.luciad.gui.ILcdIcon implementation which can be used to
represent points with
True Type Font characters. This is useful for symbolic fonts.
ImprovementLuciadLightspeed
com.luciad.gui.swing.TLcdRangeSlider is a component that lets the user graphically
select a range by
sliding a minimum and maximum knob within a bounded interval.
ImprovementLuciadLightspeed
com.luciad.io.ILcdInputStreamFactory and com.luciad.io.ILcdOutputStreamFactory define interfaces
to
allow the user to preprocess InputStream and OutputStream objects for decoding and encoding
models.
ImprovementLuciadLightspeed
Memory efficient implementations are provided for some com.luciad.shape.ILcdShape classes in the package
com.luciad.shape.shape2D:
-
ILcdPolygon: TLcdLonLatFloatPolygon, TLcdLonLatFloatPolygonCache, TLcdXYFloatPolygon,
TLcdXYFloatPolygonCache
-
ILcdPolyline: TLcdLonLatFloatPolyline, TLcdLonLatFloatPolylineCache, TLcdXYFloatLine,
TLcdXYFloatPolyline, TLcdXYFloatPolylineCache
-
ILcdPolyPoint: TLcdLonLatFloatPolyPoint, TLcdLonLatFloatPolyPointCache,
TLcdXYFloatPolyPoint,
TLcdXYFloatPolyPointCache
ImprovementLuciadLightspeed
com.luciad.transformation.TLcdGrid2Geocentric defines a transformation between an
ILcdGridReference and an
ILcdXYZWorldReference.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdFitSelectionInViewClipAction fits a view to the bounds of all selected
selected objects
in it.
ImprovementLuciadLightspeed
com.luciad.view.map.TLcdAzimuthRangeController interprets mouse events for displaying an azimuth
range and an
azimuth direction.
ImprovementLuciadLightspeed
A mechanism has been added in the form of the method writePropertiesSFCT()to export a model
reference to a
Properties object.
ImprovementLuciadLightspeed
com.luciad.io.TLcdIOUtil can be configured to open sources as files first.
ImprovementLuciadLightspeed
com.luciad.view.gxy.ALcdGXYPen has a method drawLineWithArrow() which can be used in
com.luciad.view.gxy.ILcdGXYPainter implementations to draw lines with an arrow, thus avoiding
costly use of
Stroke objects.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYViewCanvas and com.luciad.view.gxy.TLcdGXYViewJPanel have a method
invokeLater() to
put a Runnable object on the AWT thread. This can be used to emulate
SwingUtilities.invokeLater() in an AWT
application.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYShapeListPainter now has a property to determine whether all shapes in
the shapelist
should be edited or only those touched by the mouse pointer.
ImprovementLuciadLightspeed
com.luciad.format.vpf.TLcdVPFLibrary and com.luciad.format.vpf.TLcdVPFDatabase now reference
their source by a
String in stead of a File. (option vpf/vmap)
Bug fixLuciadLightspeed
Labels on selected objects where painted when not required
due to
the interaction between com.luciad.view.gxy.TLcdGXYViewLabelPainter
and com.luciad.view.gxy.TLcdGXYLayer
Bug fixLuciadLightspeed
The method removeAllElements( ILcdFireEventMode.FIRE_NOW ) on
a
com.luciad.model.ILcdModel did not automatically update the view.
Bug fixLuciadLightspeed
com.luciad.view.gxy.ILcdGXYView.removeAllLayers()
implementations
did not remove its listeners from the
com.luciad.view.gxy.ILcdGXYLayer and com.luciad.model.ILcdModel
objects. This prohibited garbage collection.
Bug fixLuciadLightspeed
com.luciad.gui.TLcdImageIcon returns a default icon when an
image is not found.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYPointListPainter used fill color
to paint lines during editing.
1.6
1.6
ImprovementLuciadLightspeed
users can specify a transparent color index for rasters.
ImprovementLuciadLightspeed
com.luciad.gui.TLcdImageIcon images can be loaded from a URL.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder decodes MIF files more efficiently. The decoder can
now use memory
efficient float points.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYBoundsPainter can paint filled bounds.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdGXYCirclePainter can paint filled circles.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdLonLatGridPainter paints a smoother grid.
ImprovementLuciadLightspeed
bounds in a geodetic model reference are now painted more accurately.
ImprovementLuciadLightspeed
label painters can display a different label when an object is selected.
ImprovementLuciadLightspeed
com.luciad.gui.swing.TLcdDialogManagerSW lets you display Luciad dialogs in swing.
ImprovementLuciadLightspeed
com.luciad.shape.shape2D.TLcd2DEditablePointListLonLatFloatArray and
com.luciad.shape.shape2D.TLcd2DEditablePointListXYFloatArray are memory efficient
implementations of
com.luciad.shape.ILcd2DEditablePointList.
ImprovementLuciadLightspeed
com.luciad.shape.shape2D.TLcdLonLatLine and com.luciad.shape.shape2D.TLcdXYLine are
implementations of
com.luciad.shape.ILcd2DEditablePolyline with only 2 vertices.
ImprovementLuciadLightspeed
com.luciad.util.ILcdPasswordProvider provides methods
to retrieve
user/password
combinations.
Bug fixLuciadLightspeed
Selection sometimes failed during shape editing.
Bug fixLuciadLightspeed
Creation and editing of a TLcdXYCircle showed a circle with
half the
intended radius.
Bug fixLuciadLightspeed
modeldescriptors did not return the correct source name of
the model.
Bug fixLuciadLightspeed
com.luciad.view.TLcdGXYLayer takes only filtered objects into
account when calculating the bounds.
Bug fixLuciadLightspeed
Selection in geodetic mode sometimes failed on big shapes.
Bug fixLuciadLightspeed
Extreme zooming-in on large shapes no longer causes a VM
crash.
Bug fixLuciadLightspeed
The selected objects in the select controller and the layers
are
synchronized now.
1.5
1.5.07
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder now decodes circles and rectangles.
Bug fixLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLabelPainter now sets valid
default positions for
the labels.
1.5.06
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDMEDModelDecoder now handles more known variations of the DMED file
format.
ImprovementLuciadLightspeed
com.luciad.format.mif.TLcdMIFModelDecoder now handles more variations of the MIF file format.
ImprovementLuciadLightspeed
com.luciad.view.gxy.painter.TLcdPointListPainter and
com.luciad.view.gxy.paint.TLdcGXYIconPainter can handle
com.luciad.shape.shape3D.ILcd3DEditableShape shapes.
ImprovementLuciadLightspeed
Longitude Latitude coordinates are formatted with a factor 2 increased precision.
Bug fixLuciadLightspeed
getAliasNames().findID(String) in
com.luciad.geodesy.TLcdJPLGeodeticDatumFactory sometimes returned wrong id.
Bug fixLuciadLightspeed
Fit on user-defined layers always contained the point (0,0).
1.5.01
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDTEDModelDecoder has been renamed to
com.luciad.format.raster.TLcdDTEDDirectoryModelDecoder. It can decode an entire directory of
DTED files.
ImprovementLuciadLightspeed
The new com.luciad.format.raster.TLcdDTEDModelDecoder can decode individual DTED files.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdAllRasterPainter has been renamed to
com.luciad.format.raster.TLcdAllInMemoryRasterPainter.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayerLabelPainter can cache the position of drawn labels.
1.5
ImprovementLuciadLightspeed
The interface com.luciad.view.gxy.ILcdGXYPen and its implementations
com.luciad.view.gxy.TLcdGXYPen,
com.luciad.view.map.TLcdGeodeticPen, com.luciad.view.map.TLcdProjectionPen and
com.luciad.view.map.TLcdGridPen
have been tuned to improve performance. Two new classes/interfaces have been created for that purpose:
- com.luciad.view.gxy.ILcdGeneralPath/TLcdGeneralPath describes a path in world
coordinates,
including possible line/polygon breaks. The path can be used to cache transformed shapes.
- com.luciad.view.gxy.ILcdAWTPath/TLcdAWTPath: describes a path in AWT coordinates,
including
possible line/polygon breaks. An AWT path can paint itself as a polyline, a polygon, or a
filled
polygon.
ImprovementLuciadLightspeed
com.luciad.format.TLcdMultilevelRasterPainter and
com.luciad.format.TLcdNoWarpMultilevelRasterPainter now have
get/set methods for LevelSwitchScale which allow you to determine when to switch to another
raster level.
ImprovementLuciadLightspeed
com.luciad.geodesy.TLcdEllipsoidUtil has a method to check if two geodesic line segments have
an intersection.
Bug fixLuciadLightspeed
Painting labels with/without pins no longer interferes with
label
positioning.
1.4
1.4.04
ImprovementLuciadLightspeed
com.luciad.view.gxy.ILcdGXYController now has a method paint, which allows the controller to
paint on top of
its ILcdGXYView.
ImprovementLuciadLightspeed
com.luciad.view.ILcdGXYView has a method pan to allow panning when operating near the border of
the view.
ImprovementLuciadLightspeed
com.luciad.view.ILcdGXYView has new methods to register LayerSelectionListener and
ModelListener objects.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYLayer now has methods to set/get the minimum size of objects that are
to be painted.
Not painting very small objects can increase performance significantly.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDTEDModelDecoder has been added. It allows you to decode DTED files
organized in
directories without a corresponding DMED file.
ImprovementLuciadLightspeed
com.luciad.view.gxy.TLcdGXYViewBufferedImage and com.luciad.view.map.TLcdMapBufferedImage have been added.
These are
LuciadMap views that do not have corresponding Components. They are accessible as off-screen
images, which can be
conveniently used in servlets, for instance. These classes are beta versions, and are not
supported.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdDTEDModelDescriptor and
com.luciad.format.raster.TLcdDTEDMultilevelModelDescriptor
have been removed. DTED models have com.luciad.format.raster.TLcdRasterModelDescriptor and
com.luciad.format.raster.TLcdMultilevelRasterModelDescriptor descriptors.
ImprovementLuciadLightspeed
com.luciad.format.raster.TLcdGeoTIFFModelDecoder: the constructor no longer needs a buffer.
Buffering is done by
the JAI library.
Bug fixLuciadLightspeed
Objects in a layer which is out of scalerange can no longer be
selected.
Bug fixLuciadLightspeed
Some GeoTIFF files caused a NullPointerException
Bug fixLuciadLightspeed
DTED did not fall back to lower level data in a browser.
1.4
ImprovementLuciadLightspeed
com.luciad.format.raster.ILcdColorScheme and its implementations no longer exist. In general, it
is not
required, as a sensible default will be chosen. For special raster coloring needs, use
com.luciad.format.raster.ILcdColorModelFactory and its implementations.
ImprovementLuciadLightspeed
The properties noOfSubTileColumns/Rows in .rst files have been replaced with the more general
properties
subTilePixelWidth/Height.
ImprovementLuciadLightspeed
com.luciad.reference.TLcdProjectionReference has been superseded by
com.luciad.reference.TLcdGridReference. To
update your code, change TLcdProjectionReference to TLcdGridReference. The TLcdGridReference
constructor takes
the geodetic datum and the projection in reverse order compared to the TLcdProjectionReference.
Following
parameters are set to correspond to TLcdProjectionReference by default:
- false easting : 0
- false northing : 0
- scale : 1
- unit of measure: 1
- rotation : 0 .
ImprovementLuciadLightspeed
com.luciad.format.raster.ILcdTileInfo has been made public.
Bug fixLuciadLightspeed
Creating a new shape displays the first point immediately,
which
had unwanted effects on circles and arcs.
Bug fixLuciadLightspeed
Copyright message returned to the default Luciad copyright
after
obfuscation.
Bug fixLuciadLightspeed
When a new arc band was created with caching set to false, nothing
was drawn.
Bug fixLuciadLightspeed
TLcdGroupbox: setComponent() added a component without a layout
constraint, which caused a NullpointerException on IE4.0 .
Bug fixLuciadLightspeed
Removing an object from a model does not remove the object
from the
selection of the layers that display the model.