From 3910bc65016230751c3ee45146891f955ff25048 Mon Sep 17 00:00:00 2001 From: osa Date: Mon, 6 Oct 2014 19:07:35 +0400 Subject: [PATCH] 0025331: Visualization - method V3d_View::ConvertWithProj returns incorrect value --- src/V3d/V3d_View.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/V3d/V3d_View.cxx b/src/V3d/V3d_View.cxx index eea29d8251..e63ec0f0d2 100644 --- a/src/V3d/V3d_View.cxx +++ b/src/V3d/V3d_View.cxx @@ -1896,9 +1896,15 @@ void V3d_View::ConvertWithProj(const Standard_Integer Xp, aResult = myCamera->UnProject (gp_Pnt (anX, anY, aZ - 10.0)); - Dx = X - aResult.X(); - Dy = Y - aResult.Y(); - Dz = Z - aResult.Z(); + Graphic3d_Vec3d aNormDir; + aNormDir.x() = X - aResult.X(); + aNormDir.y() = Y - aResult.Y(); + aNormDir.z() = Z - aResult.Z(); + aNormDir.Normalize(); + + Dx = aNormDir.x(); + Dy = aNormDir.y(); + Dz = aNormDir.z(); if( MyViewer->Grid()->IsActive() ) { Graphic3d_Vertex aNewVrp = Compute (aVrp) ;