Описывать возможности API мы будем через функции его библиотеки. В состав мощного пакета API может входить несколько сотен функций, а потому желательно сразу же разделить их на категории. Мы рассмотрим функции шести категорий.
Функции описания примитивов {primitive functions) определяют объекты нижнего уровня иерархии - примитивы, - которые способна отображать графическая система. В большинстве графических API имеются такие примитивы, как точки, отрезки прямых линий, многоугольники, пиксели, текст и различного рода криволинейные отрезки и участки криволинейных поверхностей.
Если с помощью примитивов определяется, что появится на экране, то с помощью атрибутов определяется, как будут выглядеть отображаемые объекты, т.е. атрибуты определяют способ вывода объектов на экран. Функции задания атрибутов (Attribute functions) позволяют прикладному программисту выполнять широкий круг операций настройки изображения - от выбора цвета до указания образца заливки внутренней области многоугольника или шрифта для надписей на графике.
Нужно задать параметры используемой модели синтезированной камеры, с помощью которой создается изображение. Как было сказано в главе 1, от прикладного программиста требуется выбрать положение и ориентацию камеры в мировой системе координат и параметры объектива, в частности фокусное расстояние. Зная эти параметры системы, он сможет не только правильно построить изображение, но и отсечь те объекты, которые оказываются вне поля зрения. Последнее позволяет не тратить времени впустую. Функции визуализации (vieuingfunctions) позволяют задать разнообразные виды, хотя разные типы API существенно отличаются возможностями манипулирования видами.
Одна из наиболее интересных возможностей хорошего графического пакета - набор функций геометрических преобразований (transformation functions), которые позволяют пользователю выполнять различные преобразования объектов - поворот, плоскопараллельный перенос, масштабирование и т.п. Такого рода операции мы часто будем использовать при описании методов визуализации (глава 5) и моделирования (глава 8).