mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
Take into account camera movements for background grid
This commit is contained in:
parent
2a1fa7be50
commit
6851428dd4
@ -2585,15 +2585,16 @@ void OpenGl_View::renderGrid()
|
|||||||
aContext->ProjectionState.SetCurrent (aContext->Camera()->ProjectionMatrixF());
|
aContext->ProjectionState.SetCurrent (aContext->Camera()->ProjectionMatrixF());
|
||||||
aContext->ApplyProjectionMatrix();
|
aContext->ApplyProjectionMatrix();
|
||||||
|
|
||||||
OpenGl_Mat4 aWorldViewState = myGridParams.IsBackground()
|
const OpenGl_Mat4& aWorldViewCurrent = aContext->WorldViewState.Current();
|
||||||
? OpenGl_Mat4()
|
OpenGl_Mat4 aWorldViewState = myGridParams.IsBackground() ? OpenGl_Mat4() : aWorldViewCurrent;
|
||||||
: aContext->WorldViewState.Current();
|
const gp_Pnt& aPosition = myGridParams.IsBackground()
|
||||||
OpenGl_Mat4 aMat;
|
? gp_Pnt (aWorldViewCurrent.GetValue (0, 3), aWorldViewCurrent.GetValue (1, 3), -aZFar)
|
||||||
const gp_Pnt& aPosition = myGridParams.IsBackground() ? gp_Pnt (0.0, 0.0, -aZFar) : myGridParams.Position();
|
: myGridParams.Position();
|
||||||
aMat.SetColumn (3, Graphic3d_Vec4 ((float)aPosition.X(), (float)aPosition.Y(), (float)aPosition.Z(), 1.0));
|
OpenGl_Mat4 aTranslation;
|
||||||
|
aTranslation.SetColumn (3, Graphic3d_Vec4 ((float)aPosition.X(), (float)aPosition.Y(), (float)aPosition.Z(), 1.0));
|
||||||
|
|
||||||
aContext->WorldViewState.Push();
|
aContext->WorldViewState.Push();
|
||||||
aContext->WorldViewState.SetCurrent (aWorldViewState * aMat);
|
aContext->WorldViewState.SetCurrent (aWorldViewState * aTranslation);
|
||||||
aContext->ApplyWorldViewMatrix();
|
aContext->ApplyWorldViewMatrix();
|
||||||
|
|
||||||
aContext->core11fwd->glEnable (GL_DEPTH_TEST);
|
aContext->core11fwd->glEnable (GL_DEPTH_TEST);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user