2023.1.08

Maritime StandardsClass TLcdS57Face

• Fields inherited from interface com.luciad.shape.ILcdPolygon

`CLOCKWISE, COUNTERCLOCKWISE, INVALID_ORIENTATION`
• Fields inherited from interface com.luciad.shape.ILcdCurve

`INTERPOLATION_CIRCLE_BY_3POINTS, INTERPOLATION_CIRCLE_BY_CENTERPOINT, INTERPOLATION_CIRCULARARC_BY_3POINTS, INTERPOLATION_CIRCULARARC_BY_BULGE, INTERPOLATION_CIRCULARARC_BY_CENTERPOINT, INTERPOLATION_ELLIPTICAL, INTERPOLATION_GEODESIC, INTERPOLATION_LINEAR, INTERPOLATION_MIXED, INTERPOLATION_RHUMB`
• Constructor Summary

Constructors
Constructor and Description
```TLcdS57Face(int aFaceId, TLcdS57Edge[] aEdges, int[] aEdgeOrientations, int[] aEdgeUsages, int[] aEdgeMasks)```
Creates a new S-57 Face geometry with the specified properties.
• Method Summary

All Methods
Modifier and Type Method and Description
`void` `clearCache()`
Clears the cache.
`Object` `clone()`
Makes `Object.clone()` public.
`void` ```computePointSFCT(double aParam, ILcd3DEditablePoint aPointSFCT)```
Computes a point of the curve, defined by the given parameter.
`boolean` ```contains2D(double aX, double aY)```
Checks whether this `ILcdShape` contains the given point in the 2D space.
`boolean` `contains2D(ILcdPoint aPoint)`
Checks whether this `ILcdShape` contains the given `ILcdPoint` in the 2D space.
`boolean` ```contains3D(double aX, double aY, double aZ)```
Checks whether this `ILcdShape` contains the given point in the 3D space.
`boolean` `contains3D(ILcdPoint aPoint)`
Checks whether this `ILcdShape` contains the given `ILcdPoint` in the 3D space.
`ILcdBounds` `getBounds()`
Returns the `ILcdBounds` by which the geometry of this `ILcdBounded` object is bounded.
`Object` `getCachedObject(Object aKey)`
Looks up and returns the cached Object corresponding to the given key.
`TLcdS57Edge` `getEdge(int aIndex)`
Returns the edge that is part of this area, at the given index.
`int` `getEdgeCount()`
Returns the number of edges this area consists of.
`int` `getEdgeMask(int aIndex)`
Returns the mask of the edge that is part of this face, at the given index.
`int` `getEdgeOrientation(int aIndex)`
Returns the orientation of the edge that is part of this face, at the given index.
`int` `getEdgeUsage(int aIndex)`
Returns the usage of the edge that is part of this face, at the given index.
`ILcdPoint` `getEndPoint()`
Retrieves the end point of the curve.
`double` `getEndTangent2D()`
Returns the angle of the curve's tangent at the end point, in degrees counterclockwise from the direction at 3 o'clock.
`ILcdPoint` `getFocusPoint()`
Returns the focus point of this `ILcdShape`.
`int` `getId()`
Returns the ID of this edge, unique among all faces within the model.
`String` `getInterpolation()`
Returns the interpolation method used by this curve.
`double` ```getLength2D(double aParam1, double aParam2)```
Returns the length between two points of the curve, defined by the given parameters.
`int` ```getLineSegmentIntersectionCount(ILcdPoint aP1, ILcdPoint aP2)```
Returns the number of intersections between this curve and a line segment defined by the two specified points.
`int` `getOrientation()`
Returns the orientation of this `ILcdPolygon`: `ILcdPolygon.CLOCKWISE` or `ILcdPolygon.COUNTERCLOCKWISE`.
`ILcdPoint` `getPoint(int aIndex)`
Returns the `ILcdPoint` at a given index.
`int` `getPointCount()`
Returns the number of `ILcdPoint` objects in the list.
`void` ```getPointSFCT(int aIndex, ILcd3DEditablePoint aPointSFCT)```
Stores the coordinates of the point at `aIndex` in the given point.
`ILcdPoint` `getStartPoint()`
Retrieves the start point of the curve.
`double` `getStartTangent2D()`
Returns the angle of the curve's tangent at the start point, in degrees counterclockwise from the direction at 3 o'clock.
`double` `getTangent2D(double aParam)`
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.
`double` `getX(int aIndex)`
Returns the X coordinate of the point at `aIndex`.
`double` `getY(int aIndex)`
Returns the Y coordinate of the point at `aIndex`.
`double` `getZ(int aIndex)`
Returns the Z coordinate of the point at `aIndex`.
`void` ```insert2DPoint(int aIndex, double aX, double aY)```
Inserts a point at the given index into this `ILcd2DEditablePointList`.
`void` ```insertIntoCache(Object aKey, Object aObject)```
Inserts a cache Object corresponding to the given key Object.
`void` `invalidateObject()`
Invalidates all cached values of this object.
`void` ```move2D(double aX, double aY)```
Moves this `ILcd2DEditableShape` to the given point in the 2D space.
`void` `move2D(ILcdPoint aPoint)`
Moves this `ILcd2DEditableShape` to the given point in the 2D space.
`void` ```move2DPoint(int aIndex, double aX, double aY)```
Moves the specified point of this `ILcd2DEditablePointList` to the given point in the 2D space.
`Object` `removeCachedObject(Object aKey)`
Looks up and removes the cached Object corresponding to the given key.
`void` `removePointAt(int aIndex)`
Removes the point at the given index from this `ILcd2DEditablePointList`.
`void` `setOrientation(int aOrientation)`
Sets the orientation of this `ILcd2DEditablePolygon`.
`void` ```translate2D(double aDeltaX, double aDeltaY)```
Translates this `ILcd2DEditableShape` from its current position over the given translation vector in the 2D space.
`void` ```translate2DPoint(int aIndex, double aDeltaX, double aDeltaY)```
Translates the specified point of this `ILcd2DEditablePointList` from its current position over the given translation vector in the 2D space.
• Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditablePointList

`append2DPoint`
• Constructor Detail

• TLcdS57Face

```public TLcdS57Face(int aFaceId,
TLcdS57Edge[] aEdges,
int[] aEdgeOrientations,
int[] aEdgeUsages,
Creates a new S-57 Face geometry with the specified properties.
Parameters:
`aFaceId` - an ID for this face, unique within the model.
`aEdges` - the edges defining the geometry of this Line feature.
`aEdgeOrientations` - array containing for each edge the orientation in which it should be traversed. See `getEdgeOrientation(int)` for more information on allowable values.
`aEdgeUsages` - array containing for each edge the usage of the edge. See `getEdgeUsage(int)` for more information on allowable values.
`aEdgeMasks` - array containing for each edge the mask of the edge. See `getEdgeMask(int)` for more information on allowable values.
• Method Detail

• getId

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

`public int getEdgeCount()`
Returns the number of edges this area consists of.
Returns:
the number of edges this area consists of.
• getEdge

`public TLcdS57Edge getEdge(int aIndex)`
Returns the edge that is part of this area, at the given index.
Parameters:
`aIndex` - the edge that is part of this area, at the given index.
Returns:
the edge at the given index.
• getEdgeOrientation

`public int getEdgeOrientation(int aIndex)`
Returns the orientation of the edge that is part of this face, at the given index. The orientation indicates in which direction the edge should be traversed to iterate over all points of this face in forward direction. One of `TLcdS57Constants.ORIENTATION_FORWARD` or `TLcdS57Constants.ORIENTATION_REVERSE`.
Parameters:
`aIndex` - the orientation of the edge that is part of this face, at the given index.
Returns:
the orientation of the edge at the given index.
• invalidateObject

`public void invalidateObject()`
Description copied from interface: `ILcdInvalidateable`
Invalidates all cached values of this object. Call this method whenever one or more of this object's compositing values has been changed, to notify this object it needs to recompute its cached values.
Specified by:
`invalidateObject` in interface `ILcdInvalidateable`
• 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.
• 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.
• 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`
• 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.
• 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
• 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
• 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
• 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
• 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
• 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
• 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
• setOrientation

`public void setOrientation(int aOrientation)`
Description copied from interface: `ILcd2DEditablePolygon`
Sets the orientation of this `ILcd2DEditablePolygon`.
Specified by:
`setOrientation` in interface `ILcd2DEditablePolygon`
Parameters:
`aOrientation` - `ILcd2DEditablePolygon.CLOCKWISE`, `ILcd2DEditablePolygon.COUNTERCLOCKWISE` or `ILcd2DEditablePolygon.INVALID_ORIENTATION`.
• 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.
• 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.
• 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,
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.
• 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.
`ILcd2DEditableShape.move2D(double, double)`
• translate2DPoint

```public void translate2DPoint(int aIndex,
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`
`aDeltaX` - the x coordinate of the translation vector.
`aDeltaY` - the y coordinate of the translation vector.
• getOrientation

`public int getOrientation()`
Description copied from interface: `ILcdPolygon`
Returns the orientation of this `ILcdPolygon`: `ILcdPolygon.CLOCKWISE` or `ILcdPolygon.COUNTERCLOCKWISE`.
Specified by:
`getOrientation` in interface `ILcdPolygon`
Returns:
the orientation of this `ILcdPolygon`: `ILcdPolygon.CLOCKWISE` or `ILcdPolygon.COUNTERCLOCKWISE`. This method should not return `INVALID_ORIENTATION`, which is only to be used for resetting the orientation so that it can be recalculated.
• getPointSFCT

```public final 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.
• 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.
`ILcdShape.contains2D(double, double)`
• 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.
`ILcdShape.contains3D(double, double, double)`
• 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.
• 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`
`Object.clone()`