00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOCLIPPLANEMANIP_H
00021
#define COIN_SOCLIPPLANEMANIP_H
00022
00023
#include <Inventor/nodes/SoClipPlane.h>
00024
#include <Inventor/fields/SoSFVec3f.h>
00025
00026
class SbBox3f;
00027
class SoChildList;
00028
class SoDragger;
00029
class SoFieldSensor;
00030
class SoPath;
00031
class SoSensor;
00032
00033
00034 class COIN_DLL_API SoClipPlaneManip :
public SoClipPlane {
00035
typedef SoClipPlane inherited;
00036
00037 SO_NODE_HEADER(SoClipPlaneManip);
00038
00039
public:
00040
static void initClass(
void);
00041 SoClipPlaneManip(
void);
00042
00043
SoDragger * getDragger(
void);
00044
void setValue(
const SbBox3f & box,
const SbVec3f & planenormal,
00045
float draggerscalefactor);
00046 SbBool replaceNode(
SoPath * p);
00047 SbBool replaceManip(
SoPath * p,
SoClipPlane * newone)
const;
00048
00049
virtual void doAction(
SoAction * action);
00050
virtual void callback(
SoCallbackAction * action);
00051
virtual void GLRender(
SoGLRenderAction * action);
00052
virtual void getBoundingBox(
SoGetBoundingBoxAction * action);
00053
virtual void getMatrix(
SoGetMatrixAction * action);
00054
virtual void handleEvent(
SoHandleEventAction * action);
00055
virtual void pick(
SoPickAction * action);
00056
virtual void search(
SoSearchAction * action);
00057
00058
virtual SoChildList *
getChildren(
void)
const;
00059
00060
SoSFVec3f draggerPosition;
00061
00062
protected:
00063 ~SoClipPlaneManip();
00064
00065
void setDragger(
SoDragger * newdragger);
00066
00067
virtual void copyContents(
const SoFieldContainer * fromfc, SbBool copyconnections);
00068
static void valueChangedCB(
void * f,
SoDragger * d);
00069
static void fieldSensorCB(
void * f,
SoSensor * d);
00070
static void transferFieldValues(
const SoClipPlane * from,
SoClipPlane * to);
00071
00072
SoFieldSensor * planeFieldSensor;
00073
SoFieldSensor * onFieldSensor;
00074
SoFieldSensor * draggerPosFieldSensor;
00075
SoChildList * children;
00076
00077
private:
00078
void attachSensors(
const SbBool onoff);
00079
00080 };
00081
00082
#endif // !COIN_SOCLIPPLANEMANIP_H