public override string ToString()
{
var dir = orientation * new Vector3(0, 0, -1);
var s = new StringBuilder();
s.Append("Camera(");
s.AppendFormat("Name='{0}, ", name);
s.AppendFormat("pos={0}, ", position);
s.AppendFormat("direction={0}, ", dir);
s.AppendFormat("near={0}, ", Near);
s.AppendFormat("far={0}, ", Far);
s.AppendFormat("FOVy={0}, ", FieldOfView); // todo: to .Degrees()
s.AppendFormat("aspect={0}, ", AspectRatio);
s.AppendFormat("xoffset={0}, ", FrustumOffset.x);
s.AppendFormat("yoffset={0}, ", FrustumOffset.y);
s.AppendFormat("focalLength={0}, ", _focalLength);
s.AppendFormat("NearFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Near]);
s.AppendFormat("FarFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Far]);
s.AppendFormat("LeftFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Left]);
s.AppendFormat("RightFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Right]);
s.AppendFormat("TopFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Top]);
s.AppendFormat("BottomFrustumPlane={0}, ", FrustumPlanes[(int)FrustumPlane.Bottom]);
s.Append(")");
return s.ToString();
}
}