From 05a4b79570d91db468abea44259e4a7f825906ca Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Tue, 27 Jun 2023 14:57:27 +0200 Subject: Addin a multiply operator for GazePosition. --- src/argaze/GazeFeatures.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/argaze/GazeFeatures.py b/src/argaze/GazeFeatures.py index d4307a2..218858a 100644 --- a/src/argaze/GazeFeatures.py +++ b/src/argaze/GazeFeatures.py @@ -26,6 +26,9 @@ import numpy import pandas import cv2 +GazePositionType = TypeVar('GazePosition', bound="GazePosition") +# Type definition for type annotation convenience + @dataclass(frozen=True) class GazePosition(): """Define gaze position as a tuple of coordinates with precision.""" @@ -57,6 +60,11 @@ class GazePosition(): return json.dumps(self, ensure_ascii = False, default=vars) + def __mul__(self, value) -> GazePositionType: + """Multiply gaze position.""" + + return GazePosition(numpy.array(self.value) * value, precision= self.precision * numpy.linalg.norm(value)) + def __array__(self): """Cast as numpy array.""" -- cgit v1.1