Class GeoElementViewshed


public final class GeoElementViewshed extends Viewshed
GeoElementViewshed is an analysis object that renders a viewshed for a specified GeoElement.

GeoElementViewshed determines visible and non-visible areas in a scene view for an observer defined with a GeoElement. The viewshed is updated as the GeoElement location changes. Supported GeoElement types are Graphic, Feature, DynamicEntity, and DynamicEntityObservation.

The relative location of the observer can be controlled using setOffsetX(double), setOffsetY(double) and setOffsetZ(double).

The relative direction of the observer can be controlled using setHeadingOffset(double) and setPitchOffset(double).

Since:
100.2.0
  • Constructor Details

    • GeoElementViewshed

      public GeoElementViewshed(GeoElement geoElement, double horizontalAngle, double verticalAngle, double minDistance, double maxDistance, double headingOffset, double pitchOffset)
      Creates a viewshed analysis object whose observer is defined using a GeoElement.

      Visible and obstructed areas are determined for an area defined by the location and orientation of a GeoElement, field of view angles, and the min/max distance range. These parameters define the frustum over which visibility is calculated from the observer element. The horizontal and vertical angles must be greater than zero and less than or equal to 120 degrees. Terrain and other obstacles between the observer and the minimum distance are excluded from the analysis, as are areas beyond the maximum distance. Supported GeoElement types are Graphic, Feature, DynamicEntity, and DynamicEntityObservation.

      Parameters:
      geoElement - a GeoElement from which the position and orientation of the observer will be determined
      horizontalAngle - the horizontal spread of the viewshed, in degrees, > 0 and <= 360
      verticalAngle - the vertical spread of the viewshed, in degrees, > 0 and <= 360
      minDistance - the minimum distance from the observer to render, in meters within [0, Double.MAX_VALUE]
      maxDistance - the maximum distance from the observer to render, in meters within [0, Double.MAX_VALUE]
      headingOffset - the offset from the GeoElement's heading, in degrees
      pitchOffset - the offset from the GeoElement's pitch, in degrees
      Throws:
      IllegalArgumentException - if geoElement is null
      Since:
      100.2.0
  • Method Details

    • getGeoElement

      public GeoElement getGeoElement()
      Gets the GeoElement that represents the observer for the viewshed analysis.

      The observer's location, heading, and pitch are determined by the location and orientation of this GeoElement. Supported GeoElement types are Graphic, Feature, DynamicEntity, and DynamicEntityObservation.

      Returns:
      the GeoElement used to create this viewshed.
      Since:
      100.2.0
    • getHeadingOffset

      public double getHeadingOffset()
      Gets the offset angle applied to the heading of the GeoElement.

      The observer heading is determined by the GeoElement heading plus the heading offset.

      Returns:
      the offset from the GeoElement's heading, in degrees
      Since:
      100.2.0
    • setHeadingOffset

      public void setHeadingOffset(double headingOffset)
      Sets the offset angle applied to the heading of the GeoElement.

      The observer heading is determined by the GeoElement heading plus the heading offset.

      Parameters:
      headingOffset - the offset from the GeoElement's heading, in degrees
      Since:
      100.2.0
    • getPitchOffset

      public double getPitchOffset()
      Gets the offset angle applied to the pitch of the GeoElement.

      The observer pitch is determined by the GeoElement pitch plus the pitch offset. The valid range of values for the observer pitch is from 0 to 180 degrees.

      Returns:
      the offset from the GeoElement's pitch, in degrees
      Since:
      100.2.0
    • setPitchOffset

      public void setPitchOffset(double pitchOffset)
      Sets the offset angle applied to the pitch of the GeoElement.

      The observer pitch is determined by the GeoElement pitch plus the pitch offset. The valid range of values for the observer pitch is from 0 to 180 degrees.

      Parameters:
      pitchOffset - the offset from the GeoElement's pitch, in degrees
      Since:
      100.2.0
    • getOffsetX

      public double getOffsetX()
      Gets the location offset in the X direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Returns:
      the observer's offset from the GeoElement's location along the x-axis
      Since:
      100.2.0
    • setOffsetX

      public void setOffsetX(double offsetX)
      Sets the location offset in the X direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Parameters:
      offsetX - the observer's offset from the GeoElement's location along the x-axis
      Since:
      100.2.0
    • getOffsetY

      public double getOffsetY()
      Gets the location offset in the Y direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Returns:
      the observer's offset from the GeoElement's location along the y-axis
      Since:
      100.2.0
    • setOffsetY

      public void setOffsetY(double offsetY)
      Sets the location offset in the Y direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Parameters:
      offsetY - the observer's offset from the GeoElement's location along the y-axis
      Since:
      100.2.0
    • getOffsetZ

      public double getOffsetZ()
      Gets the location offset in the Z direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Returns:
      the observer's offset from the GeoElement's location along the z-axis
      Since:
      100.2.0
    • setOffsetZ

      public void setOffsetZ(double offsetZ)
      Sets the location offset in the Z direction that defines the observer relative to the GeoElement.

      The observer location is determined by the GeoElement location plus the offset X,Y,Z values. Any rotations applied to the GeoElement will also be applied to the X,Y,Z offsets. This allows the observer to be positioned relative to the GeoElement and maintain the relative position even when the GeoElement moves and rotates.

      Parameters:
      offsetZ - the observer's offset from the GeoElement's location along the z-axis
      Since:
      100.2.0