diff --git a/src/Graphic3d/Graphic3d_TransformPers.hxx b/src/Graphic3d/Graphic3d_TransformPers.hxx index 0588c7c8a9..4f3ba60e8b 100644 --- a/src/Graphic3d/Graphic3d_TransformPers.hxx +++ b/src/Graphic3d/Graphic3d_TransformPers.hxx @@ -510,8 +510,8 @@ void Graphic3d_TransformPers::Apply (const Handle(Graphic3d_Camera)& theCamera, { typename BVH_Box::BVH_VecNt& aCorner = anArrayOfCorners[anIt]; aCorner = aTPers * aCorner; - aCorner /= aCorner.w(); - theBoundingBox.Add (aCorner.xyz()); + aCorner = aCorner / aCorner.w(); + theBoundingBox.Add (typename BVH_Box::BVH_VecNt (aCorner.x(), aCorner.y(), aCorner.z())); } } diff --git a/tests/bugs/vis/bug28361 b/tests/bugs/vis/bug28361 new file mode 100644 index 0000000000..c4c24659c3 --- /dev/null +++ b/tests/bugs/vis/bug28361 @@ -0,0 +1,14 @@ +puts "============" +puts "OCC28361 Visualization, TKV3d - buggy behavior of Transformation Persistence compiled on several Linux platforms in optimized mode" +puts "============" +puts "" + +vclear +vinit View1 +pload MODELING VISUALIZATION +box b 10 10 10 +vdisplay b -trsfPers zoomRotate -trsfPersPos 90 90 90 +vmoveto 266 164 +if { [vreadpixel 256 174 rgb name] != "CYAN1" } { puts "Error: the box is not highlighted" } + +vdump $imagedir/${casename}.png