File size: 1,586 Bytes
13170f7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import ctypes
from ctypes_enum import CtypesEnum
from .CBasicStructs import *
from .CFaceIdStructs import *

EVE_MAX_FACE_LANDMARKS = 68
EVE_MAX_FACES = 10
EVE_EYE_LANDMARK_SIZE = 14
EVE_PUPIL_LANDMARK_SIZE = 2

class EveEyeLandmark(CtypesEnum):
	EVE_EYE_RIGHT_CORNER_TEMPORAL = 0
	EVE_EYE_RIGHT_EYELID_UPPER_1 = 1
	EVE_EYE_RIGHT_EYELID_UPPER_2 = 2
	EVE_EYE_RIGHT_CORNER_NASAL = 3
	EVE_EYE_RIGHT_EYELID_LOWER_1 = 4
	EVE_EYE_RIGHT_EYELID_LOWER_2 = 5
	EVE_EYE_LEFT_CORNER_NASAL = 6
	EVE_EYE_LEFT_EYELID_UPPER_2 = 7
	EVE_EYE_LEFT_EYELID_UPPER_1 = 8
	EVE_EYE_LEFT_CORNER_TEMPORAL = 9
	EVE_EYE_LEFT_EYELID_LOWER_2 = 10
	EVE_EYE_LEFT_EYELID_LOWER_1 = 11
	EVE_EYE_RIGHT_PUPIL_CENTER = 12
	EVE_EYE_LEFT_PUPIL_CENTER = 13
	EVE_EYE_LANDMARK_SIZE = 14

class EvePupilLandmark(CtypesEnum):
	EVE_RIGHT_PUPIL_CENTER = 0
	EVE_LEFT_PUPIL_CENTER = 1
	EVE_PUPIL_LANDMARK_SIZE = 2

class CEyeLandmarks(ctypes.Structure):
	_fields_ = [
		("landmarks", CPoint3f * EVE_EYE_LANDMARK_SIZE),
	]

class CPupilLandmarks(ctypes.Structure):
	_fields_ = [
		("landmarks", CPoint3f * EVE_PUPIL_LANDMARK_SIZE),
	]

class CFaceData(ctypes.Structure):
	_fields_ = [
		("angles", CAngles3f),
		("faceId", CFaceIdentityData),
		("depth", ctypes.c_float),
		("trackNumber", ctypes.c_int),
		("box", CRect2iWH),
		("landmarksCount", ctypes.c_uint),
		("landmarksICS", CPoint2f * EVE_MAX_FACE_LANDMARKS),
		("landmarksCCS", CPoint3f * EVE_MAX_FACE_LANDMARKS),
		("midEyeCCS", CPoint3f),
	]

class CAllFaces(ctypes.Structure):
	_fields_ = [
		("detectedFacesCount", ctypes.c_uint),
		("faces", CFaceData * EVE_MAX_FACES),
	]