org.deegree.geometry.primitive
Interface Surface

All Superinterfaces:
GeometricPrimitive, Geometry, GMLObject, Object, TypedObjectNode
All Known Subinterfaces:
CompositeSurface, OrientableSurface, Polygon, PolyhedralSurface, Tin, TriangulatedSurface
All Known Implementing Classes:
DefaultCompositeSurface, DefaultOrientableSurface, DefaultPolygon, DefaultPolyhedralSurface, DefaultSurface, DefaultTin, DefaultTriangulatedSurface, PolygonReference, SurfaceReference

public interface Surface
extends GeometricPrimitive

Surface instances are 2D-geometries that consist of an arbitrary number of surface patches which are not necessarily planar.

Author:
Andreas Poth, last edited by: $Author: mschneider $

Nested Class Summary
static class Surface.SurfaceType
          Convenience enum type for discriminating the different surface variants.
 
Nested classes/interfaces inherited from interface org.deegree.geometry.primitive.GeometricPrimitive
GeometricPrimitive.PrimitiveType
 
Nested classes/interfaces inherited from interface org.deegree.geometry.Geometry
Geometry.GeometryType
 
Method Summary
 Measure getArea(Unit requestedBaseUnit)
           
 Points getExteriorRingCoordinates()
          Convenience method for accessing the control points of the exterior ring of a simple polygon surface.
 List<Points> getInteriorRingsCoordinates()
          Convenience method for accessing the control points of the interior rings of a simple polygon surface.
 List<? extends SurfacePatch> getPatches()
          Returns the patches that constitute this surface.
 Measure getPerimeter(Unit requestedUnit)
           
 GeometricPrimitive.PrimitiveType getPrimitiveType()
          Must always return GeometricPrimitive.PrimitiveType.Surface.
 Surface.SurfaceType getSurfaceType()
          Returns the type of surface.
 
Methods inherited from interface org.deegree.geometry.primitive.GeometricPrimitive
getGeometryType
 
Methods inherited from interface org.deegree.geometry.Geometry
contains, crosses, equals, getBuffer, getCentroid, getConvexHull, getCoordinateDimension, getCoordinateSystem, getDifference, getDistance, getEnvelope, getId, getIntersection, getPrecision, getUnion, intersects, isBeyond, isDisjoint, isSFSCompliant, isWithin, isWithinDistance, overlaps, setCoordinateSystem, setGMLProperties, setId, setPrecision, touches
 
Methods inherited from interface org.deegree.commons.tom.gml.GMLObject
getGMLProperties
 

Method Detail

getPrimitiveType

GeometricPrimitive.PrimitiveType getPrimitiveType()
Must always return GeometricPrimitive.PrimitiveType.Surface.

Specified by:
getPrimitiveType in interface GeometricPrimitive
Returns:
GeometricPrimitive.PrimitiveType.Surface

getSurfaceType

Surface.SurfaceType getSurfaceType()
Returns the type of surface.

Returns:
the type of surface

getArea

Measure getArea(Unit requestedBaseUnit)
Parameters:
requestedBaseUnit -
Returns:
area of the surface

getPerimeter

Measure getPerimeter(Unit requestedUnit)
Parameters:
requestedUnit -
Returns:
perimeter of the surface

getPatches

List<? extends SurfacePatch> getPatches()
Returns the patches that constitute this surface.

Returns:
the patches that constitute this surface

getExteriorRingCoordinates

Points getExteriorRingCoordinates()
Convenience method for accessing the control points of the exterior ring of a simple polygon surface.

NOTE: This method is only safe to use when the surface consists of a single planar patch that has a linear interpolated exterior ring.

Returns:
the control points
Throws:
IllegalArgumentException - if the surface has more than one patch, the patch is not planar or the exterior boundary is not completely described by linear interpolated segments

getInteriorRingsCoordinates

List<Points> getInteriorRingsCoordinates()
Convenience method for accessing the control points of the interior rings of a simple polygon surface.

NOTE: This method is only safe to use when the surface consists of a single planar patch that has linear interpolated interior rings.

Returns:
the control points
Throws:
IllegalArgumentException - if the surface has more than one patch, the patch is not planar or the interior boundaries are not completely described by linear interpolated segments


Copyright © 2011. All Rights Reserved.