MultibeamInstrument.h

Go to the documentation of this file.
00001 /* $Id: MultibeamInstrument.h,v 1.17 2008/06/21 00:43:47 pfb Exp $ */
00002 
00003 #ifndef _MultibeamInstrument_h
00004 #define _MultibeamInstrument_h
00005 
00010 #include "../../../../Common/Utility/Misc/GoNogo.h"
00011 #include <vtkPolyData.h>
00012 #include <vtkSource.h>
00013 #include <vtkObjectFactory.h>
00014 #include <ss.h>
00015 
00016 class vtkDataObject;
00017 class vtkMultiProcessController;
00018 
00055 class MultibeamInstrument : public GoNogo, public vtkSource
00056   {
00057   //****************************************************************************
00058                              public:
00059 
00060   enum OutputIndex
00061     {
00062     BATHYMETRY,
00063     ATTITUDE,
00064     NAVIGATION,
00065     TIDE,
00066     VELOCIMETER,
00067     TEMPERATURE
00068     };
00069 
00074   static MultibeamInstrument *New();
00075 
00076   vtkTypeMacro(MultibeamInstrument, vtkSource);
00077 
00083   void PrintSelf(ostream& os, vtkIndent indent);
00084 
00089   virtual void SetFileName(const char *path);
00090 
00095   void Process(SMARTP(vtkMultiProcessController) controller);
00096 
00101   SMARTP(vtkMultiProcessController) Process() const;
00102 
00106   void Initialize();
00107 
00112   SMARTP(vtkPolyData) GetOutput();
00113 
00119   SMARTP(vtkPolyData) GetOutput(OutputIndex level);
00120 
00127   SMARTP(vtkPolyData) BathymetryOutput();
00128 
00135   SMARTP(vtkPolyData) AttitudeOutput();
00136 
00142   SMARTP(vtkPolyData) NavigationOutput();
00143 
00149   SMARTP(vtkPolyData) TideOutput();
00150 
00156   SMARTP(vtkPolyData) VelocimeterOutput();
00157 
00163   SMARTP(vtkPolyData) TemperatureOutput();
00164 
00170   virtual void Update();
00171 
00176   virtual void Tickle();
00177 
00182   virtual bool PopRecord();
00183 
00184 
00185   //****************************************************************************
00186                              protected:
00187 
00191   MultibeamInstrument();
00192 
00196   ~MultibeamInstrument();
00197 
00201   virtual void Execute();
00202 
00207   virtual void ReadInputRecord();
00208 
00213   void ComputeInputUpdateExtents(vtkDataObject *data);
00214 
00215   int ExecutePiece;
00216   int ExecuteNumberOfPieces;
00217   int ExecuteGhostLevel;
00218 
00222   vtkMultiProcessController *controller;
00223 
00224   //****************************************************************************
00225                              private:
00226 
00230   MultibeamInstrument(const MultibeamInstrument& );
00231   MultibeamInstrument& operator=(const MultibeamInstrument& );
00232 
00233   void InitializeOutput(int idx);
00234 
00235   };
00236 
00237 /*
00238  * $Log: MultibeamInstrument.h,v $
00239  * Revision 1.17  2008/06/21 00:43:47  pfb
00240  * Updated to Smart Pointer.
00241  *
00242  * Revision 1.16  2005/06/30 11:20:16  pfb
00243  * Changed Process to now take a vtkMultiProcessController.
00244  *
00245  * Revision 1.15  2005/05/11 11:40:11  pfb
00246  * Added module info.
00247  *
00248  * Revision 1.14  2005/03/04 10:45:37  pfb
00249  * Added Initialize().
00250  *
00251  * Revision 1.13  2005/02/28 04:45:19  pfb
00252  * Corrected include statement.
00253  *
00254  * Revision 1.12  2005/01/10 12:37:00  pfb
00255  * Added Process().
00256  *
00257  * Revision 1.11  2004/11/09 03:53:17  pfb
00258  * Documenation change.
00259  *
00260  * Revision 1.10  2004/08/09 13:57:54  pfb
00261  * Added Process() and Tickle().
00262  *
00263  * Revision 1.9  2004/08/08 11:45:00  pfb
00264  * Added SetFileName(). This is a bit of a kludge and should be replaced
00265  * with a more genereic method ASAP.
00266  *
00267  * Revision 1.8  2004/08/05 13:07:25  pfb
00268  * Added PopRecord().
00269  *
00270  * Revision 1.7  2004/06/29 06:06:22  pfb
00271  * Updated to coding standards.
00272  *
00273  * Revision 1.6  2003/07/28 10:42:18  pfb
00274  * Added Update().
00275  *
00276  * Revision 1.5  2003/07/20 08:57:44  pfb
00277  * Initialize all defined outputs.
00278  *
00279  * Revision 1.4  2003/07/14 10:25:26  pfb
00280  * Added ComputeInputUpdateExtents().
00281  *
00282  * Revision 1.3  2003/07/12 16:25:18  pfb
00283  * Added the various outputs.
00284  *
00285  * Revision 1.2  2003/07/11 02:37:30  pfb
00286  * Added some basic output functions.
00287  *
00288  * Revision 1.1  2003/05/14 04:14:44  pfb
00289  * Initial rev.
00290  *
00291  *
00292  */
00293 
00297 #endif