Skip to content

Commit

Permalink
#5530: Fix ParticlePreview grid origin moving around due to changing …
Browse files Browse the repository at this point in the history
…particle bounds. Tied it to the 0,0,0 origin.
  • Loading branch information
codereader committed Feb 9, 2021
1 parent 0acd28c commit a362d0f
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 3 deletions.
5 changes: 5 additions & 0 deletions libs/wxutil/preview/ParticlePreview.cpp
Expand Up @@ -193,6 +193,11 @@ AABB ParticlePreview::getSceneBounds()
return _particleNode->getParticle()->getBounds();
}

Vector3 ParticlePreview::getGridOrigin()
{
return Vector3(0, 0, 0);
}

bool ParticlePreview::onPreRender()
{
return _particleNode != NULL;
Expand Down
2 changes: 1 addition & 1 deletion libs/wxutil/preview/ParticlePreview.h
Expand Up @@ -65,6 +65,7 @@ class ParticlePreview :
void setupSceneGraph() override;

AABB getSceneBounds() override;
Vector3 getGridOrigin() override;

bool onPreRender() override;
void onPostRender() override;
Expand All @@ -73,7 +74,6 @@ class ParticlePreview :

private:
void drawAxes();
void drawDebugInfo();

void onToolItemClickRefresh(wxCommandEvent& ev);
};
Expand Down
9 changes: 7 additions & 2 deletions libs/wxutil/preview/RenderPreview.cpp
Expand Up @@ -603,6 +603,11 @@ AABB RenderPreview::getSceneBounds()
return AABB(Vector3(0,0,0), Vector3(64,64,64));
}

Vector3 RenderPreview::getGridOrigin()
{
return getSceneBounds().getOrigin();
}

void RenderPreview::resetModelRotation()
{
_modelRotation = Matrix4::getIdentity();
Expand Down Expand Up @@ -742,8 +747,8 @@ void RenderPreview::drawGrid()

glPushMatrix();

auto sceneCenter = getSceneBounds().getOrigin();
glTranslated(sceneCenter.x(), sceneCenter.y(), sceneCenter.z());
auto gridOrigin = getGridOrigin();
glTranslated(gridOrigin.x(), gridOrigin.y(), gridOrigin.z());

glBegin(GL_LINES);

Expand Down
3 changes: 3 additions & 0 deletions libs/wxutil/preview/RenderPreview.h
Expand Up @@ -146,6 +146,9 @@ class RenderPreview :
// Override this to deliver accurate scene bounds, used for mousewheel-zooming
virtual AABB getSceneBounds();

// Defaults to getSceneBounds().getOrigin()
virtual Vector3 getGridOrigin();

// Called right before rendering, returning false will cancel the render algorithm
virtual bool onPreRender();

Expand Down

0 comments on commit a362d0f

Please sign in to comment.