diff options
Diffstat (limited to 'src/argaze/ArFeatures.py')
-rw-r--r-- | src/argaze/ArFeatures.py | 42 |
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: |