public static mat3 lookAt(vec2 eye, vec2 center, bool up)
{
// camera's back in world space coordinate system
vec2 back = (eye - center).normalize();
// camera's right in world space coordinate system
vec2 right = up.cross(back).normalize();
if (!up) { right = -right; }
mat3 viewMatrix = new mat3(1);
viewMatrix.col0.x = right.x;
viewMatrix.col1.x = right.y;
viewMatrix.col0.y = back.x;
viewMatrix.col1.y = back.y;
// Translation in world space coordinate system
viewMatrix.col3.x = -eye.dot(right);
viewMatrix.col3.y = -eye.dot(back);
return viewMatrix;
}