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); } } } } }
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); } } } } } }