public TerrainDetailProvider( TerrainDetailGenerator generator, TerrainDetailCornerMerger cornerMerger, TerrainDetailAlignmentCalculator alignmentCalculator) { _generator = generator; _cornerMerger = cornerMerger; _alignmentCalculator = alignmentCalculator; }
private TerrainDetailProvider CreateTerrainDetailProvider(TerrainDetailGenerator generator, CommonExecutorUTProxy commonExecutorUtProxy) { var cornerMerger = new TerrainDetailCornerMerger( new LateAssignFactory <BaseTerrainDetailProvider>(() => _gameInitializationFields.Retrive <BaseTerrainDetailProvider>()), _gameInitializationFields.Retrive <TerrainDetailAlignmentCalculator>(), _gameInitializationFields.Retrive <UTTextureRendererProxy>(), _gameInitializationFields.Retrive <TextureConcieverUTProxy>(), commonExecutorUtProxy, _configuration.TerrainMergerConfiguration); var provider = new TerrainDetailProvider(generator, cornerMerger, _gameInitializationFields.Retrive <TerrainDetailAlignmentCalculator>()); return(provider); }
public TerrainShapeDbUnderTest(bool useTextureSavingToDisk = false, bool useCornerMerging = false, string terrainDetailFilePath = "C:\\unityCache\\", bool useTextureLoadingFromDisk = false) { CommonExecutorUTProxy commonExecutorUtProxy = new CommonExecutorUTProxy(); ComputeShaderContainerGameObject containerGameObject = GameObject.FindObjectOfType <ComputeShaderContainerGameObject>(); var globalHeightTexture = CreateGlobalHeightTexture(commonExecutorUtProxy); UTTextureRendererProxy textureRendererProxy = new UTTextureRendererProxy(new TextureRendererService( new MultistepTextureRenderer(containerGameObject), new TextureRendererServiceConfiguration() { StepSize = new Vector2(400, 400) })); UnityThreadComputeShaderExecutorObject computeShaderExecutorObject = new UnityThreadComputeShaderExecutorObject(); var terrainDetailGenerator = Ring1DebugObjectV2.CreateTerrainDetailGenerator( globalHeightTexture, textureRendererProxy, commonExecutorUtProxy, computeShaderExecutorObject, containerGameObject); TerrainDetailCornerMerger merger = null; LateAssignFactory <BaseTerrainDetailProvider> detailProviderFactory = new LateAssignFactory <BaseTerrainDetailProvider>(); if (useCornerMerging) { merger = new TerrainDetailCornerMerger(detailProviderFactory, new TerrainDetailAlignmentCalculator(240), textureRendererProxy, new TextureConcieverUTProxy(), new CommonExecutorUTProxy(), new TerrainDetailCornerMergerConfiguration()); } var terrainDetailProvider = Ring1DebugObjectV2.CreateTerrainDetailProvider(terrainDetailGenerator, merger); _shapeDb = FETerrainShapeDbInitialization.CreateTerrainShapeDb(terrainDetailProvider, commonExecutorUtProxy , new TerrainDetailAlignmentCalculator(240), useCornerMerging, useTextureSavingToDisk, useTextureLoadingFromDisk , new TerrainDetailFileManager(terrainDetailFilePath, commonExecutorUtProxy)); var baseProvider = new FromTerrainDbBaseTerrainDetailProvider(_shapeDb); detailProviderFactory.Assign(baseProvider); terrainDetailGenerator.SetBaseTerrainDetailProvider(baseProvider); }
public static TerrainDetailProvider CreateTerrainDetailProvider(TerrainDetailGenerator generator, TerrainDetailCornerMerger cornerMerger = null) { var provider = new TerrainDetailProvider(generator, cornerMerger, new TerrainDetailAlignmentCalculator(240)); return(provider); }