46 if ((
y > 2.0 * sqrt(3) *
P) && ((LIN + L) >= z) && z >= LIN)
48 return ((Dmax / 2.0) * cos(
x * pi / (
Side / 2.0)) + Dmax / 2) * sin(((z - LIN) / (L)) * pi);
50 else if ((
y < -2.0 * sqrt(3) *
P) && ((LIN + L) >= z) && z >= LIN)
52 return ((Dmax / 2.0) * cos(
x * pi / (
Side / 2.0)) + Dmax / 2) * sin(((z - LIN) / (L)) * pi);
54 else if (
y > sqrt(3) *
x + sqrt(3) * 4.0 *
P && ((LIN + L) >= z) && z >= LIN)
56 auto xprime =
x * cos(pi / 3.0) +
y * sin(pi / 3.0);
57 return ((Dmax / 2.0) * cos(xprime * pi / (
Side / 2.0)) + Dmax / 2) *
58 sin(((z - LIN) / (L)) * pi);
60 else if (
y < -sqrt(3) *
x - sqrt(3) * 4.0 *
P && ((LIN + L) >= z) && z >= LIN)
62 auto xprime =
x * cos(2.0 * pi / 3.0) +
y * sin(2.0 * pi / 3.0);
63 return ((Dmax / 2.0) * cos(xprime * pi / (
Side / 2.0)) + Dmax / 2) *
64 sin(((z - LIN) / (L)) * pi);
66 else if (
y < sqrt(3) *
x - sqrt(3) * 4.0 *
P && ((LIN + L) >= z) && z >= LIN)
68 auto xprime =
x * cos(4.0 * pi / 3.0) +
y * sin(4.0 * pi / 3.0);
69 return ((Dmax / 2.0) * cos(xprime * pi / (
Side / 2.0)) + Dmax / 2) *
70 sin(((z - LIN) / (L)) * pi);
72 else if (
y > -sqrt(3) *
x + sqrt(3) * 4.0 *
P && ((LIN + L) >= z) && z >= LIN)
74 auto xprime =
x * cos(5.0 * pi / 3.0) +
y * sin(5.0 * pi / 3.0);
75 return ((Dmax / 2.0) * cos(xprime * pi / (
Side / 2.0)) + Dmax / 2) *
76 sin(((z - LIN) / (L)) * pi);
85 auto xprime =
P +
Side / 4.0;
86 return ((Dmax / 2.0) * cos(xprime * pi / (
Side / 2.0)) + Dmax / 2) *
87 sin(((z - LIN) / (L)) * pi);