20 float3 d0 = cp[0] + t * (cp[1] - cp[0]);
21 float3 d1 = cp[1] + t * (cp[2] - cp[1]);
22 float3 d2 = cp[2] + t * (cp[3] - cp[2]);
27 *
P = d0 + t * (d1 - d0);
75 for (
int i = 0; i < 4; i++) {
106 for (
int i = 0; i < 16; i++) {
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1.
void eval(float3 *P, float3 *dPdu, float3 *dPdv, float3 *N, float u, float v)
void eval(float3 *P, float3 *dPdu, float3 *dPdv, float3 *N, float u, float v)
#define CCL_NAMESPACE_END
ccl_device_inline float cross(const float2 a, const float2 b)
ccl_device_inline float2 interp(const float2 a, const float2 b, float t)
static void decasteljau_bicubic(float3 *P, float3 *du, float3 *dv, const float3 cp[16], float u, float v)
static CCL_NAMESPACE_BEGIN void decasteljau_cubic(float3 *P, float3 *dt, float t, const float3 cp[4])
__forceinline void grow(const float3 &pt)