public static extern void xslam_gaze_set_config_path(string coe_path);
Input:
coe_path 配置文件路径,支持自定义,默认路径为"/data/misc/xr/"
public static extern bool xslam_start_gaze();
返回值:
true-成功
false-失败
public static extern int xslam_gaze_calibration_apply(string file);
返回值:
0-成功
-1-失败
Input:
file 自定义校准文件路径,需要与校准时xslam_gaze_calibration_retrieve传入的路径一致!
public static extern bool xslam_set_exposure(int leftGain, float leftTimeMs, int rightGain, float rightTimeMs);
返回值:
true-成功
false-失败
Input:
leftGain 左眼增益,建议为10
leftTimeMs 左眼曝光时间,建议为6
rightGain 右眼增益,建议为10
rightTimeMs 右眼曝光时间,建议为6
public static extern bool xslam_set_bright(int eye, int led, int brightness);
返回值:
true-成功
false-失败
注意:停用眼动功能时,需要关闭led,即设置brightness为0:
xslam_set_bright(2, 8, 0);
Input:
eye 0-左眼,1-右眼,2-both左右眼
led led灯
brightness 亮度
public static extern int xslam_set_gaze_callback(fn_gaze_callback cb);
返回值:
0-成功
-1-失败
fn_gaze_callback定义:
public delegate void fn_gaze_callback(XV_ET_EYE_DATA_EX gazedata);
Output:
XV_ET_EYE_DATA_EX gazedata;
XV_ET_EYE_DATA_EX结构体:
public struct XV_ET_EYE_DATA_EX
{
public ulong timestamp; //时间戳
public int recommend; //是否存在推荐的注视点 0-无推荐注视点, 1-使用左眼作为推荐注视点, 2-使用右眼作为推荐注视点
public XV_ET_GAZE_POINT recomGaze; //推荐注视点的数据
public XV_ET_GAZE_POINT leftGaze; //左眼注视点的数据
public XV_ET_GAZE_POINT rightGaze; //右眼注视点的数据
public XV_ET_PUPIL_INFO leftPupil; //左眼瞳孔数据
public XV_ET_PUPIL_INFO rightPupil; //右眼瞳孔数据
public int leftEyeMove;//0-没有检测到左眼移动. 1-左眼状态为眨眼. 2-左眼状态正常
public int rightEyeMove;//0-没有检测到右眼移动. 1-右眼状态为眨眼. 2-右眼状态正常
public float ipd; //瞳距数据,在眼动校准后数据才会更新
};
XV_ET_GAZE_POINT结构体:
public struct XV_ET_GAZE_POINT
{
public XV_ETPoint3D gazePoint; //注视点坐标
public XV_ETPoint3D gazeOrigin; //注视点中心
public XV_ETPoint3D gazeDirection; //注视点方向
public float re; //注视点置信度
};
XV_ET_PUPIL_INFO结构体:
public struct XV_ET_PUPIL_INFO
{
public xv_ETPoint2D pupilCenter; //瞳孔数值(0-1),归一化数据!
};
XV_ETPoint3D结构体:
public struct XV_ETPoint3D
{
public float x;
public float y;
public float z;
}
注意:在使用回调返回的眼动数据时,需要根据应用场景进行不同的处理
若场景为0dof模式,则可以直接使用眼动数据
若场景为6dof模式,则需要将眼动数据与slam 6dof数据进行关联
建议参考XVETcube示例场景中的Rayhit脚本
public static extern bool xslam_unset_gaze_callback();
返回值:
true-成功
false-失败
public static extern bool xslam_stop_gaze();
返回值:
true-成功
false-失败