Newer
Older
IsoRenderTest / Assets / Extensions.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;

public static class Extensions
{
    public static IEnumerable<T> ToSingle<T>(this T item)
    {
        yield return item;
    }

    public static Vector2 OverX(this Vector2 v, Func<float, float> func)
    {
        return new Vector2(func(v.x), v.y);
    }

    public static Vector3 OverX(this Vector3 v, Func<float, float> func)
    {
        return new Vector3(func(v.x), v.y, v.z);
    }

    public static Vector4 OverX(this Vector4 v, Func<float, float> func)
    {
        return new Vector4(func(v.x), v.y, v.z, v.w);
    }

    public static Vector2 OverY(this Vector2 v, Func<float, float> func)
    {
        return new Vector2(v.x, func(v.y));
    }

    public static Vector3 OverY(this Vector3 v, Func<float, float> func)
    {
        return new Vector3(v.x, func(v.y), v.z);
    }

    public static Vector4 OverY(this Vector4 v, Func<float, float> func)
    {
        return new Vector4(v.x, func(v.y), v.z, v.w);
    }

    public static Vector3 OverZ(this Vector3 v, Func<float, float> func)
    {
        return new Vector3(v.x, v.y, func(v.z));
    }

    public static Vector4 OverZ(this Vector4 v, Func<float, float> func)
    {
        return new Vector4(v.x, v.y, func(v.z), v.w);
    }

    public static Vector4 OverW(this Vector4 v, Func<float, float> func)
    {
        return new Vector4(v.x, v.y, v.z, func(v.w));
    }
}