public static TerrainShapeDb CreateTerrainShapeDb(TerrainDetailProvider terrainDetailProvider, CommonExecutorUTProxy commonExecutorUtProxy, TerrainDetailAlignmentCalculator terrainDetailAlignmentCalculator, bool mergingEnabled, bool saveTexturesToFile, bool loadTexturesFromFile, TerrainDetailFileManager fileManager) { var cachingConfiguration = new CachingConfiguration() { SaveAssetsToFile = saveTexturesToFile, UseFileCaching = loadTexturesFromFile }; Func <IAssetsCache <InternalTerrainDetailElementToken, TextureWithSize> > terrainCacheGenerator = () => new InMemoryAssetsCache <InternalTerrainDetailElementToken, TextureWithSize>( CreateLevel2AssetsCache <InternalTerrainDetailElementToken, TextureWithSize>( cachingConfiguration, new InMemoryCacheConfiguration(), new TextureWithSizeActionsPerformer(commonExecutorUtProxy), new CachingTerrainDetailFileManager(fileManager))); var cachedTerrainDetailProvider = new CachedTerrainDetailProvider( terrainDetailProvider, terrainCacheGenerator, mergingEnabled); cachedTerrainDetailProvider.Initialize().Wait(); var terrainShapeDb = new TerrainShapeDb(cachedTerrainDetailProvider, terrainDetailAlignmentCalculator); return(terrainShapeDb); }
public TerrainShapeDb(CachedTerrainDetailProvider cachedTerrainDetailProvider, TerrainDetailAlignmentCalculator alignmentCalculator) { _cachedTerrainDetailProvider = cachedTerrainDetailProvider; _alignmentCalculator = alignmentCalculator; }