Operation |
Public
boundary():GM_Boundary
|
 Details:
Sequential
Notes:
|
The operation "boundary" shall return a finite set of GM_Objects containing all of the points on the boundary of this GM_Object. The finite set of GM_Objects returned shall be in the same coordinate reference system as this GM_Object. If the GM_Object is in a GM_Complex, then the boundary GM_Objects returned will be in the same GM_Complex. If the GM_Object is not in any GM_Complex, then the boundary GM_Objects returned may have been constructed in response to the operation. <br/>GM_Object::boundary() : Set#lt;Reference#lt;GM_Object#gt;#gt;<br/>The organization of the set returned is dependent on the type of GM_Object. Each of the subclasses of GM_Object described below will specify more completely the organization of their boundary set. <br/>The elements of a boundary shall be smaller in dimension than the original element.<br/>
|
|
Public
buffer( radius: Distance,
Default: |
|
Kind: |
inout |
Stereotype: |
|
|
|
):GM_Object
|
 Details:
Sequential
Notes:
|
The operation "buffer" shall return a GM_Object containing all points whose distance from this GM_Object is less than or equal to the "distance" passed as a parameter. The GM_Object returned is in the same reference system as this original GM_Object. The dimension of the returned GM_Object is normally the same as the coordinate dimension - a collection of GM_Surfaces in 2D space and a collection of GM_Solids in 3D space, but this may be application defined.<br/>GM_Object::buffer(radius : Distance) : GM_Object<br/>NOTE There are cases for which this GM_Object would be partially outside the domain of validity of the object's coordinate reference system. If this case should arise the implementation shall decide on appropriate action.<br/>
|
|
Public
centroid():DirectPosition
|
 Details:
Sequential
Notes:
|
The operation "centroid" shall return the mathematical centroid for this GM_Object. The result is not guaranteed to be on the object. For heterogeneous collections of primitives, the centroid only takes into account those of the largest dimension. For example, when calculating the centroid of surfaces, an average is taken weighted by area. Since curves have no area they do not contribute to the average.<br/>GM_Object::centroid() : DirectPosition<br/>NOTE : There may be cases for which this position would be outside the domain of validity of the object's coordinate reference system, but this is unlikely, since the domain of validity of most coordinate reference systems is convex. If this unlikely case should arise the implementation shall decide on appropriate action.<br/>
|
|
Public
closure():GM_Complex
|
 Details:
|
Public
convexHull():GM_Object
|
 Details:
Sequential
Notes:
|
convex hull of a geometric object <br/>smallest convex set containing the original geometric <br/><br/>convex set <br/>geometric set in which any third point on the straight-line segment joining any two points in the set is also contained in the set <br/>The operation "convexHull" shall return a GM_Object that represents the convex hull of this GM_Object.<br/>GM_Object::convexHull() : GM_Object<br/>NOTE There may be cases for which this GM_Object would be partially outside the domain of validity of the object's coordinate reference system, but this is unlikely, since the domain of validity of most coordinate reference systems is convex. If this unlikely case should arise the implementation shall decide on appropriate action.<br/>
|
|
Public
coordinateDimension():Integer
|
 Details:
Sequential
Notes:
|
coordinate dimension<br/>number of measurements or ordinates needed to describe a position in a coordinate system<br/><br/>The operation "coordinateDimension" shall return the dimension of the coordinates that define this GM_Object, which must be the same as the coordinate dimension of the coordinate reference system for this GM_Object.<br/>GM_Object::coordinateDimension(): Integer<br/>
|
|
Public
dimension( point: DirectPosition,
Default: |
NULL |
Kind: |
inout |
Stereotype: |
|
|
|
):Integer
|
 Details:
Sequential
Notes:
|
geometric dimension at a point<br/>largest number n such that this point in the geometric set has a subset with the point in its interior that is similar (isomorphic) to a small copy of Rn, Euclidean n-space. <br/><br/>The operation "dimension" shall return the inherent dimension of this GM_Object, which shall be less than or equal to the coordinate dimension. The dimension of a collection of geometric objects shall be the largest dimension of any of its pieces. Points are 0-dimensional, curves are 1-dimensional, surfaces are 2-dimensional, and solids are 3-dimensional. Locally, the dimension of a geometric object at a point is the dimension of a local neighborhood of the point 3/4 that is the dimension of the best local coordinate neighborhood of the point. Dimension is unambiguously defined only for DirectPositions interior to this GM_Object. If the passed DirectPosition is NULL, then the operation shall return the largest possible dimension for any DirectPosition in this GM_Object.<br/>GM_Object::dimension(point : DirectPosition = NULL) : Integer<br/>
|
|
Public
distance( geometry: GM_Object,
Default: |
|
Kind: |
inout |
Stereotype: |
|
|
|
):Distance
|
 Details:
Sequential
Notes:
|
The operation "distance" shall return the distance between this GM_Object and another GM_Object. This distance is defined to be the greatest lower bound of the set of distances between all pairs of points that include one each from each of the two GM_Objects. A "distance" value shall be a positive number associated to distance units such as meters or standard foot. If necessary, the second geometric object shall be transformed into the same coordinate reference system as the first before the distance is calculated.<br/>GM_Object::distance(geometry : GM_Object) : Distance<br/>If the geometric objects overlap, or touch, then their distance apart shall be zero. Some current implementations use a "negative" distance for such cases, but the approach is neither consistent between implementations, nor theoretically viable.<br/>The type "Distance" is one of the units of measure types included in annexes to ISO 15046-3.<br/>NOTE The role of the reference system in distance calculations is important. Generally, there are at least three types of distances that may be defined between points (and therefore between geometric objects): map distance, geodetic distance, and terrain distance. <br/>Map distance is the distance between the points as defined by their positions in a coordinate projection (such as on a map when scale is taken into account). Map distance is usually accurate for small areas where scale functions have well-behaved derivatives. <br/>Geodesic distance is the length of the shortest curve between those two points along the surface of the earth model being used by the coordinate reference system. Geodesic distance behaves well for wide areas of coverage, and takes the earth's curvature into account. It is especially handy for air and sea navigation, although care should be taken to distinguish between rhumb line (curves of constant bearing) and geodesic curve distance. <br/>Terrain distance will take into account the local vertical displacements (hypsography). Terrain distance can be based either on a geodesic distance or a map distance.<br/>
|
|
Public
envelope():GM_Envelope
|
 Details:
Sequential
Notes:
|
The operation "envelope" shall return the minimum bounding box for this GM_Object. This shall be the coordinate region spanning the minimum and maximum value for each ordinate taken on by DirectPositions in this GM_Object. The simplest representation for an envelope consists of two DirectPositions, the first one containing all the minimums for each ordinate, and second one containing all the maximums. However, there are cases for which these two positions would be outside the domain of validity of the object's coordinate reference system. This operation is included here only as an interface, as applications may chose to implement in different manners.<br/>GM_Object::envelope() : GM_Envelope<br/>
|
|
Public
isCycle():Boolean
|
 Details:
Sequential
Notes:
|
The operation "isCycle" shall return TRUE if this GM_Object has an empty boundary after topological simplification (removal of overlaps between components in non-structured aggregates, such as subclasses of GM_Aggregate). This condition is alternatively referred to as being "closed." This creates some confusion since there are two distinct and incompatible definitions for the word "closed." The use of the word cycle is rarer (generally restricted to the field of algebraic topology), but leads to less confusion. Essentially, an object (which must be representable by a geometric complex, for reasons that will be explained later) is a cycle if it is isomorphic to a geometric object that is the boundary of a region in some Euclidean Space. Thus a curve is a cycle, if it is isomorphic to a circle (has the same start and end point). A surface is a cycle if it isomorphic to the surface of a sphere, or some torus. A solid, with finite size, in a space of dimension 3 or less is never a cycle. <br/>GM_Object::isCycle(): Boolean<br/>The following OCL takes boundary producing a GM_Object and then applies TransfiniteSet#lt;DirectPosition#gt;::isEmpty() to test for the empty set. <br/>GM_Object:<br/>isCycle() = boundary().isEmpty()<br/>
|
|
Public
isSimple():Boolean
|
 Details:
Sequential
Notes:
|
The operation "isSimple" shall return TRUE if this GM_Object has no interior point of self-intersection or self-tangency. In mathematical formalisms, this means that every point in the interior of the object must have a metric neighborhood whose intersection with the object is isomorphic to an n-sphere, where n is the dimension of this GM_Object.<br/>GM_Object::isSimple() : Boolean<br/>Since most coordinate geometries are represented, either directly or indirectly by functions from regions in Euclidean space of their topological dimension, the easiest test for simplicity is requiring that a function exist that is one-to-one and bicontinuous (continuous in both directions). Such a function is a topological isomorphism. This test does not work for "closed" objects (that is, objects for which the isCycle operation returns TRUE).<br/>While GM_Complexes shall contain only simple GM_Objects, non-simple GM_Objects are often used in "spaghetti" data sets.<br/>
|
|
Public
maximalComplex():Set<GM_Complex>
|
 Details:
Sequential
Notes:
|
As a set of primitives, a GM_Complex may be contained as a set in another larger GM_Complex, referred to as a "super complex" of the original. A GM_Complex is maximal if there is no such larger super complex. The operation "maximalComplex" shall return the set of maximal GM_Complexes within which this GM_Object is contained.<br/>GM_Object::maximalComplex() : Set#lt;Reference#lt;GM_Complex#gt;<br/>If the application schema used does not include GM_Complex, then this operation shall return a NULL value.<br/>
|
|
Public
mbRegion():GM_Object
|
 Details:
Sequential
Notes:
|
The operation "mbRegion" is included here only as an interface, as different applications may choose to implement it in different manners. It shall return a region in the coordinate reference system that contains this GM_Object. The default shall be to return the same object as "GM_Object::envelope," from the operator "envelope." The most common use of mbRegion will be to support indexing methods that use extents other than minimum bounding rectangles (MBR or envelopes).<br/>GM_Object::mbRegion() : GM_Object<br/>This does not restrict the returned GM_Object from being a non-vector geometric representation, although those types are not defined within this part.<br/>
|
|
Public
representativePoint():DirectPosition
|
 Details:
Sequential
Notes:
|
The operation "representativePoint" is included here only as an interface that may be implemented in different ways. It shall return a point value (DirectPosition) that is guaranteed to be on this GM_Object. The default logic may be to use the DirectPosition of the point returned by the operation "GM_Object::centroid" if that point is on the object. <br/>GM_Object::representativePoint() : DirectPosition<br/>Another use of representativePoint may be for the placement of labels in systems based on graphic presentation. Definitions for symbology and type placement are out of the scope of this part of ISO 15046.<br/>
|
|
Public
transform( newCRS: SC_CRS,
Default: |
|
Kind: |
inout |
Stereotype: |
|
|
The Spatial Reference System of the Output Spatial Object
|
):GM_Object
|
 Details:
Sequential
Notes:
|
The operation "transform" shall return a new GM_Object that is the coordinate transformation of this GM_Object into the passed coordinate reference system within the accuracy of the transformation as defined in ISO 15046 Part 11.<br/>GM_Object::transform(newCRS : CRS) : GM_Object<br/>
|
|