Class TLcdS57Preprocessor

java.lang.Object
com.luciad.format.s57.TLcdS57Preprocessor

public class TLcdS57Preprocessor extends Object
S-57 preprocessor that precomputes some S-57 object properties which are used by the S-52 symbology, but which are too expensive to compute real-time in the painting thread.

These properties are computed based on the object class, attributes and geometry of the S-57 objects. Their value may depend not only on their own S-57 object, but also on other S-57 objects with which they spatially interact (touch or overlap).

The results are stored as properties on the domain objects.

The following set of S-57 object properties is precomputed by this preprocessor:

  • TLcdS57Point:
    • onFloatingPlatform
    • otherLightsAtSameLocation
    • anyNoSectorLightsAtSameLocation
    • largerOverlappingLightSectorsAtSameLocation
    • minimumDepth
    • maximumDepth
  • TLcdS57Line:
    • minimumAdjacentDepth
    • minimumDepth
    • maximumDepth
  • TLcdS57Area:
    • minimumDepth
    • maximumDepth
  • TLcdS57Edge:
    • minimumAdjacentDepth
    • maximumAdjacentDepth
    • valueOfDepthContour
    • sharedBySlcons
    • sharedByGroup1LndareOrUnsareObject

The TLcdS57ModelDecoder automatically applies preprocessing as a part of the decoding process. The TLcdS57Preprocessor should only be used when S-57 models are created from other code than the TLcdS57ModelDecoder.

Since:
11.0
  • Constructor Details

    • TLcdS57Preprocessor

      public TLcdS57Preprocessor()
      Creates a new S-57 preprocessor, ready to preprocess S-57 data.
  • Method Details

    • preprocess

      public void preprocess(ILcd2DBoundsIndexedModel aModel)
      Fills out extra properties for the elements of the given model, by looking for other related elements in the model.
      Parameters:
      aModel - the S-57 model to be preprocessed. The model should contain only S-57 domain objects.