Ejemplo n.º 1
0
	void createMesh(IStorm3D_Mesh &mesh)
	{
		Vector v[8];
		v[0] = Vector(data.radiusX, 0, data.radiusZ);
		v[1] = Vector(data.radiusX, 0, -data.radiusZ);
		v[2] = Vector(-data.radiusX, 0, data.radiusZ);
		v[3] = Vector(-data.radiusX, 0, -data.radiusZ);

		v[4] = v[0] + Vector(0, data.height, 0);
		v[5] = v[1] + Vector(0, data.height, 0);
		v[6] = v[2] + Vector(0, data.height, 0);
		v[7] = v[3] + Vector(0, data.height, 0);

		mesh.ChangeVertexCount(8);
		mesh.ChangeFaceCount(24);

		Storm3D_Vertex *vertexBuffer = mesh.GetVertexBuffer();
		Storm3D_Face *faceBuffer = mesh.GetFaceBuffer();

		for(int i = 0; i < 8; ++i)
			vertexBuffer[i].position = v[i];

		faceBuffer[0].vertex_index[0] = 0;
		faceBuffer[0].vertex_index[1] = 1;
		faceBuffer[0].vertex_index[2] = 2;
		faceBuffer[1].vertex_index[0] = 1;
		faceBuffer[1].vertex_index[1] = 2;
		faceBuffer[1].vertex_index[2] = 3;
		faceBuffer[2].vertex_index[0] = 4;
		faceBuffer[2].vertex_index[1] = 5;
		faceBuffer[2].vertex_index[2] = 6;
		faceBuffer[3].vertex_index[0] = 5;
		faceBuffer[3].vertex_index[1] = 6;
		faceBuffer[3].vertex_index[2] = 7;
		faceBuffer[4].vertex_index[0] = 0;
		faceBuffer[4].vertex_index[1] = 1;
		faceBuffer[4].vertex_index[2] = 4;
		faceBuffer[5].vertex_index[0] = 4;
		faceBuffer[5].vertex_index[1] = 5;
		faceBuffer[5].vertex_index[2] = 1;
		faceBuffer[6].vertex_index[0] = 2;
		faceBuffer[6].vertex_index[1] = 3;
		faceBuffer[6].vertex_index[2] = 6;			
		faceBuffer[7].vertex_index[0] = 6;
		faceBuffer[7].vertex_index[1] = 7;
		faceBuffer[7].vertex_index[2] = 3;
		faceBuffer[8].vertex_index[0] = 0;
		faceBuffer[8].vertex_index[1] = 2;
		faceBuffer[8].vertex_index[2] = 6;
		faceBuffer[9].vertex_index[0] = 6;
		faceBuffer[9].vertex_index[1] = 4;
		faceBuffer[9].vertex_index[2] = 0;
		faceBuffer[10].vertex_index[0] = 1;
		faceBuffer[10].vertex_index[1] = 3;
		faceBuffer[10].vertex_index[2] = 7;
		faceBuffer[11].vertex_index[0] = 7;
		faceBuffer[11].vertex_index[1] = 5;
		faceBuffer[11].vertex_index[2] = 1;

		faceBuffer[0+12].vertex_index[0] = 0;
		faceBuffer[0+12].vertex_index[1] = 2;
		faceBuffer[0+12].vertex_index[2] = 1;
		faceBuffer[1+12].vertex_index[0] = 1;
		faceBuffer[1+12].vertex_index[1] = 3;
		faceBuffer[1+12].vertex_index[2] = 2;
		faceBuffer[2+12].vertex_index[0] = 4;
		faceBuffer[2+12].vertex_index[1] = 6;
		faceBuffer[2+12].vertex_index[2] = 5;
		faceBuffer[3+12].vertex_index[0] = 5;
		faceBuffer[3+12].vertex_index[1] = 7;
		faceBuffer[3+12].vertex_index[2] = 6;
		faceBuffer[4+12].vertex_index[0] = 0;
		faceBuffer[4+12].vertex_index[1] = 4;
		faceBuffer[4+12].vertex_index[2] = 1;
		faceBuffer[5+12].vertex_index[0] = 4;
		faceBuffer[5+12].vertex_index[1] = 1;
		faceBuffer[5+12].vertex_index[2] = 5;
		faceBuffer[6+12].vertex_index[0] = 2;
		faceBuffer[6+12].vertex_index[1] = 6;
		faceBuffer[6+12].vertex_index[2] = 3;			
		faceBuffer[7+12].vertex_index[0] = 6;
		faceBuffer[7+12].vertex_index[1] = 3;
		faceBuffer[7+12].vertex_index[2] = 7;
		faceBuffer[8+12].vertex_index[0] = 0;
		faceBuffer[8+12].vertex_index[1] = 6;
		faceBuffer[8+12].vertex_index[2] = 2;
		faceBuffer[9+12].vertex_index[0] = 6;
		faceBuffer[9+12].vertex_index[1] = 0;
		faceBuffer[9+12].vertex_index[2] = 4;
		faceBuffer[10+12].vertex_index[0] = 1;
		faceBuffer[10+12].vertex_index[1] = 7;
		faceBuffer[10+12].vertex_index[2] = 3;
		faceBuffer[11+12].vertex_index[0] = 7;
		faceBuffer[11+12].vertex_index[1] = 1;
		faceBuffer[11+12].vertex_index[2] = 5;
	}