Sam Yates
authored
Use a wrapper `mextent` around an `mcable_list` with a stronger invariant for the representation of thingified regions, with public intersection and union and intersection-testing operations. Creation of an `mextent` requires a morphology, but any further operations on one do not. * Implement `mextent`, wrapping an `mcable_list` and enforcing an invariant: all cables on the same branch are distinct; and there is a cable in the extent for every branch that intersects with the region on the morphology tree described by the cable list. * Recast region union and intersection operations on regions in terms of `mextent` objects. * Use `mextent` objects as the concrete representation for regions in `mprovider`. * Modify region/locset expression implementations to accommodate new representation. * Add `region` ctors that wrap an explicit cable list or `mextent`. * Add a lazy range-based merge view in `util/mergeview.hpp`.
Name | Last commit | Last update |
---|