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);
     });
 }
 public CachingLinearWeightsProviderFactory(IScatteredPointContextBasedLinearWeightProviderOnSphere <TContext> weightsProvider, IAsyncMap <INodes, TContext> contextProvider)
 {
     this.weightsProvider         = weightsProvider;
     this.contextProvidingFactory = new AsyncMapCacheDecoratingFactory <INodes, TContext>(converter, contextProvider);
 }