public function setOrigin()
    {
        $args = func_get_args();

        if (isset($args[0]) && ($args[0] instanceof Point)) {
            $this->origin = $args[0];
        } elseif ((isset($args[0]) && is_numeric($args[0])) && (isset($args[1]) && is_numeric($args[1]))) {
            if ($this->origin === null) {
                $this->origin = new Point();
            }

            $this->origin->setX($args[0]);
            $this->origin->setY($args[1]);
        } elseif (!isset($args[0])) {
            $this->origin = null;
        } else {
            throw OverlayException::invalidMarkerImageOrigin();
        }
    }