00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOSEARCHACTION_H
00021
#define COIN_SOSEARCHACTION_H
00022
00023
#include <Inventor/actions/SoAction.h>
00024
#include <Inventor/actions/SoSubAction.h>
00025
#include <Inventor/SbName.h>
00026
#include <Inventor/lists/SoPathList.h>
00027
00028
00029 class COIN_DLL_API SoSearchAction :
public SoAction {
00030
typedef SoAction inherited;
00031
00032 SO_ACTION_HEADER(SoSearchAction);
00033
00034
public:
00035 SoSearchAction(
void);
00036
virtual ~SoSearchAction();
00037
00038
static void initClass(
void);
00039
00040 enum LookFor { NODE = 1, TYPE = 2, NAME = 4 };
00041 enum Interest { FIRST, LAST, ALL };
00042
00043
void setNode(
SoNode *
const node);
00044
SoNode * getNode(
void) const;
00045
void setType(const
SoType type, const SbBool chkderived = TRUE);
00046
SoType getType(SbBool & chkderived) const;
00047
void setName(const
SbName name);
00048
SbName getName(
void) const;
00049
void setFind(const
int what);
00050
int getFind(
void) const;
00051
void setInterest(const Interest interest);
00052 Interest getInterest(
void) const;
00053
void setSearchingAll(const SbBool searchall);
00054 SbBool isSearchingAll(
void) const;
00055
SoPath * getPath(
void) const;
00056
SoPathList & getPaths(
void);
00057
void reset(
void);
00058
00059
void setFound(
void);
00060 SbBool isFound(
void) const;
00061
void addPath(
SoPath * const path);
00062
00063 protected:
00064 virtual
void beginTraversal(
SoNode * node);
00065
00066 private:
00067
int lookfor;
00068 Interest interest;
00069 SbBool searchall, chkderived;
00070
SoNode * node;
00071
SoType type;
00072
SbName name;
00073
SoPath * path;
00074
SoPathList paths;
00075 };
00076
00077 #endif