public void SetLookAt(Vector3 eye, Vector3 target, Vector3 up) { // Make rotation matrix // Z vector Vector3 zAxis = eye - target; zAxis.Normalize(); Vector3 yAxis = up; Vector3 xAxis = yAxis.Cross(zAxis); // Recompute Y = Z cross X yAxis = zAxis.Cross(xAxis); xAxis.Normalize(); yAxis.Normalize(); basis = Basis.CreateFromAxes(xAxis, yAxis, zAxis); origin = eye; }
// Constructors public Transform(Vector3 xAxis, Vector3 yAxis, Vector3 zAxis, Vector3 origin) { basis = Basis.CreateFromAxes(xAxis, yAxis, zAxis); this.origin = origin; }