aboutsummaryrefslogtreecommitdiff
path: root/src/argaze/GazeFeatures.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/argaze/GazeFeatures.py')
-rw-r--r--src/argaze/GazeFeatures.py30
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)