[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28172] branches/render25/source/blender/ render/intern/raytrace/rayobject.cpp: Render Branch: Fix for incorrect bounds of transformed objects in new

Brecht Van Lommel brecht at blender.org
Tue Apr 13 19:42:35 CEST 2010


Revision: 28172
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28172
Author:   blendix
Date:     2010-04-13 19:42:35 +0200 (Tue, 13 Apr 2010)

Log Message:
-----------
Render Branch: Fix for incorrect bounds of transformed objects in new
raytracing code.

Modified Paths:
--------------
    branches/render25/source/blender/render/intern/raytrace/rayobject.cpp

Modified: branches/render25/source/blender/render/intern/raytrace/rayobject.cpp
===================================================================
--- branches/render25/source/blender/render/intern/raytrace/rayobject.cpp	2010-04-13 17:24:29 UTC (rev 28171)
+++ branches/render25/source/blender/render/intern/raytrace/rayobject.cpp	2010-04-13 17:42:35 UTC (rev 28172)
@@ -478,12 +478,22 @@
 	else if(RE_rayobject_isVlakPrimitive(r))
 	{
 		VlakPrimitive *face = (VlakPrimitive*) RE_rayobject_align(r);
-		VlakRen *vlr = face->face;
+		RayFace nface;
+		RE_rayface_from_vlak(&nface, face->ob, face->face);
 
-		DO_MINMAX( vlr->v1->co, min, max );
-		DO_MINMAX( vlr->v2->co, min, max );
-		DO_MINMAX( vlr->v3->co, min, max );
-		if(vlr->v4) DO_MINMAX( vlr->v4->co, min, max );
+		if(face->ob->transform_primitives)
+		{
+			mul_m4_v3(face->ob->mat, nface.v1);
+			mul_m4_v3(face->ob->mat, nface.v2);
+			mul_m4_v3(face->ob->mat, nface.v3);
+			if(RE_rayface_isQuad(&nface))
+				mul_m4_v3(face->ob->mat, nface.v4);
+		}
+
+		DO_MINMAX( nface.v1, min, max );
+		DO_MINMAX( nface.v2, min, max );
+		DO_MINMAX( nface.v3, min, max );
+		if(RE_rayface_isQuad(&nface)) DO_MINMAX( nface.v4, min, max );
 	}
 	else if(RE_rayobject_isRayAPI(r))
 	{





More information about the Bf-blender-cvs mailing list