00001 #ifndef IG_OPEN_INVENTOR_IG_SO_CLIPPLANE_H
00002 # define IG_OPEN_INVENTOR_IG_SO_CLIPPLANE_H
00003
00004
00005
00006 # include "Iguana/Inventor/interface/config.h"
00007 # include <Inventor/nodes/SoGroup.h>
00008 # include <Inventor/fields/SoSFBool.h>
00009 # include <Inventor/fields/SoSFPlane.h>
00010
00011
00012
00013
00014
00015 class SoClipPlane;
00016 class SoShapeHints;
00017 class SoFieldSensor;
00018 class SoSensor;
00019 class SoWriteAction;
00020
00021
00022
00023
00024
00025 #ifdef WIN32
00026 #include <SoWinLeaveScope.h>
00027 #endif // WIN32
00028
00029 class IG_OPEN_INVENTOR_API IgSoClipPlane : public SoGroup
00030 {
00031 SO_NODE_HEADER (IgSoClipPlane);
00032 public:
00033 SoSFBool on;
00034 SoSFBool manip;
00035 SoSFPlane plane;
00036
00037 static void initClass (void);
00038 virtual void write (SoWriteAction *action);
00039
00040 IgSoClipPlane (void);
00041
00042 protected:
00043 ~IgSoClipPlane (void);
00044
00045 private:
00046 void reconnect (void);
00047 void syncPlane (void);
00048 static void onSensorCB (void *me, SoSensor *data);
00049 static void manipSensorCB (void *me, SoSensor *data);
00050 static void planeSensorCB (void *me, SoSensor *data);
00051 static void mplaneSensorCB (void *me, SoSensor *data);
00052
00053 SoClipPlane *m_plane;
00054 SoShapeHints *m_shapeHints;
00055 SoFieldSensor *m_onSensor;
00056 SoFieldSensor *m_manipSensor;
00057 SoFieldSensor *m_planeSensor;
00058 SoFieldSensor *m_mplaneSensor;
00059 };
00060 #ifdef WIN32
00061 #include <SoWinEnterScope.h>
00062 #endif // WIN32
00063
00064
00065
00066
00067 #endif // IG_OPEN_INVENTOR_IG_SO_CLIPPLANE_H