2022.1.03
Bug fixLuciadCPillar
LCP-531, LCP-533
RasterLayerRasterLayerRasterLayer
: part of the imagery could be clipped for certain camera positions
when elevation data was loaded.
Bug fixLuciadCPillar
LCP-536
Bug fixLuciadCPillar
LCP-374
2022.1
2022.1.02
Bug fixLuciadCPillar
LCP-530
ZoomEventHandlerZoomEventHandlerZoomEventHandler
would throw an exception when trying to zoom before the map has been painted.
Bug fixLuciadCPillar
LCP-527
CreatorCreatorCreator
for a layer that is configured with an IFeaturePainterIFeaturePainterIFeaturePainter
that configures
detail level scales, a crash would occur when calling FeaturePainterContext::getDetailLevelFeaturePainterContext::getDetailLevelFeaturePainterContext::getDetailLevel
. This is now fixed.
2022.1.01
ImprovementLuciadCPillar
LCP-512
ImprovementLuciadCPillar
LCP-437
ImprovementLuciadCPillar
LCP-392
ImprovementLuciadCPillar
LCP-437
Bug fixLuciadCPillar
LCP-521
IMultilevelTiledRasterDataRetrieverCallback::onImageAvailableIMultilevelTiledRasterDataRetrieverCallback::onImageAvailableIMultilevelTiledRasterDataRetrieverCallback::onImageAvailable
did not correctly take the alpha pre-multiplication into account.
This resulted in the color to be treated as an opaque color.
Bug fixLuciadCPillar
LCP-89
GeodesyCalculations::distance3DGeodesyCalculations::distance3DGeodesyCalculations::distance3D
method didn't return correct results when using a geodetic reference.
Bug fixLuciadCPillar
LCP-349, LCP-436
Bug fixLuciadCPillar
LCP-442
2022.1
New featureLuciadCPillar
LuciadCPillar for Android allows you to develop GPU accelerated geospatial situational awareness applications targeted to run on Android mobile devices. LuciadCPillar for Android is an SDK that supports both Kotlin and Java development. It is feature equivalent with LuciadCPillar for desktop.
To get started, consult the product documentation and select the Android profile at the top right of the page. The product documentation includes installation guides, a Java API reference and a set of ready-to-run kotlin samples that can be installed on your mobile device from Android studio.
New featureLuciadCPillar
You can now enable GPU texture compression on TileSet3DLayerTileSet3DLayerTileSet3DLayer
for OGC 3D Tiles mesh data.
This can greatly reduce the amount of GPU memory needed, improve performance and stability.
Enable when displaying meshes with large textures, such as reality capture reconstructions. By default, texture
compression is enabled.
Disable when displaying meshes with lookup textures, such as CAD models.
If your environment does not support GPU texture compression, setting the flag has no effect.
New featureLuciadCPillar
GraphicsEffectsGraphicsEffectsGraphicsEffects
, AmbientOcclusionEffectAmbientOcclusionEffectAmbientOcclusionEffect
and
EyeDomeLightingEffectEyeDomeLightingEffectEyeDomeLightingEffect
for details.
When enabled, they are applied on all the data on the map.
New featureLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
now supports decoding of 8 bit indexed color GeoTIFF data.
New featureLuciadCPillar
MultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilderMultilevelTiledRasterModelBuilder
and QuadTreeRasterModelBuilderQuadTreeRasterModelBuilderQuadTreeRasterModelBuilder
classes.
This for example allows you to implement your own raster format, or position a single image on the map.
The article
introduction to raster models
provides more information on these classes.
You can indicate that your custom raster data may change.
To enable this you need to call
MultilevelTiledRasterModelBuilder::enableInvalidationMultilevelTiledRasterModelBuilder::enableInvalidationMultilevelTiledRasterModelBuilder::enableInvalidation
or
QuadTreeRasterModelBuilder::enableInvalidationQuadTreeRasterModelBuilder::enableInvalidationQuadTreeRasterModelBuilder::enableInvalidation
.
This results in the creation of an IRasterModelIRasterModelIRasterModel
which returns true
for the method IRasterModel::canInvalidateIRasterModel::canInvalidateIRasterModel::canInvalidate
and on which you can call
IRasterModel::invalidateIRasterModel::invalidateIRasterModel::invalidate
.
Invalidating the raster instructs LuciadCPillar to reload the data from the model and update the view accordingly.
ImprovementLuciadCPillar
GeometryFactoryGeometryFactoryGeometryFactory
now also has a createPoint method that takes a CoordinateCoordinateCoordinate
as input.
ImprovementLuciadCPillar
ImprovementLuciadCPillar
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
can now parse more WKT strings that do not contain a TOWGS84 in its datum.
ImprovementLuciadCPillar
RasterLayerRasterLayerRasterLayer
now respects the display scale, which results in better performance
on HiDPI screens.
ImprovementLuciadCPillar
LCP-19, LCP-21, LCP-22, LCP-25, LCP-65, LCP-290, LCP-290, LCP-343
- Data starts appearing on the screen up to 10 times faster right after adding a vector layer or after zooming in to a different detail level.
- Data loading throughput is up to 2 times larger.
- Data appears and disappears up to 5-10 times faster while navigating.
- The map's frame rate is higher while vector data is loaded. Navigation now remains smooth at all times during loading.
ImprovementLuciadCPillar
TouchGestureRecognizerTouchGestureRecognizerTouchGestureRecognizer
now more reliably makes the distinction between two-finger touch drag evens and pinch-rotate touch events.
ImprovementLuciadCPillar
Ogc3DTilesModelDecoder::decodeOgc3DTilesModelDecoder::decodeOgc3DTilesModelDecoder::decode
has been overloaded so that you can now configure
Ogc3DTilesModelDecoder::OptionsOgc3DTilesModelDecoder::OptionsOgc3DTilesModelDecoder::Options
for the decoding of OGC 3D tiles data. These options allow
you to configure a custom IDataLoaderIDataLoaderIDataLoader
to fetch the OGC 3D Tiles resources,
in case the default data loading from a server or the file system is not adequate for your use case.
HspcModelDecoder::decodeHspcModelDecoder::decodeHspcModelDecoder::decode
also supports this.
ImprovementLuciadCPillar
LCP-415
projection-wkt
property).
Before, only HSPC references expressed with an EPSG code (projection-epsg
property) were supported.
ImprovementLuciadCPillar
LCP-19, LCP-21, LCP-22, LCP-25, LCP-343
ImprovementLuciadCPillar
CoordinateReferenceProviderCoordinateReferenceProviderCoordinateReferenceProvider
now supports EPSG references based on the IG05/12 Intermediate datum:
- EPSG:6988
- EPSG:6989
- EPSG:6990
- EPSG:6991
ImprovementLuciadCPillar
LCP-75
GeoPackageModelDecoderGeoPackageModelDecoderGeoPackageModelDecoder
: the decoder now supports decoding geometries with an optional
elevation (Z) value.
ImprovementLuciadCPillar
LCP-338
ImprovementLuciadCPillar
Bug fixLuciadCPillar
GdalModelDecoderGdalModelDecoderGdalModelDecoder
: some files would cause a crash while a feature query is performed when no geometry could be found for a feature.
A warning is logged now instead.
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Luciad.Symbology.Military.Standards
and
Luciad.Symbology.MilitarySymbologyNode.SymbolTypes
have been removed from the C# API. In C#, methods to obtain a list of possible values and a string representation
are by convention available on the enumeration type itself.
Bug fixLuciadCPillar
Bug fixLuciadCPillar
LCP-403, LCP-404
Bug fixLuciadCPillar
LCP-431
ScreenInfo
, which created a device context without deleting it afterwards. If you
are using this class in your own application, you will need to copy the new version of this class into your
application as well.
Bug fixLuciadCPillar
LCP-434
Bug fixLuciadCPillar
LCP-408
Bug fixLuciadCPillar
Bug fixLuciadCPillar
Bug fixLuciadCPillar
PointEditHandle::addOnClickActionPointEditHandle::addOnClickActionPointEditHandle::addOnClickAction
allowed the handle to execute actions for TouchLongPressEventTouchLongPressEventTouchLongPressEvent
events.
This has now been fixed. To allow configuring long press actions on a handle, the PointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressActionPointEditHandle::addOnTouchLongPressAction
method has been added.
Bug fixLuciadCPillar
LCP-400
Bug fixLuciadCPillar
LCP-399
Bug fixLuciadCPillar
LCP-416
RasterLayerRasterLayerRasterLayer
: For some specific camera positions it was possible that parts of the terrain were
missing. This resulted in gaps in the visualization of the terrain and possibly large camera movements when
navigating.
Bug fixLuciadCPillar
Map::getAnimationManagerMap::getAnimationManagerMap::getAnimationManager
. This could for example
lead to the camera jumping to an incorrect location when zooming in and out in quick succession using
MapNavigator::ZoomActionMapNavigator::ZoomActionMapNavigator::ZoomAction
.
Bug fixLuciadCPillar
LCP-418
Bug fixLuciadCPillar
Bug fixLuciadCPillar
MapNavigatorMapNavigatorMapNavigator
that could potentially interrupt ongoing animations,
and in rare cases could lead to a crash.
Bug fixLuciadCPillar
LCP-433
Bug fixLuciadCPillar
LCP-402
Bug fixLuciadCPillar
LCP-423
Upgrade considerationLuciadCPillar
MapNavigator::getAnimationKey
was removed. In order to cancel navigate actions that were initiated by
MapNavigatorMapNavigatorMapNavigator
, you can now use the MapNavigator::cancelMapNavigator::cancelMapNavigator::cancel
method instead. This method
does not only cancel animations, but also other non-animated MapNavigatorMapNavigatorMapNavigator
actions.
Upgrade considerationLuciadCPillar
PanAction::to
and ZoomAction::to
have been renamed to
PanAction::toLocation
and ZoomAction::toLocation
respectively.This prevents a naming clash with the Kotlin
to
infix.
Upgrade considerationLuciadCPillar
libcurl
: updated to version7.86.0
openssl
: updated to version1.1.1s
zlib
: updated to version1.2.13
Upgrade considerationLuciadCPillar
TileSet3DLayerTileSet3DLayerTileSet3DLayer
uses texture compression by default.
This has the advantage that less GPU memory is used.
In case artifacts would be noticeable in textures on a OGC 3D tiles mesh, you can disable texture
compression via TileSet3DLayer::Builder::textureCompressionEnabledTileSet3DLayer::Builder::textureCompressionEnabledTileSet3DLayer::Builder::textureCompressionEnabled
.
Upgrade considerationLuciadCPillar
androidx
namespace).
Upgrade considerationLuciadCPillar
@NotNull
and @Nullable
annotations to the
LuciadCPillar for Android API, so that it is more convenient to use when working in Kotlin.
Upgrade considerationLuciadCPillar
stb
and goofy
libraries in order to
support OGC 3D Tiles texture compression.
Upgrade considerationLuciadCPillar
Upgrade considerationLuciadCPillar
GDAL
library and its dependencies have been updated.
GDAL
: updated to version3.4.3
PROJ
: updated to version9.0.1
SQLite3
: updated to version3.38.5
nlohmann_json
: version3.10.5
, used byPROJ
libgeotiff
: version1.7.1
, used byGDAL
json-c
: version0.15
, used byGDAL
Upgrade considerationLuciadCPillar
Image.Create
factory method taking a byte[]
was removed from the
C# API. The factory method taking a ByteBufferByteBufferByteBuffer
should be used instead.
Upgrade considerationLuciadCPillar
MemoryBuffer
class was removed from the API. Use cases that used to be covered by
MemoryBuffer
are now covered by the new ByteBufferByteBufferByteBuffer
class.