コード例 #1
0
        public void setMRI(CT m, bool isLeft)
        {
            mri = m;
            //now need to gather information representing the CT data, then pass it to the volNode
            //the volNode can then load it into openGL at will
            int x = mri.width; int y = mri.height; int z = mri.depth;
            int w = (int)(x * mri.voxelSizeX);
            int h = (int)(y * mri.voxelSizeY);
            int l = (int)(z * mri.voxelSizeZ);

            Console.WriteLine("cropped size of mri data" + w + ", " + h + ", " + l);
            int dataSize = x * y * z * 4;

            int[] allDatint = new int[dataSize];
            Console.WriteLine("data size from C# " + dataSize + ", ");

            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    for (int k = 0; k < z; k++)
                    {
                        int v = (i + x * (j + k * y));
                        //int v = (k + z * (j + i * y)) * 4;
                        //for (int hl = 0; hl < 4; hl++)
                        //{
                        //    allDatint[v + hl] = mri.getVoxel_as(i, j, k, 0);
                        //    //if (mri.getVoxel_as(i, j, k, 0) >254) Console.WriteLine(v + ": " + mri.getVoxel_as(i, j, k, 0) + " stored: " + allDatint[v + hl]);
                        //}

                        allDatint[v + 0] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 1] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 2] = mri.getVoxel_as(i, j, k, 0);
                        allDatint[v + 3] = 255;
                    }
                }
            }

            //for (int ik = 0; ik < x * y * z * 4;ik++ )
            //{
            //    if(allDatint[ik]>100)Console.WriteLine("d: " + allDatint[ik]);
            //}
            Console.WriteLine("done printing data");
            volNode = new CallbackNode(w, h, l, x, y, z, allDatint, isLeft);
            volNode.setUpCallBack();
            _root.addChild(volNode);
        }