Name

filterprop — A surface filter that uses basic properties

Synopsis

Content Model
filterprop ::= (tag*,
                (container|textdata|script|attachment|
                 tri|link|snappeadata|
                 angles|surfaces|hypersurfaces|
                 filtercomb|filterprop|filtertrivial|
                 anon|anonref)*)
Attributes
NameType
compactCDATA
eulerCDATA
orblCDATA
realbdryCDATA
idCDATA
labelCDATA

Added in Regina 7.0

Description

This represents a property filter packet, one of the many types of packet that together form the packet tree that a user sees when they open a Regina data file, and also one of the different types of filter that users can create to refine a set of normal surfaces.

A property filter filters normal surfaces by examining basic topological properties such as orientability and Euler characteristic.

The specific constraints imposed by this filter are stored in the optional attributes compact, euler, orbl and realbdry. If this filter has several such attributes, a surface must satisfy all of the corresponding constraints in order to be accepted by this filter. (These attributes replace the deprecated compact (filter), euler (filter), orbl (filter) and realbdry (filter) elements, which were used with filter in older versions of Regina.)

There are several child XML elements that are common to all packet types. The tag elements represent an arbitrary set of string “tags” that users can attach to a packet to help organise their data. The remaining child elements list all of Regina's packet types (container, textdata, etc.), and these represent the immediate children of this packet in the packet tree.

Parents

The following elements can contain any packet element (including this): angles, anon, anonref, attachment, container, filtercomb, filterprop, filtertrivial, hypersurfaces, link, regina, script, snappeadata, surfaces, textdata, tri. This list includes all packet types, as well as the top-level element regina.

Children

Element filtercomb has no children that are specific to property filters.

The following children can occur in all packet elements: angles, anon, anonref, attachment, container, filtercomb, filterprop, filtertrivial, hypersurfaces, link, script, snappeadata, surfaces, tag, textdata, tri. This list includes all packet types, as well as the tag element for tagging individual packets.

Attributes

The following attributes are specific to combination filters:

compact

Constrains the compactness of a surface. The following values are allowed:

  • TF signifies that the surface may be either compact or non-compact, i.e., no constraint is imposed.

  • T- signifies that the surface must be compact.

  • -F signifies that the surface must be non-compact.

  • -- signifies that the surface must be neither compact nor non-compact, i.e., no surfaces are accepted.

This constraint is optional; if not specified, it defaults to TF (i.e., there is no constraint on compactness).

euler

Constrains the Euler characteristic of a surface. This attribute holds a comma-separated list of integers. A surface will satisfy this constraint if its Euler characteristic belongs to the list.

The list of integers must not contain any whitespace.

This constraint is optional; if it is not specified or if the list is empty, then all Euler characteristics are allowed (i.e., there is no constraint on Euler characteristic).

orbl

Constrains the orientability of a surface. The following values are allowed:

  • TF signifies that the surface may be either orientable or non-orientable, i.e., no constraint is imposed.

  • T- signifies that the surface must be orientable.

  • -F signifies that the surface must be non-orientable.

  • -- signifies that the surface must be neither orientable nor non-orientable, i.e., no surfaces are accepted.

This constraint is optional; if not specified, it defaults to TF (i.e., there is no constraint on orientability).

realbdry

Constrains the boundary of a surface. The following values are allowed:

  • TF signifies that the surface may either have real boundary or may not, i.e., no constraint is imposed.

  • T- signifies that the surface must have real boundary.

  • -F signifies that the surface must not have real boundary.

  • -- signifies that the surface must neither have real boundary nor not have real boundary, i.e., no surfaces are accepted.

This constraint is optional; if not specified, it defaults to TF (i.e., there is no constraint on the boundary).

The following attributes are common to all packet types:

id

A unique identifier for this packet. Packets are not required to have IDs, but when they are present they must be distinct (i.e., no packets in the same file may share the same ID). IDs do not need to be human-readable, must not contain leading or trailing whitespace, and must not be empty strings. Currently, IDs are built from base 64 hashes of the underlying C++ pointers.

The purpose of these packet IDs is to allow other packets to reference this packet (for instance, so that a script packet can store references to its variables).

IDs are not required to stay the same across subsequent loads and saves of the same file. In other words, if you load a file and save it again, the packet IDs are allowed to change.

label

The name given by the user to this particular packet within the overall packet tree.

Example

The following XML snippet represents a filter that accepts discs and annuli.

<filterprop orbl="T-" compact="T-" realbdry="T-" euler="0,1"/>