public C3dWriter(string [] pointNames, float expectedFrameRate, string [] analogChannelNames = null, Int16 analogSamplesPerFrame = 0, bool eventsEnabled = false) { if (analogSamplesPerFrame * analogChannelNames.Length >= Int16.MaxValue) { throw new ApplicationException("Analog section is too big for C3D file. Reduce amount of channels or samples per frame"); } _eventsEnabled = eventsEnabled; _nameToGroups = new Dictionary <string, ParameterGroup>(); _idToGroups = new Dictionary <int, ParameterGroup>(); _readOnlyParameters = new HashSet <string>(); _pointsLabels = new List <string>(); _header = new C3dHeader( (Int16)pointNames.Length, (Int16)(analogChannelNames.Length * analogSamplesPerFrame), analogSamplesPerFrame); _header.FrameRate = expectedFrameRate; SetDefaultParametrs(pointNames, analogChannelNames); }
public bool Open(string c3dFile) { _c3dFile = c3dFile; try { _fs = new FileStream(_c3dFile, FileMode.Open, FileAccess.Read); _reader = new BinaryReader(_fs); _header = new C3dHeader(); ReadHeader(); ReadParameters(); ParseRequiredParameters(); ReadEvents(); _reader.BaseStream.Seek(_dataStart, 0); } catch (Exception e) { Console.Error.WriteLine("C3dReader.Open(\"" + c3dFile + "\"): " + e.Message); return(false); } return(true); }