toxi.sim.erosion
Class TalusAngleErosion

java.lang.Object
  extended by toxi.sim.erosion.ErosionFunction
      extended by toxi.sim.erosion.TalusAngleErosion

public class TalusAngleErosion
extends ErosionFunction

For each neighbour it's computed the difference between the processed cell and the neighbour:

 d[i] = h - h[i];
 
the maximum positive difference is stored in d_max, and the sum of all the positive differences that are bigger than T (this numer is n), the talus angle, is stored in d_tot. Now it's possible to update all the n cells (where d[i] is bigger than T) using this formula:
 h[i] = h[i] + c * (d_max - T) * (d[i] / d_tot);
 
and the main cell with this other formula:
 h = h - (d_max - (n * d_max * T / d_tot));
 
The Talus angle T is a threshold that determines which slopes are affected by the erosion, instead the c constant determines how much material is eroded.


Constructor Summary
TalusAngleErosion(float theta, float amount)
           
 
Method Summary
 void erodeAt(int x, int y)
           
 
Methods inherited from class toxi.sim.erosion.ErosionFunction
erode
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TalusAngleErosion

public TalusAngleErosion(float theta,
                         float amount)
Parameters:
theta - talus angle
amount - material transport amount
Method Detail

erodeAt

public void erodeAt(int x,
                    int y)
Specified by:
erodeAt in class ErosionFunction