B1ueber2y · GitHub

This PR includes the updates as follows:

  • Adapt all the controllers except for feature extraction and matching to use the new logic. Each controller inherits from BaseController, and in the ui a ControllerThread is instantiated.
  • Move ControllerThread in the util, such that there is no "Thread"-related practice in the other folder. Maybe we should separate class Thread from ThreadPool and JobQueue at util/threading.h and move Thread class and ControllerThread class completely into the ui folder.

Now feature extraction and feature matching still inherits from the Thread class since in Python we will use different logics. However, because of this the AutomaticReconstructionController needs to inherit from Thread as well to support the Stopping function for the feature extractor and matcher. While this can potentially be resolved by adding SignalInvalidSetup, SignalValidSetup, and CheckValidSetup into the controller with a boolean valued callback, this might be a little overcomplication in the class design since this is not relevant to pybind for now. It depends on whether we want to totally disentangle the Thread outside the ui @ahojnnes @sarlinpe

If needed I can make the update on the feature extraction and matcher later as well in a separate PR.

Read the original on github.com ↗