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 fixLuciadFusion

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 fixLuciadFusion

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 fixLuciadFusion

LCD-12312
TLcdRangeSlider no longer performs illegal reflective access operations.

Bug fixLuciadFusion

LCD-12307
Calling the print method on an ILcdGXYView implementation could cause a NullPointerException when performance logging (see TLcdMBeanPerformanceLogHandler) is configured.

Bug fixLuciadFusion

LCD-12306
TLcdEllipsoidRhumblineUtil#intersectionGeodesicRhumblineSFCT didn't work correctly for rhumb lines that cross the date line.

Bug fixLuciadFusion

LF-2241
Fixed an issue that prevented starting or stopping services in the Studio web application when the list of services was filtered using search.

Bug fixAdvanced Raster Services

LF-2231
Resolved a performance issue that caused ECWP responses to only be closed after at least 1 second.

Bug fixAdvanced Raster Services

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

2021.1.13

ImprovementInfrastructure Standards

LF-2237
Meshup will now check if an .mtl file exists next to a .obj file with the same name, in case there is no direct mtllib reference inside the .obj file to the .mtl file. This is added fallback behavior.

Bug fixLuciadFusion

LCD-10604
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 fixLuciadFusion

LCD-12289
TLcdGML31LinearRing/TLcdGML32LinearRing's bounds are now properly updated when adding or removing points.

Bug fixLuciadFusion

LCD-12287
TLcdKML22GXYPainterProvider: when rendering polygons with inner rings, superfluous lines could appear. This has been fixed.

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

ImprovementLuciadFusion

LCD-12275
TLspFixedOnPathLabelLocationProvider has a new property: allowUpsideDown. This property allows you keep the text upside down instead of flipping it 180 degrees.

ImprovementLuciadFusion

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 fixLuciadFusion

LF-2235
Fixed several broken links in the REST API documentation.

Bug fixAdvanced Raster Services

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

Upgrade considerationLuciadFusion

LF-2234
The spring-security-oauth2 library has been upgraded to version 2.5.2. This version fixes the CVE-2022-22969 vulnerability.

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 Services

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

ImprovementLuciadFusion

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

ImprovementLuciadFusion

LCD-12232
TLcdProj4ReferenceParser and TLcdProj4ReferenceFormatter now also support the krovak projection.

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 fixLuciadFusion

LCD-12243
Fixed an issue with TLspPointToPointSnapper where ILcdPoint shapes would not be considered as valid snap targets for other overlapping ILcdPoint shapes.

Bug fixLuciadFusion

LF-2228
A workaround has been applied to mitigate the vulnerability introduced by CVE-2022-22965. For more information on this vulnerability and to see if you are affected visit https://tanzu.vmware.com/security/cve-2022-22965. LuciadFusion implements the suggested workaround of declaring a WebMvcRegistrations bean with a modified RequestMappingHandlerAdapter as detailed on https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement#suggested-workarounds. If you add your own @ControllerAdvice that sets the disallowed fields on the WebDataBinder make sure to include "class.*", "Class.*", "*.class.*", "*.Class.*" in the disallowed fields list.

Bug fixLuciadFusion

LF-2227
Add runtime file needed to fix startup issues related to Logback when deploying to newer versions of WildFly.

Bug fixLuciadFusion

LCD-12230
ILcdLogger: some methods didn't log the correct class or method when using java.util.logging (see TLcdJULLoggerFactory).

Bug fixLuciadFusion

LCD-12233
A non-visible TLspAWTView could trigger a high usage of the Event Dispatch Thread (EDT). This has been fixed.

2021.1.07

ImprovementLuciadFusion

LCD-12215
TLcdGXYPointListPainter: a new method retrievePointList makes it easier to change how to derive the ILcdPointList from the domain object.

ImprovementLuciadFusion

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 fixLuciadFusion

LCD-12226
Fixed an issue where draco encoding failed for tiles with an empty mesh.

Bug fixLuciadFusion

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 fixLuciadFusion

LF-2224
Fixed an issue where CSW queries would fail when using an Oracle database and when a service has multiple products and a bounding box which is larger than or equal to one-half the surface of the Earth. Queries are now performed against the bounding boxes of each product of each service instead of the bounding box of each service (i.e. the union of the bounding boxes of the products of a service).

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
TLspVPFLayerBuilder: the ILspLayer.LayerType set on the builder was not correctly set on the layers build.

2021.1.06

ImprovementInfrastructure Standards

LCD-12208
Improved the conversion of Binz datasets that contain outliers: the erroneous objects are skipped.

Bug fixLuciadFusion

TLcdGXYAsynchronousPaintQueue: after a period of inactivity, the isEmpty method could incorrectly return false.

Bug fixDefense Standards

LCD-12204
The TLcdUSRPModelDecoder now returns data series and supporting files when decoding model metadata.

2021.1.05

ImprovementLuciadFusion

LF-2215
Creating a WFS service for an unsupported product name - containing characters other than letters, digits or underscores - led to a broken service. To avoid this, the creation no longer works for unsupported product names and the user gets notified of the reason.

ImprovementAdvanced Raster Services

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 fixLuciadFusion

LCD-12199
TLspComplexStrokedLineStyle: a TLcdLonLatCompositeRing or TLcdXYCompositeRing containing TLcdCompositeCurve was visualized incorrectly when styled with a complex stroke.

Bug fixLuciadFusion

LF-2219

Resolved an issue with the default values of the cache configuration of LuciadFusion Platform services. The cache.enabled and cache.maxAge properties were uninitialized if the properties were missing from the configuration profile. Meaning that caching was disabled by default, while the yml configuration files mentioned caching is enabled by default. The default values have been changed so caching is enabled by default and the maxAge property is set to 30 days by default.

The following caching properties have been affected:

  • fusion.ogctilesservice.cache.enabled
  • fusion.ogctilesservice.cache.maxAge
  • fusion.panoramics.cache.enabled
  • fusion.panoramics.cache.maxAge
  • fusion.hspc.cache.enabled
  • fusion.hspc.cache.maxAge
  • fusion.studio.webapp.cache.enabled
  • fusion.studio.webapp.cache.maxAge

Bug fixLuciadFusion

LCD-12185
Fixed a NullPointException that could occur when decoding a 3D Tiles dataset containing GLTF without primitives.

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

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

LF-2210
The ISO metadata of Studio's services now includes the revision date.

ImprovementLuciadFusion

LCD-11989
It's now easier to obfuscate LuciadLightspeed and LuciadFusion applications that don't depend on JavaFX.

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 fixLuciadFusion

LF-2216
Fixed the issue where OGC 3D Tiles service could not be created from BINZ data after obfuscation.

Bug fixLuciadFusion

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 fixLuciadFusion

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 fixLuciadFusion

LCD-10415
In certain scenarios TLcdImageModelHeightProviderFactory and other implementations of ILcdModelHeightProviderFactory could change the value of the optional ALcdRasterModelHeightProviderFactory#KEY_PIXEL_DENSITY property that is provided when creating a height provider. This side effect no longer happens.

Bug fixLuciadFusion

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 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 featureLuciadFusion

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

ImprovementLuciadFusion

LCD-10529
SLD graphics rendering in GXY / Lightspeed now supports the optional AnchorPoint property for icons.

ImprovementLuciadFusion

LCD-12146
The warning that eye-dome lighting (see TLspEyeDomeLightingSettings) cannot be used in a 2D view is now logged as a debug message.

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 fixLuciadFusion

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 fixLuciadFusion

LCD-11533
Fixed NullPointerException when retrieving the TLcdModelMetadata from an ILcdMultiDimensionalModel with unbounded dimensions.

Bug fixLuciadFusion

LCD-12137
Fixed an issue within the ALcdMeasureProvider created by TLcdImageModelMeasureProviderFactory which could result in ClassCastExceptions when used from multiple threads.

Bug fixLuciadFusion

LF-2201
Fixed an issue where requesting resources using the REST API could return a totalPages of 0 when fetching the first page of a request that returns no results. The totalPages will now be 1 in case of no results to match the page property.

Bug fixLuciadFusion

LF-2125
Fixed an issue that prevented information about styles being loaded in the Studio web application if the defaultRasterData or defaultVectorData had not been set.

Bug fixAdvanced Raster Services

LF-2195
Updated the native ecwp libraries which fixes a bug on Linux, which caused the same cached results to be used by all requests.

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

ImprovementLuciadFusion

LF-2194

Windows Authentication when using a MSSQL database account is now supported. There is also a detailed explanation on how to enable support for Windows Authentication when using a MSSQL database account.

ImprovementLuciadFusion

Moved some How to articles from the FAQ section to the How to section.

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

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 fixLuciadFusion

LCD-12108
The bounds calculations for geodetic circle and circular arc implementations, like TLcdLonLatCircle and TLcdLonLatCircularArcByCenterPoint are now more accurate. Before, the bounds were too small in some cases.

Bug fixLuciadFusion

LCD-12134
The SLD Lightspeed implementation did not support the use of multiple polygon symbolizers with fill styles to style a single object.

Bug fixLuciadFusion

LF-2188
Fixed an issue where CSW queries with PropertyIsLike and PropertyIsEqualTo operators would fail when querying the Dublin Core dc:type property.

Bug fixLuciadFusion

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 fixLuciadFusion

LF-2151
Fixed an issue that prevented some ECDIS data from being deleted.

Bug fixLuciadFusion

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 fixLuciadFusion

LF-2196
Fixed an issue that caused all data that was added manually using the Add Data functionality to be deleted if a data root was removed by a user.

Bug fixLuciadFusion

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 fixLuciadFusion

LF-2182
Fixed a bug where performing CSW query request failed when the bounds of the data being queried were larger than or equal to one-half the surface of the Earth. This bug only affected LuciadFusion instances running against Oracle databases.

Bug fixLuciadFusion

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.

Bug fixLuciadFusion

Added a logging threshold filter to the default logback configuration, which was unintentionally removed.

Bug fixAdvanced Raster Services

LF-2199
Fixed issue with the ECWP native library logger, which got garbage collected after initialization. The logger now remains active while the server is running.

2021.1.01

Bug fixLuciadFusion

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 fixLuciadFusion

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 fixLuciadFusion

LCD-12089
Some ALspEditHandles would not interact correctly with touch events in applications with a display scaling value other than 100%.

Bug fixLuciadFusion

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 fixLuciadFusion

LCD-12076
TLspTouchNavigateController would not work correctly with a display scaling value other than 100%.

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
    • 35 - Sea Subsurface
  • 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
    • 20 - Land Installations
  • APP-6C
    • 20 - Land Installations
  • APP-6D
    • 25 - Control Measure

The ILcdMS2525bCoded.sSpeedLabel/ILcdAPP6ACoded.sSpeedLabel modifier was removed from the following symbol hierarchies:

  • MIL-STD-2525D
    • 20 - Land Installations
  • APP-6C
    • 20 - Land Installations
  • APP-6D
    • 25 - Control Measure

Bug fixDefense Symbology

LCD-12104
TLcdNVGGXYPainterProvider: Fixed editing issue with arrow symbols where the editing preview would not be painted correctly.

Upgrade considerationLuciadFusion

LF-2193
There database schema for PostgreSQL databases was changed. The type of the bounding box columns has been changed from Polygon to Geometry.

2021.1

New featureLuciadFusion

The OGC3DTiles service now supports Draco mesh compression. It can be used when creating an OGC3DTiles Service for Binz, OSGB or any other mesh data type. It can be activated by choosing Draco from the mesh compression drop down.

New featureLuciadFusion

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 featureLuciadFusion

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 Services

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.
GARS quadrants
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
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.

ImprovementLuciadFusion

LuciadFusion now runs on Java 17. Refer to the "Hardware and software requirements" page in the prerequisites section for more information and potential caveats.

ImprovementLuciadFusion

LuciadLightspeed now runs on Java 17. Refer to the "Hardware and software requirements" page in the prerequisites section for more information and potential limitations.

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

TLspKML22LayerBuilder/TLcdKML22GXYLayerFactory: improved the default layer label.

ImprovementLuciadFusion

LuciadFusion now supports importing of GLB files. GLB is the binary variant of GLTF, and can now be preprocessed into OGC 3D Tiles.

ImprovementLuciadFusion

ALspLayer now has a map scale range property, which controls at what map scales the layer is rendered. This already existed on TLspLayer and was pulled up. This should be particularly useful for TLspRasterLayer. When creating a TLspRasterLayer the map scale range can be configured with TLspRasterLayerBuilder.

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

LCD-11431
Introduced a new static method TLcdGeoJsonModelDecoder#parseGeometry, which parses a single GeoJSON geometry object to an ILcdShape.

ImprovementAdvanced Raster Services

LCD-12021
The TLcdPegasusModelDecoder now supports datasets with asymmetrical image parameters.

ImprovementAdvanced Raster Services

The ECWP service type now supports 64-bit Linux systems.

ImprovementDefense Symbology

TLcdMGRSFormat can now be configured using an EBNF pattern format.

ImprovementDefense Symbology

TLcdNVG20Arc and TLcdNVG15Arc now implement ILcdCurve.

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 fixLuciadFusion

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 fixLuciadFusion

LF-2139
The upgrade of the Oracle JDBC driver fixes an issue that prevented LuciadFusion from starting up if an Oracle database with a specific character set was used. See Oracle support document 2278611.1 for more information on this issue.

Bug fixLuciadFusion

LCD-11770
TLcdSHPModelDecoder is now able to parse 'Infinity' and '-Infinity' as number properties.

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 considerationLuciadFusion

The Oracle JDBC driver has been upgraded to version 19.12.0.0.

Upgrade considerationLuciadFusion

The SQLite library has been updated to version 3.36.0.

Upgrade considerationLuciadFusion

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 considerationLuciadFusion

For Java 17 support, the version of spring-ldap-core was updated from 2.3.2.RELEASE to 2.3.4.RELEASE.

Upgrade considerationLuciadFusion

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 considerationLuciadFusion

The new ALspLayer map scale range property can clash with custom subclasses of ALspLayer. Additionally, to make this property work as expected for custom layers, it might be needed to listen to TLspLayerStateEvent.Type#MAP_SCALE_RANGE_CHANGED events or to override ALspLayer#setMapScaleRange to ensure the layer is shown and hidden as needed.

Upgrade considerationDatabase Connectors

The Oracle JDBC driver has been upgraded to version 19.12.0.0.