-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathC3DSObject.h
53 lines (51 loc) · 1.09 KB
/
C3DSObject.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#pragma once
#include "main.h"
#include "Shader.h"
#include "Camera.h"
#include "Light.h"
#include "Material.h"
#include "VBOInfo.h"
#include "Occluder.h"
#include <fstream>
using namespace glm;
class C3DSObject
{
friend class C3DS;
friend bool ObjectsComparer(C3DSObject *obj1, C3DSObject *obj2);
friend void ReadChunk(ifstream &, C3DS*);
private:
// èìÿ îáúåêòà
string name;
// èíäåêñû áóôåðîâ ARB
GLuint Buffer;
// êîëè÷åñòâî òåêñò. êîîðäèíàò
unsigned short TexVertCount;
// ñïèñîê òåêñò. êîîðäèíàò
GLfloat *TexVertList;
// êîëè÷åñòâî èíäåêñîâ
unsigned int IndexCount;
// ñïèñîê èíäåêñîâ
unsigned short *IndexList;
// êîëè÷åñòâî âåðøèí
unsigned short VertexCount;
// ñïèñîê âåðøèí
GLfloat *VertexList;
// áóôåðû VBO äëÿ èíäåêñîâ
vector<CVBOInfo> IndexVBO;
// ëîêàëüíàÿ ìàòðèöà
GLfloat LocalMatrix[12];
// Occluder
COccluder* occluder;
// Áûë ëè îòðèñîâàí íà ïîñëåäíåì êàäðå
bool wasDrawn;
// Ïðîçðà÷íûé ëè
bool isTransparent;
// êîíñòðóêòîð
C3DSObject();
~C3DSObject(void);
public:
// óñòàíîâêà èìåíè
void SetName(char* name);
// âûâîä îáúåêòà íà ýêðàí
void Render (void);
};