private void LoadSettings() { if (controlPanel != null) { terrainSettings.CopyFrom(controlPanel.GetTerrain()); } else { if (terrainSettings == null) { terrainSettings = new TerrainSettings(); } } DNA = new float[7]; DNA[0] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA0); DNA[1] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA1); DNA[2] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA2); DNA[3] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA3); DNA[4] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA4); DNA[5] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA5); DNA[6] = terrainSettings.GetFloat(TerrainSettings.Setting.DNA6); int tempFillMode = terrainSettings.GetInt(TerrainSettings.Setting.FillMode); if (fillMode != tempFillMode) { SetFillMode(tempFillMode); } int tempLightMode = terrainSettings.GetInt(TerrainSettings.Setting.LightMode); if (lightMode != tempLightMode) { SetLightMode(tempLightMode); } rotateSpeed = terrainSettings.GetFloat(TerrainSettings.Setting.RotateSpeed); levelOfDetail = terrainSettings.GetInt(TerrainSettings.Setting.SampleDepth); if (terrainSettings.GetAction(TerrainSettings.Action.Generate)) { Generate(); } if (terrainSettings.GetAction(TerrainSettings.Action.UpSample)) { if (CanUpsample()) { heightMap.UpSample(DNA); heightMap.CalcVerticesIndices(SIZE); LoadMesh(); } } if (terrainSettings.GetAction(TerrainSettings.Action.DownSample)) { heightMap.DownSample(); heightMap.CalcVerticesIndices(SIZE); LoadMesh(); } if (terrainSettings.GetAction(TerrainSettings.Action.RandomizeLight)) { RandomizeLights(); SetLightMode(-1); } if (terrainSettings.GetAction(TerrainSettings.Action.RandomizeFill)) { RandomizeFill(); SetFillMode(-1); } }