public void AssignFunctions(TerrainGenerator terrainGenerator, FilterGenerator filterGenerator, RiverGenerator riverGenerator, ErosionGenerator erosionGenerator) { tg = terrainGenerator; fg = filterGenerator; rg = riverGenerator; eg = erosionGenerator; lt = tg.localTerrain; UpdateLayers(); }
public void AssignFunctions(GlobalCoordinates globalTerrainC, TerrainGenerator terrainGenerator, FilterGenerator filterGenerator, RiverGenerator riverGenerator, ErosionGenerator erosionGenerator) { this.globalTerrainC = globalTerrainC; tg = terrainGenerator; fg = filterGenerator; rg = riverGenerator; eg = erosionGenerator; lm.AssignFunctions(tg, fg, rg, eg); }
float T = 0.1f; //delta time #endregion Fields #region Constructors public HydraulicErosion(ErosionGenerator erosionGenerator) { eg = erosionGenerator; lm = eg.lt.lm; hydraulicErosionMap = new GlobalCoordinates(100); sedimentMap = new GlobalCoordinates(100); waterMap = new GlobalCoordinates(100); stepMap = new GlobalCoordinates(100); //inflowMap = new GlobalCoordinates(100); outflowTop = new GlobalCoordinates(100); outflowRight = new GlobalCoordinates(100); outflowBot = new GlobalCoordinates(100); outflowLeft = new GlobalCoordinates(100); velocityX = new GlobalCoordinates(100); velocityZ = new GlobalCoordinates(100); erosionEffect = new HashSet<Vertex>(); outflowField = new HashSet<Vertex>(); noWater = new HashSet<Vertex>(); }
public void AssignFunctions(GlobalTerrain globalTerrain, LocalTerrain localTerrain, FilterGenerator filterGenerator, FunctionMathCalculator functionMathCalculator, RiverGenerator riverGenerator, GridManager gridManager, GUIManager guiManager, ErosionGenerator erosionGenerator) { this.globalTerrain = globalTerrain; this.localTerrain = localTerrain; this.filterGenerator = filterGenerator; this.riverGenerator = riverGenerator; this.erosionGenerator = erosionGenerator; fmc = functionMathCalculator; gm = gridManager; rt.AssignFunctions(fmc); ds.AssignFunctions(localTerrain); this.guiManager = guiManager; message = guiManager.message; }
void Start() { guiManager = GameObject.Find("GUI").GetComponent<GUIManager>(); terrainWidth = 100; terrainHeight = terrainWidth; try { GUIterrainPlannerMenu tpMenu = GameObject.Find("TerrainPlanner").GetComponent<GUIterrainPlannerMenu>(); patchSize = tpMenu.patch.patchSize; } catch (Exception e) { Debug.Log("TerrainPlanner not found"); patchSize = 64; } cameraMovement camera = transform.GetComponent<cameraMovement>(); camera.ChangePosition(new Vector3(0, 100, 0)); camera.ChangeRotation(new Vector3(90, 0, 0)); scaleTerrainY = 12; int quadrantSize = Math.Max(terrainWidth, terrainHeight); layerManager = new LayerManager(); globalTerrain = new GlobalTerrain(quadrantSize); localTerrain = new LocalTerrain(terrainWidth, terrainHeight, 30, globalTerrain, layerManager); filterGenerator = new FilterGenerator(quadrantSize, localTerrain); functionMathCalculator = new FunctionMathCalculator(); functionDebugger = new FunctionDebugger(); functionRiverDigger = new FunctionRiverDigger(); functionRiverPlanner = new FunctionRiverPlanner(); functionTerrainManager = new FunctionTerrainManager(); terrainGenerator = new TerrainGenerator(patchSize); riverGenerator = new RiverGenerator(localTerrain); erosionGenerator = new ErosionGenerator(localTerrain); gridManager = new GridManager(new Vector3(0,0,0), patchSize, patchSize); AssignFunctions(); terrainGenerator.initialize(scaleTerrainY); localTerrain.UpdateVisibleTerrain(new Vector3(0, 0, 0), false); }
public float[] CreateNewHeightMap() { _heightMap = new float[_normalOpt.size * _normalOpt.size]; float[] cloud = _cfGen.GetNewField(); float[] voronoi = _vnGen.GetNewField(); for(int i=0; i<_heightMap.Length; ++i) { _heightMap[i] = _normalOpt.voronoiInf * voronoi[i] + _normalOpt.cloudInf * cloud[i]; } _erGen = new ErosionGenerator(_heightMap); if(_normalOpt.useThermalErosion) { _heightMap = _erGen.ThermalErosion(3); } if(_normalOpt.useHydroErosion) { } return _heightMap; }