Changeset 10701

Show
Ignore:
Timestamp:
10/29/09 17:09:07 (5 years ago)
Author:
cedricpinson
Message:

From Cedric Pinson, Fix warning in osgAnimation, UpdateCallback?. Fix bug removing callback in Action. Fix warning Stats

Location:
OpenSceneGraph/trunk
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/include/osgAnimation/Action

    r10693 r10701  
    5252            void addNestedCallback(Callback* callback)  
    5353            {  
    54                 if (_nestedCallback.valid()) 
    55                     _nestedCallback->addNestedCallback(callback); 
    56                 else 
    57                     _nestedCallback = callback; 
     54                if (callback) { 
     55                    if (_nestedCallback.valid()) 
     56                        _nestedCallback->addNestedCallback(callback); 
     57                    else 
     58                        _nestedCallback = callback; 
     59                } 
    5860            } 
    5961 
     
    6567                if (_nestedCallback.get() == cb) 
    6668                    _nestedCallback = _nestedCallback->getNestedCallback(); 
    67                 else 
     69                else if (_nestedCallback.valid()) 
    6870                    _nestedCallback->removeCallback(cb); 
    6971            } 
  • OpenSceneGraph/trunk/include/osgAnimation/TimelineAnimationManager

    r9370 r10701  
    11/*  -*-c++-*-  
    2  *  Copyright (C) 2008 Cedric Pinson <mornifle@plopbyte.net> 
     2 *  Copyright (C) 2008 Cedric Pinson <cedric.pinson@plopbyte.net> 
    33 * 
    44 * This library is open source and may be redistributed and/or modified under   
     
    1111 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
    1212 * OpenSceneGraph Public License for more details. 
    13 */ 
     13 */ 
    1414 
    1515#ifndef OSGANIMATION_TIMELINE_ANIMATION_MANAGER_H 
  • OpenSceneGraph/trunk/include/osgAnimation/UpdateCallback

    r10689 r10701  
    3838    { 
    3939    public: 
     40        AnimationUpdateCallback() {} 
    4041        AnimationUpdateCallback(const std::string& name) { T::setName(name);} 
    4142        AnimationUpdateCallback(const AnimationUpdateCallback& apc,const osg::CopyOp& copyop): 
    4243            T(apc, copyop) {} 
    4344 
     45        META_Object(osgAnimation, AnimationUpdateCallback<T>); 
     46 
    4447        const std::string& getName() const { return T::getName(); } 
     48        bool link(osgAnimation::Channel* channel) { return 0; } 
    4549        int link(osgAnimation::Animation* animation) 
    4650        { 
  • OpenSceneGraph/trunk/src/osgAnimation/ActionVisitor.cpp

    r10693 r10701  
    141141        unsigned int frame = getLocalFrame(); 
    142142        apply(static_cast<Action&>(action)); 
    143 //        action.updateAnimation(frame, getCurrentLayer()); 
    144         action.updateAnimation(frame, -_currentAnimationPriority++); 
     143                int pri = static_cast<int>(_currentAnimationPriority); 
     144                _currentAnimationPriority++; 
     145        action.updateAnimation(frame, -pri); 
    145146    } 
    146147} 
  • OpenSceneGraph/trunk/src/osgAnimation/StatsHandler.cpp

    r10656 r10701  
    425425 
    426426             for (std::map<std::string, StatAction >::iterator it = _actions.begin(); it != _actions.end(); it++) { 
    427                  //if ((*it).second.update()) 
    428                  (*it).second._group->setNodeMask(~1); 
     427                 (*it).second._group->setNodeMask(~osg::Node::NodeMask(1)); 
    429428             } 
    430429 
     
    442441                    //_actions[name].touch(); 
    443442                } 
    444                 _actions[name]._group->setNodeMask(~0); 
     443                                _actions[name]._group->setNodeMask(~osg::Node::NodeMask(0x0)); 
    445444                size[name] = 0; 
    446445                pos.y() -= characterSize + graphSpacing; 
  • OpenSceneGraph/trunk/src/osgAnimation/StatsVisitor.cpp

    r10693 r10701  
    7878    { 
    7979        _channels.push_back(action.getName()); 
    80         _stats->setAttribute(_frame,action.getName(), action.getAnimation()->getAnimation()->getWeight()); 
     80        double value; 
     81        std::string name = action.getName(); 
     82        if (_stats->getAttribute(_frame, name, value)) 
     83            name += "+"; 
     84        _stats->setAttribute(_frame, action.getName(), action.getAnimation()->getAnimation()->getWeight()); 
    8185    } 
    8286}