Changeset 9377

Show
Ignore:
Timestamp:
12/17/08 13:13:15 (6 years ago)
Author:
robert
Message:

Introduce NodeVisitor::className and libraryName()

Location:
OpenSceneGraph/trunk
Files:
27 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/include/osg/CollectOccludersVisitor

    r7648 r9377  
    3131        CollectOccludersVisitor(); 
    3232        virtual ~CollectOccludersVisitor(); 
     33 
     34        META_NodeVisitor("osg","CollectOccludersVisitor") 
    3335 
    3436        virtual CollectOccludersVisitor* cloneType() const { return new CollectOccludersVisitor(); } 
  • OpenSceneGraph/trunk/include/osg/ComputeBoundsVisitor

    r6225 r9377  
    2727    ComputeBoundsVisitor(TraversalMode traversalMode = TRAVERSE_ALL_CHILDREN); 
    2828     
     29    META_NodeVisitor("osg","ComputeBoundsVisitor") 
     30 
    2931    virtual void reset(); 
    3032     
  • OpenSceneGraph/trunk/include/osg/KdTree

    r8607 r9377  
    176176        KdTreeBuilder(const KdTreeBuilder& rhs); 
    177177 
     178        META_NodeVisitor("osg","KdTreeBuilder") 
     179 
    178180        virtual KdTreeBuilder* clone() { return new KdTreeBuilder(*this); } 
    179181 
  • OpenSceneGraph/trunk/include/osg/NodeVisitor

    r8990 r9377  
    4343class CameraView; 
    4444 
     45#define META_NodeVisitor(library,name) \ 
     46        virtual const char* libraryName() const { return #library; }\ 
     47        virtual const char* className() const { return #name; } 
     48 
    4549/** Visitor for type safe operations on osg::Nodes. 
    4650    Based on GOF's Visitor pattern. The NodeVisitor  
     
    8387         
    8488        virtual ~NodeVisitor(); 
     89         
     90        /** return the library name/namespapce of the visitor's. Should be defined by derived classes.*/ 
     91        virtual const char* libraryName() const { return "osg"; } 
     92 
     93        /** return the name of the visitor's class type. Should be defined by derived classes.*/ 
     94        virtual const char* className() const { return "NodeVisitor"; } 
    8595 
    8696        /** Method to call to reset visitor. Useful if your visitor accumulates 
  • OpenSceneGraph/trunk/include/osgAnimation/Bone

    r9370 r9377  
    5757            BoneMapVisitor(): osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) {} 
    5858 
     59            META_NodeVisitor("osgAnimation","BoneMapVisitor") 
     60 
    5961            void apply(osg::Node& node) { return; } 
    6062            void apply(osg::Transform& node) 
  • OpenSceneGraph/trunk/include/osgAnimation/LinkVisitor

    r9121 r9377  
    2727        AnimationList _animations; 
    2828        unsigned int _nbLinkedTarget; 
     29         
    2930        LinkVisitor(Animation* animation) : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { _animations.push_back(animation); _nbLinkedTarget = 0;} 
    3031        LinkVisitor(const AnimationList& animations) : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { _animations = animations; _nbLinkedTarget = 0;} 
     32 
     33        META_NodeVisitor("osgAnimation","LinkVisitor") 
     34 
    3135        void apply(osg::Node& node)  
    3236        { 
  • OpenSceneGraph/trunk/include/osgAnimation/RigGeometry

    r9370 r9377  
    7878            osg::ref_ptr<Skeleton> _root; 
    7979            BuildVertexTransformerVisitor(Skeleton* root): osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { _root = root;} 
     80 
     81            META_NodeVisitor("osgAnimation","BuildVertexTransformerVisitor") 
     82 
    8083            void apply(osg::Geode& node)  
    8184            {  
  • OpenSceneGraph/trunk/include/osgDB/SharedStateManager

    r8523 r9377  
    4949        SharedStateManager(unsigned int mode = SHARE_ALL); 
    5050 
     51        META_NodeVisitor("osgDB","SharedStateManager") 
     52  
    5153        void setShareMode(unsigned int mode); 
    5254         
  • OpenSceneGraph/trunk/include/osgGA/EventVisitor

    r5328 r9377  
    4444        virtual ~EventVisitor(); 
    4545         
     46        META_NodeVisitor("osgGA","EventVisitor") 
    4647         
    4748        void setActionAdapter(osgGA::GUIActionAdapter* actionAdapter) { _actionAdapter=actionAdapter; } 
  • OpenSceneGraph/trunk/include/osgSim/InsertImpostorsVisitor

    r5328 r9377  
    3030        InsertImpostorsVisitor(); 
    3131         
     32        META_NodeVisitor("osgSim","InsertImpostorsVisitor") 
     33 
    3234        void setImpostorThresholdRatio(float ratio) { _impostorThresholdRatio = ratio; } 
    3335        float getImpostorThresholdRatio() const { return _impostorThresholdRatio; } 
  • OpenSceneGraph/trunk/include/osgUtil/CullVisitor

    r8768 r9377  
    5858        CullVisitor(const CullVisitor&); 
    5959 
     60        META_NodeVisitor("osgUtil","CullVisitor") 
     61 
    6062        /** Create a shallow copy of the CullVisitor, used by CullVisitor::create() to clone the prototype. */ 
    6163        virtual CullVisitor* clone() const { return new CullVisitor(*this); } 
  • OpenSceneGraph/trunk/include/osgUtil/DisplayRequirementsVisitor

    r5328 r9377  
    3737        DisplayRequirementsVisitor(); 
    3838         
     39        META_NodeVisitor("osgUtil","DisplayRequirementsVisitor") 
    3940 
    4041        /** Set the DisplaySettings. */ 
  • OpenSceneGraph/trunk/include/osgUtil/DrawElementTypeSimplifier

    r7769 r9377  
    3333    public: 
    3434         
     35        META_NodeVisitor("osgUtil","DrawElementTypeSimplifierVisitor") 
     36 
    3537        void apply(osg::Geode& node); 
    3638}; 
  • OpenSceneGraph/trunk/include/osgUtil/GLObjectsVisitor

    r7171 r9377  
    5252          * GL objects. 
    5353          */ 
    54         GLObjectsVisitor(Mode mode=COMPILE_DISPLAY_LISTS|COMPILE_STATE_ATTRIBUTES|CHECK_BLACK_LISTED_MODES); 
    55          
    56          
     54        GLObjectsVisitor(Mode mode=COMPILE_DISPLAY_LISTS|COMPILE_STATE_ATTRIBUTES|CHECK_BLACK_LISTED_MODES);       
     55  
     56        META_NodeVisitor("osg","GLObjectsVisitor") 
     57        
    5758        virtual void reset() 
    5859        { 
  • OpenSceneGraph/trunk/include/osgUtil/IntersectVisitor

    r5940 r9377  
    103103        virtual ~IntersectVisitor(); 
    104104 
     105        META_NodeVisitor("osgUtil","IntersectVisitor") 
     106 
    105107        void reset(); 
    106108         
  • OpenSceneGraph/trunk/include/osgUtil/IntersectionVisitor

    r8752 r9377  
    138138        IntersectionVisitor(Intersector* intersector=0, ReadCallback* readCallback=0); 
    139139         
     140        META_NodeVisitor("osgUtil","IntersectionVisitor") 
     141 
    140142        virtual void reset(); 
    141143 
  • OpenSceneGraph/trunk/include/osgUtil/Simplifier

    r7720 r9377  
    3131        Simplifier(double sampleRatio=1.0, double maximumError=FLT_MAX, double maximumLength=0.0); 
    3232 
     33        META_NodeVisitor("osgUtil","Simplifier") 
    3334 
    3435        void setSampleRatio(float sampleRatio) { _sampleRatio = sampleRatio; } 
  • OpenSceneGraph/trunk/include/osgUtil/Statistics

    r7601 r9377  
    168168    StatsVisitor(); 
    169169         
     170    META_NodeVisitor("osgUtil","StatsVisitor") 
     171 
    170172    void reset(); 
    171173     
  • OpenSceneGraph/trunk/include/osgUtil/UpdateVisitor

    r5328 r9377  
    4242        virtual ~UpdateVisitor(); 
    4343 
     44        META_NodeVisitor("osgUtil","UpdateVisitor") 
     45 
    4446        virtual void reset(); 
    4547 
    46     /** During traversal each type of node calls its callbacks and its children traversed. */ 
     48        /** During traversal each type of node calls its callbacks and its children traversed. */ 
    4749        virtual void apply(osg::Node& node)         { handle_callbacks_and_traverse(node); } 
    4850         
  • OpenSceneGraph/trunk/src/osg/Transform.cpp

    r6109 r9377  
    3939            _ignoreCameras(ignoreCameras) 
    4040            {} 
     41 
     42        META_NodeVisitor("osg","TransformVisitor") 
    4143 
    4244        virtual void apply(Transform& transform) 
  • OpenSceneGraph/trunk/src/osgDB/DatabasePager.cpp

    r9352 r9377  
    129129         
    130130    } 
     131     
     132    META_NodeVisitor("osgDB","FindCompileableGLObjectsVisitor") 
    131133     
    132134    virtual void apply(osg::Node& node) 
     
    14871489    } 
    14881490 
     1491    META_NodeVisitor("osgDB","FindCompileableGLObjectsVisitor") 
     1492 
    14891493    virtual void apply(osg::PagedLOD& plod) 
    14901494    { 
     
    18431847    } 
    18441848     
     1849    META_NodeVisitor("osgDB","FindPagedLODsVisitor") 
     1850 
    18451851    virtual void apply(osg::PagedLOD& plod) 
    18461852    { 
  • OpenSceneGraph/trunk/src/osgFX/BumpMapping.cpp

    r5187 r9377  
    3131    public: 
    3232        TsgVisitor(BumpMapping* bm): NodeVisitor(NodeVisitor::TRAVERSE_ALL_CHILDREN), _bm(bm) {} 
     33 
     34        META_NodeVisitor("osgFX","TsgVisitor") 
     35 
    3336        void apply(osg::Geode& geode) 
    3437        { 
     
    5154    public: 
    5255        TexCoordGenerator(int du, int nu): NodeVisitor(NodeVisitor::TRAVERSE_ALL_CHILDREN), du_(du), nu_(nu) {} 
     56 
     57        META_NodeVisitor("osgFX","TexCoordGenerator") 
     58 
    5359        void apply(osg::Geode& geode) 
    5460        { 
  • OpenSceneGraph/trunk/src/osgGA/NodeTrackerManipulator.cpp

    r8999 r9377  
    2121 
    2222 
    23 class CollectParentPaths : public osg::NodeVisitor 
    24 { 
    25 public: 
    26     CollectParentPaths() :  
    27         osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_PARENTS) {} 
    28          
    29     virtual void apply(osg::Node& node) 
    30     { 
    31         if (node.getNumParents()==0) 
    32         { 
    33             _nodePaths.push_back(getNodePath()); 
    34         } 
    35         traverse(node); 
    36    } 
    37      
    38     osg::NodePath _nodePath; 
    39     typedef std::vector< osg::NodePath > NodePathList; 
    40     NodePathList _nodePaths; 
    41 }; 
    42  
    4323NodeTrackerManipulator::NodeTrackerManipulator() 
    4424{ 
     
    121101    } 
    122102 
    123     CollectParentPaths cpp; 
    124     node->accept(cpp); 
    125  
    126     if (!cpp._nodePaths.empty()) 
    127     { 
     103    osg::NodePathList nodePaths = node->getParentalNodePaths(); 
     104    if (!nodePaths.empty()) 
     105    { 
     106        if (nodePaths.size()>1) 
     107        { 
     108            osg::notify(osg::NOTICE)<<"osgGA::NodeTrackerManipualtor::setTrackNode(..) taking first parent path, ignoring others."<<std::endl; 
     109        } 
     110 
    128111        osg::notify(osg::INFO)<<"NodeTrackerManipulator::setTrackNode(Node*"<<node<<" "<<node->getName()<<"): Path set"<<std::endl; 
    129112        _trackNodePath.clear(); 
    130         setTrackNodePath( cpp._nodePaths[0] ); 
     113        setTrackNodePath( nodePaths.front() ); 
    131114    } 
    132115    else 
  • OpenSceneGraph/trunk/src/osgManipulator/Selection.cpp

    r6143 r9377  
    1616#include <osgManipulator/Command> 
    1717 
     18#include <osg/Notify> 
     19 
    1820#include <algorithm> 
    1921 
    2022using namespace osgManipulator; 
    2123 
    22 class FindNodePathToRootVisitor : public osg::NodeVisitor 
    23 { 
    24     public: 
    25          
    26         osg::NodePath& _nodePathToRoot; 
    27  
    28         FindNodePathToRootVisitor(osg::NodePath& np)  
    29             : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_PARENTS),  
    30               _nodePathToRoot(np) 
    31         {} 
    32  
    33         virtual void apply(osg::Node& node) 
    34         { 
    35             _nodePathToRoot.push_back(&node); 
    36             traverse(node); 
    37         } 
    38 }; 
    39  
    4024void osgManipulator::computeNodePathToRoot(osg::Node& node, osg::NodePath& np) 
    4125{ 
    4226    np.clear(); 
    43     osg::ref_ptr<FindNodePathToRootVisitor> visitor = new FindNodePathToRootVisitor(np); 
    44     node.accept(*visitor); 
    45     np.pop_back(); 
    46     std::reverse(np.begin(), np.end()); 
     27     
     28    osg::NodePathList nodePaths = node.getParentalNodePaths(); 
     29     
     30    if (!nodePaths.empty()) 
     31    { 
     32        np = nodePaths.front(); 
     33        if (nodePaths.size()>1) 
     34        { 
     35            osg::notify(osg::NOTICE)<<"osgManipulator::computeNodePathToRoot(,) taking first parent path, ignoring others."<<std::endl; 
     36        } 
     37    } 
    4738} 
    4839 
  • OpenSceneGraph/trunk/src/osgShadow/OccluderGeometry.cpp

    r7038 r9377  
    4848        if (matrix) pushMatrix(*matrix); 
    4949    } 
     50 
     51    META_NodeVisitor("osgShadow","CollectOccludersVisitor") 
    5052 
    5153    void apply(osg::Node& node) 
  • OpenSceneGraph/trunk/src/osgSim/SphereSegment.cpp

    r7648 r9377  
    10151015        } 
    10161016         
     1017        META_NodeVisitor("osgSim","PolytopeVisitor") 
     1018 
    10171019        void reset() 
    10181020        { 
  • OpenSceneGraph/trunk/src/osgViewer/View.cpp

    r9330 r9377  
    3535        NodeVisitor(osg::NodeVisitor::TRAVERSE_ACTIVE_CHILDREN) {} 
    3636         
    37          
     37    META_NodeVisitor("osgViewer","CollectedCoordinateSystemNodesVisitor") 
     38 
    3839    virtual void apply(osg::Node& node) 
    3940    {