Class TLfnPointCloudPreprocessor
- All Implemented Interfaces:
ILcdStatusSource
Supported input
This preprocessor supports all point cloud data supported by TLcdLASModelDecoder and TLcdE57ModelDecoder. It only processes the attributes that are common to all of the data sources. When the target store already exists, only data sources having (at least) the same attributes as those already present in the target start are processed.How to use the output data
The output data store uses the Luciad point cloud data format, a file-based storage format consisting of several files and folders that can contain and efficiently retrieve tiled and multi-leveled data.To open the directly in a Lightspeed-based client such as Lucy, open the "tileset.json" found in the root of the output directory.
To import the output data into LuciadFusion Studio, add the entire output directory as a "Data Root". Once the data root has been crawled, you should be able to see a new data entry that represents the preprocesed dataset in your "Data" tab. To serve it, create a new Service using this dataset, and set the service type to "OGC 3D Tiles".
Both of these use-cases will make use of the TLcdPointCloudModelDecoder
. This
model decoder can be used to decode the output of this preprocessor.
Tiling process
The preprocessing itself consists of going through all the input datasets, and splitting them up into smaller pieces. The preprocessing also creates voxelized, lower-quality tiles that a client can use to visualize the dataset at a larger distance. This generally reduces the amount of bandwidth needed to visualize a dataset.How to use
Construction of a point cloud processor is done through thebuilder
mechanism.
After creating the preprocessor, you will need to start
it.
The preprocessor has a running
state and allows monitoring its progress
.
The following snippet demonstrates how to create and start a preprocessor:
List
- Since:
- 2018.1
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Builder used to create point cloud pre-processors.static final class
Instantaneous progress information about the pre-processing process. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addStatusListener
(ILcdStatusListener aStatusListener) Registers the given listener so it will receive status events from this source.Retrieves instantaneous progress information about the ongoing processing.Retrieves the data sources to be preprocessed.boolean
Returns whether or not the preprocessing is running.Creates a new builder with the default values.void
removeStatusListener
(ILcdStatusListener aStatusListener) Removes the specified listener so it is no longer notified.void
start()
Starts pre-processing.void
stop()
Stops pre-processing if it is still ongoing.
-
Method Details
-
newBuilder
Creates a new builder with the default values.- Returns:
- the new builder.
-
start
Starts pre-processing. This method blocks until pre-processing is finished (successfully or because an exception occurred). During this time, the preprocessor is considered to berunning
.- Throws:
IOException
- if an IO problem occursCancellationException
- if aborted usingstop()
IllegalStateException
- if the process was already startedIllegalStateException
- If the sources could not be processed (invalid input directory)- See Also:
-
isRunning
public boolean isRunning()Returns whether or not the preprocessing is running.- Returns:
true
if the preprocessing is running;false
otherwise.
-
getSources
Retrieves the data sources to be preprocessed.- Returns:
- list of sources.
-
getProgress
Retrieves instantaneous progress information about the ongoing processing.- Returns:
- the progress, or
null
if not processing
-
stop
public void stop()Stops pre-processing if it is still ongoing. It may take a short amount of time before thestart()
call being aborted actually stops. Callingstop()
while the preprocessor is not running has no effect.Calling stop() will leave the existing flushed files in the specified output path. It does not clean up this path. It is possible to call start() again on a partially completed output directory, which will skip any previously processed work.
- Throws:
IllegalStateException
- if the point cloud preprocessor was already stopped.
-
addStatusListener
Description copied from interface:ILcdStatusSource
Registers the given listener so it will receive status events from this source.
In case you need to register a listener which keeps a reference to an object with a shorter life-time than this status source, you can use a
ALcdWeakStatusListener
instance as status listener.- Specified by:
addStatusListener
in interfaceILcdStatusSource
- Parameters:
aStatusListener
- The listener to be notified when the status has changed.
-
removeStatusListener
Description copied from interface:ILcdStatusSource
Removes the specified listener so it is no longer notified.- Specified by:
removeStatusListener
in interfaceILcdStatusSource
- Parameters:
aStatusListener
- The listener to remove.
-