20namespace deformation {
25 const float A1 = 0.6f;
26 const float A2 = 1.1f;
28 const float F1 = 1000.0;
29 const float F2 = -1500.0;
31 const float Kx1 = 0.035f;
32 const float Kx2 = 0.02f;
34 const float Ky1 = -0.08f;
35 const float Ky2 = 0.05f;
38 return A1 * sin((Kx1 * posx + Ky1 * posy + F1)) +
39 A2 * sin((Kx2 * posx + Ky2 * posy + F2));
44 const float A3 = 0.10f;
45 float bumpsoffset = 0;
47 float constraintX = 17.0f;
48 float constraintY = 12.0f;
51 float BumpX = std::ceil(posx / constraintX);
52 float BumpY = std::floor(posy / constraintY);
59 float DistanceToBumpOrigin = sqrt(pow(BumpX - posx, 2) + pow(BumpY - posy, 2));
60 float MaxDistance = 2.0;
63 if (DistanceToBumpOrigin <= MaxDistance) {
64 bumpsoffset = sin(DistanceToBumpOrigin);
68 return A3 * bumpsoffset;