Find geometry nodes

Finding vrdGeometryNode nodes in the scenegraph with vrNodeService.

With the default vrdFindOptions, the graph traversal stops at shell geometries, shell components are not visited.

Find geometries
1def findGeos(root):
2    return vrNodeService.findNodes(lambda node: node.isType(vrdGeometryNode), vrdFindOptions(), root)

Find line geometries:

Find line geometries
1def isLineGeometry(node):
2    return (node.isType(vrdGeometryNode)
3        and node.getPrimitiveType() in (vrGeometryTypes.Lines, vrGeometryTypes.LineStrip))
4
5def findLines(root):
6    return vrNodeService.findNodes(isLineGeometry, vrdFindOptions(), root)
7
8lines = findLines(vrScenegraphService.getRootNode())

Find B-side geometries:

Find B-side geometries
1def findBSides(root):
2    predicate = lambda node: node.isType(vrdGeometryNode) and node.isBSide()
3    return vrNodeService.findNodes(predicate, vrdFindOptions(), root)