mirror of
https://github.com/ApfelTeeSaft/vb01.git
synced 2026-08-26 19:33:45 +00:00
73 lines
1.3 KiB
C++
73 lines
1.3 KiB
C++
#include"box.h"
|
|
|
|
namespace vb01{
|
|
Box::Box(Vector3 size){
|
|
this->staticVerts=false;
|
|
|
|
numTris=12;
|
|
indices=new unsigned int[3*numTris];
|
|
vertices=new Vertex[3*numTris];
|
|
|
|
setSize(size);
|
|
|
|
construct();
|
|
}
|
|
|
|
void Box::setSize(Vector3 size){
|
|
this->size=size;
|
|
Vector3 pos[]={
|
|
Vector3(size.x/2,size.y/2,size.z/2),
|
|
Vector3(-size.x/2,size.y/2,size.z/2),
|
|
Vector3(-size.x/2,size.y/2,-size.z/2),
|
|
Vector3(size.x/2,size.y/2,-size.z/2),
|
|
|
|
Vector3(size.x/2,-size.y/2,size.z/2),
|
|
Vector3(-size.x/2,-size.y/2,size.z/2),
|
|
Vector3(-size.x/2,-size.y/2,-size.z/2),
|
|
Vector3(size.x/2,-size.y/2,-size.z/2)
|
|
};
|
|
Vector3 norm[]={
|
|
Vector3(0,0,1),
|
|
Vector3(0,1,0),
|
|
Vector3(1,0,0),
|
|
|
|
Vector3(0,0,-1),
|
|
Vector3(0,-1,0),
|
|
Vector3(-1,0,0)
|
|
};
|
|
Vector2 tex[]={
|
|
Vector2(1,1),
|
|
Vector2(0,1),
|
|
Vector2(0,0),
|
|
Vector2(1,0)
|
|
};
|
|
unsigned int data[]={
|
|
0,3,1, 4,3,0, 1,3,2,
|
|
5,3,3, 1,3,2, 4,3,0,
|
|
|
|
2,0,1, 6,0,0, 3,0,2,
|
|
6,0,2, 7,0,0, 3,0,3,
|
|
|
|
3,2,0, 7,2,1, 4,2,2,
|
|
4,2,2, 0,2,3, 3,2,0,
|
|
|
|
1,5,0, 5,5,1, 6,5,2,
|
|
6,5,2, 2,5,3, 1,5,0,
|
|
|
|
0,1,0, 1,1,1, 2,1,2,
|
|
2,1,2, 3,1,3, 0,1,0,
|
|
|
|
4,4,3, 6,4,1, 5,4,2,
|
|
6,4,1, 4,4,3, 7,4,0
|
|
};
|
|
for(int i=0;i<3*numTris;i++){
|
|
Vertex v;
|
|
v.pos=pos[data[3*i]];
|
|
v.norm=norm[data[3*i+1]];
|
|
v.texCoords=tex[data[3*i+2]];
|
|
vertices[i]=v;
|
|
indices[i]=i;
|
|
}
|
|
}
|
|
}
|