Class SurfaceTests

java.lang.Object
org.opengis.cite.iso19136.data.DataFixture
org.opengis.cite.iso19136.data.spatial.SurfaceTests

public class SurfaceTests extends DataFixture
Validates the content of a gml:Surface element (or any element in its substitution group), which implements the GM_Surface class from ISO 19107. A surface is a 2-dimensional primitive composed of one or more surface patches.

A surface has an "up" direction in terms of the upward (positive) normal, which is the side of the surface from which the exterior boundary appears counterclockwise and interior boundaries are traversed in a clockwise manner (see figure below). If the surface is the boundary of a solid, the "up" direction is usually outward.

Surface upNormal

Sources

  • ISO 19136:2007, cl. 10.5.10 SurfaceType, Surface
  • ISO 19107:2003, cl. 6.3.17 GM_Surface
  • Field Details

  • Constructor Details

    • SurfaceTests

      public SurfaceTests()
  • Method Details

    • findSurfaces

      @BeforeClass public void findSurfaces()
      A configuration method (BeforeClass) that looks for gml:Surface elements in the GML document under test (including any elements in its substitution group). If none are found all test methods defined in the class will be skipped.
    • surfaceHasValidCRS

      public void surfaceHasValidCRS()
      [Test] Verifies that a gml:Surface element has a valid CRS reference.

      Sources

      • ISO 19136, cl. 9.10, 10.1.3.2
      • ISO 19107, cl. 6.2.2.17 (Coordinate Reference System association)
    • validSurfaceBoundary

      public void validSurfaceBoundary()
      [Test] Checks that the boundary of a surface is topologically correct. Each component of the surface boundary must be a simple closed curve (ring); that is, it must not self-intersect and it forms a cycle such that the end points are identical. Furthermore, each interior ring must be covered by the surface delimited by the exterior boundary (the rings may touch at a tangent point).

      Sources

      • ISO 19136:2007, cl. 10.5.11.1: Ring, RingType, curveMember
      • ISO 19136:2007, cl. 10.5.5: exterior, interior
      • ISO 19107:2003, cl. 6.3.6: GM_Ring
      • ISO 19107:2003, cl. 6.3.7.2: exterior, interior
    • validSurfaceOrientation

      public void validSurfaceOrientation()
      [Test] Checks that the orientation of the surface boundary is consistent with the upward normal. In essence, the interior is always to the left of a boundary curve. All patches must be oriented in the same manner.

      Sources

      • ISO 19136:2007, cl. 10.5.10: SurfaceType, Surface
      • ISO 19107:2003, cl. 6.3.17: GM_Surface
      • ISO 19107:2003, cl. 6.4.34: GM_SurfacePatch