internal void UnParse(Stream s) { BinaryWriter w = new BinaryWriter(s); w.Write(name); w.Write(priority); w.Write((uint)areaTypeFlags); if (closedPolygon == null) { closedPolygon = new PolygonPointList(handler); } closedPolygon.UnParse(s); w.Write((uint)allowIntersectionFlags); w.Write((uint)surfaceTypeFlags); w.Write((uint)surfaceAttributeFlags); w.Write(levelOffset); if (ParentVersion >= 0x00000007) { w.Write(elevationOffset); } if (lower == null) { lower = new PolygonPoint(requestedApiVersion, handler); } lower.UnParse(s); if (upper == null) { upper = new PolygonPoint(requestedApiVersion, handler); } upper.UnParse(s); }
void Parse(Stream s) { BinaryReader r = new BinaryReader(s); this.name = r.ReadUInt32(); this.priority = r.ReadByte(); this.areaTypeFlags = (AreaType)r.ReadUInt32(); this.closedPolygon = new PolygonPointList(handler, s); this.allowIntersectionFlags = (AllowIntersection)r.ReadUInt32(); this.surfaceTypeFlags = (SurfaceType)r.ReadUInt32(); this.surfaceAttributeFlags = (SurfaceAttribute)r.ReadUInt32(); this.levelOffset = r.ReadByte(); this.elevationOffset = ParentVersion >= 0x00000007 ? r.ReadSingle() : 0; this.lower = new PolygonPoint(requestedApiVersion, handler, s); this.upper = new PolygonPoint(requestedApiVersion, handler, s); }
public Area(int APIversion, EventHandler handler, uint version, uint name, byte priority, FootprintPolyFlags areaTypeFlags, IEnumerable <PolygonPoint> closedPolygon, IntersectionFlags intersectionObjectType, IntersectionFlags allowIntersectionTypes, SurfaceTypeFlags surfaceTypeFlags, SurfaceAttribute surfaceAttributeFlags, byte deprecatedLevelOffset, BoundingBox boundingBox3D) : base(APIversion, handler) { this.ParentVersion = version; this.name = name; this.priority = priority; this.areaTypeFlags = areaTypeFlags; this.pointList = closedPolygon == null ? null : new PolygonPointList(handler, closedPolygon); this.intersectionObjectType = intersectionObjectType; this.allowIntersectionTypes = allowIntersectionTypes; this.surfaceTypeFlags = surfaceTypeFlags; this.surfaceAttributeFlags = surfaceAttributeFlags; this.deprecatedLevelOffset = deprecatedLevelOffset; this.boundingBox3D = new BoundingBox(APIversion, handler, boundingBox3D); }
public Area(int APIversion, EventHandler handler, uint version, uint name, byte priority, AreaType areaTypeFlags, IEnumerable <PolygonPoint> closedPolygon, AllowIntersection allowIntersectionFlags, SurfaceType surfaceTypeFlags, SurfaceAttribute surfaceAttributeFlags, byte levelOffset, float elevationOffset, PolygonPoint lower, PolygonPoint upper) : base(APIversion, handler) { this.ParentVersion = version; this.name = name; this.priority = priority; this.areaTypeFlags = areaTypeFlags; this.closedPolygon = closedPolygon == null ? null : new PolygonPointList(handler, closedPolygon); this.allowIntersectionFlags = allowIntersectionFlags; this.surfaceTypeFlags = surfaceTypeFlags; this.surfaceAttributeFlags = surfaceAttributeFlags; this.levelOffset = levelOffset; this.elevationOffset = elevationOffset; this.lower = new PolygonPoint(APIversion, handler, lower); this.upper = new PolygonPoint(APIversion, handler, upper); }
void Parse(Stream s) { BinaryReader r = new BinaryReader(s); this.name = r.ReadUInt32(); this.priority = r.ReadByte(); this.areaTypeFlags = (FootprintPolyFlags)r.ReadUInt32(); this.pointList = new PolygonPointList(handler, s); this.intersectionObjectType = (IntersectionFlags)r.ReadUInt32(); this.allowIntersectionTypes = (IntersectionFlags)r.ReadUInt32(); this.surfaceTypeFlags = (SurfaceTypeFlags)r.ReadUInt32(); this.surfaceAttributeFlags = (SurfaceAttribute)r.ReadUInt32(); this.deprecatedLevelOffset = r.ReadByte(); float min3d_x = r.ReadSingle(); float min3d_z = r.ReadSingle(); float max3d_x = r.ReadSingle(); float max3d_z = r.ReadSingle(); float min3d_y = r.ReadSingle(); float max3d_y = r.ReadSingle(); boundingBox3D = new BoundingBox(1, handler, new Vertex(1, handler, min3d_x, min3d_y, min3d_z), new Vertex(1, handler, max3d_x, max3d_y, max3d_z)); }
internal void UnParse(Stream s) { BinaryWriter w = new BinaryWriter(s); w.Write(name); w.Write(priority); w.Write((uint)areaTypeFlags); if (pointList == null) { pointList = new PolygonPointList(handler); } pointList.UnParse(s); w.Write((uint)intersectionObjectType); w.Write((uint)allowIntersectionTypes); w.Write((uint)surfaceTypeFlags); w.Write((uint)surfaceAttributeFlags); w.Write(deprecatedLevelOffset); w.Write(boundingBox3D.Min.X); w.Write(boundingBox3D.Min.Z); w.Write(boundingBox3D.Max.X); w.Write(boundingBox3D.Max.Z); w.Write(boundingBox3D.Min.Y); w.Write(boundingBox3D.Max.Y); }