Ejemplo n.º 1
0
        public static IKBone ToIKBone(HumanBodyBones boneID)
        {
            if (_toIKBone.Count == 0)
            {
                for (IKBone b = 0; b < IKBone.LastBone; b++)
                {
                    _toIKBone[QuickUtils.ParseEnum <HumanBodyBones>(b.ToString())] = b;
                }
            }

            return(_toIKBone[boneID]);
        }
Ejemplo n.º 2
0
        public static HumanBodyBones ToHumanBodyBones(IKBone ikBone)
        {
            if (_toHumanBodyBones.Count == 0)
            {
                for (IKBone b = 0; b < IKBone.LastBone; b++)
                {
                    _toHumanBodyBones.Add(QuickUtils.ParseEnum <HumanBodyBones>(b.ToString()));
                }
            }

            return(_toHumanBodyBones[(int)ikBone]);
        }
Ejemplo n.º 3
0
        private static void Init()
        {
            _allJoints = QuickUtils.ParseEnum <QuickHumanBodyBones, TrackedJointBody>();
            foreach (QuickHumanFingers f in QuickHumanTrait.GetHumanFingers())
            {
                _allJoints.AddRange(QuickHumanTrait.GetBonesFromFinger(f, true));
                _allJoints.AddRange(QuickHumanTrait.GetBonesFromFinger(f, false));
            }

            foreach (TrackedJointBody j in QuickUtils.GetEnumValues <TrackedJointBody>())
            {
                _toTrackedJointBody[QuickUtils.ParseEnum <QuickHumanBodyBones>(j.ToString())] = j;
            }
        }
        public static T EnumPopup <T>(string label, T value) where T : struct
        {
            string[] values        = QuickUtils.GetEnumValuesToString <T>().ToArray();
            int      selectedIndex = 0;

            for (int i = 0; i < values.Length; i++)
            {
                if (values[i] == value.ToString())
                {
                    selectedIndex = i;
                    break;
                }
            }

            return(QuickUtils.ParseEnum <T>(values[EditorGUILayout.Popup(label, selectedIndex, values)]));
        }
Ejemplo n.º 5
0
        private static Dictionary <QuickHumanFingers, List <QuickHumanBodyBones> > InitHumanFingers(bool isLeft)
        {
            Dictionary <QuickHumanFingers, List <QuickHumanBodyBones> > result = new Dictionary <QuickHumanFingers, List <QuickHumanBodyBones> >();
            string prefix = isLeft ? "Left" : "Right";

            string[] phalanges = { "Proximal", "Intermediate", "Distal", "Tip" };
            foreach (QuickHumanFingers f in GetHumanFingers())
            {
                result[f] = new List <QuickHumanBodyBones>();
                foreach (string p in phalanges)
                {
                    QuickHumanBodyBones fingerBone = QuickUtils.ParseEnum <QuickHumanBodyBones>(prefix + f.ToString() + p);
                    result[f].Add(fingerBone);
                    _fingerFromBone[fingerBone] = f;
                }
            }

            return(result);
        }
Ejemplo n.º 6
0
        protected virtual void OnControllerUpdate(
            string id,
            int index,
            string handValue,
            bool hasOrientation,
            bool hasPosition,
            Quaternion orientation,
            Vector3 position,
            Vector3 linearAcceleration,
            Vector3 linearVelocity,
            WebXRControllerButton[] buttonValues,
            float[] axesValues)
        {
            object hValue = QuickUtils.ParseEnum(typeof(WebXRControllerHand), handValue.ToUpper());

            if (hValue != null && (WebXRControllerHand)hValue == _controller.hand)
            {
                _buttonValues = buttonValues;
                _axesValues   = axesValues;
            }
        }
Ejemplo n.º 7
0
        private static object LoadNodeValue(Type valueType, XmlElement nodeField)
        {
            if (valueType == typeof(int))
            {
                return(QuickUtils.ParseInt(nodeField.FirstChild.InnerText));
            }
            else if (valueType == typeof(float))
            {
                return(QuickUtils.ParseFloat(nodeField.FirstChild.InnerText));
            }
            else if (valueType == typeof(string))
            {
                return(nodeField.FirstChild.InnerText);
            }
            else if (valueType == typeof(bool))
            {
                return(QuickUtils.ParseBool(nodeField.FirstChild.InnerText));
            }
            else if (valueType.IsEnum)
            {
                return(QuickUtils.ParseEnum(valueType, nodeField.FirstChild.InnerText));
            }
            else if (IsUnityFloatContainer(valueType))
            {
                return(LoadUnityFloatContainer(valueType, nodeField));
            }
            else if (valueType.IsSubclassOf(typeof(UnityEngine.Object)))
            {
#if UNITY_EDITOR
                string guid      = nodeField.FirstChild.InnerText;
                string assetPath = UnityEditor.AssetDatabase.GUIDToAssetPath(guid);
                return(UnityEditor.AssetDatabase.LoadAssetAtPath(assetPath, valueType));
#endif
            }
            //else if (valueType.IsClass) return Activator.CreateInstance(valueType);

            return(null);
        }
Ejemplo n.º 8
0
 protected static void Init()
 {
     _typeList = QuickUtils.ParseEnum <QuickHumanBodyBones, Type>(QuickUtils.GetEnumValues <Type>());
 }
 public static T GetEnum <T>(string key, T defaultValue = default(T)) where T : struct
 {
     return(QuickUtils.ParseEnum <T>(GetString(key, defaultValue.ToString())));
 }