ShapedNoise.cpp 836 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "ShapedNoise.h"
  2. ShapedNoise::ShapedNoise(Noise* delegateNoise)
  3. : delegateNoise(delegateNoise),
  4. neighborOffset(1)
  5. {}
  6. ShapedNoise ::~ShapedNoise()
  7. {
  8. delegateNoise->release();
  9. }
  10. void ShapedNoise::setNeighborOffset(double offset)
  11. {
  12. neighborOffset = offset;
  13. }
  14. double ShapedNoise::getNoise(double x, double y, double z)
  15. {
  16. double max = 0;
  17. double noise = delegateNoise->getNoise(x, y, z);
  18. double value
  19. = abs(noise - delegateNoise->getNoise(x + neighborOffset, y, z));
  20. max = MAX(max, value);
  21. value = abs(noise - delegateNoise->getNoise(x, y + neighborOffset, z));
  22. max = MAX(max, value);
  23. value = abs(noise - delegateNoise->getNoise(x, y, z + neighborOffset));
  24. max = MAX(max, value);
  25. return max;
  26. }
  27. int ShapedNoise::getSeed() const
  28. {
  29. return delegateNoise->getSeed();
  30. }