aboutsummaryrefslogtreecommitdiff
path: root/src/argaze/ArFeatures.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/argaze/ArFeatures.py')
-rw-r--r--src/argaze/ArFeatures.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/argaze/ArFeatures.py b/src/argaze/ArFeatures.py
index 1585780..91b63ac 100644
--- a/src/argaze/ArFeatures.py
+++ b/src/argaze/ArFeatures.py
@@ -1052,6 +1052,28 @@ class ArScene(DataFeatures.PipelineStepObject):
"distance_tolerance": self.__distance_tolerance
}
+ @DataFeatures.PipelineStepEnter
+ def __enter__(self):
+
+ for name, layer in self._layers.items():
+
+ layer.__enter__()
+
+ for name, frame in self.__frames.items():
+
+ frame.__enter__()
+
+ @DataFeatures.PipelineStepExit
+ def __exit__(self, exception_type, exception_value, exception_traceback):
+
+ for name, layer in self._layers.items():
+
+ layer.__exit__(exception_type, exception_value, exception_traceback)
+
+ for name, frame in self.__frames.items():
+
+ frame.__exit__(exception_type, exception_value, exception_traceback)
+
@DataFeatures.PipelineStepMethod
def estimate_pose(self, detected_features: any) -> tuple[numpy.array, numpy.array, any]:
"""Define abstract estimate scene pose method.
@@ -1269,6 +1291,24 @@ class ArCamera(ArFrame):
layer.aoi_matcher.exclude = excluded_aoi_list
+ @DataFeatures.PipelineStepEnter
+ def __enter__(self):
+
+ super().__enter__()
+
+ for name, scene in self._scenes.items():
+
+ scene.__enter__()
+
+ @DataFeatures.PipelineStepExit
+ def __exit__(self, exception_type, exception_value, exception_traceback):
+
+ super().__exit__(exception_type, exception_value, exception_traceback)
+
+ for name, scene in self._scenes.items():
+
+ scene.__exit__(exception_type, exception_value, exception_traceback)
+
@DataFeatures.PipelineStepMethod
def watch(self, image: numpy.array):
"""Detect AR features from image and project scenes into camera frame.
@@ -1461,7 +1501,7 @@ class ArContext(DataFeatures.PipelineStepObject):
else:
# Edit gaze position
- self.__pipeline.look( GazeFeatures.GazePosition( (x, y), precision = precision, timestamp = timestamp) )
+ self.__pipeline.look( GazeFeatures.GazePosition( (x, y), precision = precision, timestamp = timestamp))
except DataFeatures.TimestampedException as e: