From a5b573b2d320442075f82e6dc81c1ae05d02f4e2 Mon Sep 17 00:00:00 2001 From: timoore Date: Fri, 21 Dec 2007 06:25:40 +0000 Subject: [PATCH] optimize groups from .AC file optimizer run --- simgear/scene/model/ModelRegistry.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/simgear/scene/model/ModelRegistry.cxx b/simgear/scene/model/ModelRegistry.cxx index 1b9eebeb..a4cef6ab 100644 --- a/simgear/scene/model/ModelRegistry.cxx +++ b/simgear/scene/model/ModelRegistry.cxx @@ -441,6 +441,24 @@ struct ACOptimizePolicy : public OptimizeModelPolicy { { _osgOptions &= ~Optimizer::TRISTRIP_GEOMETRY; } + Node* optimize(Node* node, const string& fileName, + const ReaderWriter::Options* opt) + { + ref_ptr optimized + = OptimizeModelPolicy::optimize(node, fileName, opt); + MatrixTransform* transform + = dynamic_cast(optimized.get()); + if (transform && transform->getMatrix().isIdentity() + && transform->getName().empty() + && transform->getNumChildren() == 1) { + optimized = static_cast(transform->getChild(0)); + Group* group = dynamic_cast(optimized.get()); + if (group && group->getName().empty() + && group->getNumChildren() == 1) + optimized = static_cast(group->getChild(0)); + } + return optimized.release(); + } }; struct ACProcessPolicy { -- 2.39.5