Skip to content

Instantly share code, notes, and snippets.

@tiagosr
Created April 10, 2015 01:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tiagosr/bcf028b151d11368b013 to your computer and use it in GitHub Desktop.
Save tiagosr/bcf028b151d11368b013 to your computer and use it in GitHub Desktop.
Little Unity addon for "swizzling" vectors in a fluent interfaces
using UnityEngine;
using System.Collections;
public static class Vector3Addons {
public static Vector2 xx(this Vector3 vec) { return new Vector2(vec.x, vec.x); }
public static Vector2 xy(this Vector3 vec) { return new Vector2(vec.x, vec.y); }
public static Vector2 xz(this Vector3 vec) { return new Vector2(vec.x, vec.z); }
public static Vector2 yx(this Vector3 vec) { return new Vector2(vec.y, vec.x); }
public static Vector2 yy(this Vector3 vec) { return new Vector2(vec.y, vec.y); }
public static Vector2 yz(this Vector3 vec) { return new Vector2(vec.y, vec.z); }
public static Vector2 zx(this Vector3 vec) { return new Vector2(vec.z, vec.x); }
public static Vector2 zy(this Vector3 vec) { return new Vector2(vec.z, vec.y); }
public static Vector2 zz(this Vector3 vec) { return new Vector2(vec.z, vec.z); }
public static Vector2 _x(this Vector3 vec) { return new Vector2(0f, vec.x); }
public static Vector2 _y(this Vector3 vec) { return new Vector2(0f, vec.y); }
public static Vector2 _z(this Vector3 vec) { return new Vector2(0f, vec.z); }
public static Vector2 x_(this Vector3 vec) { return new Vector2(vec.x, 0f); }
public static Vector2 y_(this Vector3 vec) { return new Vector2(vec.y, 0f); }
public static Vector2 z_(this Vector3 vec) { return new Vector2(vec.z, 0f); }
public static Vector2 nx(this Vector3 vec, float n) { return new Vector2(n, vec.x); }
public static Vector2 ny(this Vector3 vec, float n) { return new Vector2(n, vec.y); }
public static Vector2 nz(this Vector3 vec, float n) { return new Vector2(n, vec.z); }
public static Vector2 xn(this Vector3 vec, float n) { return new Vector2(vec.x, n); }
public static Vector2 yn(this Vector3 vec, float n) { return new Vector2(vec.y, n); }
public static Vector2 zn(this Vector3 vec, float n) { return new Vector2(vec.z, n); }
public static Vector3 xxx(this Vector3 vec) { return new Vector3(vec.x, vec.x, vec.x); }
public static Vector3 xyx(this Vector3 vec) { return new Vector3(vec.x, vec.y, vec.x); }
public static Vector3 xzx(this Vector3 vec) { return new Vector3(vec.x, vec.z, vec.x); }
public static Vector3 xxy(this Vector3 vec) { return new Vector3(vec.x, vec.x, vec.y); }
public static Vector3 xyy(this Vector3 vec) { return new Vector3(vec.x, vec.y, vec.y); }
public static Vector3 xzy(this Vector3 vec) { return new Vector3(vec.x, vec.z, vec.y); }
public static Vector3 xxz(this Vector3 vec) { return new Vector3(vec.x, vec.x, vec.z); }
public static Vector3 xyz(this Vector3 vec) { return new Vector3(vec.x, vec.y, vec.z); }
public static Vector3 xzz(this Vector3 vec) { return new Vector3(vec.x, vec.z, vec.z); }
public static Vector3 yxx(this Vector3 vec) { return new Vector3(vec.y, vec.x, vec.x); }
public static Vector3 yyx(this Vector3 vec) { return new Vector3(vec.y, vec.y, vec.x); }
public static Vector3 yzx(this Vector3 vec) { return new Vector3(vec.y, vec.z, vec.x); }
public static Vector3 yxy(this Vector3 vec) { return new Vector3(vec.y, vec.x, vec.y); }
public static Vector3 yyy(this Vector3 vec) { return new Vector3(vec.y, vec.y, vec.y); }
public static Vector3 yzy(this Vector3 vec) { return new Vector3(vec.y, vec.z, vec.y); }
public static Vector3 yxz(this Vector3 vec) { return new Vector3(vec.y, vec.x, vec.z); }
public static Vector3 yyz(this Vector3 vec) { return new Vector3(vec.y, vec.y, vec.z); }
public static Vector3 yzz(this Vector3 vec) { return new Vector3(vec.y, vec.z, vec.z); }
public static Vector3 zxx(this Vector3 vec) { return new Vector3(vec.z, vec.x, vec.x); }
public static Vector3 zyx(this Vector3 vec) { return new Vector3(vec.z, vec.y, vec.x); }
public static Vector3 zzx(this Vector3 vec) { return new Vector3(vec.z, vec.z, vec.x); }
public static Vector3 zxy(this Vector3 vec) { return new Vector3(vec.z, vec.x, vec.y); }
public static Vector3 zyy(this Vector3 vec) { return new Vector3(vec.z, vec.y, vec.y); }
public static Vector3 zzy(this Vector3 vec) { return new Vector3(vec.z, vec.z, vec.y); }
public static Vector3 zxz(this Vector3 vec) { return new Vector3(vec.z, vec.x, vec.z); }
public static Vector3 zyz(this Vector3 vec) { return new Vector3(vec.z, vec.y, vec.z); }
public static Vector3 zzz(this Vector3 vec) { return new Vector3(vec.z, vec.z, vec.z); }
public static Vector3 _xx(this Vector3 vec) { return new Vector3(0f, vec.x, vec.x); }
public static Vector3 _yx(this Vector3 vec) { return new Vector3(0f, vec.y, vec.x); }
public static Vector3 _zx(this Vector3 vec) { return new Vector3(0f, vec.z, vec.x); }
public static Vector3 _xy(this Vector3 vec) { return new Vector3(0f, vec.x, vec.y); }
public static Vector3 _yy(this Vector3 vec) { return new Vector3(0f, vec.y, vec.y); }
public static Vector3 _zy(this Vector3 vec) { return new Vector3(0f, vec.z, vec.y); }
public static Vector3 _xz(this Vector3 vec) { return new Vector3(0f, vec.x, vec.z); }
public static Vector3 _yz(this Vector3 vec) { return new Vector3(0f, vec.y, vec.z); }
public static Vector3 _zz(this Vector3 vec) { return new Vector3(0f, vec.z, vec.z); }
public static Vector3 x_x(this Vector3 vec) { return new Vector3(vec.x, 0f, vec.x); }
public static Vector3 x_y(this Vector3 vec) { return new Vector3(vec.x, 0f, vec.y); }
public static Vector3 x_z(this Vector3 vec) { return new Vector3(vec.x, 0f, vec.z); }
public static Vector3 y_x(this Vector3 vec) { return new Vector3(vec.y, 0f, vec.x); }
public static Vector3 y_y(this Vector3 vec) { return new Vector3(vec.y, 0f, vec.y); }
public static Vector3 y_z(this Vector3 vec) { return new Vector3(vec.y, 0f, vec.z); }
public static Vector3 z_x(this Vector3 vec) { return new Vector3(vec.z, 0f, vec.x); }
public static Vector3 z_y(this Vector3 vec) { return new Vector3(vec.z, 0f, vec.y); }
public static Vector3 z_z(this Vector3 vec) { return new Vector3(vec.z, 0f, vec.z); }
public static Vector3 xx_(this Vector3 vec) { return new Vector3(vec.x, vec.x, 0f); }
public static Vector3 xy_(this Vector3 vec) { return new Vector3(vec.x, vec.y, 0f); }
public static Vector3 xz_(this Vector3 vec) { return new Vector3(vec.x, vec.z, 0f); }
public static Vector3 yx_(this Vector3 vec) { return new Vector3(vec.y, vec.x, 0f); }
public static Vector3 yy_(this Vector3 vec) { return new Vector3(vec.y, vec.y, 0f); }
public static Vector3 yz_(this Vector3 vec) { return new Vector3(vec.y, vec.z, 0f); }
public static Vector3 zx_(this Vector3 vec) { return new Vector3(vec.z, vec.x, 0f); }
public static Vector3 zy_(this Vector3 vec) { return new Vector3(vec.z, vec.y, 0f); }
public static Vector3 zz_(this Vector3 vec) { return new Vector3(vec.z, vec.z, 0f); }
public static Vector3 x__(this Vector3 vec) { return new Vector3(vec.x, 0f, 0f); }
public static Vector3 y__(this Vector3 vec) { return new Vector3(vec.y, 0f, 0f); }
public static Vector3 z__(this Vector3 vec) { return new Vector3(vec.z, 0f, 0f); }
public static Vector3 _x_(this Vector3 vec) { return new Vector3(0f, vec.x, 0f); }
public static Vector3 _y_(this Vector3 vec) { return new Vector3(0f, vec.y, 0f); }
public static Vector3 _z_(this Vector3 vec) { return new Vector3(0f, vec.z, 0f); }
public static Vector3 __x(this Vector3 vec) { return new Vector3(0f, 0f, vec.x); }
public static Vector3 __y(this Vector3 vec) { return new Vector3(0f, 0f, vec.y); }
public static Vector3 __z(this Vector3 vec) { return new Vector3(0f, 0f, vec.z); }
public static Vector3 nxx(this Vector3 vec, float n) { return new Vector3(n, vec.x, vec.x); }
public static Vector3 nyx(this Vector3 vec, float n) { return new Vector3(n, vec.y, vec.x); }
public static Vector3 nzx(this Vector3 vec, float n) { return new Vector3(n, vec.z, vec.x); }
public static Vector3 nxy(this Vector3 vec, float n) { return new Vector3(n, vec.x, vec.y); }
public static Vector3 nyy(this Vector3 vec, float n) { return new Vector3(n, vec.y, vec.y); }
public static Vector3 nzy(this Vector3 vec, float n) { return new Vector3(n, vec.z, vec.y); }
public static Vector3 nxz(this Vector3 vec, float n) { return new Vector3(n, vec.x, vec.z); }
public static Vector3 nyz(this Vector3 vec, float n) { return new Vector3(n, vec.y, vec.z); }
public static Vector3 nzz(this Vector3 vec, float n) { return new Vector3(n, vec.z, vec.z); }
public static Vector3 xnx(this Vector3 vec, float n) { return new Vector3(vec.x, n, vec.x); }
public static Vector3 xny(this Vector3 vec, float n) { return new Vector3(vec.x, n, vec.y); }
public static Vector3 xnz(this Vector3 vec, float n) { return new Vector3(vec.x, n, vec.z); }
public static Vector3 ynx(this Vector3 vec, float n) { return new Vector3(vec.y, n, vec.x); }
public static Vector3 yny(this Vector3 vec, float n) { return new Vector3(vec.y, n, vec.y); }
public static Vector3 ynz(this Vector3 vec, float n) { return new Vector3(vec.y, n, vec.z); }
public static Vector3 znx(this Vector3 vec, float n) { return new Vector3(vec.z, n, vec.x); }
public static Vector3 zny(this Vector3 vec, float n) { return new Vector3(vec.z, n, vec.y); }
public static Vector3 znz(this Vector3 vec, float n) { return new Vector3(vec.z, n, vec.z); }
public static Vector3 xxn(this Vector3 vec, float n) { return new Vector3(vec.x, vec.x, n); }
public static Vector3 xyn(this Vector3 vec, float n) { return new Vector3(vec.x, vec.y, n); }
public static Vector3 xzn(this Vector3 vec, float n) { return new Vector3(vec.x, vec.z, n); }
public static Vector3 yxn(this Vector3 vec, float n) { return new Vector3(vec.y, vec.x, n); }
public static Vector3 yyn(this Vector3 vec, float n) { return new Vector3(vec.y, vec.y, n); }
public static Vector3 yzn(this Vector3 vec, float n) { return new Vector3(vec.y, vec.z, n); }
public static Vector3 zxn(this Vector3 vec, float n) { return new Vector3(vec.z, vec.x, n); }
public static Vector3 zyn(this Vector3 vec, float n) { return new Vector3(vec.z, vec.y, n); }
public static Vector3 zzn(this Vector3 vec, float n) { return new Vector3(vec.z, vec.z, n); }
public static Vector3 xnn(this Vector3 vec, float n) { return new Vector3(vec.x, n, n); }
public static Vector3 ynn(this Vector3 vec, float n) { return new Vector3(vec.y, n, n); }
public static Vector3 znn(this Vector3 vec, float n) { return new Vector3(vec.z, n, n); }
public static Vector3 nxn(this Vector3 vec, float n) { return new Vector3(n, vec.x, n); }
public static Vector3 nyn(this Vector3 vec, float n) { return new Vector3(n, vec.y, n); }
public static Vector3 nzn(this Vector3 vec, float n) { return new Vector3(n, vec.z, n); }
public static Vector3 nnx(this Vector3 vec, float n) { return new Vector3(n, n, vec.x); }
public static Vector3 nny(this Vector3 vec, float n) { return new Vector3(n, n, vec.y); }
public static Vector3 nnz(this Vector3 vec, float n) { return new Vector3(n, n, vec.z); }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment