internal static VisionDetectOption FromReader(ushort size, BinaryReader reader) { Validate(size); var result = new VisionDetectOption { Detected = reader.ReadUInt32(), Type = GetUInt32Array(reader, DetectionResults), Xc = GetUInt32Array(reader, DetectionResults), Yc = GetUInt32Array(reader, DetectionResults), Width = GetUInt32Array(reader, DetectionResults), Height = GetUInt32Array(reader, DetectionResults), Distance = GetUInt32Array(reader, DetectionResults), OrientationAngle = GetSingleArray(reader, DetectionResults), Rotation = Matrix33.GetMatrixArray(reader, DetectionResults), Translation = Vector.GetVectorArray(reader, DetectionResults), CameraSource = GetUInt32Array(reader, DetectionResults) }; return(result); }
private void AddOption(NavDataTag optionId, ushort size, BinaryReader reader) { switch (optionId) { case NavDataTag.Demo: Demo = DemoOption.FromReader(size, reader); break; case NavDataTag.Checksum: CheckSum = ChecksumOption.FromBytes(size, reader); break; case NavDataTag.VisionDetect: VisionDetect = VisionDetectOption.FromReader(size, reader); break; case NavDataTag.Wifi: Wifi = WifiOption.FromReader(size, reader); break; case NavDataTag.HdVideoStream: HdVideoStream = HdVideoStreamOption.FromReader(size, reader); break; default: if (false && Debugger.IsAttached) { // An unhandled navdata option was detected; break into the debugger Debugger.Break(); } else { for (int i = 0; i < size - 4; i++) { reader.ReadByte(); } } break; } }