public void PushDown( float fx, float fy, float depth )
{
// Ogre Wave Generation Logic - scale pressure according to time passed
for ( int addx = (int)fx; addx <= (int)fx + 1; addx++ )
{
for ( int addy = (int)fy; addy <= (int)fy + 1; addy++ )
{
float diffy = fy - (float)System.Math.Floor( fy + addy );
float diffx = fx - (float)System.Math.Floor( fx + addx );
float dist = (float)System.Math.Sqrt( diffy * diffy + diffx * diffx );
float power = 1 - dist;
if ( power < 0 )
{
power = 0;
}
vBuf[ addy, addx ].y -= depth * power;
}
}
}