diff --git a/src/osgPlugins/osg/PositionAttitudeTransform.cpp b/src/osgPlugins/osg/PositionAttitudeTransform.cpp index bbc42b846..dcf95b248 100644 --- a/src/osgPlugins/osg/PositionAttitudeTransform.cpp +++ b/src/osgPlugins/osg/PositionAttitudeTransform.cpp @@ -28,6 +28,33 @@ bool PositionAttitudeTransform_readLocalData(Object& obj, Input& fr) PositionAttitudeTransform& transform = static_cast(obj); + if (fr.matchSequence("position %f %f %f")) + { + osg::Vec3 pos; + fr[1].getFloat(pos[0]); + fr[2].getFloat(pos[1]); + fr[3].getFloat(pos[2]); + + transform.setPosition(pos); + + fr += 4; + iteratorAdvanced = true; + } + + if (fr.matchSequence("attitude %f %f %f %f")) + { + osg::Quat att; + fr[1].getFloat(att[0]); + fr[2].getFloat(att[1]); + fr[3].getFloat(att[2]); + fr[4].getFloat(att[3]); + + transform.setAttitude(att); + + fr += 4; + iteratorAdvanced = true; + } + return iteratorAdvanced; } @@ -35,6 +62,10 @@ bool PositionAttitudeTransform_readLocalData(Object& obj, Input& fr) bool PositionAttitudeTransform_writeLocalData(const Object& obj, Output& fw) { const PositionAttitudeTransform& transform = static_cast(obj); + + fw.indent()<<"position "<