package com.iailab.netsdk.lib.structure;

import com.iailab.netsdk.lib.NetSDKLib;

/**
 * @author 251823
 * @description 场景支持的规则
 * @date 2021/01/11
 */
public class SCENE_SUPPORT_RULE extends NetSDKLib.SdkStructure {

	/**
	 * 规则类型
	 */
	public int dwSupportedRule;

	/**
	 * 支持的检测物体类型个数
	 */
	public int nSupportedObjectTypeNum;

	/**
	 * 支持的检测物体类型列表
	 */
	public MaxNameByteArrInfo[] szObjectTypeName = (MaxNameByteArrInfo[]) new MaxNameByteArrInfo()
			.toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);

	/**
	 * 支持的检测物体动作个数
	 */
	public int nSupportedActionsNum;

	/**
	 * 支持的检测物体动作列表
	 */
	public MaxNameByteArrInfo[] szSupportedActions = (MaxNameByteArrInfo[]) new MaxNameByteArrInfo()
			.toArray(NetSDKLib.MAX_ACTION_LIST_SIZE);

	/**
	 * 支持的检测类型个数
	 */
	public int nSupportedDetectTypeNum;

	/**
	 * 支持的检测类型列表
	 */
	public MaxNameByteArrInfo[] szSupportedDetectTypes = (MaxNameByteArrInfo[]) new MaxNameByteArrInfo()
			.toArray(NetSDKLib.MAX_ACTION_LIST_SIZE);

	/**
	 * 支持的目标检测类型个数
	 */
	public int nSupportFaceTypeNum;

	/**
	 * 支持的目标检测类型列表
	 */
	public MaxNameByteArrInfo[] szSupportFaceTypes = (MaxNameByteArrInfo[]) new MaxNameByteArrInfo()
			.toArray(NetSDKLib.MAX_HUMANFACE_LIST_SIZE);

	/**
	 * 是否支持触发报警位置
	 */
	public int bTriggerPosition;

	/**
	 * 是否支持触发跟踪
	 */
	public int bTriggerTrack;

	/**
	 * 是否允许配置开启人脸属性识别
	 */
	public int bFaceDetection;

	/**
	 * 支持的人脸属性类型个数
	 */
	public int nSupportFeactureNum;

	/**
	 * 支持的人脸属性类型列表 参考EM_FACEFEATURE_TYPE
	 */
	public int[] emFeatureList = new int[NetSDKLib.MAX_FEATURE_LIST_SIZE];

	/**
	 * 支持规则的最大个数
	 */
	public int nMaxRules;

	/**
	 * 人体检测能力
	 */
	public FACEBODY_DETECT_CAPS stuFaceBodyDetectCaps;

	/**
	 * 人体识别能力
	 */
	public FACEBODY_ANALYSE_CAPS stuFaceBodyAnalyseCaps;

	/**
	 * 是否允许配置FeatureEnable,0-不支持(默认)1-支持(用于绊线检测事件和警戒区域检测事件)
	 */
	public int nFeatureSupport;

	/**
	 * 人员聚集检测是否支持"最小聚集区域"配置,默认TRUE
	 */
	public int bSupportMinRegion;

	/**
	 * 支持的联动特写情况。 0:表示没这个字段或者不支持,1表示支持
	 */
	public int nSupportCloseUp;

	/**
	 * 特写模式个数
	 */
	public int nSupportCloseUpTypeNum;

	/**
	 * 可选择特写模式, 参考{ @link EM_SUPPORT_CLOSE_UP_TYPE}
	 */
	public int[] emSupportCloseUpType = new int[32];

	/**
	 * 睿厨着装检特征列表,参考 { @link EM_FEATURE_LIST_TYPE}
	 */
	public int[] emFeature = new int[32];

	/**
	 * 检测到的特征个数
	 */
	public int nDetectFeatureCount;

	/**
	 * 检测到的厨师服装颜色列表,参考 { @link EM_SUPPORTED_COLOR_LIST_TYPE}
	 */
	public int[] emSupportedColorList = new int[8];

	/**
	 * 检测到的厨师服装颜色个数
	 */
	public int nDetectSupportedColorCount;

	/**
	 * 人群分布图是否支持多边形,TRUE:表示支持任意边形;FALSE:表示没有这个能力表示或者只支持4个点的平行四边形
	 */
	public int bSupportPolygon;

	/**
	 * 活跃度统计规则
	 */
	public CFG_ACTIVITY_ANALYSE_CAPS stuActivityAnalyseCaps;

	/**
	 * 联动业务个数
	 */
	public int nLink;

	/**
	 * 联动业务大类选项
	 */
	public CFG_LINK_CLASS_TYPE[] stuLinkClassType = (CFG_LINK_CLASS_TYPE[]) new CFG_LINK_CLASS_TYPE().toArray(16);

	/**
	 * 人像检测
	 */
	public CFG_PORTRAIT_DETECTION_CAPS	 stuPortraitDetectionCaps;

	public SCENE_SUPPORT_RULE() {

		for (int i = 0; i < szObjectTypeName.length; i++) {
			szObjectTypeName[i] = new MaxNameByteArrInfo();
		}
		for (int i = 0; i < szSupportedActions.length; i++) {
			szSupportedActions[i] = new MaxNameByteArrInfo();
		}
		for (int i = 0; i < szSupportedDetectTypes.length; i++) {
			szSupportedDetectTypes[i] = new MaxNameByteArrInfo();
		}
		for (int i = 0; i < szSupportFaceTypes.length; i++) {
			szSupportFaceTypes[i] = new MaxNameByteArrInfo();
		}
		for (int i = 0; i < stuLinkClassType.length; i++) {
			stuLinkClassType[i] = new CFG_LINK_CLASS_TYPE();
		}

	}

}