virtual void apply(PositionAttitudeTransform& pat)
 {
     if (_useInverseMatrix)
     {
         Matrix matrix;
         _cp.getInverse(matrix);
         pat.setPosition(matrix.getTrans());
         pat.setAttitude(_cp.getRotation().inverse());
         pat.setScale(osg::Vec3(1.0f/_cp.getScale().x(),1.0f/_cp.getScale().y(),1.0f/_cp.getScale().z()));
         pat.setPivotPoint(_pivotPoint);
         
     }
     else
     {
         pat.setPosition(_cp.getPosition());
         pat.setAttitude(_cp.getRotation());
         pat.setScale(_cp.getScale());
         pat.setPivotPoint(_pivotPoint);
     }
 }