SymNode(s)
now hold a mask of all components both on the node and everything below. This means we can now iterate efficiently over the structure if we're searching for something specific.
For example this code would in 10.5 always visit the whole graph, but in 11.0 it will instantly abort if there's no mesh below a node:
for (node in root, filter=SymNodeMeshFilter()) { ... }
Most filters (with the exception of searching for specific node ids or leafs) are now efficient. For example if you would like to visit nodes that contain geometry, with a specific rep and that is tagged you can do this:
SymNodeFilter f = and(SymNodeRepFilter(rep), SymNodeGeometryFilter(), SymNodeComponentFilter(symTags)); for (node in root, filter=f) { ... }
Internally this is used in many places to speed up the handling of syms, and should be used if possible.