00001 #ifndef IGUANA_GL_BROWSERS_IG_3DPLANE_CONTROL_H 00002 # define IGUANA_GL_BROWSERS_IG_3DPLANE_CONTROL_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/GLBrowsers/interface/Ig3DFieldControl.h" 00007 # include "Iguana/GLBrowsers/interface/Ig3DAxisRotationControl.h" 00008 # include "Iguana/GLBrowsers/interface/IgPlaneDirection.h" 00009 # include <Inventor/SbLinear.h> 00010 # include <Inventor/fields/SoSFPlane.h> 00011 00012 00013 //<<<<<< PUBLIC DEFINES >>>>>> 00014 //<<<<<< PUBLIC CONSTANTS >>>>>> 00015 //<<<<<< PUBLIC TYPES >>>>>> 00016 00017 class SoSFPlane; 00018 class Ig3DAxisRotationControl; 00019 class Ig3DVectorControl; 00020 class Ig3DFloatControl; 00021 00022 //<<<<<< PUBLIC VARIABLES >>>>>> 00023 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00024 //<<<<<< CLASS DECLARATIONS >>>>>> 00025 00026 class IGUANA_GL_BROWSERS_API Ig3DPlaneControl : public Ig3DFieldControl 00027 { 00028 Q_OBJECT 00029 public: 00030 Ig3DPlaneControl (IgControlCategory *pane, QString label); 00031 // implicit copy constructor 00032 // implicit assignment operator 00033 // implicit destructor 00034 00035 SoSFPlane* field (void) const; 00036 void setField (SoSFPlane *field); 00037 SbPlane fieldValue (void) const; 00038 00039 SbPlane value (void) const; 00040 SbVec3f direction (void) const; 00041 float distance (void) const; 00042 00043 Ig3DAxisRotationControl* axisRotationControl (void) const; 00044 Ig3DFloatControl* distanceControl (void) const; 00045 00046 QString getSettingString (void) const; 00047 void setSettingString (QString &setting); 00048 00049 public slots: 00050 virtual void setValue (const SbPlane &value); 00051 virtual void setDirection (const SbVec3f &value); 00052 virtual void setDistance (float value); 00053 virtual void emitSettingsChanged (void); 00054 00055 virtual void show (void); 00056 virtual void hide (void); 00057 00058 protected: 00059 virtual void applyValue (void); 00060 virtual void updateValue (void); 00061 00062 private: 00063 Ig3DAxisRotationControl* m_rotation; 00064 IgPlaneDirection* m_direction; 00065 Ig3DFloatControl* m_distance; 00066 }; 00067 00068 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00069 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00070 00071 #endif // IGUANA_GL_BROWSERS_IG_3DPLANE_CONTROL_H