public TopoTriangleNode FindNodeForTriangle(TopoTriangle triangle) { if (triangles != null) { return(this); } if (triangle.boundingBox.maxPoint[dimension] < middlePosition) { return(left.FindNodeForTriangle(triangle)); } else if (triangle.boundingBox.minPoint[dimension] > middlePosition) { return(right.FindNodeForTriangle(triangle)); } else { return(middle.FindNodeForTriangle(triangle)); } }