public void Populate(IGeometrySink sink) { sink.SetCoordinateSystem(CoordinateSystem); sink.BeginGeometry(GeometryType.Polygon); if ( (lowerCorner!=null) && (lowerCorner.TypedValue!=null) && (lowerCorner.TypedValue.Count==2) && (upperCorner!=null) && (upperCorner.TypedValue!=null) && (upperCorner.TypedValue.Count==2) ) { double minlon=Math.Min(lowerCorner.TypedValue[0], upperCorner.TypedValue[0]); double maxlon=Math.Max(lowerCorner.TypedValue[0], upperCorner.TypedValue[0]); double minlat=Math.Min(lowerCorner.TypedValue[1], upperCorner.TypedValue[1]); double maxlat=Math.Max(lowerCorner.TypedValue[1], upperCorner.TypedValue[1]); sink.BeginFigure(minlon, minlat, null); sink.AddLine(maxlon, minlat, null); sink.AddLine(maxlon, maxlat, null); sink.AddLine(minlon, maxlat, null); sink.AddLine(minlon, minlat, null); sink.EndFigure(); } sink.EndGeometry(); }
private static void CreateFigure(IGeometrySink sink, IList <SmGeometries.Point> points) { if ((points == null) || (points.Count == 0)) { return; } var p0 = points[0]; var p03 = p0 as SmGeometries.Point3D; if (p03 != null) { sink.BeginFigure(p03.X, p03.Y, p03.Z); } else { sink.BeginFigure(p0.X, p0.Y, null); } for (int i = 1; i < points.Count; ++i) { var pi = points[i]; var pi3 = pi as SmGeometries.Point3D; if (pi3 != null) { sink.AddLine(pi3.X, pi3.Y, pi3.Z); } else { sink.AddLine(pi.X, pi.Y, null); } } sink.EndFigure(); }
public void Populate(IGeometrySink sink) { sink.SetCoordinateSystem(CoordinateSystem); sink.BeginGeometry(GeometryType.Polygon); if ( (lowerCorner != null) && (lowerCorner.TypedValue != null) && (lowerCorner.TypedValue.Count == 2) && (upperCorner != null) && (upperCorner.TypedValue != null) && (upperCorner.TypedValue.Count == 2) ) { double minlon = Math.Min(lowerCorner.TypedValue[0], upperCorner.TypedValue[0]); double maxlon = Math.Max(lowerCorner.TypedValue[0], upperCorner.TypedValue[0]); double minlat = Math.Min(lowerCorner.TypedValue[1], upperCorner.TypedValue[1]); double maxlat = Math.Max(lowerCorner.TypedValue[1], upperCorner.TypedValue[1]); sink.BeginFigure(minlon, minlat, null); sink.AddLine(maxlon, minlat, null); sink.AddLine(maxlon, maxlat, null); sink.AddLine(minlon, maxlat, null); sink.AddLine(minlon, minlat, null); sink.EndFigure(); } sink.EndGeometry(); }
/// <summary>Applies a geometry type call sequence to the specified <paramref name="sink" />.</summary> /// <param name="sink">The sink to populate.</param> /// <remarks> /// <para>The call sequence is a set of figures, lines, and points for geometry types.</para> /// </remarks> public void Populate(IGeometrySink sink) { sink.SetCoordinateSystem(CoordinateSystem); sink.BeginGeometry(GeometryType.Polygon); sink.BeginFigure(_Envelope.MinX, _Envelope.MinY, null); sink.AddLine(_Envelope.MaxX, _Envelope.MinY, null); sink.AddLine(_Envelope.MaxX, _Envelope.MaxY, null); sink.AddLine(_Envelope.MinX, _Envelope.MaxY, null); sink.AddLine(_Envelope.MinX, _Envelope.MinY, null); sink.EndFigure(); sink.EndGeometry(); }
public void AddLine(double latitude, double longitude, Nullable <double> z, Nullable <double> m) { double x, y; _projection.ProjectPoint(latitude, longitude, out x, out y); _sink.AddLine(x, y, z, m); }
public void AddLine(double latitude, double longitude, Nullable<double> z, Nullable<double> m) { double[] fromPoint = { longitude, latitude }; double[] toPoint = _trans.MathTransform.Transform(fromPoint); double x = toPoint[0]; double y = toPoint[1]; _sink.AddLine(x, y, z, m); }
public void AddLine(double x, double y, Nullable <double> z, Nullable <double> m) { double[] fromPoint = { x, y }; double[] toPoint = _trans.MathTransform.Transform(fromPoint); double tox = toPoint[0]; double toy = toPoint[1]; _sink.AddLine(tox, toy, z, m); }
public void AddLine(double x, double y, double?z, double?m) { if (m_insidePolygon) { m_figure.Add(new Vertex(x, y, z, m)); } else { m_sink.AddLine(x, y, z, m); } }
protected internal override void InternalPopulate(IGeometrySink sink) { int dim=2; if (srsDimension.HasValue) dim=Convert.ToInt32(srsDimension.Value); if (posList.srsDimension.HasValue) dim=Convert.ToInt32(posList.srsDimension.Value); sink.BeginFigure(posList.TypedValue[0], posList.TypedValue[1], dim>2 ? posList.TypedValue[2] : (double?)null); for (int i=dim; i<posList.TypedValue.Count; i+=dim) sink.AddLine(posList.TypedValue[i], posList.TypedValue[i+1], dim>2 ? posList.TypedValue[i+2] : (double?)null); sink.EndFigure(); }
private static void CreateFigure(IGeometrySink sink, FGeometry.DirectPositionCollection positions) { if ((positions == null) || (positions.Count == 0)) { return; } using (FGeometry.IDirectPosition p0 = positions[0]) { if (p0.Dimensionality > 2) { sink.BeginFigure(p0.X, p0.Y, p0.Z); } else { sink.BeginFigure(p0.X, p0.Y, null); } } for (int i = 1; i < positions.Count; ++i) { using (FGeometry.IDirectPosition pi = positions[i]) { if (pi.Dimensionality > 2) { sink.AddLine(pi.X, pi.Y, pi.Z); } else { sink.AddLine(pi.X, pi.Y, null); } } } sink.EndFigure(); }
internal protected override void InternalPopulate(IGeometrySink sink) { sink.BeginGeometry(GeometryType.LineString); //if (posList!=null) if (Untyped.Descendants("{http://www.opengis.net/gml}posList").Any<XElement>()) if ((posList.TypedValue!=null) && (posList.TypedValue.Count>=2)) { sink.BeginFigure(posList.TypedValue[0], posList.TypedValue[1], null); for (int i=2; i<posList.TypedValue.Count; i+=2) sink.AddLine(posList.TypedValue[i], posList.TypedValue[i+1], null); sink.EndFigure(); } sink.EndGeometry(); }
protected internal override void InternalPopulate(IGeometrySink sink) { int dim = 2; if (srsDimension.HasValue) { dim = Convert.ToInt32(srsDimension.Value); } if (posList.srsDimension.HasValue) { dim = Convert.ToInt32(posList.srsDimension.Value); } sink.BeginFigure(posList.TypedValue[0], posList.TypedValue[1], dim > 2 ? posList.TypedValue[2] : (double?)null); for (int i = dim; i < posList.TypedValue.Count; i += dim) { sink.AddLine(posList.TypedValue[i], posList.TypedValue[i + 1], dim > 2 ? posList.TypedValue[i + 2] : (double?)null); } sink.EndFigure(); }
internal protected override void InternalPopulate(IGeometrySink sink) { sink.BeginGeometry(GeometryType.LineString); //if (posList!=null) if (Untyped.Descendants("{http://www.opengis.net/gml}posList").Any <XElement>()) { if ((posList.TypedValue != null) && (posList.TypedValue.Count >= 2)) { sink.BeginFigure(posList.TypedValue[0], posList.TypedValue[1], null); for (int i = 2; i < posList.TypedValue.Count; i += 2) { sink.AddLine(posList.TypedValue[i], posList.TypedValue[i + 1], null); } sink.EndFigure(); } } sink.EndGeometry(); }
private void AddRandomSegment(IGeometrySink sink) { double which = Random.NextDouble(); if (which < 0.25) { sink.AddLine(RandomNearPoint()); } else if (which < 0.5) { sink.AddArc(RandomArc()); } else if (which < 0.75) { sink.AddBezier(RandomBezier()); } else if (which < 1.0) { sink.AddQuadraticBezier(RandomQuadraticBezier()); } }
internal static void Populate(IGeometrySink sink, IList <PointNode> points, GeometryType type) { if (points.Count > 0) { if (type != GeometryType.LineString) { sink.BeginGeometry(GeometryType.Point); } sink.BeginFigure(points[0].X, points[0].Y, null); if (type == GeometryType.MultiPoint) { sink.EndFigure(); } for (int i = 1; i < points.Count; ++i) { if (type == GeometryType.MultiPoint) { sink.BeginFigure(points[i].X, points[i].Y, null); sink.EndFigure(); } else { sink.AddLine(points[i].X, points[i].Y, null); } } if (type != GeometryType.MultiPoint) { sink.EndFigure(); } if (type != GeometryType.LineString) { sink.EndGeometry(); } } }
// Each AddLine call will just move the endpoint by the required amount. public void AddLine(double x, double y, double?z, double?m) { _target.AddLine(x + _xShift, y + _yShift, z, m); }
internal static void Populate(IGeometrySink sink, IList<PointNode> points, GeometryType type) { if (points.Count>0) { if (type!=GeometryType.LineString) sink.BeginGeometry(GeometryType.Point); sink.BeginFigure(points[0].X, points[0].Y, null); if (type==GeometryType.MultiPoint) sink.EndFigure(); for (int i=1; i<points.Count; ++i) if (type==GeometryType.MultiPoint) { sink.BeginFigure(points[i].X, points[i].Y, null); sink.EndFigure(); } else sink.AddLine(points[i].X, points[i].Y, null); if (type!=GeometryType.MultiPoint) sink.EndFigure(); if (type!=GeometryType.LineString) sink.EndGeometry(); } }
private static void CreateFigure(IGeometrySink sink, FGeometry.DirectPositionCollection positions) { if ((positions==null) || (positions.Count==0)) return; using (FGeometry.IDirectPosition p0=positions[0]) { if (p0.Dimensionality>2) sink.BeginFigure(p0.X, p0.Y, p0.Z); else sink.BeginFigure(p0.X, p0.Y, null); } for (int i=1; i<positions.Count; ++i) using (FGeometry.IDirectPosition pi=positions[i]) { if (pi.Dimensionality>2) sink.AddLine(pi.X, pi.Y, pi.Z); else sink.AddLine(pi.X, pi.Y, null); } sink.EndFigure(); }
public void AddLine(IGeometrySink sink) { sink.AddLine(x, y, z, m); }
public void AddLine(double x, double y, double?z, double?m) { m_sink.AddLine(x, y, z, m); }
private static void CreateFigure(IGeometrySink sink, IList<SmGeometries.Point> points) { if ((points==null) || (points.Count==0)) return; var p0=points[0]; var p03=p0 as SmGeometries.Point3D; if (p03!=null) sink.BeginFigure(p03.X, p03.Y, p03.Z); else sink.BeginFigure(p0.X, p0.Y, null); for (int i=1; i<points.Count; ++i) { var pi=points[i]; var pi3=pi as SmGeometries.Point3D; if (pi3!=null) sink.AddLine(pi3.X, pi3.Y, pi3.Z); else sink.AddLine(pi.X, pi.Y, null); } sink.EndFigure(); }
public void AddLine(double x, double y, double?z, double?m) { _sink.AddLine(_transform.GetX(x, y), _transform.GetY(x, y), z, m); }
private void AddRandomSegment(IGeometrySink sink) { double which = Random.NextDouble(); if (which < 0.25) sink.AddLine(RandomNearPoint()); else if (which < 0.5) sink.AddArc(RandomArc()); else if (which < 0.75) sink.AddBezier(RandomBezier()); else if (which < 1.0) sink.AddQuadraticBezier(RandomQuadraticBezier()); }
public void AddLine(double latitude, double longitude, double?z, double?m) { _target.AddLine(longitude, latitude, z, m); }
public void AddLine(double latitude, double longitude, double?z, double?m) { m_sink.AddLine(latitude, longitude, z, m); }