public static implicit operator PointLong((long x, long y) tuple) => new PointLong(tuple.x, tuple.y);
=> new Byte3(tuple.x, tuple.y, tuple.z);
new Vector3D(tuple.x, tuple.y, tuple.z);
public static implicit operator Pos((int x, int y) tuple) => new Pos(tuple.x, tuple.y);
=> new Float2(tuple.x, tuple.y);
public static PointI Point(this(int x, int y) tuple) => new PointI(tuple.x, tuple.y);
=> new BlockPosition(tuple.x, tuple.y, tuple.z);
public static implicit operator PointDouble((double x, double y) tuple) => new PointDouble(tuple.x, tuple.y);
=> new Byte2(tuple.x, tuple.y);
public static implicit operator Vec2((int x, int y) tuple) => new Vec2(tuple.x, tuple.y);
=> new Float3(tuple.x, tuple.y, tuple.z);
=> new Float4(tuple.x, tuple.y, tuple.z, tuple.w);
=> new Byte4(tuple.x, tuple.y, tuple.z, tuple.w);
public static Vector2 ToVector2(this(float x, float y) tuple) => new Vector2(tuple.x, tuple.y);
=> new ChunkPosition(tuple.x, tuple.z);
=> new Int2(tuple.x, tuple.y);
public static implicit operator VectorByte2((byte x, byte y) tuple) => new VectorByte2(tuple.x, tuple.y);
// Explicit type conversions (where an explicit type-cast is provided) public static explicit operator Coordinate((int x, int y) tuple) => new Coordinate(tuple.x, tuple.y);
return(new Vector2(tuple.x, tuple.y));
public static implicit operator Index2d((int x, int y) tuple) => new Index2d(tuple.x, tuple.y);
return(new Point(tuple.x, tuple.y));