public Cell(Cell parent, CellVertex index, Vertex[] vertices) { this.index = index; this.parent = parent; level = parent.level + 1; tree = parent.tree; uid = tree.getCellUID; //vertices = new Vertex[CellVerticesNumber]; children = null; data = new TCellData(); tree.cells.Add(this); this.vertices = vertices; }
public Cell(OctTree <TCellData, TVertexData> tree, Vector3 position, float size) { this.tree = tree; level = 0; uid = tree.getCellUID; vertices = new Vertex[CellVerticesNumber]; children = null; data = new TCellData(); tree.cells.Add(this); // 7---4 7 Py // / /| | | // 3---0 5 6---5 6---Px // | |/ / / // 2---1 2 Pz /* Nx Ny Nz Px Py Pz * 0 3 1 4 * 1 2 5 0 * 2 6 1 3 * 3 2 7 0 * 4 7 5 0 * 5 6 4 1 * 6 5 7 2 * 7 6 4 3 */ vertices[0] = new Vertex(tree, level, new Vector3(size, size, size)); vertices[1] = new Vertex(tree, level, new Vector3(size, 0f, size)); vertices[2] = new Vertex(tree, level, new Vector3(0f, 0f, size)); vertices[3] = new Vertex(tree, level, new Vector3(0f, size, size)); vertices[4] = new Vertex(tree, level, new Vector3(size, size, 0f)); vertices[5] = new Vertex(tree, level, new Vector3(size, 0f, 0f)); vertices[6] = new Vertex(tree, level, new Vector3(0f, 0f, 0f)); vertices[7] = new Vertex(tree, level, new Vector3(0f, size, 0f)); // Nx Ny Nz Px Py Pz vertices[0].AddConnectionLevel(new Vertex[6] { vertices[3], vertices[1], vertices[4], null, null, null }, level); vertices[1].AddConnectionLevel(new Vertex[6] { vertices[2], null, vertices[5], null, vertices[0], null }, level); vertices[2].AddConnectionLevel(new Vertex[6] { null, null, vertices[6], vertices[1], vertices[3], null }, level); vertices[3].AddConnectionLevel(new Vertex[6] { null, vertices[2], vertices[7], vertices[0], null, null }, level); vertices[4].AddConnectionLevel(new Vertex[6] { vertices[7], vertices[5], null, null, null, vertices[0] }, level); vertices[5].AddConnectionLevel(new Vertex[6] { vertices[6], null, null, null, vertices[4], vertices[1] }, level); vertices[6].AddConnectionLevel(new Vertex[6] { null, null, null, vertices[5], vertices[7], vertices[2] }, level); vertices[7].AddConnectionLevel(new Vertex[6] { null, vertices[6], null, vertices[4], null, vertices[3] }, level); }