00001 /* $Id:$ */ 00002 00003 #ifndef __NODES_BY_NAME_EXPLORER_H 00004 #define __NODES_BY_NAME_EXPLORER_H 00005 00006 #include <esg/explorer/Explorer.h> 00007 #include <string.h> 00008 00009 namespace esg { 00010 00015 class NodesByNameExpl : public Explorer { 00016 protected: 00017 char * _name; 00018 bool _falsePositives; 00019 List<SceneGraphObject> _foundObjects; 00020 00021 protected: 00022 virtual bool _explore(SceneGraphObject&); 00023 virtual bool _process_leaf(SceneGraphObject&) { return false; } 00024 virtual void _accept_new_transformation(const Matrix4&) {} 00025 00026 public: 00030 NodesByNameExpl() 00031 : _name(NULL), _falsePositives(false) {} 00032 00039 NodesByNameExpl(const char * name, bool falsePositives = false); 00040 00044 virtual ~NodesByNameExpl(); 00045 00049 void setName(const char * name); 00050 00054 void setFalsePositives(bool fp) { _falsePositives = fp; } 00055 00059 bool getFalsePositives() const { return _falsePositives; } 00060 00066 SceneGraphObject* result(); 00067 }; 00068 00069 }; // namespace 00070 00071 #endif // __NODES_BY_NAME_EXPLORER_H