Index - All Packages - All Categories - All Classes
Class Filter
A position in a FilterSpace is a region in the baseSpace, and a filter is a set of regions in the baseSpace. It is often more useful to think of a Filter as a Boolean function whose input is a region in the baseSpace, and of unions, intersections, and complements of filters as ORs, ANDs, and NOTs of functions. Not all possible such functions can be represented as Filters, since there is an uncountable infinity of them for any non-finite CoordinateSpace. There are representations for some basic filters, and any filters resulting from a finite sequence of unions, intersections, and complements among them. The basic filters are:
subsetFilter(cs,R) -- all subsets of R (ie. all R1 such that R1->isSubsetOf(R))
supersetFilter(cs,R) -- all supersets of R (ie. all R1 such that R->isSubsetOf(R1))
Mathematically, this is all that is necessary, since other useful filters like intersection filters can be generated from these. (eg. intersectionFilter(R) is subsetFilter(R->complement())->complement()). However, there are several more pseudo constructors provided as shortcuts, including intersectionFilters, closedFilters, emptyFilters, and intersections and unions of sets of filters.
Package: Udanax-Gold
All Superclasses: Object Heaper XnRegion
Immediate Subclasses: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
Protocols: Object
Categories: Xanadu-Filter
Class Methods
andFilter: cs with: subs
A filter that matches only regions that all of the filters in the set would have matched.
andFilterPrivate: cs with: subs
assumes that the interactions between elements have already been removed
closedFilter: cs
An filter that does match any region.
combineIntersect: set withFilter: filter
keep going around doing intersections until there are no more special intersects
combineIntersect: a withImmuSet: b
combineUnion: set withFilter: filter
keep going around doing unions until there are no more special unions
combineUnion: a withImmuSet: b
distributeIntersect: cs with: set withFilter: filter
distribute the intersection of a filter with the union of a set of filters
distributeIntersect: cs with: a withImmuSet: b
distributeUnion: cs with: set withFilter: filter
distribute the union of a filter with the intersection of a set of filters
distributeUnion: cs with: anded withImmuSet: ored
distribute the union of an intersection and a union of sets of filters
infostProtocol
Overrides: XnRegion class
intersectionFilter: cs with: region
A filter that matches any region that intersects the given region.
notSubsetFilter: cs with: region
A filter matching any regions that is not a subset of the given region.
notSupersetFilter: cs with: region
A filter that matches any region that is not a superset of the given region.
openFilter: cs
A filter that matches any region.
orFilter: cs with: subs
A filter that matches any region that any of the filters in the set would have matched.
orFilterPrivate: cs with: subs
assumes that the interactions between elements have already been removed
subsetFilter: cs with: region
A filter that matches any region that is a subset of the given region.
supersetFilter: cs with: region
A region that matches any region that is a superset of the given region.
Instance Methods
actualHashForEqual
Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
actualStepper: order
Overrides: XnRegion
Overridden by: ClosedFilter
asSimpleRegion
Overrides: XnRegion
baseRegion
Essential. A region in the base space identifying what kind of filter this is. Succeeds only if this isAnyFilter or isAllFilter.
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
complement
Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
complexIntersect: other
complexUnion: other
coordinateSpace
Overrides: XnRegion
count
Overrides: XnRegion
create: cs
Overridden by: ClosedFilter OpenFilter
createRcvr: receiver
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
distinctions
Overrides: XnRegion
doesPass: joint
Whether there might be anything in the tree beneath the Joint that would pass the filter.
fetchCanonicalIntersect: other
return nil, or the pair of canonical filters (left == new1 | self, right == new2 | other)
Overridden by: NotSupersetFilter
fetchCanonicalUnion: other
return nil, or the pair of canonical filters (left == new1 | self, right == new2 | other)
Overridden by: NotSupersetFilter SupersetFilter
fetchIntersect: other
fetchPairIntersect: other
return the pair of canonical filters (left == new1 | self, right == new2 | other)
fetchPairUnion: other
return the pair of canonical filters (left == new1 | self, right == new2 | other)
fetchSpecialIntersect: other
Overridden by: NotSubsetFilter NotSupersetFilter SubsetFilter SupersetFilter
fetchSpecialSubset: other
return self or other if one is clearly a subset of the other, else nil
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
fetchSpecialUnion: other
Overridden by: NotSubsetFilter NotSupersetFilter SubsetFilter SupersetFilter
fetchUnion: other
filterSpace
getPairIntersect: other
return the pair of canonical filters (left == new1 | self, right == new2 | other)
getPairUnion: other
return the pair of canonical filters (left == new1 | self, right == new2 | other)
hasMember: pos
Overrides: XnRegion
intersect: other
Overrides: XnRegion
Overridden by: ClosedFilter OpenFilter
intersectedFilters
Essential. Break this up into a bunch of Filters which when intersected (anded) together give this one. If there is only one sub Filter it will be the receiver; otherwise, the sub Filters will be simple enough that either they or their complements will return true from at least one of isAndFilter or isOrFilter. If this is full (ie. an open filter) then the stepper will have no elements.
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isAllFilter
Essential. Whether this is an 'all' Filter, ie. it only matches Regions which contain everything in the baseRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isAnyFilter
Essential. Whether this is an 'any' Filter, ie. it matches Regions which contain anything in the baseRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isEmpty
Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isEnumerable: order
Overrides: XnRegion
Overridden by: ClosedFilter
isEqual: other
Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isFinite
Overrides: XnRegion
isFull
Overrides: XnRegion
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
isSimple
Overrides: XnRegion
isSubsetOf: other
Overrides: XnRegion
isSwitchedBy: delta
Whether the change causes a change in the state of the filter. (IE. Whether the old region was in and the new out, or vice versa.)
isSwitchedOffBy: delta
Whether the change switches the state of the filter from on to off. (IE. Whether the old region was inside the filter and the new region outside.)
isSwitchedOnBy: delta
Whether the change switches the state of the filter from off to on. (IE. Whether the old region was outside the filter and the new region inside.)
match: region
Whether a region is inside this filter.
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
pass: parent
The simplest filter for looking at the tree beneath the node.
The Joint keeps the intersection and union of all the nodes beneath it, so the result of this message can be used to prune a search. If the result is full, then everything beneath the node is in the filter (eg. if this filter contained all subsets of S and the union was a superset of S). If the result is empty, then nothing beneath the node is in the filter (eg. if this filter contained all subsets of S and the intersection was not a subset of S). In less extreme cases, this operation may at least simplify the filter by throwing out irrelevant search criteria.
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
relevantRegion
The region which is relevant to this filter, ie. whose presence or absence in a region can change whether it passes the filter
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
sendSelfTo: xmtr
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
simpleRegions: order
Overrides: XnRegion
simpleUnion: other
Overrides: XnRegion
unionedFilters
Essential. Break this up into a bunch of Filters which when unioned (ored) together give this one. If there is only one sub Filter it will be the receiver; otherwise, the sub Filters will be simple enough that either they or their complements will return true from at least one of isAndFilter or isOrFilter. The sub Filters might not be disjoint Regions. If this is empty (ie. a closed filter) then the stepper will have no elements.
Overridden by: AndFilter ClosedFilter NotSubsetFilter NotSupersetFilter OpenFilter OrFilter SubsetFilter SupersetFilter
unionWith: other
Overrides: XnRegion
Overridden by: ClosedFilter OpenFilter
Index - All Packages - All Categories - All Classes