diff options
Diffstat (limited to 'intern/cycles/kernel/osl/osl_services.cpp')
-rw-r--r-- | intern/cycles/kernel/osl/osl_services.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index 0f3edcb7eaa..26543862b80 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -168,6 +168,12 @@ bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg, OSL::Matrix44 &result return true; } + else if(sd->type == PRIMITIVE_LAMP) { + Transform tfm = transform_transpose(sd->ob_tfm); + COPY_MATRIX44(&result, &tfm); + + return true; + } } return false; @@ -198,6 +204,12 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg, OSL::Matrix44 return true; } + else if(sd->type == PRIMITIVE_LAMP) { + Transform tfm = transform_transpose(sd->ob_itfm); + COPY_MATRIX44(&result, &tfm); + + return true; + } } return false; @@ -287,6 +299,12 @@ bool OSLRenderServices::get_matrix(OSL::ShaderGlobals *sg, OSL::Matrix44 &result return true; } + else if(sd->type == PRIMITIVE_LAMP) { + Transform tfm = transform_transpose(sd->ob_tfm); + COPY_MATRIX44(&result, &tfm); + + return true; + } } return false; @@ -312,6 +330,12 @@ bool OSLRenderServices::get_inverse_matrix(OSL::ShaderGlobals *sg, OSL::Matrix44 return true; } + else if(sd->type == PRIMITIVE_LAMP) { + Transform tfm = transform_transpose(sd->ob_itfm); + COPY_MATRIX44(&result, &tfm); + + return true; + } } return false; |