private GestureDetector InitTrain(string name, bool isUseRel) { m_tagCount = Mathf.Max(m_skRecorder.m_tagList.ToArray()); GestureDetector gd = new GestureDetector(); gd.m_name = name; gd.m_jointIdx = (Joint[])m_jointIdx.Clone(); gd.m_thresMulPerPost = new float[m_tagCount]; gd.m_thresMulPerJoint = new float[JointCount]; PostureDetector[] pd = new PostureDetector[m_tagCount]; gd.m_posts = pd; for (int i = 0; i < m_tagCount; i++) { gd.m_thresMulPerPost[i] = 1; pd[i] = new PostureDetector(); pd[i].m_name = name + '_' + (i + 1); JointMatcher[] jm = new JointMatcher[JointCount]; pd[i].m_jointMatcher = jm; for (int j = 0; j < JointCount; j++) { if (i == 0 || !isUseRel) { jm[j] = new JointMatcher(); } else { jm[j] = new JointMatcherR(); ((JointMatcherR)jm[j]).SetLastPostJoint(gd, i, j); } jm[j].m_jointIdx = m_jointIdx[j]; gd.m_thresMulPerJoint[j] = 1; } } return(gd); }
public void SetLastPostJoint(GestureDetector gd, int postIdx, int jointIdx) { m_lastPostJoint = gd[postIdx - 1][jointIdx]; m_gd = gd; m_lastPostIdx = postIdx - 1; }