[Plib-cvs] plib/src/sg sg.cxx,1.42,1.43 sgd.cxx,1.13,1.14
Brought to you by:
sjbaker
From: Steve B. <sj...@us...> - 2004-04-09 01:54:25
|
Update of /cvsroot/plib/plib/src/sg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30410/plib/src/sg Modified Files: sg.cxx sgd.cxx Log Message: Fixed problem in: sgDistSquaredToLineSegmentVec3 sgDistToLineSegmentVec3 sgdDistSquaredToLineSegmentVec3 sgdDistToLineSegmentVec3 Index: sg.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/sg/sg.cxx,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- sg.cxx 18 Mar 2004 19:14:43 -0000 1.42 +++ sg.cxx 9 Apr 2004 01:41:11 -0000 1.43 @@ -862,24 +862,24 @@ { sgLine3 l ; sgLineSegment3ToLine3 ( & l, line ) ; -sgVec3 v ; sgSubVec3 ( v, line.b, line.a ) ; - sgVec3 r1 ; sgSubVec3 ( r1, pnt, line.a ) ; + sgVec3 v ; sgSubVec3 ( v , line.b, line.a ) ; sgNormalizeVec3 ( v ) ; + sgVec3 r1 ; sgSubVec3 ( r1, pnt , line.a ) ; - SGfloat r1_dot_v = sgScalarProductVec3 ( r1, v /*l.direction_vector*/ ) ; + SGfloat r1_dot_v = sgScalarProductVec3 ( r1, v ) ; if ( r1_dot_v <= 0 ) /* Off the "A" end */ return sgScalarProductVec3 ( r1, r1 ) ; sgVec3 r2 ; sgSubVec3 ( r2, pnt, line.b ) ; - SGfloat r2_dot_v = sgScalarProductVec3 ( r2, v /*l.direction_vector*/ ) ; + SGfloat r2_dot_v = sgScalarProductVec3 ( r2, v ) ; if ( r2_dot_v >= 0 ) /* Off the "B" end */ return sgScalarProductVec3 ( r2, r2 ) ; /* Closest point on line is on the line segment */ - return sgScalarProductVec3 ( r1, r1 ) - r1_dot_v ; + return sgScalarProductVec3 ( r1, r1 ) - r1_dot_v * r1_dot_v ; } Index: sgd.cxx =================================================================== RCS file: /cvsroot/plib/plib/src/sg/sgd.cxx,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- sgd.cxx 18 Mar 2004 19:14:43 -0000 1.13 +++ sgd.cxx 9 Apr 2004 01:41:11 -0000 1.14 @@ -861,7 +861,7 @@ { sgdLine3 l ; sgdLineSegment3ToLine3 ( & l, line ) ; - sgdVec3 v ; sgdSubVec3 ( v, line.b, line.a ) ; + sgdVec3 v ; sgdSubVec3 ( v, line.b, line.a ) ; sgdNormalizeVec3 ( v ) ; sgdVec3 r1 ; sgdSubVec3 ( r1, pnt, line.a ) ; SGDfloat r1_dot_v = sgdScalarProductVec3 ( r1, v /*l.direction_vector*/ ) ; @@ -878,7 +878,7 @@ /* Closest point on line is on the line segment */ - return sgdScalarProductVec3 ( r1, r1 ) - r1_dot_v ; + return sgdScalarProductVec3 ( r1, r1 ) - r1_dot_v * r1_dot_v ; } |