private void MarshalInputAndOutput(FloodFillInput input, FloodFillResult ret, Block block, BlockIR_FF bir) { if (bir.GetIsFirst()) { input.width = block.actualWidth; input.height = block.actualHeight; input.depth = block.actualDepth; input.data = buffer; input.seed = bir.singleSeed; input.mask = block.boundaryMask; input.flagsMap = block.GetFlagMap3d(); input.overstepList = null; ret.ClearResult(); } else { input.width = block.actualWidth; input.height = block.actualHeight; input.depth = block.actualDepth; input.data = buffer; input.mask = block.boundaryMask; input.flagsMap = block.GetFlagMap3d(); input.seed = new Int16Triple(-1, -1, -1); input.overstepList = bir.boundarySeedsInside; ret.ClearResult(); } }