Index - All Packages - All Categories - All Classes

Class EdgeManager

Manages the common code for regions which are represented as a sequence of EdgeTransitions. Each coordinate space should define a subclass which implements the appropriate methods, and then use it to do the various region operations. Clients of the region do not need to see any of these classes.

Package: Udanax-Gold
All Superclasses: Object Heaper
Immediate Subclasses: RealManager SequenceManager
Protocols: Object
Categories: Xanadu-edge

Instance Methods

actualHashForEqual


asSimpleRegion: region


complement: region


count: region

Because Edge Regions should only be used on infinitely divisible spaces (like rationals), if it's finite then it is bounded on both sides, and all the internal intervals are singletons

distinctions: region


edgeAccumulator: startsInside

Create an accumulator which takes edges and creates a region

edgePosition: edge

The position associated with the given edge. Blast if there is none

Overridden by: RealManager SequenceManager

edgeStepper: region

Create a stepper for iterating through the edges of the region

greatestLowerBound: region

The largest position such that no other positions in the region are any less than it. In other words, this is the lower bounding element. We choose to avoid the terms 'lowerBound' and 'upperBound' as their meanings in IntegerRegion are significantly different. Here, both 'all numbers >= 3' and 'all numbers > 3' have a 'greatestLowerBound' of 3 even though the latter doesn't include 3. To tell whether a bound is included, good old 'hasMember' should do a fine job.

hasMember: region with: pos


intersect: meRegion with: otherRegion


isBoundedLeft: region

Same meaning as IntegerRegion::isBoundedLeft

isBoundedRight: region

Same meaning as IntegerRegion::isBoundedRight

isEmpty: region


isEqual: other


isFinite: region

Here is one place where the *infinite* of the infinite divisibility assumed by OrderedRegion about the full ordering comes in (see class comment).
An interval whose left edge is not the same as the right edge is assumed to contain an infinite number of positions

isFull: region


isSimple: region


isSubsetOf: me with: other


leastUpperBound: region

The smallest position such that no other positions in the region are
any greater than it. In other words, this is the upper bounding element.
We choose to avoid the terms 'lowerBound' and 'upperBound' as
their meanings in IntegerRegion are significantly different. Here, both
'all numbers <= 3' and 'all numbers < 3' have a 'leastUpperBound'
of 3 even though the latter doesn't include 3. To tell whether a
bound is included, good old 'hasMember' should do a fine job.

lowerEdge: region


makeNew: startsInside with: transitions

Make a new region of the right type

Overridden by: RealManager SequenceManager

makeNew: startsInside with: transitions with: count

Make a new region of the right type

Overridden by: RealManager SequenceManager

posTransitions: pos



Overridden by: RealManager SequenceManager

printRegionOn: region with: oo


simpleRegions: region with: order


simpleUnion: me with: other


singleEdgeStepper: pos

Create a stepper for iterating through the edges of the region

startsInside: region



Overridden by: RealManager SequenceManager

transitions: region



Overridden by: RealManager SequenceManager

transitionsCount: region



Overridden by: RealManager SequenceManager

unionWith: meRegion with: otherRegion


upperEdge: region


with: meRegion with: newPos




Index - All Packages - All Categories - All Classes