コード例 #1
0
        /// <summary>
        /// Format The original data from engine
        /// </summary>
        private string Analysis(YSNode[] node, float[] facePose, float[] exp, YSNode[] unity_p3dUserFace)
        {
            trackerData.reset();
            trackerData.mirror        = source.getMirror();      // mirror[platformId];
            trackerData.videoRotation = source.getRotation();    // trackRotation[platformId];
            for (int i = 0; i < NUM_MASK_MODEL_78; i++)
            {
                Vector3 temp = new Vector3(node[i].x / staticVideoWidth, node[i].y / staticVideoHeight, 0);                 //node[i].z
                trackerData.node.Add(temp);
            }
            for (int i = 0; i < NUM_POSE_6; i++)
            {
                trackerData.facePose [i] = facePose[i];
            }

            for (int i = 0; i < EM_NUM_TOTAL; i++)
            {
                trackerData.exp [i] = trackerData.exp[i] * 0.7f + exp[i] * 0.2f;
            }

            for (int i = 0; i < NUM_FACE_PROPERTY; i++)
            {
                trackerData.p3dnode.Add(new Vector3(unity_p3dUserFace[i].x, unity_p3dUserFace[i].y, unity_p3dUserFace[i].z));
            }
            return("0");
        }
コード例 #2
0
 public static Vector3 GetPosition(string name)
 {
     if (name == null)
     {
         Debug.LogError("[FduClusterInput]Tracker name can not be null");
         return(Vector3.zero);
     }
     if (!_instance._trackerMap.ContainsKey(name))
     {
         if (_instance.isMaster)
         {
             SerializeData _data = new SerializeData();
             _data.name = name;
             _data.type = FduClusterInputType.Tracker;
             TrackerData tData = new TrackerData();
             tData.reset();
             _instance._sendList.Add(_data);
             _instance._trackerMap.Add_overlay(name, tData);
         }
         return(Vector3.zero);
     }
     else
     {
         return(_instance._trackerMap[name].getPosValue());
     }
 }
コード例 #3
0
 public static void SetQuaternion(string name, Quaternion value)
 {
     if (name == null)
     {
         Debug.LogError("[FduClusterInput]Tracker name can not be null");
         return;
     }
     if (!_instance.isMaster)
     {
         return;
     }
     if (!_instance._trackerMap.ContainsKey(name))
     {
         if (_instance.isMaster)
         {
             SerializeData _data = new SerializeData();
             _data.name = name;
             _data.type = FduClusterInputType.Tracker;
             TrackerData tData = new TrackerData();
             tData.reset();
             tData.setRotValue(value);
             _instance._sendList.Add(_data);
             _instance._trackerMap.Add_overlay(name, tData);
         }
     }
     else
     {
         _instance._trackerMap[name].setRotValue(value);
     }
 }
コード例 #4
0
        public override NetworkState.NETWORK_STATE_TYPE Deserialize()
        {
            NetworkState.NETWORK_STATE_TYPE state = NetworkState.NETWORK_STATE_TYPE.SUCCESS;
            int count = BufferedNetworkUtilsClient.ReadInt(ref state);

            for (int i = 0; i < count; ++i)
            {
                string name = BufferedNetworkUtilsClient.ReadString(ref state);
                FduClusterInputType type = (FduClusterInputType)BufferedNetworkUtilsClient.ReadByte(ref state);
                switch (type)
                {
                case FduClusterInputType.Axis:
                    float fvalue = BufferedNetworkUtilsClient.ReadFloat(ref state);
                    if (!_axisMap.ContainsKey(name))
                    {
                        AxisData _data = new AxisData();
                        _data.reset();
                        _data.setValue(fvalue);
                        _axisMap.Add(name, _data);
                    }
                    else
                    {
                        _axisMap[name].setValue(fvalue);
                    }
                    break;

                case FduClusterInputType.Button:
                    bool bvalue = BufferedNetworkUtilsClient.ReadBool(ref state);
                    if (!_buttonMap.ContainsKey(name))
                    {
                        ButtonData _data = new ButtonData();
                        _data.reset();
                        _data.setValue(bvalue);
                        _buttonMap.Add(name, _data);
                    }
                    else
                    {
                        _buttonMap[name].setValue(bvalue);
                    }
                    break;

                case FduClusterInputType.Tracker:
                    Vector3    v3Value = BufferedNetworkUtilsClient.ReadVector3(ref state);
                    Quaternion quValue = BufferedNetworkUtilsClient.ReadQuaternion(ref state);
                    if (!_trackerMap.ContainsKey(name))
                    {
                        TrackerData _data = new TrackerData();
                        _data.reset();
                        _data.setPosValue(v3Value);
                        _data.setRotValue(quValue);
                        _trackerMap.Add(name, _data);
                    }
                    else
                    {
                        _trackerMap[name].setPosValue(v3Value);
                        _trackerMap[name].setRotValue(quValue);
                    }
                    break;
                }
            }
            //if(!BufferedNetworkUtilsClient.ReadString(ref state).Equals("ClusterInputMgrEndFlag"))
            //{
            //    Debug.LogError("Wrong end!");
            //}
            //StartCoroutine(swapValueCo());
            return(state);
        }