public boolean pointInPolygon(PointF point) {
        int j = _vertices.length - 1;
        boolean oddNodes = false;

        for (int i = 0; i < _vertices.length; i++) {
            if (_vertices[i].y < point.y && _vertices[j].y >= point.y
                    || _vertices[j].y < point.y && _vertices[i].y >= point.y) {
                if (_vertices[i].x
                        + (point.y - _vertices[i].y) / (_vertices[j].y - _vertices[i].y) * (_vertices[j].x - _vertices[i].x) < point.x) {
                    oddNodes = !oddNodes;
                }
            }
            j = i;
        }

        return oddNodes;
    }