aboutsummaryrefslogtreecommitdiff
path: root/src/argaze
diff options
context:
space:
mode:
authorThéo de la Hogue2023-07-05 16:42:39 +0200
committerThéo de la Hogue2023-07-05 16:42:39 +0200
commit5116122176ada6f4a98428c75b8f8ce04faaab9f (patch)
tree6cdd5a27179d4f59ee0cf593bbf49ca07fc81077 /src/argaze
parente5f2c81530f7a29574f3e429d7a20eb55ee7825e (diff)
downloadargaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.zip
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.gz
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.bz2
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.xz
Adding and testing AOIScene merge operator.
Diffstat (limited to 'src/argaze')
-rw-r--r--src/argaze/AreaOfInterest/AOIFeatures.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/argaze/AreaOfInterest/AOIFeatures.py b/src/argaze/AreaOfInterest/AOIFeatures.py
index 68a5b6b..cbe4483 100644
--- a/src/argaze/AreaOfInterest/AOIFeatures.py
+++ b/src/argaze/AreaOfInterest/AOIFeatures.py
@@ -263,6 +263,33 @@ class AOIScene():
# Stop area exposition as an attribute of the class
delattr(self, key)
+ def __or__(self, other):
+
+ assert(other.dimension == self.__dimension)
+
+ merged_areas = dict(self.__areas)
+ merged_areas.update(other.__areas)
+
+ return AOIScene(self.dimension, merged_areas)
+
+ def __ror__(self, other):
+
+ assert(other.dimension == self.__dimension)
+
+ merged_areas = dict(other.__areas)
+ merged_areas.update(self.__areas)
+
+ return AOIScene(self.dimension, merged_areas)
+
+ def __ior__(self, other):
+
+ assert(other.dimension == self.__dimension)
+
+ self.__areas.update(other.__areas)
+ self.__dict__.update(other.__areas)
+
+ return self
+
def __len__(self):
"""Get number of AOI into scene."""
return len(self.__areas)