| 21 | } |
| 22 | |
| 23 | Vec3fa patchNormal(const SubdivPatch1Base& patch, const float uu, const float vv) |
| 24 | { |
| 25 | if (likely(patch.type == SubdivPatch1Base::BEZIER_PATCH)) |
| 26 | return ((BezierPatch3fa*)patch.patch_v)->normal(uu,vv); |
| 27 | else if (likely(patch.type == SubdivPatch1Base::BSPLINE_PATCH)) |
| 28 | return ((BSplinePatch3fa*)patch.patch_v)->normal(uu,vv); |
| 29 | else if (likely(patch.type == SubdivPatch1Base::GREGORY_PATCH)) |
| 30 | return ((DenseGregoryPatch3fa*)patch.patch_v)->normal(uu,vv); |
| 31 | else if (likely(patch.type == SubdivPatch1Base::BILINEAR_PATCH)) |
| 32 | return ((BilinearPatch3fa*)patch.patch_v)->normal(uu,vv); |
| 33 | return Vec3fa( zero ); |
| 34 | } |
| 35 | |
| 36 | template<typename simdf> |
| 37 | Vec3<simdf> patchEval(const SubdivPatch1Base& patch, const simdf& uu, const simdf& vv) |
no test coverage detected