From f7e91fa28e349cef54a7c119859f29aa90d68179 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 13 Dec 2007 17:51:43 +0000 Subject: [PATCH] Added Locator::s/getTransformScaledByResolution(bool) to assist with VPB integration --- include/osgTerrain/Locator | 4 ++++ src/osgPlugins/osgTerrain/Terrain.cpp | 13 ++++++++++++- src/osgTerrain/Locator.cpp | 6 ++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/include/osgTerrain/Locator b/include/osgTerrain/Locator index 5f9d586a7..3ce14ffcc 100644 --- a/include/osgTerrain/Locator +++ b/include/osgTerrain/Locator @@ -105,6 +105,9 @@ class OSGTERRAIN_EXPORT Locator : public osg::Object void setDefinedInFile(bool flag) { _definedInFile = flag; } bool getDefinedInFile() const { return _definedInFile; } + + void setTransformScaledByResolution(bool scaledByResolution) { _transformScaledByResolution = scaledByResolution; } + bool getTransformScaledByResolution() const { return _transformScaledByResolution; } protected: @@ -120,6 +123,7 @@ class OSGTERRAIN_EXPORT Locator : public osg::Object osg::Matrixd _inverse; bool _definedInFile; + bool _transformScaledByResolution; }; diff --git a/src/osgPlugins/osgTerrain/Terrain.cpp b/src/osgPlugins/osgTerrain/Terrain.cpp index 2503792bd..156780215 100644 --- a/src/osgPlugins/osgTerrain/Terrain.cpp +++ b/src/osgPlugins/osgTerrain/Terrain.cpp @@ -79,6 +79,8 @@ osgTerrain::Layer* readLayer(osgDB::Input& fr, bool& itrAdvanced) fr += 2; localAdvanced = true; } + + if (fr.matchSequence("CoordinateSystem %w") || fr.matchSequence("CoordinateSystem %s") ) @@ -89,6 +91,13 @@ osgTerrain::Layer* readLayer(osgDB::Input& fr, bool& itrAdvanced) localAdvanced = true; } + if (fr.matchSequence("TransformScaledByResolution %w")) + { + locator->setTransformScaledByResolution(fr[1].matchWord("TRUE") || fr[1].matchWord("True") || fr[1].matchWord("true")); + fr += 2; + localAdvanced = true; + } + if (fr.matchSequence("Transform {")) { int tansform_entry = fr[0].getNoNestedBrackets(); @@ -518,7 +527,9 @@ bool writeLocator(const osgTerrain::Locator& locator, osgDB::Output& fw) fw<<"PROJECTED"<