add shape.containPoint method