2023.0

2023.0

Upgrade considerationTerrain Analysis Engine

TLcdVVTerrainProfileModel and TLcdUpdateTerrainModelAction have been deprecated in favor of the more capable TLcdVVTerrainModel. The corresponding vertical view sample has been removed.

2021.1

2021.1.13

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.

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.

2021.1.03

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.

2021.0

2021.0.11

Bug fixTerrain Analysis Engine

LF-2170
The description of the TEA sample has been updated to use the correct url for the API documentation.

2021.0

ImprovementTerrain Analysis Engine

The TEA sample service has been updated to make use of the LuciadFusion API to add additional service types. TEA services can now be created within LuciadFusion Studio like all other services. This means that the data in a TEA service no longer needs to be configured in a configuration file, but instead uses data available within LuciadFusion Studio.

2019.1

2019.1

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

TLcdAltitudeDescriptor and TLcdVisibilityDescriptor: added generics to the map of special values.

Bug fixTerrain Analysis Engine

Explicitly set the default elevation mode in TLspLOSCoverageStyle.Builder to ElevationMode.ABOVE_ELLIPSOID.

2019.0

2019.0

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.

2018.1

2018.1.12

Bug fixTerrain Analysis Engine

LF-1729
Fixed an issue where the TEA sample was not able to access the LTS service that was created on the same LuciadFusion Platform application.

2018.1.08

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.

2018.1

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
TLspLOSCalculator now allows LOS calculations to be interrupted.

Bug fixTerrain Analysis Engine

LCD-9036
The TLcdColorMap configured on a TLspLOSCoverageStyle can be gradient or piecewise constant. When piecewise constant, the invisible and unknown color configured on the TLspLOSCoverageStyle were not applied correctly. To specify the invisible or unknown color, use invisibleColor or unknownColor on TLspLOSCoverageStyle.Builder respectively when building the style.

2017.1

2017.1.01

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.

2017.1

ImprovementTerrain Analysis Engine

The samples for the LuciadFusion Platform have been extended with a more extensive sample using the Terrain Analysis Engine. The sample integrates two web services: one providing the height at a given location and the other providing a line of sight calculation. Have a look at the LuciadFusion Platform Developer's Guide for a start point on this sample.

2017.0

2017.0.02

Bug fixTerrain Analysis Engine

LCD-9249
Fixed a bug that caused TLcdBoundedCompositeViewshed to not always return the correct visibility.

2016.1

2016.1.18

ImprovementTerrain Analysis Engine

LCD-8744
Support for image elevation data has been added to hypsometry.

2016.1.02

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.

2016.0

2016.0

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

2015.1

2015.1.12

ImprovementTerrain Analysis Engine

LCD-7238
Some minor corrections to the developer guide.

2015.1

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.

2015.0

2015.0.01

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.

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.

2014.1

2014.1.07

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.

2014.0

2014.0.08

Bug fixTerrain Analysis Engine

LCD-5818
The dispose method of TLspLOSCalculator now also destroys the OpenCL context it is attached to (if any).

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.

2014.0.01

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.

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.

2013.1

2013.1.40

ImprovementTerrain Analysis Engine

LCD-5228
TLcdVisibilityStatus now has a toString() method for convenience.

2013.1.26

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.

2013.1

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.

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.

2013.0

2013.0.23

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.

2013.0.21

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.

Bug fixTerrain Analysis Engine

LCD-4330
TLcdViewProfileJPanel: Simple Line-of-Sight visualization now works when regular Line-of-Sight is turned off.

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.

2013.0.14

ImprovementTerrain Analysis Engine

LCD-4117
TLcdProfileViewJPanel#calculateLineOfSight now programmatically triggers the line-of-sight functionality.

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.

2012.1

2012.1.15

ImprovementTerrain Analysis Engine

LCD-3725
You can now fit on layers containing ILcdLOSCoverageMatrices.

2012.1.13

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.

2012.1.06

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.

2012.1.04

ImprovementTerrain Analysis Engine

LCD-3433
Made ALcdLOSCoverageMatrix.retrieveAssociatedPointX() more robust. It now normalizes the angle before it retrieves the data.

2012.0

2012.0.07

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

2012.0.06

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.

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.

2012.0.04

Bug fixTerrain Analysis Engine

LCD-1532
Fixed a potential NullPointerException in TLcdHeightProviderAdapter.

2012.0.03

ImprovementTerrain Analysis Engine

LCD-1443
Improved TLspLOSCalculator class documentation.

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.

2012.0

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.

11.0

11.0.27

Bug fixTerrain Analysis Engine

LMAP-5946
TLcdProfileViewJPanel no longer throws warnings when used with a reference that does not contain geoid information.

11.0.01

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.

11.0

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.

Bug fixTerrain Analysis Engine

Prevented TEA from generating duplicate warnings while creating point to point visibility for a large number of points.

10.1

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.12

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.05

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.

10.1

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.

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.

10.0

10.0.14

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.

10.0.09

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.

10.0.03

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.

10.0

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.

9.1

9.1.02

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

ImprovementTerrain Analysis Engine

LMAP-3658
TLcdProfileViewJPanel: the left altitude label of the profile view could overlap with the minimum or maximum label.

Bug fixTerrain Analysis Engine

LMAP-3660
TLcdDensityBasedRasterElevationProvider: the raster cache was not always updated when required.

9.1

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.

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.

9.0

9.0.19

ImprovementTerrain Analysis Engine

LMAP-3484
TLcdExtremePointFinder: the performance of the extreme point computation has been improved.

9.0

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.

Upgrade considerationTerrain Analysis Engine

ILcdLOSRadarPropagationFunction: support has been added for radars with a tilt angle.

8.2

8.2.26

Bug fixTerrain Analysis Engine

LMAP-3139
TLcdGXYViewBasedTerrainElevationProvider: a NullPointerException exception could occur when the elevation provider is initialized with an ILcdGXYView and an ALcdTerrainElevationProvider.

8.2

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.

8.1

8.1.04

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

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.

8.1

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.

Bug fixTerrain Analysis Engine

TLcdAltitudeMatrixViewFactory: the interpolated path method did not interpolate between all segment points.

8.0

8.0.12

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

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.

8.0.09

Bug fixTerrain Analysis Engine

LMAP-2640
TLcdMatrixViewRasterFactory: createEquivalentRaster now also sends out END_BUSY status events.

8.0.07

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

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().

7.2

7.2.05

Bug fixTerrain Analysis Engine

TLcdTerrainProfileController: Used to throw a NullPointerException when a PropertyChangeEvent is fired and the view is set to null.

7.1

7.1

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.

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.

7.0

7.0.11

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.

7.0.05

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.

7.0

ImprovementTerrain Analysis Engine

A new hypsometric value provider (TLcdHypsometricCrease) is added which computes the ridges and/or valleys of a terrain.

6.2

6.2.17

ImprovementTerrain Analysis Engine

TLcdTerrainProfileController: adding getter and setter to adjust the default TLcdGXYViewBasedTerrainElevationProvider.

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.

6.2.04

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.

6.2

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.

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.

6.0

6.0.14

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.

6.0.07

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.

5.3

5.3

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.

5.2

5.2

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).

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.

5.1

5.1.04

Bug fixTerrain Analysis Engine

TLcdProfileViewJPanel no longer throws exceptions when the mouse is dragged and no profile is set yet.

5.0

5.0.03

ImprovementTerrain Analysis Engine

2 factories:
  • com.luciad.tea.TLcdRadarP2PFactory
  • com.luciad.tea.TLcdRadarCoverageFactory
can display line-of-sight computations based on radar visibility .

4.2

4.2.04

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.

4.2

ImprovementTerrain Analysis Engine

Several classes have updated and extended reference documentation (Javadoc).

Bug fixTerrain Analysis Engine

TLcdGXYViewBasedTerrainElevationProvider did not take into account the property 'UseOnlyVisibleLayers' correctly. This could cause a null pointer exception.

4.0

4.0.05

Bug fixTerrain Analysis Engine

Point-to-point line-of-sight computations take into account the unknown value for DTED data.

4.0

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.

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

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.

2.1

2.1

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.

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.