aboutsummaryrefslogtreecommitdiff
path: root/src/argaze/AreaOfInterest/AOI3DScene.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/argaze/AreaOfInterest/AOI3DScene.py')
-rw-r--r--src/argaze/AreaOfInterest/AOI3DScene.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/argaze/AreaOfInterest/AOI3DScene.py b/src/argaze/AreaOfInterest/AOI3DScene.py
index 8ea6048..33a815c 100644
--- a/src/argaze/AreaOfInterest/AOI3DScene.py
+++ b/src/argaze/AreaOfInterest/AOI3DScene.py
@@ -38,15 +38,15 @@ AOI2DSceneType = TypeVar('AOI2DScene', bound="AOI2DScene")
class AOI3DScene(AOIFeatures.AOIScene):
"""Define AOI 3D scene."""
- def __init__(self, aois_3d: dict = None):
+ def __init__(self, aoi_3d: dict = None):
- super().__init__(3, aois_3d)
+ super().__init__(3, aoi_3d)
@classmethod
def from_obj(self, obj_filepath: str) -> AOI3DSceneType:
"""Load AOI3D scene from .obj file."""
- aois_3d = {}
+ aoi_3d = {}
# regex rules for .obj file parsing
OBJ_RX_DICT = {
@@ -108,15 +108,15 @@ class AOI3DScene(AOIFeatures.AOIScene):
file.close()
- # retreive all aoi3D vertices
+ # retreive all aoi3D vertices and sort them in clockwise order
for name, face in faces.items():
- aoi3D = AOIFeatures.AreaOfInterest([ vertices[i-1] for i in face ])
- aois_3d[name] = aoi3D
+ aoi3D = AOIFeatures.AreaOfInterest([ vertices[i-1] for i in reversed(face) ])
+ aoi_3d[name] = aoi3D
except IOError:
raise IOError(f'File not found: {obj_filepath}')
- return AOI3DScene(aois_3d)
+ return AOI3DScene(aoi_3d)
def to_obj(self, obj_filepath: str):
"""Save AOI3D scene into .obj file."""
@@ -149,8 +149,9 @@ class AOI3DScene(AOIFeatures.AOIScene):
file.write('s off\n')
file.write(vertices_ids + '\n')
+ '''DEPRECATED: but maybe still usefull?
@property
- def orthogonal_projection(self) -> AOI2DScene.AOI2DScene:
+ def orthogonal_projection(self) -> AOI2DSceneType:
"""
Orthogonal projection of whole scene.
@@ -169,7 +170,7 @@ class AOI3DScene(AOIFeatures.AOIScene):
K = numpy.array([[scene_size[1]/scene_size[0], 0.0, 0.5], [0.0, 1., 0.5], [0.0, 0.0, 1.0]])
return self.project(tvec, rvec, K)
-
+ '''
def vision_cone(self, cone_radius, cone_height, cone_tip=[0., 0., 0.], cone_direction=[0., 0., 1.]) -> Tuple[AOI3DSceneType, AOI3DSceneType]:
"""Get AOI which are inside and out a given cone field.