Index: OpenSceneGraph/trunk/include/osgAnimation/RigTransformSoftware
===================================================================
--- OpenSceneGraph/trunk/include/osgAnimation/RigTransformSoftware (revision 10877)
+++ OpenSceneGraph/trunk/include/osgAnimation/RigTransformSoftware (revision 11009)
@@ -13,10 +13,12 @@
  */
 
-#ifndef OSGANIMATION_RIG_TRANSFORM_SOFTWARE_H
-#define OSGANIMATION_RIG_TRANSFORM_SOFTWARE_H 1
+#ifndef OSGANIMATION_RIGTRANSFORM_SOFTWARE
+#define OSGANIMATION_RIGTRANSFORM_SOFTWARE 1
 
 #include <osgAnimation/Export>
 #include <osgAnimation/RigTransform>
 #include <osgAnimation/Bone>
+#include <osgAnimation/VertexInfluence>
+#include <osg/observer_ptr>
 
 namespace osgAnimation 
@@ -30,6 +32,6 @@
     public:
 
-        virtual bool init(RigGeometry&);
-        virtual void update(RigGeometry&);
+        RigTransformSoftware();
+        virtual void operator()(RigGeometry&);
     
 
@@ -157,14 +159,11 @@
         }
 
-        const std::vector<osg::Vec3>& getPositionSource() const { return _positionSource;}
-        const std::vector<osg::Vec3>& getNormalSource() const { return _normalSource;}
-
     protected:
 
-        void initVertexSetFromBones(const Bone::BoneMap& map, const VertexInfluenceSet::UniqVertexSetToBoneSetList& influence);
+        bool init(RigGeometry&);
+        void initVertexSetFromBones(const BoneMap& map, const VertexInfluenceSet::UniqVertexSetToBoneSetList& influence);
+        std::vector<UniqBoneSetVertexSet> _boneSetVertexSet;
 
-        std::vector<UniqBoneSetVertexSet> _boneSetVertexSet;
-        std::vector<osg::Vec3> _positionSource;
-        std::vector<osg::Vec3> _normalSource;
+        bool _needInit;
 
     };
