00001 #ifndef COIN_SOPATHSENSOR_H
00002 #define COIN_SOPATHSENSOR_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <Inventor/sensors/SoDataSensor.h>
00028
00029 class SoPathSensorP;
00030
00031 class COIN_DLL_API SoPathSensor : public SoDataSensor {
00032 typedef SoDataSensor inherited;
00033
00034 public:
00035 SoPathSensor(void);
00036 SoPathSensor(SoSensorCB * func, void * data);
00037 virtual ~SoPathSensor(void);
00038
00039 enum TriggerFilter {
00040 PATH = 0x1,
00041 NODES = 0x2,
00042 PATH_AND_NODES = 0x3
00043 };
00044
00045 void setTriggerFilter(const TriggerFilter type);
00046 TriggerFilter getTriggerFilter(void) const;
00047
00048 void attach(SoPath * path);
00049 void detach(void);
00050 SoPath * getAttachedPath(void) const;
00051
00052 protected:
00053 virtual void notify(SoNotList * l);
00054
00055 private:
00056 void commonConstructor(void);
00057 virtual void dyingReference(void);
00058
00059 SoPathSensorP * pimpl;
00060 };
00061
00062 #endif // !COIN_SOPATHSENSOR_H