Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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);
            }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
            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);
            }
Exemplo n.º 5
0
            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));
            }
Exemplo n.º 6
0
            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);
            }