コード例 #1
0
        public static double[,,] EsapiDoseToDose3dArray(Dose doseEsapi)
        {
            int xSize = doseEsapi.XSize;
            int ySize = doseEsapi.YSize;
            int zSize = doseEsapi.ZSize;

            double[,,] dose3dArray = new double[zSize, ySize, xSize];

            int[,] voxelValuesInPlane = new int[xSize, ySize];
            for (int i = 0; i < zSize; i++)
            {
                doseEsapi.GetVoxels(i, voxelValuesInPlane);

                for (int j = 0; j < ySize; j++)
                {
                    for (int k = 0; k < xSize; k++)
                    {
                        int voxelValue = voxelValuesInPlane[k, j];
                        var doseValue  = doseEsapi.VoxelToDoseValue(voxelValue);
                        dose3dArray[i, j, k] = doseValue.Dose;
                    }
                }
            }

            return(dose3dArray);
        }
コード例 #2
0
        public static string EsapiDoseUnitString(Dose doseEsapi)
        {
            int xSize = doseEsapi.XSize;
            int ySize = doseEsapi.YSize;

            int[,] voxelValuesInPlane = new int[xSize, ySize];
            doseEsapi.GetVoxels(0, voxelValuesInPlane);
            int voxelValue = voxelValuesInPlane[0, 0];

            DoseValue doseValue = doseEsapi.VoxelToDoseValue(voxelValue);

            return(doseValue.UnitAsString);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: redcurry/MatlabInterop
        public static double[,] GetDosePlane(int z, Dose dose)
        {
            var voxels = new int[dose.XSize, dose.YSize];

            dose.GetVoxels(z, voxels);

            var dosePlane = new double[dose.XSize, dose.YSize];

            for (int x = 0; x < dose.XSize; x++)
            {
                for (int y = 0; y < dose.YSize; y++)
                {
                    dosePlane[x, y] = dose.VoxelToDoseValue(voxels[x, y]).Dose;
                }
            }

            return(dosePlane);
        }