          if not self._grid.is_valid:
              return
          self._discard_tk_faces()
  
          if self._canvas.optional_annotations["mesh"]:  # Display any hidden end of row meshes
              self._canvas.itemconfig("viewport_mesh", state="normal")
  
          for collection in zip(self._objects.visible_grid.transpose(1, 2, 0),
                                self._objects.images,
                                self._objects.meshes,
                                self._objects.visible_faces):
              for (frame_idx, face_idx, pnt_x, pnt_y), image_id, mesh_ids, face in zip(*collection):
 
</s> remove         return int(round(size * scaling))
 </s> add         scaled = size * scaling
        return int(round(scaled / 2) * 2) </s> remove         rot_mat = cv2.getRotationMatrix2D(tuple(center), angle, 1.)
 </s> add         rot_mat = cv2.getRotationMatrix2D(tuple(center.astype("float32")), angle, 1.)
          if not self._grid.is_valid:
              return
          self._discard_tk_faces()
  



          for collection in zip(self._objects.visible_grid.transpose(1, 2, 0),
                                self._objects.images,
                                self._objects.meshes,
                                self._objects.visible_faces):
              for (frame_idx, face_idx, pnt_x, pnt_y), image_id, mesh_ids, face in zip(*collection):
keep keep keep keep replace replace replace keep keep keep keep keep
 Manual Tool - Bugfixes
  - Fix extract box rotation
  - Fix thumbnail view size
  - Fix issue of deleted landmark meshes still displaying 
tools/manual/faceviewer/viewport.py