public CachingLinearWeightsProviderFactory2(IScatteredPointContextBasedLinearWeightProviderOnSphere <TContext> weightsProvider, IAsyncMap <INodes, TContext> contextProvider) { result = new AsyncLazy <IScatteredPointsLinearInterpolatorOnSphere>(async() => { var contextProvidingFactory = new AsyncMapCacheDecoratingFactory <INodes, TContext>(new HashBasedEquatibleINodesConverter(), contextProvider); var cachingDecorator = await contextProvidingFactory.CreateAsync(); var adapter = new CellRequestToPointsAdapter <TContext>(weightsProvider); var facade = new TwoPhaseScatteredPointsLenearInterpolatorFacade <TContext>(cachingDecorator, adapter); return(facade); }); }
/// <summary> /// /// </summary> /// <param name="component"></param> /// <param name="cellDivisionNum">the cell will be approximated as cellDivisionNum*cellDivisionNum regular grid</param> public CellRequestToPointsAdapter(IScatteredPointContextBasedLinearWeightProviderOnSphere <TContext> component, int cellDivisionNum = 2) { this.component = component; this.cellDivisionNum = cellDivisionNum; }
public CachingLinearWeightsProviderFactory(IScatteredPointContextBasedLinearWeightProviderOnSphere <TContext> weightsProvider, IAsyncMap <INodes, TContext> contextProvider) { this.weightsProvider = weightsProvider; this.contextProvidingFactory = new AsyncMapCacheDecoratingFactory <INodes, TContext>(converter, contextProvider); }