From 1f37f7185bd397a4af330baef7ccfbb33e61af27 Mon Sep 17 00:00:00 2001 From: ch-sa Date: Sat, 5 Feb 2022 12:39:45 +0100 Subject: [PATCH] Fix point cloud getter - fixes a bug introduced by PointCloudManager refactoring - black formatting - bump version Closes: #60 --- labelCloud/__init__.py | 2 +- labelCloud/control/bbox_controller.py | 13 +++++++------ labelCloud/control/controller.py | 2 +- labelCloud/utils/math3d.py | 4 ++-- labelCloud/view/viewer.py | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/labelCloud/__init__.py b/labelCloud/__init__.py index 4910b9e..ed9d4d8 100644 --- a/labelCloud/__init__.py +++ b/labelCloud/__init__.py @@ -1 +1 @@ -__version__ = "0.7.3" +__version__ = "0.7.4" diff --git a/labelCloud/control/bbox_controller.py b/labelCloud/control/bbox_controller.py index 38e16a3..767d459 100644 --- a/labelCloud/control/bbox_controller.py +++ b/labelCloud/control/bbox_controller.py @@ -12,6 +12,7 @@ from ..model.bbox import BBox from ..utils import oglhelper from .config_manager import config +from .pcd_manager import PointCloudManger if TYPE_CHECKING: from ..view.gui import GUI @@ -52,10 +53,10 @@ class BoundingBoxController(object): STD_SCALING = config.getfloat("LABEL", "std_scaling") def __init__(self) -> None: - self.view = None - self.bboxes = [] + self.view: Optional[GUI] = None + self.bboxes: List[BBox] = [] self.active_bbox_id = -1 # -1 means zero bboxes - self.pcdc = None + self.pcd_manager: Optional[PointCloudManger] = None # GETTERS def has_active_bbox(self) -> bool: @@ -208,7 +209,7 @@ def rotate_with_mouse( self, x_angle: float, y_angle: float ) -> None: # TODO: Make more intuitive # Get bbox perspective - pcd_z_rotation = self.pcdc.get_pointcloud().rot_z + pcd_z_rotation = self.pcd_manager.pointcloud.rot_z bbox_z_rotation = self.get_active_bbox().get_z_rotation() total_z_rotation = pcd_z_rotation + bbox_z_rotation @@ -224,7 +225,7 @@ def translate_along_x(self, distance: float = None, left: bool = False) -> None: distance = distance or config.getfloat("LABEL", "std_translation") if left: distance *= -1 - cosz, sinz, bu = self.pcdc.get_perspective() + cosz, sinz, bu = self.pcd_manager.get_perspective() self.get_active_bbox().set_x_translation( self.get_active_bbox().center[0] + distance * cosz ) @@ -237,7 +238,7 @@ def translate_along_y(self, distance: float = None, forward: bool = False) -> No distance = distance or config.getfloat("LABEL", "std_translation") if forward: distance *= -1 - cosz, sinz, bu = self.pcdc.get_perspective() + cosz, sinz, bu = self.pcd_manager.get_perspective() self.get_active_bbox().set_x_translation( self.get_active_bbox().center[0] + distance * bu * -sinz ) diff --git a/labelCloud/control/controller.py b/labelCloud/control/controller.py index 09e37e6..9f117cb 100644 --- a/labelCloud/control/controller.py +++ b/labelCloud/control/controller.py @@ -43,7 +43,7 @@ def startup(self, view: "GUI") -> None: self.drawing_mode.set_view(self.view) self.align_mode.set_view(self.view) self.view.glWidget.set_bbox_controller(self.bbox_controller) - self.bbox_controller.pcdc = self.pcd_manager + self.bbox_controller.pcd_manager = self.pcd_manager # Read labels from folders self.pcd_manager.read_pointcloud_folder() diff --git a/labelCloud/utils/math3d.py b/labelCloud/utils/math3d.py index 2ef6759..4eebc53 100644 --- a/labelCloud/utils/math3d.py +++ b/labelCloud/utils/math3d.py @@ -158,8 +158,8 @@ def get_line_perpendicular( b = m * -line_end[0] + line_end[1] # Calculate line perpendicular parallel to x-y-plane - intersection_x = (point[0] + m * (point[1] - b)) / (1 + m ** 2) - intersection_y = (m * point[0] + m ** 2 * point[1] + b) / (1 + m ** 2) + intersection_x = (point[0] + m * (point[1] - b)) / (1 + m**2) + intersection_y = (m * point[0] + m**2 * point[1] + b) / (1 + m**2) dir_vector = ( point[0] - intersection_x, point[1] - intersection_y, diff --git a/labelCloud/view/viewer.py b/labelCloud/view/viewer.py index 9a508e9..6923ce5 100644 --- a/labelCloud/view/viewer.py +++ b/labelCloud/view/viewer.py @@ -164,7 +164,7 @@ def circular_mask(arr_length, center, radius) -> np.ndarray: dx = np.arange(arr_length) return (dx[np.newaxis, :] - center) ** 2 + ( dx[:, np.newaxis] - center - ) ** 2 < radius ** 2 + ) ** 2 < radius**2 # Returns the minimum (closest) depth for a specified radius around the center