Operation Boolean
isCycle (), in Class GM_Object
Documentation
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.
GM_Object::isCycle(): Boolean
The following OCL takes boundary producing a GM_Object and then applies TransfiniteSet<DirectPosition>::isEmpty() to test for the empty set.
GM_Object:
isCycle() = boundary().isEmpty()
Protocol | | Qualification | |
Exceptions | | Size | |
Time | | Concurrency | Sequential |
Export Control | PublicAccess | | |
Preconditions
Postconditions
Semantics