Beispiel #1
0
        public void LoadSensorDataFromModel(InkModel inkModel, SensorData sensorData)
        {
            // Load sensor data if missing
            if (mSensorDataMap.TryAdd(sensorData.Id, sensorData))
            {
                InputContext inputContext = inkModel.InputConfiguration.InputContexts.Find((ic) => ic.Id == sensorData.InputContextID);

                // Load input context if missing
                if (mInputContexts.TryAdd(inputContext.Id, inputContext))
                {
                    Wacom.Ink.Serialization.Model.Environment environment = inkModel.InputConfiguration.Environments.Find((env) => env.Id == inputContext.EnvironmentId);
                    mEnvironments.TryAdd(environment.Id, environment);

                    SensorContext sensorContext = inkModel.InputConfiguration.SensorContexts.Find((sc) => sc.Id == inputContext.SensorContextId);

                    // Load sensor context if missing
                    if (mSensorContexts.TryAdd(sensorContext.Id, sensorContext))
                    {
                        // Iterate and load sensor channels contexts if missing
                        for (int j = 0; j < sensorContext.SensorChannelContexts.Count; j++)
                        {
                            SensorChannelsContext sensorChannelsContext = sensorContext.SensorChannelContexts[j];

                            // Load input device if missing
                            mInputDevices.TryAdd(sensorChannelsContext.InputDevice.Id, sensorChannelsContext.InputDevice);

                            // Load ink input provider if missing
                            mInkInputProvidersMap.TryAdd(sensorChannelsContext.InkInputProvider.Id, sensorChannelsContext.InkInputProvider);
                        }
                    }
                }
            }
        }
Beispiel #2
0
        private void AddSensorDataToModel(SensorData sensorData)
        {
            // Add sensor data if missing
            if (!InkDocument.SensorData.ContainsId(sensorData.Id))
            {
                InkDocument.SensorData.Add(sensorData);

                InputContext inputContext = mInputContexts[sensorData.InputContextID];

                // Add input context if missing
                if (!InkDocument.InputConfiguration.InputContexts.Contains(inputContext))
                {
                    InkDocument.InputConfiguration.InputContexts.Add(inputContext);

                    Wacom.Ink.Serialization.Model.Environment environment = mEnvironments[inputContext.EnvironmentId];

                    // Add environment if missing
                    if (!InkDocument.InputConfiguration.Environments.Contains(environment))
                    {
                        InkDocument.InputConfiguration.Environments.Add(environment);
                    }

                    SensorContext sensorContext = mSensorContexts[inputContext.SensorContextId];

                    // Add sensor context if missing
                    if (!InkDocument.InputConfiguration.SensorContexts.Contains(sensorContext))
                    {
                        InkDocument.InputConfiguration.SensorContexts.Add(sensorContext);

                        // Iterate and add sensor channels contexts if missing
                        for (int i = 0; i < sensorContext.SensorChannelContexts.Count; i++)
                        {
                            SensorChannelsContext sensorChannelsContext = sensorContext.SensorChannelContexts[i];

                            // Add input device if missing
                            if (!InkDocument.InputConfiguration.Devices.Contains(sensorChannelsContext.InputDevice))
                            {
                                InkDocument.InputConfiguration.Devices.Add(sensorChannelsContext.InputDevice);
                            }

                            // Add ink input provider if missing
                            if (!InkDocument.InputConfiguration.InkInputProviders.Contains(sensorChannelsContext.InkInputProvider))
                            {
                                InkDocument.InputConfiguration.InkInputProviders.Add(sensorChannelsContext.InkInputProvider);
                            }
                        }
                    }
                }
            }
        }