public void Bind(object pArgument) { if (pArgument is MathFunctionArguments) { MathFunctionArguments args = (MathFunctionArguments)pArgument; inrs = args.InRaster; myFunctionHelper.Bind(inrs); myRasterInfo = myFunctionHelper.RasterInfo; myPixeltype = myRasterInfo.PixelType; myValidFlag = true; } else { throw new System.Exception("Incorrect arguments object. Expected: MathFunctionArguments"); } }
/// <summary> /// Calculates a transform a raster values to a different value via tranType /// </summary> /// <param name="inRaster"></param> /// <param name="typ"></param> /// <returns></returns> public IFunctionRasterDataset calcMathRasterFunction(object inRaster, transType typ) { IFunctionRasterDataset rRst = createIdentityRaster(inRaster); string tempAr = funcDir + "\\" + FuncCnt + ".afr"; IFunctionRasterDataset frDset = new FunctionRasterDatasetClass(); IFunctionRasterDatasetName frDsetName = new FunctionRasterDatasetNameClass(); frDsetName.FullName = tempAr; frDset.FullName = (IName)frDsetName; IRasterFunction rsFunc = null; switch (typ) { case transType.LOG10: rsFunc = new FunctionRasters.log10FunctionDataset(); break; case transType.LN: rsFunc = new FunctionRasters.logFunctionDataset(); break; case transType.EXP: rsFunc = new FunctionRasters.expFunctionDataset(); break; case transType.EXP10: rsFunc = new FunctionRasters.exp10FunctionDataset(); break; case transType.SIN: rsFunc = new FunctionRasters.sinFunctionDataset(); break; case transType.COS: rsFunc = new FunctionRasters.cosFunctionDataset(); break; case transType.TAN: rsFunc = new FunctionRasters.tanFunctionDataset(); break; case transType.ASIN: rsFunc = new FunctionRasters.asinFunctionDataset(); break; case transType.ACOS: rsFunc = new FunctionRasters.acosFunctionDataset(); break; case transType.ATAN: rsFunc = new FunctionRasters.atanFunctionDataset(); break; case transType.RADIANS: rsFunc = new FunctionRasters.radiansFunctionDataset(); break; case transType.SQRT: rsFunc = new FunctionRasters.sqrtFunctionDataset(); break; case transType.SQUARED: rsFunc = new FunctionRasters.squaredFunctionDataset(); break; default: rsFunc = new FunctionRasters.absFunctionDataset(); break; } FunctionRasters.MathFunctionArguments args = new FunctionRasters.MathFunctionArguments(this); args.InRaster = rRst; frDset.Init(rsFunc, args); return frDset; }