diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2014-12-15 04:29:00 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2014-12-15 04:29:00 +0000 |
commit | 9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f (patch) | |
tree | 3f408ec87a50685a09d63559d449ca5930b278a6 /generator | |
parent | a28e3729f7c63a6f507e2f3418f29b1e902942ca (diff) | |
download | netpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.tar.gz netpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.tar.xz netpbm-mirror-9540aa5f52e67dcf5a8aae2e6fa6f52793d6268f.zip |
Clip elevation to maxval
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@2338 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'generator')
-rw-r--r-- | generator/pamcrater.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/generator/pamcrater.c b/generator/pamcrater.c index 3acc4966..50745501 100644 --- a/generator/pamcrater.c +++ b/generator/pamcrater.c @@ -240,6 +240,18 @@ terrainMod(struct pam * const pamP, static void +setElev(struct pam * const pamP, + tuple ** const terrain, + int const cx, + int const cy, + unsigned int const elevation) { + + *terrainModP(pamP, terrain, cx, cy) = MIN(pamP->maxval, elevation); +} + + + +static void smallCrater(struct pam * const pamP, tuple ** const terrain, int const cx, @@ -278,7 +290,7 @@ smallCrater(struct pam * const pamP, assert(axelev > 0); - *terrainModP(pamP, terrain, cx, cy) = axelev + x; + setElev(pamP, terrain, cx, cy, axelev + x); } } @@ -324,7 +336,7 @@ normalCrater(struct pam * const pamP, Generate a regular (not tiny) crater. Generate an impact feature of the correct size and shape. ------------------------------------------------------------------------------*/ +----------------------------------------------------------------------------*/ int const impactRadius = (int) MAX(2, (radius / 3)); int const craterRadius = (int) radius; double const rollmin = 0.9; @@ -363,7 +375,7 @@ normalCrater(struct pam * const pamP, (terrainMod(pamP, terrain, x, y) + cz) * roll; av = MAX(1000, MIN(64000, av)); - *terrainModP(pamP, terrain, x, y) = av; + setElev(pamP, terrain, x, y, av); } } } |