Ejemplo n.º 1
0
 static public float GetMultiplierFillByMultiplier(this float item, float target, float multiplier)
 {
     return(Mathq.Pow(
                multiplier,
                item.GetPowerFillByMultiplier(target, multiplier)
                ));
 }
Ejemplo n.º 2
0
        static public IEnumerable <Tuple <int, int, RectF2> > GetCroppedGridChunkInfos(this RectF2 item, VectorF2 cell_size)
        {
            int width_in_cells  = Mathq.CeilToInt(item.GetWidth() / cell_size.x);
            int height_in_cells = Mathq.CeilToInt(item.GetHeight() / cell_size.y);

            for (int y = 0; y < height_in_cells; y++)
            {
                for (int x = 0; x < width_in_cells; x++)
                {
                    yield return(Tuple.New(x, y, item.GetCroppedGridChunk(x, y, cell_size)));
                }
            }
        }
Ejemplo n.º 3
0
        static public IEnumerable <T> SubdividePathToLength <T>(this IEnumerable <T> item, float maximum_inter_length, Operation <float, T, T> distance_operation, Operation <T, T, T, float> interpolate_operation)
        {
            return(item.ConvertConnections(delegate(T sub_item1, T sub_item2) {
                float length = distance_operation(sub_item1, sub_item2);

                if (length > maximum_inter_length)
                {
                    int number_divisions = Mathq.CeilToInt(length / maximum_inter_length);

                    return Floats.Line(0.0f, 1.0f, number_divisions, false)
                    .Convert(f => interpolate_operation(sub_item1, sub_item2, f));
                }

                return sub_item1.WrapAsEnumerable();
            }));
        }
Ejemplo n.º 4
0
        static public float CalculateTriangleArea(this VectorF2 point1, VectorF2 point2, VectorF2 point3)
        {
            float a;
            float b;
            float c;

            point1.GetDistanceTo(point2).Order(
                point2.GetDistanceTo(point3),
                point3.GetDistanceTo(point1),
                out c, out b, out a
                );

            float ab = a - b;

            float t1 = a + (b + c);
            float t2 = c - ab;
            float t3 = c + ab;
            float t4 = a + (b - c);

            return(0.25f * Mathq.Sqrt(t1 * t2 * t3 * t4));
        }
Ejemplo n.º 5
0
        static public IGrid <T> SoftCircle <T>(int radius, float hardness, float power, Operation <T, float> operation)
        {
            float transition_interval = 1.0f - hardness;

            return(Circle <T>(radius, delegate(float distance) {
                float weight = 0.0f;

                if (distance <= 1.0f)
                {
                    weight = 1.0f;

                    if (distance > hardness)
                    {
                        float transition_distance = distance - hardness;
                        float transition_percent = transition_distance / transition_interval;

                        weight = Mathq.Pow(transition_percent, power).InterpolateWith(1.0f, 0.0f);
                    }
                }

                return operation(weight);
            }));
        }
Ejemplo n.º 6
0
 static public int GetPowerFillByMultiplier(this float item, float target, float multiplier)
 {
     return(Mathq.FloorToInt(
                Mathq.Log(multiplier, target / item)
                ));
 }
Ejemplo n.º 7
0
 static public float GetMagnitude(this VectorI2 item)
 {
     return(Mathq.Sqrt(item.GetSquaredMagnitude()));
 }
Ejemplo n.º 8
0
 static public float GetFloor(this float item)
 {
     return(Mathq.Floor(item));
 }
Ejemplo n.º 9
0
 static public float GetCeil(this float item)
 {
     return(Mathq.Ceil(item));
 }
Ejemplo n.º 10
0
 static public float GetAtPrecision(this float item, int exponent)
 {
     return(item.GetQuantizedMin((float)Mathq.Pow(10, exponent)));
 }
Ejemplo n.º 11
0
 static public decimal GetAtPrecision(this decimal item, int exponent)
 {
     return(item.GetQuantizedMin((decimal)Mathq.Pow(10, exponent)));
 }
Ejemplo n.º 12
0
 static public double GetAtPrecision(this double item, int exponent)
 {
     return(item.GetQuantizedMin((double)Mathq.Pow(10, exponent)));
 }
Ejemplo n.º 13
0
 static public float QuintIn(float x)
 {
     return(Mathq.IntPow(x.BindPercent(), 4));
 }
Ejemplo n.º 14
0
 static public float CubicIn(float x)
 {
     return(Mathq.IntPow(x.BindPercent(), 3));
 }
Ejemplo n.º 15
0
 static public float Ramp(float x)
 {
     return(x - Mathq.Floor(x));
 }