123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- using System.IO;
- namespace fis.Vid.Visuals
- {
- public enum VinnoUnit
- {
- None = 0,
- percent = 1,
- cm = 10,
- mm = 11,
- inch = 12,
- ft = 13,
- s = 20,
- minute = 21,
- hour = 22,
- day = 23,
- week = 24,
- week_day = 25,
- Tick = 26,
- msec = 27,
- degree = 30,
- radian = 31,
- g = 40,
- mg = 41,
- ng = 42,
- kg = 43,
- oz = 44,
- lb = 45,
- cm2 = 50,
- mm2 = 51,
- m2 = 52,
- cm3 = 60,
- mm3 = 61,
- ml = 62,
- L = 63,
- cms = 70,
- mms = 71,
- ms = 72,
- cms2 = 80,
- mms2 = 81,
- cm3s = 90,
- mls = 91,
- mlmin = 92,
- Lmin = 93,
- gcm3 = 100,
- gml = 101,
- ngml = 102,
- mmHg = 110,
- mV = 120,
- Hz = 130,
- KHz = 131,
- /// <summary>
- /// beats per minute
- /// </summary>
- HR = 132,
- //SI
- cm3m2 = 140,
- mlm2 = 141,
- //CI
- cm3sm2 = 150,
- mlsm2 = 151,
- cm3minm2 = 153,
- mlminm2 = 154,
- Lminm2 = 155,
- /// <summary>
- /// MVCF:mean velocity of circumferential fiber shortening
- /// </summary>
- circs = 160,
- //CO
- mlbeat = 170,
- mm2pa = 180,
- d1mpa = 181,
- kpa = 182,
- mmHgs = 190,
- gm2 = 200,
- /// AVA Index
- cm2m2 = 210
- }
- public class VinnoLogicalCoordinate
- {
- public bool IsFlipHorizontal { get; }
- public bool IsFlipVertical { get; }
- public VinnoRect Region { get; }
- public VinnoUnit XUnit { get; }
- public VinnoUnit YUnit { get; }
- public VinnoLogicalCoordinate(bool isFlipHorizontal, bool isFlipVertical, VinnoRect region, VinnoUnit xUnit, VinnoUnit yUnit)
- {
- YUnit = yUnit;
- XUnit = xUnit;
- Region = region;
- IsFlipVertical = isFlipVertical;
- IsFlipHorizontal = isFlipHorizontal;
- }
- public byte[] ToBytes()
- {
- byte[] result;
- using (var stream = new MemoryStream())
- {
- var writer = new VinnoStreamWriter(stream);
- writer.WriteBool(IsFlipHorizontal);
- writer.WriteBool(IsFlipVertical);
- writer.WriteByte((byte)XUnit);
- writer.WriteByte((byte)YUnit);
- writer.WriteDouble(Region.Left);
- writer.WriteDouble(Region.Top);
- writer.WriteDouble(Region.Right);
- writer.WriteDouble(Region.Bottom);
- result = stream.ToArray();
- }
- return result;
- }
- public static VinnoLogicalCoordinate FromBytes(byte[] bytes)
- {
- VinnoLogicalCoordinate result;
- using (var stream = new MemoryStream(bytes))
- {
- stream.Position = 0;
- var reader = new VinnoStreamReader(stream);
- var isFlipHorizontal = reader.ReadBool();
- var isFlipVertical = reader.ReadBool();
- var xUnit = (VinnoUnit)reader.ReadByte();
- var yUnit = (VinnoUnit)reader.ReadByte();
- var left = reader.ReadDouble();
- var top = reader.ReadDouble();
- var right = reader.ReadDouble();
- var bottom = reader.ReadDouble();
- var region = new VinnoRect(new VinnoPoint(left, top), new VinnoPoint(right, bottom));
- result = new VinnoLogicalCoordinate(isFlipHorizontal,isFlipVertical,region,xUnit,yUnit);
- }
- return result;
- }
- }
- }
|