Beispiel #1
0
 static public VectorF2 GetTowards(this VectorF2 item, VectorF2 target, float amount)
 {
     return(item.GetTowards(
                target,
                item.GetDirection(target) * amount
                ));
 }
Beispiel #2
0
 static public bool GetMoveTowards(this VectorF2 item, VectorF2 target, float amount, out VectorF2 output)
 {
     return(item.GetMoveTowards(
                target,
                item.GetDirection(target) * amount,
                out output
                ));
 }
Beispiel #3
0
        static public VectorF2 GetProjectedPointOntoLineSegment(this VectorF2 item, VectorF2 target, VectorF2 point)
        {
            VectorF2 direction = item.GetDirection(target);

            float point_projection = direction.GetDot(point - item);

            float item_projection   = 0.0f;
            float target_projection = direction.GetDot(target - item);

            return(direction * point_projection.BindBetween(item_projection, target_projection) + item);
        }
Beispiel #4
0
        static public IEnumerable <VectorF2> Range(VectorF2 start, VectorF2 end, float step, bool include_end)
        {
            float    distance;
            VectorF2 direction = start.GetDirection(end, out distance);

            int divisions = (int)(distance / step).GetAbs();

            if (include_end)
            {
                divisions++;
            }

            return(Ray(start, direction * (distance / divisions), divisions));
        }
Beispiel #5
0
        static public VectorF2 GetProjectedPointOntoLine(this VectorF2 item, VectorF2 target, VectorF2 point)
        {
            VectorF2 direction = item.GetDirection(target);

            return(direction * direction.GetDot(point - item) + item);
        }