public ParameterCurve(LuaTable table) { CLSID = (string)table["CLSID"]; switch (CLSID.ToLowerInvariant()) { case "freeformpcurve": Type = PCurveType.FreeForm; break; case "bumpinpcurve": Type = PCurveType.BumpIn; break; case "bumpoutpcurve": Type = PCurveType.BumpOut; break; case "rampdownpcurve": Type = PCurveType.RampDown; break; case "rampuppcurve": Type = PCurveType.RampUp; break; case "steppcurve": Type = PCurveType.Step; break; case "smoothpcurve": Type = PCurveType.Step; break; case "thornlpcurve": Type = PCurveType.ThornL; break; case "linearpcurve": Type = PCurveType.Linear; break; case "catmullrompcurve": Type = PCurveType.CatmullRom; break; } var points = (LuaTable)table["points"]; Points = new List <Vector4>(); for (int i = 0; i < points.Capacity; i++) { var p = (LuaTable)points[i]; var v = new Vector4((float)p[0], (float)p[1], (float)p[2], (float)p[3]); Points.Add(v); } }
public ParameterCurve(PCurveType type, IEnumerable <Vector4> points) { Type = type; Points = points.ToList(); Period = -1; }