unsigned int nv - число вершин в модели
unsigned int *p - указатель на вектор
степеней вершин (вектор степеней вершин это
массив, длиной равной количеству вершин, каждый
элемент которого равен числу ребер, входящих в
данную вершину)
unsigned int **r - двумерная таблица
смежности вершин (эта таблица содержит строк по
количеству вершин в объекте, а каждая строка
имеет длину, равную содержимому
соответствующего элемента массива p, а каждый
элемент содержит номер вершины, с которой имеет
общее ребро вершина с номером, равным номеру
строки)
float *x - координата X для каждой вершины
float *y - координата Y для каждой вершины
float *z - координата Z для каждой вершины
object_3d() { nv=0; p=0; r=0; x=0; y=0; z=0; } -
конструктор по умолчанию
object_3d(object_3d&) - конструктор с
приравниванием для объектов класса object_3d
~object_3d() { cnv(); } - деструктор по умолчанию
object_3d& addv(float xc,float yc,float zc) - добавление
вершины в объект
xc, yc, zc - координаты вновь созданной вершины
object_3d& addr(unsigned int a,unsigned int b) -
добавление ребра
a, b - номера вершин, которые необходимо соединить
ребром (вершины нумеруются с нуля)
object_3d& delv(unsigned int xc,unsigned int yc,unsigned int zc) -
удаление вершины со всеми ребрами
xc, yc, zc - координаты вершины, подлежащей удалению
object_3d& delv(unsigned int t) - удаление вершины
со всеми ребрами
t - номер вершины (вершины немеруются с нуля)
object_3d& delr(unsigned int a,unsigned int b) - удаление
ребра
a, b - номера вершин, для которых будет удалено
ребро, их соединяющее
unsigned int getv() - возвращает число вершин в
объекте
unsigned long getr() - возвращает число ребер в
объекте
long getn(unsigned int xc,unsigned int yc,unsigned int zc) -
возвращает номер вершины по ее координатам
xc, yc, zc - координаты вершины
int isv(unsigned int xc,unsigned int yc,unsigned int zc) -
проверяет наличие вершині по ее координатам
xc, yc, zc - координаты вершины
int isr(unsigned int a,unsigned int b) - проверяет
начилие ребра между вершинами
a, b - координаты вершин
object_3d& operator=(object_3d&) - опреция
присваивания
object_3d& operator<<(FILE*) - ввод информации
об объекте из файла
object_3d& operator>>(FILE*) - вывод
информации об объекте в файл
int ver() - проверка
правильности заполнения объекта
void cnv() - очистка динамически
распределяемой памяти, занятой объектом (удаление
объекта из памяти и обнуление фрейма)
void coeff (options &op) - расчет коэффициентов
прорисовки по данным структуры параметров
изображения (эту функцию ОБЯЗАТЕЛЬНО необходимо
вызывать при каждом изменении параметров
отображения объекта - т.е. если вы хотите вывести
очередной объект под другим углом или в другом
месте, то необходимо вызвать эту процедуру с
новыми параметрами изображения)
op - структура параметров изображения
void perspective (float x,float y,float z,float &X,float &Y) -
расчет экранных координат с учетом перстпективы
x, y, z - координаты точки в реальном пространчтве
X, Y - координаты точки на экране (т.к. это ссылки, то
результат возвращается в этих переменных)
void viewing (float x,float y, float z,float &xe,float &ye,float
&ze) - расчет координат точки в трехмерном
пространстве при текущих углах поворота
x, y, z - начальные координаты точки
xe, ye, ze - координаты после поворота (результат
возвращается в этих переменных)
void mv (float x,float y,float z) - перемещение
рисующего "пера" в заданную позицию без
прорисовки (аналогично moveto)
x, y, z - координаты точки, в которую перемещается
"перо"
void dw (float x,float y,float z) - перемещение
рисующего "пера" в заданную позицию с
прорисовкой (аналогично lineto)
x, y, z - координаты точки, в которую перемещается
"перо"
void ln (float x1,float y1,float z1,float x2,float y2,float z2) -
прорисовка отрезка
x1, y1, z1, x2, y2, z2 - координаты концов отрезка
void paint (object_3d &ob,options &op) - прорисовка
всей модели с данными параметрами отображения
ob - ссылка на объект, содержащий информацию о
модели
op - ссылка на объект, содержащий параметры
отображения