Class TLcdS57Edge

java.lang.Object
com.luciad.format.s57.TLcdS57Edge
All Implemented Interfaces:
ILcdS57DepthAreaEdge, ILcdBounded, ILcdCurve, ILcdPointList, ILcdPointList2, ILcdPolyline, ILcdShape, ILcd2DEditablePointList, ILcd2DEditablePolyline, ILcd2DEditableShape, ILcdCache, ILcdCloneable, Serializable, Cloneable

Represents an edge in the S-57 domain model. An S-57 edge is a simple polyline geometry, and can be part of a line or area feature.
Since:
11.0
See Also:
  • Constructor Details

    • TLcdS57Edge

      public TLcdS57Edge(int aEdgeId)
      Constructs an S-57 edge with the given ID.
      Parameters:
      aEdgeId - an ID for the edge, unique among all edges within the model.
    • TLcdS57Edge

      public TLcdS57Edge(int aEdgeId, ILcdPointList aPointList)
      Constructs an S-57 edge with the given ID and point list.
      Parameters:
      aEdgeId - an ID for this edge, unique within the model.
      aPointList - a point list defining the coordinates of this edge. The point list should implement ILcd2DEditablePointList.
      Throws:
      IllegalArgumentException - if aPointList does not implement ILcd2DEditablePointList.
  • Method Details

    • getId

      public int getId()
      Returns the ID of this edge, unique among all edges within the model.
      Returns:
      the ID of this edge, unique among all edges within the model.
    • setValueOfDepthContour

      public void setValueOfDepthContour(float aValueOfDepthContour)
      Sets the value of the depth contour (VALDCO), if the edge is shared by a DEPCNT object, Float.NaN otherwise.
      Parameters:
      aValueOfDepthContour - the value of the depth contour, if the edge is shared by a DEPCNT object, Float.NaN otherwise.
    • setMinimumAdjacentDepth

      public void setMinimumAdjacentDepth(float aMinimumAdjacentDepth)
      Sets the minimum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
      Parameters:
      aMinimumAdjacentDepth - the minimum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
    • setMaximumAdjacentDepth

      public void setMaximumAdjacentDepth(float aMaximumAdjacentDepth)
      Sets the maximum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
      Parameters:
      aMaximumAdjacentDepth - the maximum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
    • setSharedBySlcons

      public void setSharedBySlcons(boolean aSharedBySlcons)
      Sets whether this edge is shared by an SLCONS object.
      Parameters:
      aSharedBySlcons - true if this edge is shared by SLCONS object, false otherwise.
    • setSharedByGroup1LndareOrUnsareObject

      public void setSharedByGroup1LndareOrUnsareObject(boolean aSharedByGroup1LndareOrUnsareObject)
      Sets whether this edge is shared by another group 1 object with object class LNDARE or UNSARE.
      Parameters:
      aSharedByGroup1LndareOrUnsareObject - true if this edge is shared by another group 1 object with object class LNDARE or UNSARE, false otherwise.
    • isSharedBySlcons

      public boolean isSharedBySlcons()
      Returns whether this edge is shared by an SLCONS object.
      Returns:
      true if this edge is shared by SLCONS object, false otherwise.
    • isSharedByGroup1LndareOrUnsareObject

      public boolean isSharedByGroup1LndareOrUnsareObject()
      Sets whether this edge is shared by another group 1 object with object class LNDARE or UNSARE.
      Returns:
      true if this edge is shared by another group 1 object with object class LNDARE or UNSARE, false otherwise.
    • getValueOfDepthContour

      public float getValueOfDepthContour()
      Description copied from interface: ILcdS57DepthAreaEdge
      Returns the value of the depth contour (VALDCO), if the edge is shared by a DEPCNT object, Float.NaN otherwise.
      Specified by:
      getValueOfDepthContour in interface ILcdS57DepthAreaEdge
      Returns:
      the value of the depth contour, if the edge is shared by a DEPCNT object, Float.NaN otherwise.
    • getMinimumAdjacentDepth

      public float getMinimumAdjacentDepth()
      Description copied from interface: ILcdS57DepthAreaEdge
      Returns the minimum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
      Specified by:
      getMinimumAdjacentDepth in interface ILcdS57DepthAreaEdge
      Returns:
      the minimum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
    • getMaximumAdjacentDepth

      public float getMaximumAdjacentDepth()
      Description copied from interface: ILcdS57DepthAreaEdge
      Returns the maximum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
      Specified by:
      getMaximumAdjacentDepth in interface ILcdS57DepthAreaEdge
      Returns:
      the maximum depth (DRVAL1) of the DEPARE/DRGARE object(s) this edge is part of.
    • isSharedByUnsafeArea

      public boolean isSharedByUnsafeArea()
      Description copied from interface: ILcdS57DepthAreaEdge
      Returns true if this edge is shared by another group 1 object with object class LNDARE or UNSARE but not by a SLCONS object (see the DEPARE02 procedure in the Presentation Library documentation for more information).
      Specified by:
      isSharedByUnsafeArea in interface ILcdS57DepthAreaEdge
      Returns:
      true if this edge is shared by another group 1 object with object class LNDARE or UNSARE but not by a SLCONS object
    • removeCachedObject

      public Object removeCachedObject(Object aKey)
      Description copied from interface: ILcdCache
      Looks up and removes the cached Object corresponding to the given key.
      Specified by:
      removeCachedObject in interface ILcdCache
      Parameters:
      aKey - the key Object that was used for storing the cache Object.
      Returns:
      the cached Object, or null if there was no Object corresponding to the given key.
    • clearCache

      public void clearCache()
      Description copied from interface: ILcdCache
      Clears the cache.
      Specified by:
      clearCache in interface ILcdCache
    • insertIntoCache

      public void insertIntoCache(Object aKey, Object aObject)
      Description copied from interface: ILcdCache
      Inserts a cache Object corresponding to the given key Object.
      Specified by:
      insertIntoCache in interface ILcdCache
      Parameters:
      aKey - the key Object that will be used to identify the Object. The key must therefore be a unique identifier, typically the caller itself: insertIntoCache(this, ...).
      aObject - the Object to be cached.
    • getCachedObject

      public Object getCachedObject(Object aKey)
      Description copied from interface: ILcdCache
      Looks up and returns the cached Object corresponding to the given key.
      Specified by:
      getCachedObject in interface ILcdCache
      Parameters:
      aKey - the key Object that was used for storing the cache Object.
      Returns:
      the cached Object, or null if there is no Object corresponding to the given key.
    • computePointSFCT

      public void computePointSFCT(double aParam, ILcd3DEditablePoint aPointSFCT)
      Description copied from interface: ILcdCurve
      Computes a point of the curve, defined by the given parameter.
      Specified by:
      computePointSFCT in interface ILcdCurve
      Parameters:
      aParam - a value of the closed interval [0,1]
      aPointSFCT - the point to store the computed curve point in
    • getEndPoint

      public ILcdPoint getEndPoint()
      Description copied from interface: ILcdCurve
      Retrieves the end point of the curve.

      This is equivalent to computePointSFCT(1).

      Specified by:
      getEndPoint in interface ILcdCurve
      Returns:
      the end point of the curve
    • getEndTangent2D

      public double getEndTangent2D()
      Description copied from interface: ILcdCurve
      Returns the angle of the curve's tangent at the end point, in degrees counterclockwise from the direction at 3 o'clock.

      The tangent orientation is from the end point, away from the curve before it.

      This is the same as getTangent2D(1).

      Specified by:
      getEndTangent2D in interface ILcdCurve
      Returns:
      the curve's angle in the end point
    • getInterpolation

      public String getInterpolation()
      Description copied from interface: ILcdCurve
      Returns the interpolation method used by this curve.

      A set of predefined constants are defined in this interface, which are used by the default ILcdCurve implementations provided by LuciadLightspeed.

      Custom implementations can define their own constants, and use them to interpret the interpolation of the curve.

      Specified by:
      getInterpolation in interface ILcdCurve
      Returns:
      the interpolation method used by this curve.
    • getLength2D

      public double getLength2D(double aParam1, double aParam2)
      Description copied from interface: ILcdCurve
      Returns the length between two points of the curve, defined by the given parameters.
      • When aParam1 == aParam2, the length is 0.
      • When aParam1 == 0 and aParam2 == 1, the length is the whole length of the curve.
      • When aParam1 > aParam2, the length is (aParam1 to 1) + (0 to aParam2).
      Specified by:
      getLength2D in interface ILcdCurve
      Parameters:
      aParam1 - a value of the closed interval [0,1]
      aParam2 - a value of the closed interval [0,1]
      Returns:
      the length of the curve.
    • getLineSegmentIntersectionCount

      public int getLineSegmentIntersectionCount(ILcdPoint aP1, ILcdPoint aP2)
      Description copied from interface: ILcdCurve
      Returns the number of intersections between this curve and a line segment defined by the two specified points.

      This information can be used to perform containment calculations, if this curve is closed or if this curve is part of a composite closed curve. By determining the number of intersections between this curve and a line segment starting from a given point in a fixed direction, one can determine whether a point is located within the closed curve by using the even-odd rule.

      Specified by:
      getLineSegmentIntersectionCount in interface ILcdCurve
      Parameters:
      aP1 - the first point of the line segment
      aP2 - the second point of the line segment
      Returns:
      the number of intersections between the curve and the line segment
    • getStartPoint

      public ILcdPoint getStartPoint()
      Description copied from interface: ILcdCurve
      Retrieves the start point of the curve.

      This is equivalent to computePointSFCT(0).

      Specified by:
      getStartPoint in interface ILcdCurve
      Returns:
      the start point of the curve
    • getStartTangent2D

      public double getStartTangent2D()
      Description copied from interface: ILcdCurve
      Returns the angle of the curve's tangent at the start point, in degrees counterclockwise from the direction at 3 o'clock.

      The tangent orientation is from the start point towards the rest of the shape.

      This is the same as getTangent2D(0).

      Specified by:
      getStartTangent2D in interface ILcdCurve
      Returns:
      the curve's angle in the start point
    • getTangent2D

      public double getTangent2D(double aParam)
      Description copied from interface: ILcdCurve
      Returns the angle of the curve's tangent in the point defined by the given parameter, in degrees counterclockwise from the direction at 3 o'clock.

      The tangent orientation is from the point at parameter aParam towards the rest of the shape.

      Specified by:
      getTangent2D in interface ILcdCurve
      Parameters:
      aParam - a value of the closed interval [0,1]
      Returns:
      the curve's angle in the point defined by the given parameter
    • move2D

      public void move2D(ILcdPoint aPoint)
      Description copied from interface: ILcd2DEditableShape
      Moves this ILcd2DEditableShape to the given point in the 2D space. The focus point is used as the handle by which the shape is moved. Only the first two dimensions of the ILcdShape and the ILcdPoint are considered. The third dimension is left unchanged.
      Specified by:
      move2D in interface ILcd2DEditableShape
      Parameters:
      aPoint - the ILcdPoint to move to.
      See Also:
    • move2D

      public void move2D(double aX, double aY)
      Description copied from interface: ILcd2DEditableShape
      Moves this ILcd2DEditableShape to the given point in the 2D space. The focus point is used as the handle by which the shape is moved. Only the first two dimensions of the ILcdShape are considered. The third dimension is left unchanged.
      Specified by:
      move2D in interface ILcd2DEditableShape
      Parameters:
      aX - the x coordinate of the point.
      aY - the y coordinate of the point.
    • translate2D

      public void translate2D(double aDeltaX, double aDeltaY)
      Description copied from interface: ILcd2DEditableShape
      Translates this ILcd2DEditableShape from its current position over the given translation vector in the 2D space. Only the first two dimensions of the ILcdShape are considered. The third dimension is left unchanged.
      Specified by:
      translate2D in interface ILcd2DEditablePointList
      Specified by:
      translate2D in interface ILcd2DEditableShape
      Parameters:
      aDeltaX - the x coordinate of the translation vector.
      aDeltaY - the y coordinate of the translation vector.
    • insert2DPoint

      public void insert2DPoint(int aIndex, double aX, double aY)
      Description copied from interface: ILcd2DEditablePointList
      Inserts a point at the given index into this ILcd2DEditablePointList.
      Specified by:
      insert2DPoint in interface ILcd2DEditablePointList
      Parameters:
      aIndex - a valid new index in the list of points.
      aX - the x coordinate of the new point.
      aY - the y coordinate of the new point.
    • move2DPoint

      public void move2DPoint(int aIndex, double aX, double aY)
      Description copied from interface: ILcd2DEditablePointList
      Moves the specified point of this ILcd2DEditablePointList to the given point in the 2D space. Only the first two dimensions of the ILcdShape are considered. The third dimension is left unchanged.
      Specified by:
      move2DPoint in interface ILcd2DEditablePointList
      Parameters:
      aIndex - a valid index in the list of points.
      aX - the x coordinate of the point.
      aY - the y coordinate of the point.
    • removePointAt

      public void removePointAt(int aIndex)
      Description copied from interface: ILcd2DEditablePointList
      Removes the point at the given index from this ILcd2DEditablePointList.
      Specified by:
      removePointAt in interface ILcd2DEditablePointList
      Parameters:
      aIndex - a valid index in the list of ILcdPoint objects.
    • translate2DPoint

      public void translate2DPoint(int aIndex, double aDeltaX, double aDeltaY)
      Description copied from interface: ILcd2DEditablePointList
      Translates the specified point of this ILcd2DEditablePointList from its current position over the given translation vector in the 2D space. Only the first two dimensions of the points are considered. The third dimension is left unchanged.
      Specified by:
      translate2DPoint in interface ILcd2DEditablePointList
      Parameters:
      aDeltaX - the x coordinate of the translation vector.
      aDeltaY - the y coordinate of the translation vector.
    • contains2D

      public boolean contains2D(ILcdPoint aPoint)
      Description copied from interface: ILcdShape
      Checks whether this ILcdShape contains the given ILcdPoint in the 2D space. Only the first two dimensions of the ILcdShape and the ILcdPoint are considered.
      Specified by:
      contains2D in interface ILcdShape
      Parameters:
      aPoint - the ILcdPoint to test.
      Returns:
      the boolean result of the containment test.
      See Also:
    • contains2D

      public boolean contains2D(double aX, double aY)
      Description copied from interface: ILcdShape
      Checks whether this ILcdShape contains the given point in the 2D space. Only the first two dimensions of the ILcdShape are considered.
      Specified by:
      contains2D in interface ILcdShape
      Parameters:
      aX - the x coordinate of the point.
      aY - the y coordinate of the point.
      Returns:
      the boolean result of the containment test.
    • contains3D

      public boolean contains3D(ILcdPoint aPoint)
      Description copied from interface: ILcdShape
      Checks whether this ILcdShape contains the given ILcdPoint in the 3D space.
      Specified by:
      contains3D in interface ILcdShape
      Parameters:
      aPoint - the ILcdPoint to test.
      Returns:
      the boolean result of the containment test.
      See Also:
    • contains3D

      public boolean contains3D(double aX, double aY, double aZ)
      Description copied from interface: ILcdShape
      Checks whether this ILcdShape contains the given point in the 3D space.
      Specified by:
      contains3D in interface ILcdShape
      Parameters:
      aX - the x coordinate of the point.
      aY - the y coordinate of the point.
      aZ - the z coordinate of the point.
      Returns:
      the boolean result of the containment test.
    • getFocusPoint

      public ILcdPoint getFocusPoint()
      Description copied from interface: ILcdShape
      Returns the focus point of this ILcdShape.
      Specified by:
      getFocusPoint in interface ILcdShape
      Returns:
      the focus point of this ILcdShape.
    • getBounds

      public ILcdBounds getBounds()
      Description copied from interface: ILcdBounded
      Returns the ILcdBounds by which the geometry of this ILcdBounded object is bounded.

      If the geometry does not allow retrieving valid bounds (for example a polyline with 0 points) the return value is unspecified. It is highly recommended to return an undefined bounds. You can create undefined bounds using the default constructors of TLcdLonLatBounds or TLcdXYBounds.

      Specified by:
      getBounds in interface ILcdBounded
      Returns:
      the ILcdBounds by which the geometry of this ILcdBounded object is bounded.
    • getPointSFCT

      public void getPointSFCT(int aIndex, ILcd3DEditablePoint aPointSFCT)
      Description copied from interface: ILcdPointList
      Stores the coordinates of the point at aIndex in the given point.
      Specified by:
      getPointSFCT in interface ILcdPointList
      Parameters:
      aIndex - the index of the point for which to retrieve the coordinates.
      aPointSFCT - the side-effect parameter in which to store the coordinates of the requested point.
    • getX

      public double getX(int aIndex)
      Description copied from interface: ILcdPointList
      Returns the X coordinate of the point at aIndex.
      Specified by:
      getX in interface ILcdPointList
      Parameters:
      aIndex - the index of the point for which to return the X coordinate.
      Returns:
      the X coordinate of the point at aIndex.
    • getY

      public double getY(int aIndex)
      Description copied from interface: ILcdPointList
      Returns the Y coordinate of the point at aIndex.
      Specified by:
      getY in interface ILcdPointList
      Parameters:
      aIndex - the index of the point for which to return the Y coordinate.
      Returns:
      the Y coordinate of the point at aIndex.
    • getZ

      public double getZ(int aIndex)
      Description copied from interface: ILcdPointList
      Returns the Z coordinate of the point at aIndex.
      Specified by:
      getZ in interface ILcdPointList
      Parameters:
      aIndex - the index of the point for which to return the Z coordinate.
      Returns:
      the Z coordinate of the point at aIndex.
    • getPoint

      public ILcdPoint getPoint(int aIndex) throws IndexOutOfBoundsException
      Description copied from interface: ILcdPointList
      Returns the ILcdPoint at a given index.
      Specified by:
      getPoint in interface ILcdPointList
      Parameters:
      aIndex - a valid index in the list of ILcdPoint objects.
      Returns:
      the ILcdPoint at the given index.
      Throws:
      IndexOutOfBoundsException - if the given index is out of bounds.
    • getPointCount

      public int getPointCount()
      Description copied from interface: ILcdPointList
      Returns the number of ILcdPoint objects in the list.
      Specified by:
      getPointCount in interface ILcdPointList
      Returns:
      the number of ILcdPoint objects in the list.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Description copied from interface: ILcdCloneable

      Makes Object.clone() public.

      When for example extending from java.lang.Object, it can be implemented like this:
      
       public Object clone() {
         try {
           return super.clone();
         } catch ( CloneNotSupportedException e ) {
           // Cannot happen: extends from Object and implements Cloneable (see also Object.clone)
           throw new RuntimeException( e );
         }
       }
       
      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class Object
      See Also: