00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOCALLBACK_H
00021
#define COIN_SOCALLBACK_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
00025
00026
typedef void SoCallbackCB(
void * userdata,
SoAction * action);
00027
00028 class COIN_DLL_API SoCallback :
public SoNode {
00029
typedef SoNode inherited;
00030
00031 SO_NODE_HEADER(SoCallback);
00032
00033
public:
00034
static void initClass(
void);
00035 SoCallback(
void);
00036
00037
void setCallback(SoCallbackCB * function,
void * userdata = NULL);
00038
00039
virtual void doAction(
SoAction * action);
00040
virtual void callback(
SoCallbackAction * action);
00041
virtual void GLRender(
SoGLRenderAction * action);
00042
virtual void getBoundingBox(
SoGetBoundingBoxAction * action);
00043
virtual void getMatrix(
SoGetMatrixAction * action);
00044
virtual void handleEvent(
SoHandleEventAction * action);
00045
virtual void pick(
SoPickAction * action);
00046
virtual void search(
SoSearchAction * action);
00047
virtual void write(
SoWriteAction * action);
00048
virtual void getPrimitiveCount(
SoGetPrimitiveCountAction * action);
00049
00050
protected:
00051
virtual ~SoCallback();
00052
00053
virtual void copyContents(
const SoFieldContainer * from,
00054 SbBool copyconnections);
00055
00056
private:
00057 SoCallbackCB * cbfunc;
00058
void * cbdata;
00059 };
00060
00061
#endif // !COIN_SOCALLBACK_H