Class TLcdGML31PolygonPatch

All Implemented Interfaces:
ILcdDataObject, ILcdBounded, ILcdEditableSurface, ILcdShape, ILcdSurface, ILcdCloneable, ILcdDeepCloneable, ILcdFeatured, ILcdSelfDescribedFeatured, Serializable, Cloneable

public class TLcdGML31PolygonPatch extends TLcdGML31AbstractSurfacePatch implements ILcdEditableSurface
A gml:PolygonPatch is a surface patch that is defined by a set of boundary curves and an underlying surface to which these curves adhere. The curves shall be coplanar and the polygon uses planar interpolation in its interior. interpolation is fixed to "planar", i.e. an interpolation shall return points on a single plane. The boundary of the patch shall be contained within that plane.
Since:
10.0
See Also:
  • Field Details

    • INTERPOLATION_ATTR_PROPERTY

      public static final TLcdDataProperty INTERPOLATION_ATTR_PROPERTY
      Data property that maps to the interpolation attribute. The possible values for this property are instances of ELcdGML31SurfaceInterpolation.
    • EXTERIOR_PROPERTY

      public static final TLcdDataProperty EXTERIOR_PROPERTY
      Data property that maps to the exterior element. The possible values for this property are instances of TLcdGML31AbstractRingProperty.
    • INTERIOR_PROPERTY

      public static final TLcdDataProperty INTERIOR_PROPERTY
      Data property that maps to the interior element. The possible values for this property are instances of List<TLcdGML31AbstractRingProperty>.
  • Constructor Details

    • TLcdGML31PolygonPatch

      public TLcdGML31PolygonPatch()
    • TLcdGML31PolygonPatch

      public TLcdGML31PolygonPatch(TLcdDataType aType)
  • Method Details

    • setExteriorRing

      public void setExteriorRing(ILcdRing aExteriorRing)
      Description copied from interface: ILcdEditableSurface
      Sets the exterior boundary of this surface.

      Note that this implementations may throw a ClassCastException or IllegalArgumentException in case the class of the ring is not compatible with the implementation of the surface. Implementations should specify in their documentation all restrictions that apply in this context.

      Specified by:
      setExteriorRing in interface ILcdEditableSurface
      Parameters:
      aExteriorRing - the exterior boundary of this surface.
    • getExteriorRing

      public ILcdRing getExteriorRing()
      Description copied from interface: ILcdSurface
      Returns the exterior boundary of this surface.
      Specified by:
      getExteriorRing in interface ILcdSurface
      Returns:
      the exterior boundary of this surface.
    • getInteriorRings

      public List<ILcdRing> getInteriorRings()
      Description copied from interface: ILcdEditableSurface
      Returns the holes in this surface, as a list of ILcdRing instances. If there are no holes, an empty list is returned.

      The returned list is editable and can be used to add, remove or replace interior rings.

      Specified by:
      getInteriorRings in interface ILcdEditableSurface
      Specified by:
      getInteriorRings in interface ILcdSurface
      Returns:
      an editable list containing zero or more rings, representing the holes in this surface.
    • 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
      Overrides:
      contains2D in class TLcdGML31AbstractSurfacePatch
      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(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
      Overrides:
      contains3D in class TLcdGML31AbstractSurfacePatch
      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.
    • 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
      Overrides:
      contains2D in class TLcdGML31AbstractSurfacePatch
      Parameters:
      aPoint - the ILcdPoint to test.
      Returns:
      the boolean result of the containment test.
      See Also:
    • 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
      Overrides:
      contains3D in class TLcdGML31AbstractSurfacePatch
      Parameters:
      aPoint - the ILcdPoint to test.
      Returns:
      the boolean result of the containment test.
      See Also:
    • getFocusPoint

      public ILcdPoint getFocusPoint()
      Description copied from interface: ILcdShape
      Returns the focus point of this ILcdShape.
      Specified by:
      getFocusPoint in interface ILcdShape
      Overrides:
      getFocusPoint in class TLcdGML31AbstractSurfacePatch
      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
      Overrides:
      getBounds in class TLcdGML31AbstractSurfacePatch
      Returns:
      the ILcdBounds by which the geometry of this ILcdBounded object is bounded.
    • clone

      public TLcdGML31PolygonPatch clone()
      Description copied from class: TLcdDataObject
      Returns a deep clone of this object. This method delegates to TLcdDataObject.clone(Map).
      Specified by:
      clone in interface ILcdCloneable
      Overrides:
      clone in class TLcdDataObject
      Returns:
      a deep clone of this object
      See Also:
    • clone

      public TLcdDataObject clone(Map aObjectDictionary)
      Description copied from class: TLcdDataObject
      Returns a deep clone of this object. If the clone is not already present in the dictionary, a new instance if created as follows:
      • First, a new instance is created using Java's clone() mechanism.
      • Then, all properties of this object are cloned and set on the newly created instance. A property is cloned as follows:
        • If the property value is an ILcdDataObject, the value is cloned by first creating a new instance via the value.getDataType().newInstance() method, and then cloning its properties one by one.
        • If the value implements ILcdDeepCloneable or ILcdCloneable then this interface is used to clone the value.
        • Otherwise, the property value is copied by reference.
      Specified by:
      clone in interface ILcdDeepCloneable
      Overrides:
      clone in class TLcdDataObject
      Parameters:
      aObjectDictionary - the Object dictionary that keeps track of the objects for which a clone has already been made, and their corresponding clone Object.
      Returns:
      a deep clone of this object
    • getInterpolationAttr

      public ELcdGML31SurfaceInterpolation getInterpolationAttr()
      Returns the value of the property that maps to the interpolation attribute.

      The attribute "interpolation" specifies the interpolation mechanism used for this surface patch. Currently only planar surface patches are defined in GML 3, the attribute is fixed to "planar", i.e. the interpolation method shall return points on a single plane. The boundary of the patch shall be contained within that plane.

      Returns:
      the value of the INTERPOLATION_ATTR_PROPERTY property.
    • setInterpolationAttr

      public void setInterpolationAttr(ELcdGML31SurfaceInterpolation aValue)
      Sets the value of the property that maps to the interpolation attribute.

      The attribute "interpolation" specifies the interpolation mechanism used for this surface patch. Currently only planar surface patches are defined in GML 3, the attribute is fixed to "planar", i.e. the interpolation method shall return points on a single plane. The boundary of the patch shall be contained within that plane.

      Parameters:
      aValue - the value to set for the INTERPOLATION_ATTR_PROPERTY property.
    • getExterior

      public TLcdGML31AbstractRing getExterior()
      Returns the role value contained in the value of the EXTERIOR_PROPERTY property. Returns null if the value of the EXTERIOR_PROPERTY property is null.

      A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.

      Returns:
      the role value of the EXTERIOR_PROPERTY property.
      See Also:
    • setExterior

      public void setExterior(TLcdGML31AbstractRing aValue)
      Sets the value of the property that maps to the exterior element. to a new instance of the association class TLcdGML31AbstractRingProperty initialized with the given role value. In case the given role value is null, the EXTERIOR_PROPERTY property is set to null.

      A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.

      Parameters:
      aValue - the role value to set for the EXTERIOR_PROPERTY property.
    • getInterior

      public List<TLcdGML31AbstractRing> getInterior()
      Gets the value of the INTERIOR_PROPERTY property adapted to a list of TLcdGML31AbstractRing instances.

      A boundary of a surface consists of a number of rings. The "interior" rings seperate the surface / surface patch from the area enclosed by the rings.

      Returns:
      the value of the INTERIOR_PROPERTY property adapted to a list of TLcdGML31AbstractRing instances.
      See Also: