33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
using OpenCVForUnity.CoreModule;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class HeadTurnRight : PoseBase
|
|
{
|
|
public override bool CheckPose(List<Point> points)
|
|
{
|
|
// 必须包含 Nose 和 LEar 和 Neck 的点位
|
|
if (!YogaManager.Instance.ActionCheckPoints(points))
|
|
return false;
|
|
|
|
var basePoint = YogaManager.Instance.Points;
|
|
if (!YogaManager.Instance.ActionCheckPoints(basePoint))
|
|
return false;
|
|
|
|
//左转头检测
|
|
|
|
var headVector = ("REye".vector(points) - "LEye".vector(points)).normalized;
|
|
var headBaseVector = ("REye".vector(basePoint) - "LEye".vector(basePoint)).normalized;
|
|
|
|
var noseVector = ("Nose".vector(points) - "Neck".vector(points)).normalized;
|
|
var noseBaseVector = ("Nose".vector(basePoint) - "Neck".vector(basePoint)).normalized;
|
|
|
|
if (Vector2.Dot(headVector, noseVector) < Vector2.Dot(headBaseVector, noseBaseVector) - 0.1f)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
}
|