public LineSource(Curve SrcPath, String Code, int el_m, int SrcID, Phase_Regime ph) :base(new double[8]{60, 49, 41, 35, 31, 28, 26, 24}, new Point3d(0,0,0), ph, SrcID) { string type = SrcPath.GetUserString("SourceType"); if (type == "Aircraft (ANCON derived)") { double velocity = double.Parse(SrcPath.GetUserString("Velocity")); double delta = double.Parse(SrcPath.GetUserString("delta")); D = new ANCON(delta, velocity); } else D = new Simple(); samplespermeter = el_m; Curve = SrcPath; //Divide curve up in ~equal length segments. Samples = Curve.DivideEquidistant(1.0 / (double)samplespermeter); Level = Utilities.PachTools.DecodeSourcePower(Code); Power = new double[8]; double PowerMod = Curve.GetLength() / (double)Samples.Length; for (int oct = 0; oct < 8; oct++) Power[oct] = 1E-12 * Math.Pow(10, .1 * Level[oct]) * PowerMod; }