From 3d1c38f5e88b702394c06a592f16a88b158c1bce Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 2 Feb 2009 14:50:19 +0000 Subject: [PATCH] From Pierre Haritchablaet, "The wind vector of osgParticle::FluidFrictionOperator has not been written and read in IO_FluidFrictionOperator. This patch fixes osg plug'in FluidFrictionOperator_readLocalData and FluidFrictionOperator_writeLocalData." --- .../osgParticle/IO_FluidFrictionOperator.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/osgPlugins/osgParticle/IO_FluidFrictionOperator.cpp b/src/osgPlugins/osgParticle/IO_FluidFrictionOperator.cpp index d06e5fbae..4044fabad 100644 --- a/src/osgPlugins/osgParticle/IO_FluidFrictionOperator.cpp +++ b/src/osgPlugins/osgParticle/IO_FluidFrictionOperator.cpp @@ -1,6 +1,8 @@ #include +#include + #include #include #include @@ -25,6 +27,7 @@ bool FluidFrictionOperator_readLocalData(osg::Object &obj, osgDB::Input &fr) bool itAdvanced = false; float f; + osg::Vec3 w; if (fr[0].matchWord("fluidDensity")) { if (fr[1].getFloat(f)) { @@ -50,6 +53,14 @@ bool FluidFrictionOperator_readLocalData(osg::Object &obj, osgDB::Input &fr) } } + if (fr[0].matchWord("wind")) { + if (fr[1].getFloat(w.x()) && fr[2].getFloat(w.y()) && fr[3].getFloat(w.z())) { + aop.setWind(w); + fr += 4; + itAdvanced = true; + } + } + return itAdvanced; } @@ -58,6 +69,9 @@ bool FluidFrictionOperator_writeLocalData(const osg::Object &obj, osgDB::Output const osgParticle::FluidFrictionOperator &aop = static_cast(obj); fw.indent() << "fluidDensity " << aop.getFluidDensity() << std::endl; fw.indent() << "fluidViscosity " << aop.getFluidViscosity() << std::endl; - fw.indent() << "overrideRadius " << aop.getOverrideRadius(); + fw.indent() << "overrideRadius " << aop.getOverrideRadius() << std::endl; + + osg::Vec3 w = aop.getWind(); + fw.indent() << "wind " << w << std::endl; return true; }