From 4051018862974822d299713facb2fea03491d6db Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 4 Mar 2017 21:24:11 +0100 Subject: [PATCH] optimizer: fix FlattenStaticTransformsVisitor not respecting the is permissible callback --- components/sceneutil/optimizer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/sceneutil/optimizer.cpp b/components/sceneutil/optimizer.cpp index 99f7ae122..460cd2c5e 100644 --- a/components/sceneutil/optimizer.cpp +++ b/components/sceneutil/optimizer.cpp @@ -281,11 +281,11 @@ class CollectLowestTransformsVisitor : public BaseOptimizerVisitor ObjectStruct():_canBeApplied(true),_moreThanOneMatrixRequired(false) {} - void add(osg::Transform* transform) + void add(osg::Transform* transform, bool canOptimize) { if (transform) { - if (transform->getDataVariance()!=osg::Transform::STATIC) _moreThanOneMatrixRequired=true; + if (!canOptimize) _moreThanOneMatrixRequired=true; else if (transform->getReferenceFrame()!=osg::Transform::RELATIVE_RF) _moreThanOneMatrixRequired=true; else { @@ -322,7 +322,7 @@ class CollectLowestTransformsVisitor : public BaseOptimizerVisitor itr!=_currentObjectList.end(); ++itr) { - _objectMap[*itr].add(transform); + _objectMap[*itr].add(transform, transform && isOperationPermissibleForObject(transform)); } }