"""
The model_view_recenter module is responsible for managing the recenter of the image within the MoilApp
"""
[docs]
class ModelRecenter:
"""
Class responsible for managing recentering of the image.
Attributes:
_model (object): The main model instance of the application.
_moildev (object): The MOIL device instance.
_maps_recenter (list): List to store recenter maps.
Methods:
maps_recenter: Getter method for the recenter maps.
create_maps_recenter(): Create maps for recentering the image.
"""
def __init__(self, model):
self._model = model
self._moildev = model.set_moildev
self._maps_recenter = [None] * 4
@property
def maps_recenter(self):
"""
Get the maps for recentering.
Return:
tuple: A tuple containing the X and Y maps for recentering.
"""
try:
return self._maps_recenter
except Exception as e:
self._model.activity_logger.error(f"ModelRecenter.maps_recenter(): Error: {str(e)}")
[docs]
def create_maps_recenter(self):
"""
Create maps for recentering the image.
This method creates the maps for recentering the image based on the current recenter coordinates.
"""
try:
if self._model.debug_mode:
self._model.activity_logger.info("ModelRecenter: create_maps_recenter(), "
"create maps x and map y recenter image")
moildev_rt = self._model.set_moildev.moildev_pano_rt
moildev_recenter = self._model.set_moildev.moildev_recenter
icx, icy = self._model.main_config["Image_recenter"]["Recenter_coordinate"]
if icx is None or icy is None:
icx = moildev_rt.icx
icy = moildev_rt.icy
self._model.main_config["Image_recenter"]["Recenter_coordinate"] = icx, icy
alpha, beta = moildev_recenter.get_alpha_beta(icx, icy)
self._model.main_config["Image_recenter"]["alpha"] = alpha
self._model.main_config["Image_recenter"]["beta"] = beta
try:
self._maps_recenter[0], self._maps_recenter[1] = moildev_rt.maps_panorama_rt(110, alpha, beta)
self._maps_recenter[2], self._maps_recenter[3] = moildev_recenter.maps_recenter(110, beta)
self._model.save_main_config_update()
except Exception: # Catch more specific exceptions here
print("out of range!!")
icx = moildev_rt.icx
icy = moildev_rt.icy
self._model.main_config["Image_recenter"]["Recenter_coordinate"] = icx, icy
alpha, beta = moildev_recenter.get_alpha_beta(icx, icy)
self._model.main_config["Image_recenter"]["alpha"] = alpha
self._model.main_config["Image_recenter"]["beta"] = beta
self._maps_recenter[0], self._maps_recenter[1] = moildev_rt.maps_panorama_rt(110, alpha, beta)
self._maps_recenter[2], self._maps_recenter[3] = moildev_recenter.maps_recenter(110, beta)
self._model.save_main_config_update()
except Exception as e:
self._model.activity_logger.error(f"ModelRecenter.create_maps_recenter(): Error: {str(e)}")
print(f"ModelRecenter.create_maps_recenter(): Error: {str(e)}")