public static void SetPosition(ref Command cmd, ref XYZData xyzData, Transform trans) { cmd.types |= EPacketTypes.POSITION; cmd.xyzData.position = new double[3]; cmd.xyzData.position[0] = trans.localPosition.x; cmd.xyzData.position[1] = trans.localPosition.y; cmd.xyzData.position[2] = trans.localPosition.z; }
public static void SetRotation(ref Command cmd, ref XYZData xyzData, Transform trans) { cmd.types |= EPacketTypes.ROTATION; xyzData.rotation = new double[4]; xyzData.rotation[0] = trans.localRotation.x; xyzData.rotation[1] = trans.localRotation.y; xyzData.rotation[2] = trans.localRotation.z; xyzData.rotation[3] = trans.localRotation.w; }
public static XYZData Parse(string input) { var xyzData = new XYZData { X = 100000, Y = 100000, Z = 100000 }; if (string.IsNullOrWhiteSpace(input)) { return(xyzData); } var parts = input.Split(); foreach (var part in parts) { double result; if (part.Length < 2 || !double.TryParse(part.Substring(1), out result)) { continue; } if (part.StartsWith("X", StringComparison.OrdinalIgnoreCase)) { xyzData.X = result; continue; } if (part.StartsWith("Y", StringComparison.OrdinalIgnoreCase)) { xyzData.Y = result; continue; } if (part.StartsWith("Z", StringComparison.OrdinalIgnoreCase)) { xyzData.Z = result; continue; } } return(xyzData); }
/// <summary> /// Creates SIC's mapped by charge state for the MS Features in the feature. /// </summary> /// <param name="feature"></param> /// <param name="provider">Object that can read data from a raw file or data source.</param> /// <returns></returns> public static Dictionary <int, List <XYZData> > CreateChargeSIC(this UMCLight feature, ISpectraProvider provider) { var chargeMap = feature.CreateChargeMap(); var sicMap = new Dictionary <int, List <XYZData> >(); foreach (var charge in chargeMap.Keys) { chargeMap[charge].Sort(delegate(MSFeatureLight x, MSFeatureLight y) { return(x.Scan.CompareTo(y.Scan)); } ); var data = chargeMap[charge].ConvertAll(x => new XYZData(x.Scan, x.Abundance, x.Mz)); sicMap.Add(charge, data); } if (provider != null) { // Creates an SIC map for a given charge state of the feature. foreach (var charge in sicMap.Keys) { var data = sicMap[charge]; // The data is alread sorted. var minScan = int.MaxValue; var maxScan = int.MinValue; var mzValues = new List <double>(); foreach (var x in data) { mzValues.Add(x.Z); minScan = Math.Min(minScan, Convert.ToInt32(x.X)); maxScan = Math.Max(maxScan, Convert.ToInt32(x.X)); } mzValues.Sort(); double mz = 0; var mid = Convert.ToInt32(mzValues.Count / 2); mz = mzValues[mid]; minScan -= 20; maxScan += 20; // Build the SIC var intensities = new List <XYZData>(); for (var scan = minScan; scan < maxScan; scan++) { var summary = new ScanSummary(); var spectrum = provider.GetRawSpectra(scan, 1, out summary); double intensity = 0; var minDistance = double.MaxValue; var index = -1; for (var i = 0; i < spectrum.Count; i++) { var distance = spectrum[i].X - mz; if (distance < minDistance) { index = i; minDistance = distance; } } if (index >= 0) { intensity = spectrum[index].Y; } var newPoint = new XYZData(scan, intensity, mz); intensities.Add(newPoint); } sicMap[charge] = intensities; } } return(sicMap); }
public static void SetAction(ref Command cmd, ref XYZData xyzData, int actionID) { cmd.types |= EPacketTypes.ACTION; xyzData.action = actionID; }