GeoAPI 1.0
Build 2004-05-18

org.opengis.spatialschema.geometry.complex
Interface Complex

All Superinterfaces:
Geometry, TransfiniteSet
All Known Subinterfaces:
Boundary, ComplexBoundary, Composite, CompositeCurve, CompositeSurface, CurveBoundary, PrimitiveBoundary, Ring, Shell, SolidBoundary, SurfaceBoundary

public interface Complex
extends Geometry

A collection of geometrically disjoint, simple primitives. If a primitive (other than a point is in a particular Complex, then there exists a set of primitives of lower dimension in the same complex that form the boundary of this primitive.

A geometric complex can be thought of as a set in two distinct ways. First, it is a finite set of objects (via delegation to its elements member) and, second, it is an infinite set of point values as a subtype of geometric object. The dual use of delegation and subtyping is to disambiguate the two types of set interface. To determine if a primitive P is an element of a Complex C, call: C.element().contains(P).

The "elements" attribute allows Complex to inherit the behavior of Set<Primitive> without confusing the same sort of behavior inherited from TransfiniteSet<DirectPosition> inherited through Geometry. Complexes shall be used in application schemas where the sharing of geometry is important, such as in the use of computational topology. In a complex, primitives may be aggregated many-to-many into composites for use as attributes of features.

Version:
2.0
Author:
ISO/DIS 19107, OpenGIS® consortium
UML identifier (abstract type): GM_Complex

REVISIT OPEN ISSUE (a GeoAPI comment)
Some associations are commented out for now.

Method Summary
 Set<Primitive> getElements()
          Returns the set of primitives contained in this complex.
 Complex[] getSubComplexes()
          Returns a subset of the primitives of that complex that is, in its own right, a geometric complex.
 Complex[] getSuperComplexex()
          Returns a superset of primitives that is also a complex.
 boolean isMaximal()
          Returns true if and only if this Complex is maximal.
 
Methods inherited from interface Geometry
getBoundary, getBuffer, getCentroid, getClosure, getConvexHull, getCoordinateDimension, getCoordinateReferenceSystem, getDimension, getDistance, getEnvelope, getMaximalComplex, getMbRegion, getRepresentativePoint, isCycle, isSimple, transform, transform
 
Methods inherited from interface TransfiniteSet
contains, contains, difference, equals, intersection, intersects, symmetricDifference, union
 

Method Detail

isMaximal

boolean isMaximal()
Returns true if and only if this Complex is maximal. A complex is maximal if it is a subcomplex of no larger complex.

Returns:
true if this GM_Complex is maximal.
UML identifier (operation): isMaximal

getSuperComplexex

Complex[] getSuperComplexex()
Returns a superset of primitives that is also a complex.

Returns:
The supercomplexes, or an empty array if none.
UML identifier (operation): superComplex

getSubComplexes

Complex[] getSubComplexes()
Returns a subset of the primitives of that complex that is, in its own right, a geometric complex.

Returns:
The subcomplexes, or an empty array if none.
UML identifier (operation): subComplex

getElements

Set<Primitive> getElements()
Returns the set of primitives contained in this complex.

Returns:
The set of primitives for this complex.
UML identifier (operation): element

GeoAPI 1.0
Build 2004-05-18

Symbols, terms and definitions
Copyright OpenGIS® Consortium