Класс простейщего обьекта

Автор: zombie
Комментарии к записи Класс простейщего обьекта отключены

Начнем пожалуй с самого примера класса и далее разберем его поподробнее:

class DEN_Obj
{
private:
char name[20];

int vertices_col;
int polygons_col;
float Scale;

DEN_Vertex Position;
DEN_Vertex Rotation;

DEN_Vertex *Vertex;
DEN_Polygon *Polygon;
DEN_MapCoord *MapCoord;
int id_texture;

private:
public:
bool Load3DS (char *filename);
void Render(int text);
void SetScale(float Sc);
void SetPosition(float x, float y, float z);
void SetRotation(float x, float y, float z);
void SetTexture(int Id);
};

Как видно из примера я определил еще несколько вспомогательных структур, таких как DEN_Polygon (структура полигонов), DEN_Vertex (структура вершин) и DEN_MapCoord (структура тексткрных координат). Приведу их пример:

// Вертексы
typedef struct{
float x,y,z;
}DEN_Vertex;

// Полигоны (треугольные)
typedef struct{
unsigned short a,b,c;
}DEN_Polygon;

// КоординатыТекстуры
typedef struct{
float u,v;
}DEN_MapCoord;

Собственно структура DEN_Vertex содержит в себе 3 координаты x,y,z для представления точки в нашем 3D пространстве. Структура полигонов DEN_Polygon содержит номера точек a,b,c из которых и состоит данный полигон. В структуре DEN_MapCoord мы описываем 2 координаты u, v которые указывают на смещение привязки точки к текстуре (от 0 до 1).

Далее разберем класс DEN_Obj:

name - название обьекта (можно и не использовать эту переменную или вообще удалить её)
vertices_col - указывает количество вершин в нашем обьекте.
polygons_col - количество полигонов.
Scale - множитель объекта (для удобного маштабирования, 1 - обычный размер)
Position - указывает позицию обьекта
Rotation - вращение обьекта (углы)
*Vertex - здесь хранятся наши вершины
*Polygon - номера вершин образующих полигоны
*MapCoord - текстурные координаты вершин
id_texture - идентификатор текстуры

Далее идут функции для работы с классом:

bool Load3DS (char *filename) - Функция загрузки из файла формата 3ds
void Render(int text) - Функция отрисовки объекта
void SetScale(float Sc) - Функция устанавливающая масштаб
void SetPosition(float x, float y, float z) - устанавливает координаты обьекта
void SetRotation(float x, float y, float z) - углы вращения под которыми обьект находиться
void SetTexture(int Id) - устанавливает идентификатор текстуры

Комментарии закрыты.