public void Add(PointAxis2d.Value value) { List <double> points; if (!m_points.TryGetValue(value.Abscissa, out points)) { points = new List <double>(); m_points[value.Abscissa] = points; points.Add(value.Ordinate); return; } points.Add(value.Ordinate); points.Sort(); }
public Range1d Contains(PointAxis2d.Value value) { List <Range1d> segments; if (!m_lines.TryGetValue(value.Abscissa, out segments)) { return(null); } foreach (Range1d segment in segments) { if (segment.Contains(value.Ordinate)) { return(segment); } } return(null); }
public static Value FromLine2d(GridBasis basis, int ordinal, Line2d line, bool snap) { PointAxis2d.Value p0 = PointAxis2d.Value.FromPoint2d(basis, ordinal, line.StartPoint, snap); if (p0 == null) { return(null); } PointAxis2d.Value p1 = PointAxis2d.Value.FromPoint2d(basis, ordinal, line.EndPoint, snap); if (p1 == null) { return(null); } if (p0.Abscissa != p1.Abscissa) { return(null); } return(new Value(p0.Abscissa, new Range1d(p0.Ordinate, p1.Ordinate))); }