private Vector3 PointSDir(Vector3 ori, RiverData.Direction a, RiverData.Direction b)
    {
        Vector3 result = new Vector3(ori.x, ori.y, ori.z);

        var amodify = RiverData.GetDirectionDir(a);
        var bmodify = RiverData.GetDirectionDir(b);

        result += amodify / 2;
        result += bmodify / 2;

        return(result);
    }
    private Vector3 DownRightEx(Vector3 center, RiverData.Direction dir)
    {
        Vector3 result = new Vector3();
        var     vector = RiverData.GetDirectionDir(dir);

        var noiseDir = (NoiseVector(center)).normalized;

        var direx   = (-vector + noiseDir).normalized;
        var dirleft = Vector3.Cross(direx, Vector3.up);

        result = center + (direx + dirleft) * 0.5f;
        return(result);
    }
    private Vector3 BorderLeftEx(Vector3 center, RiverData.Direction dir)
    {
        Vector3 result = new Vector3();
        var     vector = RiverData.GetDirectionDir(dir);

        var noiseModify = NoiseModify(center);
        //Vector3 noiseDir = new Vector3(noiseModify.x - center.x, 0, noiseModify.z - center.z);
        var noiseDir = (NoiseVector(center)).normalized;

        var direx   = (vector + noiseDir).normalized;
        var dirleft = Vector3.Cross(direx, Vector3.up);

        result = center + (direx + dirleft) * 0.5f;

        return(result);
    }