org.opengis.geometry.primitive
Interface Surface

All Superinterfaces:
GenericSurface, Geometry, OrientablePrimitive, OrientableSurface, Primitive, TransfiniteSet
All Known Subinterfaces:
PolyhedralSurface, Tin, TriangulatedSurface

@UML(identifier="GM_Surface",
     specification=ISO_19107)
public interface Surface
extends OrientableSurface, GenericSurface

Surface with a positive orientation. Surface is a subclass of Primitive and is the basis for 2-dimensional geometry. Unorientable surfaces such as the Möbius band are not allowed. The orientation of a surface chooses an "up" direction through the choice of the upward normal, which, if the surface is not a cycle, is the side of the surface from which the exterior boundary appears counterclockwise. Reversal of the surface orientation reverses the curve orientation of each boundary component, and interchanges the conceptual "up" and "down" direction of the surface. If the surface is the boundary of a solid, the "up" direction is usually outward. For closed surfaces, which have no boundary, the up direction is that of the surface patches, which must be consistent with one another. Its included surface patches describe the interior structure of a Surface.

NOTE: Other than the restriction on orientability, no other "validity" condition is required for GM_Surface.

Since:
GeoAPI 1.0
Author:
Martin Desruisseaux (IRD)
See Also:
PrimitiveFactory.createSurface(List), PrimitiveFactory.createSurface(SurfaceBoundary)

Method Summary
 List<? extends SurfacePatch> getPatches()
          Relates this Surface to a set of surface patches that shall be joined together to form this surface.
 OrientableSurface[] getProxy()
          Returns the orientable surfaces associated with this surface.
 
Methods inherited from interface OrientableSurface
getBoundary, getComposite, getPrimitive
 
Methods inherited from interface OrientablePrimitive
getOrientation
 
Methods inherited from interface Primitive
getComplexes, getContainedPrimitives, getContainingPrimitives
 
Methods inherited from interface Geometry
clone, distance, getBuffer, getCentroid, getClosure, getConvexHull, getCoordinateDimension, getCoordinateReferenceSystem, getDimension, getEnvelope, getMaximalComplex, getMbRegion, getPrecision, getRepresentativePoint, isCycle, isMutable, isSimple, toImmutable, transform, transform
 
Methods inherited from interface TransfiniteSet
contains, contains, difference, equals, intersection, intersects, symmetricDifference, union
 
Methods inherited from interface GenericSurface
getArea, getPerimeter, getUpNormal
 

Method Detail

getPatches

@Association(value="Segmentation")
@UML(identifier="patch",
     obligation=MANDATORY,
     specification=ISO_19107)
List<? extends SurfacePatch> getPatches()
Relates this Surface to a set of surface patches that shall be joined together to form this surface. Depending on the interpolation method, the set of patches may require significant additional structure. If the surface coordinate dimension is 2, then the entire Surface is one logical patch defined by linear interpolation from the boundary.

Returns:
The list of surface patches. Should never be null neither empty.
See Also:
SurfacePatch.getSurface(), Curve.getSegments()

getProxy

@Association(value="Oriented")
@UML(identifier="proxy",
     obligation=MANDATORY,
     specification=ISO_19107)
OrientableSurface[] getProxy()
Returns the orientable surfaces associated with this surface.

Specified by:
getProxy in interface Primitive
Returns:
The orientable surfaces as an array of length 2.
See Also:
OrientableSurface.getPrimitive()


Copyright © 1996-2014 Geotools. All Rights Reserved.