コード例 #1
0
        public static IFinchProvider CreateControllerProvider()
        {
            switch (FinchSettings.DataSource)
            {
            case FinchDataSource.Controller:
            {
                FinchControllerType deviceType = FinchSettings.DeviceType;
                switch (deviceType)
                {
                case FinchControllerType.Dash:
                    if (FinchSettings.PoseTrackingAlgorithm == FinchPoseTrackingAlgorithm.GoogleVR)
                    {
                        return(new FinchGoogleAlgorithmProvider(deviceType));
                    }
                    else
                    {
                        return(new FinchOwnAlgorithmProvider(deviceType));
                    }

                case FinchControllerType.Shift:
                case FinchControllerType.Hand:
                    return(new FinchOwnAlgorithmProvider(deviceType));

                default:
                    return(new DummyProvider());
                }
            }

            case FinchDataSource.Disabled:
                return(new DummyProvider());

            default:
                throw new NotImplementedException();
            }
        }
コード例 #2
0
        /// <summary>
        ///     Init Finch Core.
        /// </summary>
        /// <param name="controller"></param>
        /// <returns></returns>
        public static FinchInitError Init(FinchControllerType controller)
        {
            var options = new FinchInitOptions
            {
                controller = controller,
                platform   = 2,
                scanner    = 1
            };

            Interop.FinchSetCs(new FinchVector3(0, -1, 0), new FinchVector3(0, 0, 1), new FinchVector3(1, 0, 0));
            return(Interop.FinchInit(options));
        }
コード例 #3
0
        public FinchProvider(FinchControllerType deviceType)
        {
            FinchInitError err = FinchCore.Init(deviceType);

            if (err != FinchInitError.None)
            {
                errorDetails = "Error creating/initializing Dash controller API: " + err;
                Debug.LogError(errorDetails);
                return;
            }
            FinchCore.LoadCalibrations();
            InitializeWatches();
            calibrationButtonState = new bool[(int)FinchChirality.Last];
        }
コード例 #4
0
 public void ChangeDevice(FinchControllerType deviceType)
 {
     FinchCore.Init(deviceType);
 }
コード例 #5
0
 public void ChangeDevice(FinchControllerType deviceType)
 {
     WarningDummy("ChangeDevice");
 }
コード例 #6
0
 public static void InitBuildSettings(FinchDataSource source, FinchControllerType type, FinchPoseTrackingAlgorithm trackingAlgorithm)
 {
     DataSource            = source;
     DeviceType            = type;
     PoseTrackingAlgorithm = trackingAlgorithm;
 }
コード例 #7
0
 public FinchOwnAlgorithmProvider(FinchControllerType deviceType) : base(deviceType)
 {
 }