コード例 #1
0
ファイル: QTrkInstance.cs プロジェクト: jcnossen/qtrk
        public FloatImg GetRadialZLUT()
        {
            int count, planes, radialsteps;

            QTrkDLL.QTrkGetRadialZLUTSize(inst, out count, out planes, out radialsteps);

            FloatImg lut = new FloatImg(radialsteps, planes * count);

            QTrkDLL.QTrkGetRadialZLUT(inst, lut.pixels);
            return(lut);
        }
コード例 #2
0
ファイル: QTrkInstance.cs プロジェクト: jcnossen/qtrk
        public FloatImg[] GetRadialZLUTImages()
        {
            int count, planes, radialsteps;

            QTrkDLL.QTrkGetRadialZLUTSize(inst, out count, out planes, out radialsteps);

            IntPtr lutspace = Marshal.AllocHGlobal(sizeof(float) * count * planes * radialsteps);

            QTrkDLL.QTrkGetRadialZLUT(inst, lutspace);

            FloatImg[] luts = new FloatImg[count];
            float *    src  = (float *)lutspace.ToPointer();

            for (int i = 0; i < count; i++)
            {
                float *srcimg = &src[i * planes * radialsteps];
                luts[i] = new FloatImg(radialsteps, planes, srcimg);
            }

            Marshal.FreeHGlobal(lutspace);

            return(luts);
        }