If I understand it correctly, the ORB algorithm only decomposes in all dimensions (or none). In OPALX we sometimes have bunches that are (in their rest frame) highly stretched in z-direction, which is why we would want to be able to decompose e.g. only in z direction.
The idea is to generalize binaryRepartition(...) by passing an additional const std::array<bool, Dim>& allowedAxes, where true indicates which axis to bisect. The old binaryRepartition signature will remain available as an overload. "Legacy" behavior is preserved by implicitly setting allowedAxes = {true, true, true} where necessary.
If I understand it correctly, the ORB algorithm only decomposes in all dimensions (or none). In OPALX we sometimes have bunches that are (in their rest frame) highly stretched in
z-direction, which is why we would want to be able to decompose e.g. only inzdirection.The idea is to generalize
binaryRepartition(...)by passing an additionalconst std::array<bool, Dim>& allowedAxes, wheretrueindicates which axis to bisect. The oldbinaryRepartitionsignature will remain available as an overload. "Legacy" behavior is preserved by implicitly settingallowedAxes = {true, true, true}where necessary.