public float3 axis() { float3 a = new float3(x, y, z); if (Math.Abs(angle()) < 0.0000001f) return new float3(1f, 0f, 0f); return a * (1 / (float)Math.Sin(angle() / 2.0f)); }