Added pointContained() method to check if a 2D point is within a ShapeTriangle