diff options
Diffstat (limited to 'src/argaze/GazeFeatures.py')
-rw-r--r-- | src/argaze/GazeFeatures.py | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/argaze/GazeFeatures.py b/src/argaze/GazeFeatures.py index 3592b13..a26b1f1 100644 --- a/src/argaze/GazeFeatures.py +++ b/src/argaze/GazeFeatures.py @@ -503,6 +503,9 @@ class AOIScanStep(): aoi: str = field(default='') """AOI name.""" + letter: str = field(default='') + """AOI unique letter to ease sequence analysis.""" + def __post_init__(self): # First movement have to be a fixation @@ -553,24 +556,35 @@ class AOIScanPath(list): self.__movements = TimeStampedGazeMovements() self.__current_aoi = '' + self.__index = ord('A') + self.__aoi_letter = {} def __repr__(self): """String representation.""" return str(super()) - def __str__(self) -> str: - """String display.""" + def __get_aoi_letter(self, aoi): - output = '' + try : - for step in self: + return self.__aoi_letter[aoi] - output += f'> {step.aoi} ' + except KeyError: - output += f'> {self.__current_aoi}' + letter = chr(self.__index) + self.__aoi_letter[aoi] = letter + self.__index += 1 + return letter - return output + def __str__(self) -> str: + """Convert aoi scan path into a string with unique letter per aoi step.""" + + sequence = '' + for step in self: + sequence += step.letter + + return sequence @property def current_aoi(self): @@ -598,7 +612,7 @@ class AOIScanPath(list): try: # Edit new step - new_step = AOIScanStep(self.__movements, self.__current_aoi) + new_step = AOIScanStep(self.__movements, self.__current_aoi, self.__get_aoi_letter(self.__current_aoi)) # Append new step super().append(new_step) |