- Timestamp:
- 10/24/07 19:30:30 (11 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/Carsten_PtrWork/Source/System/Action/Base/OSGAction.cpp
r982 r988 582 582 /*! Simple tree traversal function. Calls func for every node encountered 583 583 */ 584 585 ActionBase::ResultE traverse(const std::vector<NodePtr>&nodeList,586 TraverseEnterFunctorfunc )584 ActionBase::ResultE 585 traverse(std::vector<NodePtr> const &nodeList, 586 TraverseEnterFunctor func ) 587 587 { 588 588 ActionBase::ResultE res = ActionBase::Continue; … … 604 604 /*! Simple tree traversal function. Calls func for every node encountered 605 605 */ 606 607 ActionBase::ResultE traverse(NodePtrConstArg node, 608 TraverseEnterFunctor func ) 606 ActionBase::ResultE 607 traverse(std::vector<NodeInternalRefPtr> const &nodeList, 608 TraverseEnterFunctor func ) 609 { 610 ActionBase::ResultE res = ActionBase::Continue; 611 612 std::vector<NodeInternalRefPtr>::const_iterator it = nodeList.begin(); 613 std::vector<NodeInternalRefPtr>::const_iterator en = nodeList.end (); 614 615 for(; it != en; ++it) 616 { 617 res = traverse((*it), func); 618 619 if(res == ActionBase::Quit) 620 break; 621 } 622 623 return res; 624 } 625 626 /*! Simple tree traversal function. Calls func for every node encountered 627 */ 628 ActionBase::ResultE 629 traverse(NodePtrConstArg node, 630 TraverseEnterFunctor func ) 609 631 { 610 632 ActionBase::ResultE res = ActionBase::Continue; … … 631 653 leave after leaving. 632 654 */ 633 634 ActionBase::ResultE traverse(const std::vector<NodePtr>&nodeList,635 TraverseEnterFunctor enter,636 TraverseLeaveFunctor leave)655 ActionBase::ResultE 656 traverse(std::vector<NodePtr> const &nodeList, 657 TraverseEnterFunctor enterFunc, 658 TraverseLeaveFunctor leaveFunc ) 637 659 { 638 660 ActionBase::ResultE res = ActionBase::Continue; … … 643 665 for(; it != en; ++it) 644 666 { 645 res = traverse((*it), enter , leave);667 res = traverse((*it), enterFunc, leaveFunc); 646 668 647 669 if(res == Action::Quit) … … 652 674 } 653 675 676 /*! Simple tree traversal function. Calls enter before entering a node, 677 leave after leaving. 678 */ 679 ActionBase::ResultE 680 traverse(std::vector<NodeInternalRefPtr> const &nodeList, 681 TraverseEnterFunctor enterFunc, 682 TraverseLeaveFunctor leaveFunc ) 683 { 684 ActionBase::ResultE res = ActionBase::Continue; 685 686 std::vector<NodeInternalRefPtr>::const_iterator it = nodeList.begin(); 687 std::vector<NodeInternalRefPtr>::const_iterator en = nodeList.end (); 688 689 for(; it != en; ++it) 690 { 691 res = traverse((*it), enterFunc, leaveFunc); 692 693 if(res == Action::Quit) 694 break; 695 } 696 697 return res; 698 } 654 699 655 700 /*! Simple tree traversal function. Calls enter before entering a node, 656 701 leave after leaving. 657 702 */ 658 659 703 ActionBase::ResultE traverse(NodePtrConstArg node, 660 TraverseEnterFunctor enter ,661 TraverseLeaveFunctor leave )704 TraverseEnterFunctor enterFunc, 705 TraverseLeaveFunctor leaveFunc ) 662 706 { 663 707 ActionBase::ResultE res = ActionBase::Continue; 664 708 665 res = enter (node);709 res = enterFunc(node); 666 710 667 711 switch(res) … … 673 717 case ActionBase::Continue: 674 718 res = traverse(node->getMFChildren()->getValues(), 675 enter ,676 leave );719 enterFunc, 720 leaveFunc ); 677 721 678 722 default: … … 680 724 } 681 725 682 res = leave (node, res);726 res = leaveFunc(node, res); 683 727 684 728 return res;
