829 FIELD3D_VEC3_T<double> p(vsP.x , vsP.y - 0.5, vsP.z - 0.5);
834 V3i c1(
static_cast<int>(
floor(p.x)),
835 static_cast<int>(
floor(p.y)),
836 static_cast<int>(
floor(p.z)));
842 FIELD3D_VEC3_T<double> f1(
static_cast<FIELD3D_VEC3_T<double>
>(c2) - p);
844 FIELD3D_VEC3_T<double> f2(
static_cast<FIELD3D_VEC3_T<double>
>(1.0) - f1);
854 ret.x = (f1.x * (f1.y * (f1.z * data.
u(c1.x, c1.y, c1.z) +
855 f2.z * data.
u(c1.x, c1.y, c2.z)) +
856 f2.y * (f1.z * data.
u(c1.x, c2.y, c1.z) +
857 f2.z * data.
u(c1.x, c2.y, c2.z))) +
858 f2.x * (f1.y * (f1.z * data.
u(c2.x, c1.y, c1.z) +
859 f2.z * data.
u(c2.x, c1.y, c2.z)) +
860 f2.y * (f1.z * data.
u(c2.x, c2.y, c1.z) +
861 f2.z * data.
u(c2.x, c2.y, c2.z))));
865 p.setValue(vsP.x - 0.5, vsP.y , vsP.z - 0.5);
868 c1.x =
static_cast<int>(
floor(p.x ));
869 c1.y =
static_cast<int>(
floor(p.y ));
870 c1.z =
static_cast<int>(
floor(p.z ));
878 f1.setValue(
static_cast<FIELD3D_VEC3_T<double>
>(c2) - p);
880 f2.setValue(
static_cast<FIELD3D_VEC3_T<double>
>(1.0) - f1);
890 ret.y = (f1.x * (f1.y * (f1.z * data.
v(c1.x, c1.y, c1.z) +
891 f2.z * data.
v(c1.x, c1.y, c2.z)) +
892 f2.y * (f1.z * data.
v(c1.x, c2.y, c1.z) +
893 f2.z * data.
v(c1.x, c2.y, c2.z))) +
894 f2.x * (f1.y * (f1.z * data.
v(c2.x, c1.y, c1.z) +
895 f2.z * data.
v(c2.x, c1.y, c2.z)) +
896 f2.y * (f1.z * data.
v(c2.x, c2.y, c1.z) +
897 f2.z * data.
v(c2.x, c2.y, c2.z))));
901 p.setValue(vsP.x - 0.5 , vsP.y - 0.5, vsP.z);
904 c1.x =
static_cast<int>(
floor(p.x ));
905 c1.y =
static_cast<int>(
floor(p.y ));
906 c1.z =
static_cast<int>(
floor(p.z ));
914 f1.setValue(
static_cast<FIELD3D_VEC3_T<double>
>(c2) - p);
916 f2.setValue(
static_cast<FIELD3D_VEC3_T<double>
>(1.0) - f1);
926 ret.z = (f1.x * (f1.y * (f1.z * data.
w(c1.x, c1.y, c1.z) +
927 f2.z * data.
w(c1.x, c1.y, c2.z)) +
928 f2.y * (f1.z * data.
w(c1.x, c2.y, c1.z) +
929 f2.z * data.
w(c1.x, c2.y, c2.z))) +
930 f2.x * (f1.y * (f1.z * data.
w(c2.x, c1.y, c1.z) +
931 f2.z * data.
w(c2.x, c1.y, c2.z)) +
932 f2.y * (f1.z * data.
w(c2.x, c2.y, c1.z) +
933 f2.z * data.
w(c2.x, c2.y, c2.z))));
const Box3i & dataWindow() const
Returns the data window. Any coordinate inside this window is safe to pass to value() in the Field su...
const real_t & w(int i, int j, int k) const
Read access to value on w-facing wall.
const real_t & u(int i, int j, int k) const
Read access to value on u-facing wall.
const real_t & v(int i, int j, int k) const
Read access to value on v-facing wall.
FIELD3D_VEC3_T< T > floor(const FIELD3D_VEC3_T< T > &v)
Floor function for Vec3.
T max(const T a, const T2 b)
Max operation on mixed types.
T min(const T a, const T2 b)
Min operation on mixed types.