Revision: 36760 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36760 Author: campbellbarton Date: 2011-05-19 03:59:52 +0000 (Thu, 19 May 2011) Log Message: ----------- correct some comments in last commit.
Modified Paths: -------------- trunk/blender/source/blender/blenlib/BLI_math_geom.h trunk/blender/source/blender/blenlib/intern/math_geom.c Modified: trunk/blender/source/blender/blenlib/BLI_math_geom.h =================================================================== --- trunk/blender/source/blender/blenlib/BLI_math_geom.h 2011-05-19 03:49:57 UTC (rev 36759) +++ trunk/blender/source/blender/blenlib/BLI_math_geom.h 2011-05-19 03:59:52 UTC (rev 36760) @@ -97,7 +97,7 @@ float v1[3], float v2[3], float *lambda, int clip); /** - * Definition of a callback routine that receives events. + * Intersect line/plane, optionally treat line as directional (like a ray) with the no_flip argument. * @param out The intersection point. * @param l1 The first point of the line. * @param l2 The second point of the line. Modified: trunk/blender/source/blender/blenlib/intern/math_geom.c =================================================================== --- trunk/blender/source/blender/blenlib/intern/math_geom.c 2011-05-19 03:49:57 UTC (rev 36759) +++ trunk/blender/source/blender/blenlib/intern/math_geom.c 2011-05-19 03:59:52 UTC (rev 36760) @@ -642,8 +642,8 @@ int isect_line_plane_v3(float out[3], const float l1[3], const float l2[3], const float plane_co[3], const float plane_no[3], const short no_flip) { - float l_vec[3]; /* line vector */ - float p_no[3]; + float l_vec[3]; /* l1 -> l2 normalized vector */ + float p_no[3]; /* 'plane_no' normalized */ float dot; sub_v3_v3v3(l_vec, l2, l1); @@ -651,15 +651,16 @@ normalize_v3(l_vec); normalize_v3_v3(p_no, plane_no); - /* for pradictable flipping */ dot= dot_v3v3(l_vec, p_no); if(dot == 0.0f) { return 0; } else { - float l1_plane[3]; /* line point aligne with the plane */ - float dist; + float l1_plane[3]; /* line point aligned with the plane */ + float dist; /* 'plane_no' aligned distance to the 'plane_co' */ + /* for pradictable flipping since the plane is only used to + * define a direction, ignore its flipping and aligned with 'l_vec' */ if(dot < 0.0f) { dot= -dot; negate_v3(p_no); @@ -668,6 +669,8 @@ add_v3_v3v3(l1_plane, l1, p_no); dist = lambda_cp_line(plane_co, l1, l1_plane); + + /* treat line like a ray, when 'no_flip' is set */ if(no_flip && dist < 0.0f) { dist= -dist; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs