add getAspectRatio() based on target width and height
add translateNormal() to accept a SphericalPoint and place the origin of the XY plane normal to the vector from the origin to the given point with the z axis extending outward
and translate() to translate to a given Projectable3D
accessors for spherical point state