From e45245b7d6f392c7ec695f867a30814cbcf9e8bf Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 16 Nov 2006 17:35:12 +0000 Subject: [PATCH] From Farshid Lashkari, "Attached is a patch that adds the new coordOriginMode to the .osg reader/writer for PointSprites." --- src/osgPlugins/osg/PointSprite.cpp | 33 +++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/osgPlugins/osg/PointSprite.cpp b/src/osgPlugins/osg/PointSprite.cpp index b28fdf4d2..2f6fc0695 100644 --- a/src/osgPlugins/osg/PointSprite.cpp +++ b/src/osgPlugins/osg/PointSprite.cpp @@ -26,13 +26,40 @@ RegisterDotOsgWrapperProxy g_PointSpriteProxy ); -bool PointSprite_readLocalData(Object&, Input&) +bool PointSprite_readLocalData(Object& obj, Input& fr) { - return false; + bool iteratorAdvanced = false; + + PointSprite& ps = static_cast(obj); + + if (fr[0].matchWord("coordOriginMode")) + { + if (fr[1].matchWord("UPPER_LEFT")) + { + ps.setCoordOriginMode(PointSprite::UPPER_LEFT); + fr+=2; + iteratorAdvanced = true; + } + else if (fr[1].matchWord("LOWER_LEFT")) + { + ps.setCoordOriginMode(PointSprite::LOWER_LEFT); + fr+=2; + iteratorAdvanced = true; + } + } + + return iteratorAdvanced; } -bool PointSprite_writeLocalData(const Object&,Output&) +bool PointSprite_writeLocalData(const Object& obj, Output& fw) { + const PointSprite& ps = static_cast(obj); + + switch(ps.getCoordOriginMode()) + { + case(PointSprite::UPPER_LEFT): fw.indent() << "coordOriginMode UPPER_LEFT" << std::endl; break; + case(PointSprite::LOWER_LEFT): fw.indent() << "coordOriginMode LOWER_LEFT" << std::endl; break; + } return true; }