ReconManger

class ReconManager.ReconManager(controller, projdir)[source]

Bases: object

ReconManager is a controller class that manages the subprocesses for the Matcher and Mesher. It also manages the progress bar displayed with projects on the Tk app.

Parameters:
  • controller (Main) – Reference to the main TK app

  • projdir (pathlib.Path) – Project directory containing .vrp file

_send_log(msg=None)[source]

Helper method to send a message to the PipelineGUI log. If message starts and ends with $, it will go to the log and also be used to update the progress bar.

If no message is provided, this method will wait for the current process to exit and will capture any messages sent through STDOUT by that process.

Parameters:

msg (string) – Optional string to run and send to log

_update_progress(msg)[source]

Helper method for updating the progress bar text and completion.

The message (msg) input should be in the format “$text1.text2.50$”.

text1 is the current step, and text2 is the current substep being run (text2 can be left blank if there is no substep). The text portions of the message will be displayed above the lower progress bar.

The number is the percentage fill of the lower progress bar when the current step/substep combination begins.

Sending the message “$$” will reset the bar and text.

Parameters:

msg (string) – a string of form “$text1.text2.int$”

auto()[source]

Method runs a full reconstruction from images to tiled meshes automatically.

Warning

Using this method does not allow the user to trim point cloud. It’s useful when running the app on a large dataset or overnight, but will likely result in a final mesh that includes outlier points.

cancel()[source]

If a subprocess exists, this method sends teminate signal to current subprocess. After a timeout, the process will be sent a kill signal (if it hasn’t already terminated on its own).

Note

When cancelling COLMAP, it may continue to run in the background and would no longer be tracked by the app. Additionally, if the user runs matcher back to back, the processes may conflict. To fix both of these issues, go to Task Manager, find the colmap.exe task and manually end/kill it.

matcher()[source]

Method for starting the subprocess for the matcher, runs Matcher.py and updates application state after running. Prompts the user on whether or not to overwrite database if one exists.

mesher()[source]

Method for starting the subprocess for the mesher, runs Mesher.py and updates application state after running.