aboutsummaryrefslogtreecommitdiff
path: root/docs/user_guide/areas_of_interest/aoi_matching.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/user_guide/areas_of_interest/aoi_matching.md')
-rw-r--r--docs/user_guide/areas_of_interest/aoi_matching.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/user_guide/areas_of_interest/aoi_matching.md b/docs/user_guide/areas_of_interest/aoi_matching.md
new file mode 100644
index 0000000..3bffeb9
--- /dev/null
+++ b/docs/user_guide/areas_of_interest/aoi_matching.md
@@ -0,0 +1,47 @@
+---
+title: AOI matching
+---
+
+AOI matching
+============
+
+Once AOI3D scene is projected into a frame as AOI2D scene, it could be needed to know which AOI2D is looked.
+The AOI class in [AOIFeatures](/argaze/#argaze.AreaOfInterest.AOIFeatures) provides two ways to accomplish such task.
+
+## Pointer-based matching
+
+Test if 2D pointer is inside or not AOI using contains_point() method as illustrated below.
+
+![Contains point](../../img/contains_point.png)
+
+``` python
+pointer = (x, y)
+
+for name, aoi in aoi2D_scene.items():
+
+ if aoi.contains_point(pointer):
+
+ # Do something with looked aoi
+ ...
+
+```
+
+It is also possible to get where a pointer is looking inside an AOI provided that AOI is a rectangular plane:
+
+``` python
+
+inner_x, inner_y = aoi.inner_axis(pointer)
+
+```
+
+## Circle-based matching
+
+As positions have limited accuracy, it is possible to define a radius around a pointer to test circle intersection with AOI.
+
+![Circle intersection](../../img/circle_intersection.png)
+
+``` python
+
+intersection_shape, intersection_aoi_ratio, intersection_circle_ratio = aoi.circle_intersection(pointer, radius)
+
+```