This is a wrapper for SOP_Node::parsePrimitiveGroups(), so it needs access to a SOP_Node instance. But it probably doesn't need to be a SOP_NodeVDB method.
This traits class is needed because tree::TreeValueIteratorBase uses the name ValueT for the type of the value to which the iterator points, whereas node-level iterators use the name ValueType.
Add TrilinearSearchImpl, as an alternative to LinearSearchImpl, that performs analytical 3D trilinear intersection tests, i.e., solves cubic equations. This is slower but also more accurate than the 1D linear interpolation in LinearSearchImpl.
For now, the operator's result type must be specified explicitly, but eventually it should be possible, via traits, to derive the result type from the operator type.