@UML(identifier="GM_GenericSurface", specification=ISO_19107) public interface GenericSurface
Surface
and SurfacePatch
represent sections of surface geometry, and therefore share a number of operation
signatures.Modifier and Type | Method and Description |
---|---|
double |
getArea()
Returns the area of this
GenericSurface . |
double |
getPerimeter()
Returns the sum of the lengths of all the boundary components of this
GenericSurface . |
double[] |
getUpNormal(DirectPosition point)
Returns a vector perpendicular to the
GenericSurface at the direct position passed, which must be on this GenericSurface . |
@UML(identifier="upNormal", obligation=MANDATORY, specification=ISO_19107) double[] getUpNormal(DirectPosition point)
GenericSurface
at the direct position passed, which must be on this GenericSurface
. The
upward normal always points upward in a manner consistent with the boundary. This means that
the exterior boundary of the surface is counterclockwise when viewed from the side of the
surface indicated by the upNormal
. Interior boundaries are clockwise. The side of the
surface indicated by the upNormal
is referred to as the "top." The function
"upNormal" shall be continuous and the length of the normal shall always be equal to 1.0.
NOTE: The upNormal along a boundary of a solid always points away from the solid. This is a slight semantics problem in dealing with voids within solids, where the upNormal (for sake of mathematical consistency) points into the center of the voided region, which linguistically can be considered the interior of the void. What the confusion is here is that the basic linguistic metaphors used in most languages for "interior of solid" and for "interior of container" use "inward" in inconsistent manners from a topological point of view. The void "in" rock is not inside the rock in the same manner as the solid material that makes up the substance of the rock. Nor is the coffee "in" the cup the same "in" as the ceramic glass "in" the cup. The use of these culturally derived metaphors may not be consistent across all languages, some of which may use different prepositions for these two different concepts. This specification uses the linguistically neutral concept of "interior" derived from mathematics (topology).
point
- The point on this GenericSurface
where to compute the upNormal.@UML(identifier="perimeter", obligation=MANDATORY, specification=ISO_19107) double getPerimeter()
GenericSurface
.
Since perimeter, like length, is an accumulation (integral) of distance, its return value
shall be in a reference system appropriate for measuring distances.
NOTE: The perimeter is defined as the sum of the lengths of all boundary components. The length of a curve or of a collection of curves is always positive and non-zero (unless the curve is pathological). This means that holes in surfaces will contribute positively to the total perimeter.
@UML(identifier="area", obligation=MANDATORY, specification=ISO_19107) double getArea()
GenericSurface
. The area of a 2-dimensional geometric object
shall be a numeric measure of its surface area (in a square unit of distance). Since area is
an accumulation (integral) of the product of two distances, its return value shall be in a
unit of measure appropriate for measuring distances squared, such as meters squared
(m^{2}).
NOTE: Consistent with the definition of surface as a set of direct positions, holes in the surfaces will not contribute to the total area. If the usual Green's Theorem (or more general Stokes' Theorem) integral is used, the integral around the holes in the surface are subtracted from the integral about the exterior of the surface patch.
Copyright © 1996–2023 Geotools. All rights reserved.