コード例 #1
0
 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;
 }
コード例 #2
0
        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);
        }