At a slightly higher level, SFA supports user removal of glyphs based on subsetting. Subsetting is internally handled in the file Subset. C, but the interaction and drawing control is handled in Draw. In the case of a single subset, only glyphs that fall within the extents of the single subset are drawn. If multiple subsets are swept out, code in Subset.
C calculates if there are any overlapping zones with the subsets.
This allows the user to continually refine the area of interest until the desired level is reached. Finally, SFA supports automatic glyph removal while the user is interacting with the scene in a way that automatic glyph removal does not detract from the action being performed. Currently this only happens when the user is dragging the scene, either with the trackers or the mouse. While the scene is being dragged around, SFA draws as many glyphs as possible in 100ms per frame. Currently, SFA uses a caching method indexed on the XSize attribute.