MCPcopy Create free account
hub / github.com/RenderKit/embree / eval

Function eval

kernels/subdiv/gregory_patch_dense.h:84–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82 }
83
84 __forceinline void eval(const float u, const float v,
85 Vec3fa* P, Vec3fa* dPdu, Vec3fa* dPdv, Vec3fa* ddPdudu, Vec3fa* ddPdvdv, Vec3fa* ddPdudv,
86 const float dscale = 1.0f) const
87 {
88 __aligned(64) Vec3fa f_m[2][2]; extract_f_m(f_m);
89 if (P) {
90 *P = GregoryPatch3fa::eval(*(Vec3fa_4x4*)&matrix,f_m,u,v);
91 }
92 if (dPdu) {
93 assert(dPdu); *dPdu = GregoryPatch3fa::eval_du(*(Vec3fa_4x4*)&matrix,f_m,u,v)*dscale;
94 assert(dPdv); *dPdv = GregoryPatch3fa::eval_dv(*(Vec3fa_4x4*)&matrix,f_m,u,v)*dscale;
95 }
96 if (ddPdudu) {
97 assert(ddPdudu); *ddPdudu = GregoryPatch3fa::eval_dudu(*(Vec3fa_4x4*)&matrix,f_m,u,v)*sqr(dscale);
98 assert(ddPdvdv); *ddPdvdv = GregoryPatch3fa::eval_dvdv(*(Vec3fa_4x4*)&matrix,f_m,u,v)*sqr(dscale);
99 assert(ddPdudv); *ddPdudv = GregoryPatch3fa::eval_dudv(*(Vec3fa_4x4*)&matrix,f_m,u,v)*sqr(dscale);
100 }
101 }
102
103 template<typename vbool, typename vfloat>
104 __forceinline void eval(const vbool& valid, const vfloat& uu, const vfloat& vv, float* P, float* dPdu, float* dPdv, const float dscale, const size_t dstride, const size_t N) const

Callers 1

Calls 7

__alignedClass · 0.70
eval_duFunction · 0.70
eval_dvFunction · 0.70
eval_duduFunction · 0.70
eval_dvdvFunction · 0.70
eval_dudvFunction · 0.70
sqrFunction · 0.50

Tested by

no test coverage detected