Beispiel #1
0
        //insert
        public static void Insert(DbLink dbLink, curve curve)
        {
            string query =
                @"insert into curves(cur_id, ident, description, title)
                    values(nextval('mir_sequence'), @ident, @description, @title);";

            dbLink.GetConnection().Execute(query, curve);
        }
Beispiel #2
0
        public void TestInsertCurve()
        {
            var tempConnection = DataBaseLink.Fabricate.CreateConnection(_connection, DataBaseLink.ConnectionType.Npgsql);

            DataBaseLink.DbLink dbLink = new DbLink(tempConnection);
            curve curve = new curve()
            {
                description = "debt_zcc_rub", ident = "debt_zcc_rub", title = "debt_zcc_rub"
            };

            if (Curves.FindId(dbLink, curve.ident) == null)
            {
                Curves.Insert(dbLink, curve);
            }
        }
 public void init(int wavelength, int seed, curve probability, float riggedProbabilityTrigger, curve verticalRiggedCurve, int verticalRiggedWavelength, curve horizontalRiggedCurve, int horizontalRiggedWavelength, string name, GameObject parent)
 {
     this.wavelength  = wavelength;
     this.seed        = seed;
     this.probability = probability;
     this.riggedProbabilityTrigger   = riggedProbabilityTrigger;
     this.verticalRiggedCurve        = verticalRiggedCurve;
     this.verticalRiggedWavelength   = verticalRiggedWavelength;
     this.horizontalRiggedCurve      = horizontalRiggedCurve;
     this.horizontalRiggedWavelength = horizontalRiggedWavelength;
     this.baseNoise  = new float[0];
     this.generator  = new System.Random(seed);
     gameObject.name = name;
     gameObject.transform.SetParent(parent.transform);
 }
Beispiel #4
0
        public uint[] AddStripe(curve <vec3> c, vec2 width, Tuple <float, vec3>[] ups, Func <float, float> upEaseFn, int startNode, int endNode, float stepMultiplier)
        {
            List <uint> result = new List <uint>();

            float sl    = c.length;
            float islsl = stepMultiplier / (sl * sl);

            result.Capacity = (int)(sl / 0.01f * 2 / stepMultiplier);

            int  upi = 0;
            vec3 up  = ups[upi].Item2;

            foreach (var i in c.Iterate(stepMultiplier))
            {
                float upa = i.t.InvLerp(ups[upi].Item1, ups[upi + 1].Item1);
                vec3  nup = upa.Lerp(ups[upi].Item2, ups[upi + 1].Item2);

                up = (1 - upEaseFn(upa)).Lerp(up, nup);
                vec3 forward = i.velocity.normalized;
                vec3 right   = (up % forward).normalized;
                up = (i.velocity % right).normalized;

                if (i.t == 0)
                {
                    Grow(2, 0);

                    result.Add(CreateVertex(i.value + right * width.x, up));
                    result.Add(CreateVertex(i.value + right * width.y, up));
                }
                else
                {
                    Grow(2, 2);

                    result.Add(CreateVertex(i.value + right * width.x, up));
                    MakeTriangle(result[result.Count - 3], result[result.Count - 2], result[result.Count - 1]);

                    result.Add(CreateVertex(i.value + right * width.y, up));
                    MakeTriangle(result[result.Count - 2], result[result.Count - 3], result[result.Count - 1]);
                }
            }

            return(result.ToArray());
        }
    public float[,] generateWhiteNoise(int chunkPosX, int chunkPosY, curve interpolation)
    {
        int   axisXshift, axisYshift;
        float verticalBlend, horizontalBlend;
        float top, bottom;

        float[,] whiteNoise = new float[chunkFactory.CHUNK_WIDTH + 1, chunkFactory.CHUNK_WIDTH + 1];
        for (int x = 0; x < chunkFactory.CHUNK_WIDTH + 1; x++)
        {
            horizontalBlend = wavePhase(chunkPosX, x, wavelength) / (float)wavelength;
            for (int y = 0; y < chunkFactory.CHUNK_WIDTH + 1; y++)
            {
                verticalBlend = wavePhase(chunkPosY, y, wavelength) / (float)wavelength;
                if (chunkPosY * chunkFactory.CHUNK_WIDTH + y < 0)
                {
                    axisYshift = -1 * wavelength;
                }
                else
                {
                    axisYshift = 0;
                }
                if (chunkPosX * chunkFactory.CHUNK_WIDTH + x < 0)
                {
                    axisXshift = -1 * wavelength;
                }
                else
                {
                    axisXshift = 0;
                }
                top = interpolate(
                    getBaseNoise(axisXshift + chunkPosX * chunkFactory.CHUNK_WIDTH + x, axisYshift + chunkPosY * chunkFactory.CHUNK_WIDTH + y + wavelength),
                    getBaseNoise(axisXshift + chunkPosX * chunkFactory.CHUNK_WIDTH + x + wavelength, axisYshift + chunkPosY * chunkFactory.CHUNK_WIDTH + y + wavelength),
                    horizontalBlend, interpolation);
                bottom = interpolate(
                    getBaseNoise(axisXshift + chunkPosX * chunkFactory.CHUNK_WIDTH + x, axisYshift + chunkPosY * chunkFactory.CHUNK_WIDTH + y),
                    getBaseNoise(axisXshift + chunkPosX * chunkFactory.CHUNK_WIDTH + x + wavelength, axisYshift + chunkPosY * chunkFactory.CHUNK_WIDTH + y),
                    horizontalBlend, interpolation);
                whiteNoise[x, y] = interpolate(bottom, top, verticalBlend, interpolation);
            }
        }
        return(whiteNoise);
    }
Beispiel #6
0
 public uint[] AddStripe(curve <vec3> c, vec2 width, vec3 up, float stepMultiplier)
 {
     return(AddStripe(c, width
                      , new Tuple <float, vec3>[] { Tuple.Create(0f, up), Tuple.Create(1f, up) }, Easing.makeEaseMirror(Easing.easeExpoOut)
                      , 0, c.numberOfNodes, stepMultiplier));
 }
Beispiel #7
0
 public uint[] AddStripe(curve <vec3> c, float width, vec3 up)
 {
     return(AddStripe(c, new vec2(-width / 2f, width / 2f), up));
 }
 public void init(int wavelength, int seed, curve probability, string name, GameObject parent)
 {
     init(wavelength, seed, probability, 1.1f, null, 0, null, 0, name, parent);
 }
 private float interpolate(float x0, float x1, float alpha, curve interpolationCurve)
 {
     return(interpolationCurve(alpha) * (x1 - x0) + x0);
 }