Hello Alexey,
After some investigations, I still don't understand how it could work like that.
At first : "checkFaceTask" is called :
def checkFaceTask(face):
global vertices
face_vertices = [vertices[v] for v in face.vertices]
checkFace(face, face_vertices)
But face.vertices is just a tuple of 3 integers.
So then, "checkFace" take as parameters "face", which is a model.face, and "face_vertices", which is a list of 3 integers:
def checkFace(face, face_vertices):
global region
R = region.rot # Bounding box rotation matrix
C = region.center # Bounding box center vector
size = region.size
remove_vertices = 0
for vertex in face_vertices:
v = vertex.coord
v.size = 3
v_c = v - C
v_r = R.t() * v_c
if abs(v_r.x) > abs(size.x / 2.):
remove_vertices += 1
elif abs(v_r.y) > abs(size.y / 2.):
remove_vertices += 1
elif abs(v_r.z) > abs(size.z / 2.):
remove_vertices += 1
else:
continue
if remove_vertices == 3:
face.selected = True
Then how it's possible to call vertex.coord for vertex in face_vertices, because vertex become an integer, so no .coord exist
After some test in Metashape console, I got the same fail.
Regards