--- branches/pure-cfg/src/include/Diderot/inline-vec3.h 2011/04/06 21:43:07 748 +++ branches/pure-cfg/src/include/Diderot/inline-vec3.h 2011/04/06 21:43:31 749 @@ -59,17 +59,6 @@ 0 }; } -STATIC_INLINE vec3f_t cross3f (vec3f_t u, vec3f_t v) -{ - union3f_t uu = (union3f_t)u; - union3f_t uv = (union3f_t)v; - return __extension__ (vec3f_t){ - uu.r[1]*uv.r[2] - uu.r[2]*uv.r[1], - uu.r[2]*uv.r[0] - uu.r[0]*uv.r[2], - uu.r[0]*uv.r[1] - uu.r[1]*uv.r[0], - 0 }; -} - STATIC_INLINE float dot3f (vec3f_t u, vec3f_t v) { union3f_t uv = __extension__ (union3f_t)(u*v); @@ -81,4 +70,20 @@ return sqrtf(dot3f(v, v)); } +STATIC_INLINE vec3f_t normalize3f (vec3f_t v) +{ + return scale3f(1.0 / length3f(v), v); +} + +STATIC_INLINE vec3f_t cross3f (vec3f_t u, vec3f_t v) +{ + union3f_t uu = (union3f_t)u; + union3f_t uv = (union3f_t)v; + return __extension__ (vec3f_t){ + uu.r[1]*uv.r[2] - uu.r[2]*uv.r[1], + uu.r[2]*uv.r[0] - uu.r[0]*uv.r[2], + uu.r[0]*uv.r[1] - uu.r[1]*uv.r[0], + 0 }; +} + #endif /* !_DIDEROT_INLINE_VEC3_H_ */
Click to toggle
does not end with </html> tag
does not end with </body> tag
The output has ended thus: r[2], + uu.r[0]*uv.r[1] - uu.r[1]*uv.r[0], + 0 }; +} + #endif /* !_DIDEROT_INLINE_VEC3_H_ */