fix and improve Transform manipulator bbox faces pickup

This commit is contained in:
Garux 2018-03-21 04:12:06 +03:00
parent 3da4012f1e
commit 3222052652

View File

@ -2350,7 +2350,7 @@ public:
Selectable* selectable = 0; Selectable* selectable = 0;
Selectable* selectable2 = 0; Selectable* selectable2 = 0;
double bestDot = 1; double bestDot = 1;
const Vector3 viewer = vector3_normalised( view.getViewer() ); const Vector3 viewdir( vector3_normalised( Vector3( view.GetModelview()[2], view.GetModelview()[6], view.GetModelview()[10] ) ) );
for ( int i = 0; i < 3; ++i ){ for ( int i = 0; i < 3; ++i ){
for ( int j = 0; j < 2; ++j ){ for ( int j = 0; j < 2; ++j ){
const Vector3 normal = j? g_vector3_axes[i] : -g_vector3_axes[i]; const Vector3 normal = j? g_vector3_axes[i] : -g_vector3_axes[i];
@ -2360,7 +2360,7 @@ public:
&& vector3_dot( normal, corners[indices[index + 2]] ) > 0 && vector3_dot( normal, corners[indices[index + 2]] ) > 0
&& vector3_dot( normal, corners[indices[index + 3]] ) > 0 ) && vector3_dot( normal, corners[indices[index + 3]] ) > 0 )
{ {
const double dot = fabs( vector3_dot( normal, viewer ) ); const double dot = fabs( vector3_dot( normal, viewdir ) );
const double diff = bestDot - dot; const double diff = bestDot - dot;
if( diff > 0.03 ){ if( diff > 0.03 ){
bestDot = dot; bestDot = dot;