-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathobbStruct.h
37 lines (30 loc) · 1.14 KB
/
obbStruct.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
#pragma once
#include "conf.h"
#include "obbNode.h"
class CObbStruct
{
public:
CObbStruct();
CObbStruct(const double* ver,int verSize,const int* ind,int indSize,double triSize,int triCnt);
virtual ~CObbStruct();
CObbStruct* copyYourself() const;
void scaleYourself(double f);
bool isSame(const double* v,int vSize,const int* ind,int indSize,double triSize,int triCnt);
unsigned char* serialize(int& dataSize) const;
bool deserialize(const unsigned char* data);
static void addObbStruct(CObbStruct* obbStruct);
static void removeObbStruct(CObbStruct* obbStruct);
static CObbStruct* copyObbStructFromExisting(const double* vert,int vertSize,const int* ind,int indSize,double triSize,int triCnt);
static void reduceTriangleSizes(std::vector<double>& vert,std::vector<int>& ind,double triSize);
CObbNode* obb;
std::vector<double> vertices;
std::vector<int> indices;
private:
int _originalVerticesSize;
unsigned long _originalVerticesHash;
int _originalIndicesSize;
unsigned long _originalIndicesHash;
double _triSize;
int _triCnt;
static std::vector<CObbStruct*> _obbStructs;
};