/// <summary>
    /// generates rivers starting from given river's starting and ending point
    /// operation is processed only if points are in visible terrain and not on border
    /// => meaning that terrain has been moved and river isn't complete
    /// </summary>
    public void GenerateConnectingRiver(RiverInfo river)
    {
        Vertex startPoint = river.riverPath[0];
        if (ftm.IsInDefinedTerrain(startPoint) && !ftm.IsOnBorder(startPoint))
        {

            Area restrictArea = fmc.CalculateRestrictedArea(startPoint);

            List<Direction> reachedSides = new List<Direction>();
            reachedSides.Add(fmc.GetOppositeDirection(startPoint.side));

            RiverInfo startRiver =
                frp.GetRiverFrom(startPoint, reachedSides, restrictArea, river, river.gridStep, true);
            if(startRiver.riverPath.Count == 0)
            {
                ShowErrorMessage("connecting river failed \n" + startRiver.errorMessage);
            }

            frd.DistortPath(startRiver.riverPath, startRiver.gridStep/3, startRiver.gridStep);

            river.ConnectWith(startRiver);

            startPoint.side = Direction.none;

        }

        Vertex endPoint = river.GetLastVertex();

        if (ftm.IsInDefinedTerrain(endPoint) && !ftm.IsOnBorder(endPoint))
        {
            Area restrictArea = fmc.CalculateRestrictedArea(endPoint);

            List<Direction> reachedSides = new List<Direction>();
            reachedSides.Add(fmc.GetOppositeDirection(endPoint.side));

            RiverInfo endRiver =
                frp.GetRiverFrom(endPoint, reachedSides, restrictArea, river, river.gridStep, true);
            if (endRiver.riverPath.Count == 0)
            {
                ShowErrorMessage("connecting river failed \n" + endRiver.errorMessage);
            }

            frd.DistortPath(endRiver.riverPath, endRiver.gridStep / 3, endRiver.gridStep);

            river.ConnectWith(endRiver);

            endPoint.side = Direction.none;
        }

        frd.DigRiver(river);
    }