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); }
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); }