public ITriangle Query(float x, float y) { var point = new Point(x, y); var indices = root.FindTriangles(point); var result = new List <ITriangle>(); foreach (var i in indices) { var tri = this.triangles[i]; if (IsPointInTriangle(point, tri.GetVertex(0), tri.GetVertex(1), tri.GetVertex(2))) { result.Add(tri); } } return(result.FirstOrDefault()); }