[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53378] trunk/blender/intern/cycles/kernel /shaders/stdosl.h: Fix OSL distance() of point to line segment function not being available,
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Dec 28 19:21:10 CET 2012
Revision: 53378
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53378
Author: blendix
Date: 2012-12-28 18:21:07 +0000 (Fri, 28 Dec 2012)
Log Message:
-----------
Fix OSL distance() of point to line segment function not being available,
implemented now in stdosl.h.
Modified Paths:
--------------
trunk/blender/intern/cycles/kernel/shaders/stdosl.h
Modified: trunk/blender/intern/cycles/kernel/shaders/stdosl.h
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/stdosl.h 2012-12-28 16:25:41 UTC (rev 53377)
+++ trunk/blender/intern/cycles/kernel/shaders/stdosl.h 2012-12-28 18:21:07 UTC (rev 53378)
@@ -161,6 +161,15 @@
float dot (vector a, vector b) BUILTIN;
float length (vector v) BUILTIN;
float distance (point a, point b) BUILTIN;
+float distance (point a, point b, point q)
+{
+ vector d = b - a;
+ float dd = dot(d, d);
+ if(dd == 0.0)
+ return distance(q, a);
+ float t = dot(q - a, d)/dd;
+ return distance(q, a + clamp(t, 0.0, 1.0)*d);
+}
normal normalize (normal v) BUILTIN;
vector normalize (vector v) BUILTIN;
vector faceforward (vector N, vector I, vector Nref) BUILTIN;
@@ -304,7 +313,7 @@
r = color (dot (vector(0.299, 0.587, 0.114), (vector)x),
dot (vector(0.596, -0.275, -0.321), (vector)x),
dot (vector(0.212, -0.523, 0.311), (vector)x));
- else if (to == "xyz")
+ else if (to == "XYZ")
r = color (dot (vector(0.412453, 0.357580, 0.180423), (vector)x),
dot (vector(0.212671, 0.715160, 0.072169), (vector)x),
dot (vector(0.019334, 0.119193, 0.950227), (vector)x));
@@ -366,7 +375,7 @@
r = color (dot (vector(1, 0.9557, 0.6199), (vector)x),
dot (vector(1, -0.2716, -0.6469), (vector)x),
dot (vector(1, -1.1082, 1.7051), (vector)x));
- else if (from == "xyz")
+ else if (from == "XYZ")
r = color (dot (vector( 3.240479, -1.537150, -0.498535), (vector)x),
dot (vector(-0.969256, 1.875991, 0.041556), (vector)x),
dot (vector( 0.055648, -0.204043, 1.057311), (vector)x));
@@ -409,6 +418,8 @@
int endswith (string s, string suffix) BUILTIN;
string substr (string s, int start, int len) BUILTIN;
string substr (string s, int start) { return substr (s, start, strlen(s)); }
+float strtof (string str) BUILTIN;
+int strtoi (string str) BUILTIN;
// Define concat in terms of shorter concat
string concat (string a, string b, string c) {
More information about the Bf-blender-cvs
mailing list