Class FeatureCanvas.GeometryDrawCommand

java.lang.Object
com.luciad.layers.features.FeatureCanvas.GeometryDrawCommand
All Implemented Interfaces:
AutoCloseable
Enclosing class:
FeatureCanvas

public static final class FeatureCanvas.GeometryDrawCommand extends Object implements AutoCloseable
Command to specify drawing options for a geometry.
  • Method Details

    • finalize

      protected void finalize()
      Overrides:
      finalize in class Object
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • geometry

      @NotNull public FeatureCanvas.GeometryDrawCommand geometry(@NotNull Geometry geometry) throws NullPointerException
      Specifies the geometry to draw.

      This property is mandatory.

      Parameters:
      geometry - the geometry to draw, cannot be null.
      Returns:
      this GeometryDrawCommand.
      Throws:
      NullPointerException - when the geometry is null.
    • stroke

      @NotNull public FeatureCanvas.GeometryDrawCommand stroke(@NotNull LineStyle lineStyle)
      Specifies the line styling of the geometry.

      This is the geometry's outline if it's a surface.

      Only one stroke style can be set, if this function is called when a ComplexStrokeLineStyle stroke has already been set, it will be overwritten.

      Parameters:
      lineStyle - the stroke styling to apply.
      Returns:
      this GeometryDrawCommand.
    • stroke

      @NotNull public FeatureCanvas.GeometryDrawCommand stroke(@NotNull ComplexStrokeLineStyle lineStyle)
      Specifies the line styling of the geometry.

      This is the geometry's outline if it's a surface.

      Only one stroke style can be set, if this function is called when a lineStyle stroke has already been set, it will be overwritten.

      Parameters:
      lineStyle - the complex stroke styling to apply.
      Returns:
      this GeometryDrawCommand.
      Since:
      2023.1
    • fill

      @NotNull public FeatureCanvas.GeometryDrawCommand fill(@NotNull FillStyle fillStyle)
      Specifies the fill styling for the geometry, cannot be null.

      When the given geometry does not have a surface, this style is ignored.

      Parameters:
      fillStyle - the fill styling to apply.
      Returns:
      this GeometryDrawCommand.
    • draped

      @NotNull public FeatureCanvas.GeometryDrawCommand draped(boolean draped)
      Indicates whether or not the geometry should be draped on top of the terrain.

      Draping means that the geometry is painted directly on top of the terrain’s surface relief.

      By default, a geometry is draped if it has all zero Z values. Otherwise it will not be draped. You can override the default behaviour by setting this flag true or false. If you explicitly drape a 3D geometry, its 2D "footprint" is painted on the terrain.

      This setting is only relevant for 3D maps and is ignored for 2D maps.

      Parameters:
      draped - true if the geometry should be draped over terrain.
      Returns:
      this GeometryDrawCommand.
    • queryable

      @NotNull public FeatureCanvas.GeometryDrawCommand queryable(boolean queryable)
      Indicates whether or not the geometry should be considered when a Map#queryFeatures is requested.

      The default is true.

      Parameters:
      queryable - true if the geometry should be considered.
      Returns:
      this GeometryDrawCommand.
    • zOrder

      @NotNull public FeatureCanvas.GeometryDrawCommand zOrder(int zOrder)
      The Z-order of the geometry.

      DrawCommands are painted from lowest to highest Z-order, so DrawCommands with a higher Z-order are painted on top of DrawCommands with a lower Z-order. Note that the Z-order only affects the ordering of features within the same layer. A feature from a certain layer will always get painted above any other feature from a layer that comes lower in the map's layer order, regardless of what Z-order they may have. The default value is 0.

      Parameters:
      zOrder - the Z-order of this geometry.
      Returns:
      this GeometryDrawCommand.
    • occlusionMode

      @NotNull public FeatureCanvas.GeometryDrawCommand occlusionMode(@NotNull OcclusionMode occlusionMode)
      Determines when this geometry should be painted in 3D in relation to other 3D data.

      Details and limitations:

      • Mode OcclusionMode#VisibleOnly shows only the part of the geometry that is not obscured by other 3D data. This is the default.
      • Mode OcclusionMode#AlwaysVisible shows the entire geometry even if behind other 3D data. The geometry will appear in front of other objects.
      • Mode OcclusionMode#OccludedOnly shows only the part of the geometry that is behind other 3D data. You typically use this to display obscured geometries in combination with another style that uses OcclusionMode#VisibleOnly mode.
      • This parameter is only relevant in 3D. It is ignored on a 2D map.
      • This parameter is only applied on non-draped geometries.

      The default is OcclusionMode#VisibleOnly.

      Parameters:
      occlusionMode - the occlusion mode to use
      Returns:
      this GeometryDrawCommand
      Since:
      2024.0
    • submit

      public void submit() throws IllegalStateException
      Submits this draw command.

      Nothing will be painted if the draw command is not submitted.

      Throws:
      IllegalStateException - when there are missing geometry command calls or the command is already submitted.