00001 #ifndef IGUANA_GL_BROWSERS_IG_3DROTATIONF_CONTROL_H
00002 # define IGUANA_GL_BROWSERS_IG_3DROTATIONF_CONTROL_H
00003
00004
00005
00006 # include "Iguana/GLBrowsers/interface/Ig3DFieldControl.h"
00007 # include <Inventor/SbLinear.h>
00008 # include <Inventor/fields/SoSFRotation.h>
00009
00010
00011
00012
00013
00014 class Ig3DVectorControl;
00015 class Ig3DFloatControl;
00016
00017
00018
00019
00020
00021 class IGUANA_GL_BROWSERS_API Ig3DRotationFControl : public Ig3DFieldControl
00022 {
00023 Q_OBJECT
00024 public:
00025 Ig3DRotationFControl (IgControlCategory *pane,
00026 QString label);
00027
00028
00029
00030
00031
00032 SoSFRotation * field (void) const;
00033 void setField (SoSFRotation *field);
00034 SbRotation fieldValue (void) const;
00035
00036
00037 SbVec3f axis (void) const;
00038 float angle (void) const;
00039 SbRotation value (void) const;
00040
00041
00042 Ig3DVectorControl * axisControl (void) const;
00043 Ig3DFloatControl * angleControl (void) const;
00044
00045 QString getSettingString (void) const;
00046 void setSettingString (QString &setting);
00047 public slots:
00048 virtual void setValue (const SbVec3f &axis, float angle);
00049 virtual void setValue (const SbRotation &newval);
00050 virtual void setAxis (const SbVec3f &value);
00051 virtual void setAngle (float value);
00052 virtual void emitSettingsChanged (void);
00053
00054 protected:
00055 virtual void updateValue (void);
00056 virtual void applyValue (void);
00057
00058 private:
00059 Ig3DVectorControl *m_axis;
00060 Ig3DFloatControl *m_angle;
00061 };
00062
00063
00064
00065
00066 #endif // IGUANA_GL_BROWSERS_IG_3DROTATIONF_CONTROL_H