flagflag  If you want to see English page, please click "English" Button at Left.
3: 2011-12-11 (日) 21:25:50 iseki ソース 現: 2011-12-15 (木) 21:44:41 admin ソース
Line 3: Line 3:
   Vector<double> vect;    Vector<double> vect;
   bool normal_joint[OPENNI_MAX_JOINT_NUM];    bool normal_joint[OPENNI_MAX_JOINT_NUM];
 + 
   //    //
   for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {    for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {
Line 17: Line 17:
       }        }
   }    }
- +  
 + 
   // mPelvis    // mPelvis
   posVect[0] = (posVect[17] + posVect[21])*0.5;    posVect[0] = (posVect[17] + posVect[21])*0.5;
Line 25: Line 25:
   rotQuat[0].setRotation(thz, 0.0, 0.0, 1.0);    rotQuat[0].setRotation(thz, 0.0, 0.0, 1.0);
   if (!isCalibrated) setStartPosData(posVect[0]);    if (!isCalibrated) setStartPosData(posVect[0]);
- +  
 + 
   //    //
   for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {    for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {
       normal_joint[j] = true;        normal_joint[j] = true;
 + 
       if (OpenNI2SLJointNum[j]>=0) {        if (OpenNI2SLJointNum[j]>=0) {
           if (jointRotationConfidence((XnSkeletonJoin​t)j)>EXKINECT_WND_CONFIDENCE) {            if (jointRotationConfidence((XnSkeletonJoin​t)j)>EXKINECT_WND_CONFIDENCE) {
Line 42: Line 42:
               double m33 = rot.elements[8];                double m33 = rot.elements[8];
               Vector<double> eul = RotMatrixElements2EulerXYZ(m11, m12, m13, m21, m31, m32, m33);                Vector<double> eul = RotMatrixElements2EulerXYZ(m11, m12, m13, m21, m31, m32, m33);
- + 
-                if (j==2 || j==3 || j==6 || j==12 || j==17 || j==21) { +
-                   if (Xabs(-eul.y-thz)>PI_DIV2) eul.y = -thz; +
-               }+
               Vector<double> vct(-eul.x, -eul.y, eul.z);    // Mirror: vct(-eul.x, eul.y, -eul.z);                Vector<double> vct(-eul.x, -eul.y, eul.z);    // Mirror: vct(-eul.x, eul.y, -eul.z);
               rotQuat[j].setEulerYZX(vct);                rotQuat[j].setEulerYZX(vct);
Line 55: Line 52:
       }        }
   }    }
- +  
 + 
   // Leg    // Leg
   rotQuat[22] = ~rotQuat[21]*rotQuat[22];    rotQuat[22] = ~rotQuat[21]*rotQuat[22];
   rotQuat[18] = ~rotQuat[17]*rotQuat[18];    rotQuat[18] = ~rotQuat[17]*rotQuat[18];
 + 
   // Right Hand    // Right Hand
   rotQuat[13] = ~rotQuat[12]*rotQuat[13];    rotQuat[13] = ~rotQuat[12]*rotQuat[13];
   rotQuat[12] = ~rotQuat[ 2]*rotQuat[12];    rotQuat[12] = ~rotQuat[ 2]*rotQuat[12];
 + 
   // Left Hand    // Left Hand
   rotQuat[ 7] = ~rotQuat[ 6]*rotQuat[ 7];    rotQuat[ 7] = ~rotQuat[ 6]*rotQuat[ 7];
   rotQuat[ 6] = ~rotQuat[ 2]*rotQuat[ 6];    rotQuat[ 6] = ~rotQuat[ 2]*rotQuat[ 6];
 + 
   rotQuat[ 2] = ~rotQuat[ 3]*rotQuat[ 2];    rotQuat[ 2] = ~rotQuat[ 3]*rotQuat[ 2];
   rotQuat[ 3] = ~rotQuat[ 0]*rotQuat[ 3];    rotQuat[ 3] = ~rotQuat[ 0]*rotQuat[ 3];
- +  
 + 
   // Set to Shared Memory    // Set to Shared Memory
   for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {    for (int j=1; j<OPENNI_MAX_JOINT_NUM; j++) {
Line 86: Line 83:
       }        }
   }    }
 + 
   // mPelvis(0)    // mPelvis(0)
   double* shm = theApp.ptrShm[0];    double* shm = theApp.ptrShm[0];


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
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
<今日>

オンライン状況

65 人のユーザが現在オンラインです。 (13 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 65

もっと...

アクセスカウンタ

今日 : 4040404040404040
昨日 : 1889718897188971889718897
総計 : 2341763723417637234176372341763723417637234176372341763723417637
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com