A model for a Kernel using homogeneous coordinates to represent the
geometric objects. In order for Homogeneous<RingNumberType> to model Euclidean geometry
in and/or , for some mathematical ring (e.g.,
the integers or the rationals ), the template parameter RingNumberType
must model the mathematical ring . That is, the ring operations on this
number type must compute the mathematically correct results. If the number
type provided as a model for RingNumberType is only an approximation of a
ring (such as the built-in type double), then the geometry provided by
the kernel is only an approximation of Euclidean geometry.