Skip to content

Changed bounding box to influence rendering area instead of seeding area. Also reworked the bounding box interface to support multiple bounding boxes per actor

Christoph Fischer requested to merge devel_issue_230 into master

Previously, the bounding box setting of the trajectory actor was used to decide whether a seeding point of a trajectory should be filtered.

However, it makes more sense to leave this decision to the seeding source itself (it currently does as well). The bounding box of the trajectory actor then only renders parts of trajectory lines/tubes, that are within the trajectory actor bounding box.

Edit (2024-04-05): Based on a discussion, the filter bounding box option should be kept especially for precomputed trajectories. Then, a filter bounding box should be used to filter the seed positions of trajectories, and a separate bounding box should be used to restrict rendering of trajectories. A fix for this was a bit more complex, since currently the bounding box interface (from which the actors inherit) only allows exactly one bounding box to be associated with an actor.

Therefore, this MR also has changes to the bounding box interface, which now also allows to support multiple bounding boxes to be associated with an actor. A bigger overhaul might be needed at some point regarding this interface. The fix employed here is that basically instead of a MBoundingBoxConnection*, the interface now has a list QList<MBoundingBoxConnection*> of connections. For compatibility, existing functionality still works on the first element in the list, but now multiple bounding boxes can be added on top. Also existing session files are still compatible.

All the changes in unrelated actors are just a change from the direct access bboxConnection to getBBoxConnection(), returning always the first (and only) associated bounding box.

This has been implemented for the Trajectory Actor, where we have now a bounding box for rendering, and in filtering -> bounding box there is another bounding box for filtering seed points. It can be tested with the UC2 precomputed trajectories. Play around with both bounding box settings whether the results make sense.

Closes #230 (closed)

Edit (2024-04-12): Also closes #425 (closed) which I just encountered.

Edited by Christoph Fischer

Merge request reports