Resolution independence: You send your program to a screen or printer of any resolution without writing extra code to accommodate the different resolutions. In fact, the device resolution is not exposed in your application code at all.
IEEE double precision (64 bit) floating point arithmetic: Arithmetic calculations are performed with 64 bit floating point data types. This gives you much finer resolution and greater accuracy. See Chapter 2 for information on the available data types.
Integrated 2D and 3D graphics: You can easily combine 2D and 3D graphics in the same view.
Graphics and Geometry classes: There is a full range of extensible 2-D and 3-D graphics classes. The graphics functionality is separated (put in different classes) from the geometry shapes to give you more flexibility. You can use graphics and geometry classes together, or use the geometry classes by themselves.
NURBS: The 2D and 3D curve geometries are defined by NonUniform Rational BSplines (NURBS). Non-uniform means that the parameterization of the curve can be changed to allow kinks, gaps, and smooth joins. Rational means that rational polynomials are used to allow exact representations of circles, ellipses, and other conic sections. BSpline stands for Basis spline, which is a spline curve very similar to the Bézier curve, but provides more local control and continuity control to give you better curve fitting and modeling. See Chapter 4 for a discussion of curves, control points, and curve continuity.
Customizable architecture: The application programming interfaces are clean so that you can easily extend or customize only those classes that require additional functionality and leave all other classes as they are.
Color and color matching: You use the extensive selection of Color classes to provide color to your graphics. You choose the color class that best meets your requirements, and either use the default color matcher or write your own color matcher to, for example, match the colors of displayed graphics to the best colors on the printer when the display monitor and the printer do not support exactly the same colors. See Chapter 7 for a discussion of the color classes that are of most interest to graphics programmers. A discussion of all Color classes and color matching will be released at a later time.
The following features are not currently supported: