ssMultibeamLWWindow.h

Go to the documentation of this file.
00001 /* $Id: ssMultibeamLWWindow.h,v 1.28 2006/05/29 17:28:35 pfb Exp $ */
00002 
00003 #ifndef _ssMultibeamLWWindow_h
00004 #define _ssMultibeamLWWindow_h
00005 
00010 #include "ssMultibeamLWApplication.h"
00011 
00012 #include <vtkKWWindow.h>
00013 #include <vtkKWObject.h>
00014 
00015 class vtkKWApplication;
00016 class vtkRenderWindow;
00017 class vtkRenderer;
00018 class vtkPolyData;
00019 class vtkAlgorithmOutput;
00020 class vtkPolyDataMapper;
00021 class vtkActor;
00022 class vtkAxesActor;
00023 class vtkTexture;
00024 class vtkKWRenderWidget;
00025 class vtkKWFrame;
00026 class vtkKWFrameWithLabel;
00027 class vtkKWSplitFrame;
00028 class ssMultibeamProcess;
00029 class vtkKWSurfaceMaterialPropertyWidget;
00030 class vtkKWRadioButtonSet;
00031 class vtkKWRadioButton;
00032 class vtkKWCheckButton;
00033 class vtkKWCheckButtonSet;
00034 class vtkKWThumbWheel;
00035 class vtkKWPushButton;
00036 
00037 typedef vtkKWObject superclass;
00038 
00039 class VTK_EXPORT ssMultibeamLWWindow : public vtkKWObject
00040   {
00041   //****************************************************************************
00042                              public:
00043 
00049   static ssMultibeamLWWindow *New();
00050 
00054   vtkTypeMacro(ssMultibeamLWWindow, vtkKWObject);
00055 
00061   void PrintSelf(ostream& os, vtkIndent indent);
00062 
00066   void Create();
00067 
00072   void SetDTMInput(vtkAlgorithmOutput *in);
00073 
00078   void SetSwathInput(vtkAlgorithmOutput *in);
00079 
00084   void SetRollInput(vtkAlgorithmOutput *in);
00085 
00090   void SetPitchInput(vtkAlgorithmOutput *in);
00091 
00096   void SetDTMTextureInput(vtkTexture *in);
00097 
00101   void Update();
00102 
00107   vtkKWWindow *Window() const;
00108 
00109   vtkKWWindow *operator->();
00110   vtkKWWindow *operator()();
00111 
00112   //****************************************************************************
00113                              protected:
00114 
00118   ssMultibeamLWWindow();
00119 
00123   ~ssMultibeamLWWindow();
00124 
00128   void CompleteCreation();
00129 
00136   virtual void ProcessCallbackCommandEvents(vtkObject *caller,
00137                                             unsigned long event,
00138                                             void *calldata);
00139 
00140   //BTX
00141   friend void ssMultibeamLWApplication::GUIProcess();
00142   //ETX
00143 
00144   //****************************************************************************
00145                              private:
00146 
00150   ssMultibeamLWWindow(const ssMultibeamLWWindow& rhs);
00151   ssMultibeamLWWindow& operator=(const ssMultibeamLWWindow& rhs);
00152 
00156   //BTX
00157   enum ipOption
00158     {
00159     IPSELECTIONBATHYMETRY = 1,
00160     IPSELECTIONATTITUDE   = 2,
00161     IPSELECTIONNONE       = 0
00162     };
00163   //ETX
00164     
00169   void InitializeMenus(ssMultibeamLWApplication *vtkNotUsed(app));
00170 
00178   vtkKWFrameWithLabel *PutLabeledFrame(const char  *label,
00179                                        vtkKWWidget *parent,
00180                                        const char  *pack);
00181 
00192   vtkKWRenderWidget *PutRenderWidget(vtkKWWidget *parent,
00193                                      const char *pack,
00194                                      int xsize = 0,
00195                                      int ysize = 0);
00196 
00200   void PutBathymetryOptions();
00201 
00205   void PutAttitudeOptions();
00206 
00210   void UnputOptionsDisplay();
00211 
00212   ipOption                           currentOption;
00213   bool                               showDTM;
00214   bool                               showSwathData;
00215   bool                               instrumentCentered;
00216   bool                               headUp;
00217   vtkKWWindow                        *window;
00218   vtkPolyDataMapper                  *DTMMapper;
00219   vtkPolyDataMapper                  *swathMapper;
00220   vtkPolyDataMapper                  *rollMapper;
00221   vtkPolyDataMapper                  *pitchMapper;
00222   vtkActor                           *DTMActor;
00223   vtkActor                           *swathActor;
00224   vtkActor                           *rollActor;
00225   vtkActor                           *pitchActor;
00226   vtkAxesActor                       *axesActor;
00227   vtkTexture                         *DTMTexture;
00228   vtkKWRenderWidget                  *displayWidget;  
00229   vtkKWSurfaceMaterialPropertyWidget *mpWidget;
00230   vtkKWFrameWithLabel                *ipSelectorFrame;
00231   vtkKWRadioButtonSet                *ipSelectorControl;
00232   vtkKWFrameWithLabel                *ipBathymetryOptionFrame;
00233   vtkKWFrameWithLabel                *ipAttitudeOptionFrame;
00234   vtkKWCheckButtonSet                *ipBathymetryCheckOptions;
00235   vtkKWThumbWheel                    *ipDTMTransparency;
00236   vtkKWPushButton                    *ipCameraReset;
00237   };
00238 
00239 /*
00240  * $Log: ssMultibeamLWWindow.h,v $
00241  * Revision 1.28  2006/05/29 17:28:35  pfb
00242  * Added Update(). Work in progress.
00243  *
00244  * Revision 1.27  2006/05/24 09:18:49  pfb
00245  * Added SetDTMTextureInput(). Work in progress.
00246  *
00247  * Revision 1.26  2006/05/15 04:46:10  pfb
00248  * Fixed log (caused by cvs problem at sf).
00249  *
00250  * Revision 1.25  2006/05/15 04:42:25  pfb
00251  * Work in progress.
00252  *
00253  * Revision 1.24  2006/05/03 16:17:19  pfb
00254  * Work in progress.
00255  *
00256  * Revision 1.23  2006/05/02 16:21:23  pfb
00257  * work in progress.
00258  *
00259  * Revision 1.22  2006/04/28 10:11:54  pfb
00260  * Work in progress.
00261  *
00262  * Revision 1.21  2006/04/26 15:31:02  pfb
00263  * Work in progress.
00264  *
00265  * Revision 1.20  2006/04/25 17:00:54  pfb
00266  * Work in progress.
00267  *
00268  * Revision 1.19  2006/04/24 16:51:50  pfb
00269  * Work in progress.
00270  *
00271  * Revision 1.18  2006/04/19 16:37:04  pfb
00272  * Work in progress.
00273  *
00274  * Revision 1.17  2006/04/19 07:29:52  pfb
00275  * Changed vtkTypeMacro().
00276  *
00277  * Revision 1.16  2006/04/19 05:07:47  pfb
00278  * Work in progress.
00279  *
00280  * Revision 1.15  2006/04/05 02:39:12  pfb
00281  * Removing unneed trash.
00282  *
00283  * Revision 1.14  2006/03/12 13:36:45  pfb
00284  * Work in progress.
00285  *
00286  * Revision 1.13  2006/03/09 04:15:44  pfb
00287  * Work in progress.
00288  *
00289  * Revision 1.12  2006/02/22 16:33:10  pfb
00290  * Some changes made in an attempt (unsuccessful) to implemnt a number of
00291  * view windows. Work in progress.
00292  *
00293  * Revision 1.11  2006/02/02 04:47:25  pfb
00294  * Changes to accomodate update to ParaView 2.2.1
00295  *
00296  * Revision 1.10  2005/11/02 03:10:31  pfb
00297  * Fixed doxygen tags.
00298  *
00299  * Revision 1.9  2005/06/04 12:35:22  pfb
00300  * Changed friend to ssMultibeamLWApplication::GUIProcess().
00301  *
00302  * Revision 1.8  2005/06/02 05:24:31  pfb
00303  * More API changes to reflect threads in ssMultibeamLWApplication.
00304  *
00305  * Revision 1.7  2005/06/02 03:33:34  pfb
00306  * API change to reflect threads in ssMultibeamLWApplication.
00307  *
00308  * Revision 1.6  2005/05/23 05:13:57  pfb
00309  * API change in ssMultibeamLWApplication.
00310  *
00311  * Revision 1.5  2005/05/10 17:08:00  pfb
00312  * Added module info.
00313  *
00314  * Revision 1.4  2004/11/09 07:46:34  pfb
00315  * Work in progress.
00316  *
00317  * Revision 1.3  2004/11/05 15:49:39  pfb
00318  * Work in progress.
00319  *
00320  * Revision 1.2  2004/11/03 15:00:47  pfb
00321  * Work in progress.
00322  *
00323  * Revision 1.1  2004/11/01 07:16:07  pfb
00324  * Initial rev.
00325  *
00326  *
00327  */
00328 
00332 #endif