Filtering

Sometimes you are faced with a very long list of surfaces from which you wish to extract just the tori, or just the discs, or some other subset of surfaces described by one or more simple constraints. For tasks such as these, surface filters can be used.

A surface filter essentially represents some series of tests that can be performed upon a surface. Tests can include a variety of easily calculable properties such as orientability and Euler characteristic. At its most basic level, a surface filter is a device that either accepts or rejects each surface that is passed through it.

Each surface filter is stored as a separate packet in the packet tree. Details of the types of filter that can be created are discussed in the following section.

To restrict a normal surface list according to some filter, open the surface list coordinate viewer where the entire list of surfaces is displayed. Above the table of coordinates is a drop-down box filled with the available filters. If a filter is selected from this box then the surface list is restricted to include only those surfaces that the selected filter accepts. To remove the filter, select the None option from this same drop-down box.

Creating Filters

Filters are created through the Packet Tree->New Filter menu item (or the corresponding toolbar button). The following types of filter are available.

Filter by Properties

A property-based filter allows surfaces to be restricted according to a variety of easily calculable properties.

To be accepted a surface must satisfy all of the restrictions listed in the filter. For instance, if a filter restricts by orientability (allow orientable surfaces only), by compactness (allow compact surfaces only) and also by Euler characteristic (allow Euler characteristic 1 only), then the filter will accept normal discs and nothing else.

The properties by which surfaces can be restricted are as follows.

Orientability

This restriction can be used to only allow orientable surfaces or only allow non-orientable surfaces.

Compactness

This restriction can be used to only allow compact surfaces (i.e., surfaces with finitely many discs) or only allow non-compact surfaces (e.g., spun normal surfaces).

Boundary

This restriction can be used to only allow surfaces with real boundary edges or only allow surfaces with no real boundary edges. Note that spun normal surfaces, though they are not closed, do not have real boundary edges.

Euler Characteristic

This restriction can be used to only allow surfaces whose Euler characteristic belongs to a given list.

Combination Filter

A combination filter is a high-level filter that combines some other group of filters using boolean AND or OR. The combination filter will combine all packet filters found directly beneath it in the packet tree.

For instance, to create a filter that accepts either discs or tori, you can create a property filter for discs and another property filter for tori. These are both placed within the packet tree directly beneath a boolean OR combination filter, as illustrated in the following screenshot.


A sample combination filter

A sample combination filter


Note that a combination filter will only combine its immediate children. Suppose for instance that a combination filter C has child filters P and Q, and that Q in turn has child filters X and Y, as illustrated in the diagram to the right. Then C forms a boolean combination of P and Q only.