From 4658db3cea032f555f05683b2b2b664f37c48903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Sun, 16 Jun 2013 16:06:46 +0200 Subject: [PATCH] Fixed terrain paint brush 'smooth' --- src/rendering/terrain/ter_painting.c | 8 ++--- src/testing/test_terrain_painting.c | 46 ---------------------------- 2 files changed, 4 insertions(+), 50 deletions(-) diff --git a/src/rendering/terrain/ter_painting.c b/src/rendering/terrain/ter_painting.c index 1adc5ea..cefe248 100644 --- a/src/rendering/terrain/ter_painting.c +++ b/src/rendering/terrain/ter_painting.c @@ -536,10 +536,10 @@ static double _applyBrushSmooth(TerrainHeightMap* heightmap, TerrainBrush* brush UNUSED(data); double ideal, factor; - ideal = terrainGetInterpolatedHeight(heightmap->terrain, x + brush->total_radius * 0.5, z, 0, 1); - ideal += terrainGetInterpolatedHeight(heightmap->terrain, x - brush->total_radius * 0.5, z, 0, 1); - ideal += terrainGetInterpolatedHeight(heightmap->terrain, x, z - brush->total_radius * 0.5, 0, 1); - ideal += terrainGetInterpolatedHeight(heightmap->terrain, x, z + brush->total_radius * 0.5, 0, 1); + ideal = terrainGetInterpolatedHeight(heightmap->terrain, (x + brush->total_radius * 0.5) * heightmap->terrain->scaling, z * heightmap->terrain->scaling, 0, 1); + ideal += terrainGetInterpolatedHeight(heightmap->terrain, (x - brush->total_radius * 0.5) * heightmap->terrain->scaling, z * heightmap->terrain->scaling, 0, 1); + ideal += terrainGetInterpolatedHeight(heightmap->terrain, x * heightmap->terrain->scaling, (z - brush->total_radius * 0.5) * heightmap->terrain->scaling, 0, 1); + ideal += terrainGetInterpolatedHeight(heightmap->terrain, x * heightmap->terrain->scaling, (z + brush->total_radius * 0.5) * heightmap->terrain->scaling, 0, 1); ideal /= 4.0; factor = influence * force; if (factor > 1.0) diff --git a/src/testing/test_terrain_painting.c b/src/testing/test_terrain_painting.c index 8fd2f20..23cbcb7 100644 --- a/src/testing/test_terrain_painting.c +++ b/src/testing/test_terrain_painting.c @@ -91,47 +91,6 @@ START_TEST(test_terrain_painting_grid) } END_TEST -START_TEST(test_terrain_painting_brush_elevation) -{ - /* Set up */ - TerrainDefinition* terrain = _setUpDefinition(); - - /* Test */ - /* TODO */ - - /* Tear down */ - _tearDownDefinition(terrain); -} -END_TEST - -START_TEST(test_terrain_painting_brush_noise) -{ - /* Set up */ - TerrainDefinition* terrain = _setUpDefinition(); - - /* Test */ - /* TODO */ - - /* Tear down */ - _tearDownDefinition(terrain); -} - -END_TEST - -START_TEST(test_terrain_painting_brush_smooth) -{ - /* Set up */ - TerrainDefinition* terrain = _setUpDefinition(); - - /* Test */ - /* TODO */ - - /* Tear down */ - _tearDownDefinition(terrain); -} - -END_TEST - static void _checkBrushResultSides(TerrainDefinition* terrain, TerrainBrush* brush, double center, double midhard, double hard, double midsoft, double soft, double exter, double neg_midhard, double neg_hard, double neg_midsoft, double neg_soft, double neg_exter) { UNUSED(brush); @@ -151,7 +110,6 @@ static void _checkBrushResultSides(TerrainDefinition* terrain, TerrainBrush* bru ck_assert_double_eq(terrainGetGridHeight(terrain, -5, 0, 1), neg_exter); } - static void _checkBrushResult(TerrainDefinition* terrain, TerrainBrush* brush, double center, double midhard, double hard, double midsoft, double soft, double exter, int mirror) { if (mirror) @@ -206,7 +164,6 @@ START_TEST(test_terrain_painting_brush_flatten) /* Tear down */ _tearDownDefinition(terrain); } - END_TEST START_TEST(test_terrain_painting_brush_reset) @@ -275,9 +232,6 @@ END_TEST TEST_CASE(terrain_painting, test_terrain_painting_grid, - test_terrain_painting_brush_elevation, - test_terrain_painting_brush_noise, - test_terrain_painting_brush_smooth, test_terrain_painting_brush_flatten, test_terrain_painting_brush_reset)