00001 #ifndef IG_OPEN_INVENTOR_IG_SO_SLICER_H
00002 # define IG_OPEN_INVENTOR_IG_SO_SLICER_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/SoSFFloat.h>
00010 # include <Inventor/fields/SoSFPlane.h>
00011
00012
00013
00014
00015
00016 class IgSoClipPlane;
00017 class SoFieldSensor;
00018 class SoSensor;
00019 class IgSoSlicerEngine;
00020 class IgSoPlaneManip;
00021
00022
00023
00024
00025
00026 # ifdef WIN32
00027 # include <SoWinLeaveScope.h>
00028 # endif
00029
00030 class IG_OPEN_INVENTOR_API IgSoSlicer : public SoGroup
00031 {
00032 SO_NODE_HEADER (IgSoSlicer);
00033 public:
00034 SoSFBool on;
00035 SoSFBool manip;
00036 SoSFFloat thickness;
00037 SoSFPlane plane;
00038
00039 static void initClass (void);
00040 virtual void write (SoWriteAction *action);
00041
00042 IgSoSlicer (void);
00043
00044 protected:
00045 ~IgSoSlicer (void);
00046
00047 private:
00048 static void planeSensorCB (void *me, SoSensor *data);
00049 static void mplaneSensorCB (void *me, SoSensor *data);
00050
00051 IgSoClipPlane *m_front;
00052 IgSoClipPlane *m_back;
00053 IgSoPlaneManip *m_manipPlane;
00054 IgSoSlicerEngine *m_engine;
00055 SoFieldSensor *m_planeSensor;
00056 SoFieldSensor *m_mplaneSensor;
00057 };
00058 #ifdef WIN32
00059 #include <SoWinEnterScope.h>
00060 #endif // WIN32
00061
00062
00063
00064
00065 #endif // IG_OPEN_INVENTOR_IG_SO_SLICER_H