ssMultibeamGenericRenderWindowInteractor.h

Go to the documentation of this file.
00001 /* $Id: ssMultibeamGenericRenderWindowInteractor.h,v 1.4 2005/10/26 12:15:43 pfb Exp $ */
00002 
00003 /*=========================================================================
00004 
00005   Program:   ParaView
00006   Module:    $RCSfile: ssMultibeamGenericRenderWindowInteractor.h,v $
00007   Language:  C++
00008   Date:      $Date: 2005/10/26 12:15:43 $
00009   Version:   $Revision: 1.4 $
00010 
00011 Copyright (c) 2000-2001 Kitware Inc. 469 Clifton Corporate Parkway,
00012 Clifton Park, NY, 12065, USA.
00013 All rights reserved.
00014 
00015 Redistribution and use in source and binary forms, with or without
00016 modification, are permitted provided that the following conditions are met:
00017 
00018  * Redistributions of source code must retain the above copyright notice,
00019    this list of conditions and the following disclaimer.
00020 
00021  * Redistributions in binary form must reproduce the above copyright notice,
00022    this list of conditions and the following disclaimer in the documentation
00023    and/or other materials provided with the distribution.
00024 
00025  * Neither the name of Kitware nor the names of any contributors may be used
00026    to endorse or promote products derived from this software without specific 
00027    prior written permission.
00028 
00029  * Modified source versions must be plainly marked as such, and must not be
00030    misrepresented as being the original software.
00031 
00032 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00033 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00034 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00035 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
00036 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00037 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00038 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00039 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00040 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00041 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00042 
00043 =========================================================================*/
00044 
00045 /*=========================================================================
00046 This module copied from ParaView's V1.0 vtkPVGenericRenderWindowInteractor
00047 and modified as appropiate.
00048 =========================================================================*/
00049 
00054 #ifndef _MultibeamGenericRenderWindowInteractor_h
00055 #define _MultibeamGenericRenderWindowInteractor_h
00056 
00061 #include "vtkGenericRenderWindowInteractor.h"
00062 
00063 class ssMultibeamRenderView;
00064 
00065 class VTK_EXPORT ssMultibeamGenericRenderWindowInteractor : public vtkGenericRenderWindowInteractor
00066   {
00067 //******************************************************************************
00068                              public:
00074   static ssMultibeamGenericRenderWindowInteractor *New();
00075 
00079   vtkTypeMacro(ssMultibeamGenericRenderWindowInteractor,
00080                vtkGenericRenderWindowInteractor)
00081   // vtkTypeRevisionMacro(ssMultibeamGenericRenderWindowInteractor,
00082   //                     vtkGenericRenderWindowInteractor);
00083 
00084   
00089   void PrintSelf(ostream& os, vtkIndent indent);
00090   
00095   void SetMultibeamRenderView(ssMultibeamRenderView *view);
00096 
00101   ssMultibeamRenderView *GetMultibeamRenderView() const;
00102 
00108   void MoveEventInformationFlipY(int x, int y);
00109 
00114   void InteractiveRenderEnabled(int arg);
00115 
00120   int InteractiveRenderEnabled() const;
00121 
00125   virtual void Render();
00126 
00127   // Description:
00128   // Methods broadcasted to the satellites to synchronize 3D widgets.
00136   void SatelliteLeftPress(int x, int y, int control, int shift);
00137 
00145   void SatelliteMiddlePress(int x, int y, int control, int shift);
00146 
00154   void SatelliteRightPress(int x, int y, int control, int shift);
00155 
00163   void SatelliteLeftRelease(int x, int y, int control, int shift);
00164 
00172   void SatelliteMiddleRelease(int x, int y, int control, int shift);
00173 
00181   void SatelliteRightRelease(int x, int y, int control, int shift);
00182 
00188   void SatelliteMove(int x, int y);
00189 
00190 //******************************************************************************
00191                              protected:
00192 
00196   ssMultibeamGenericRenderWindowInteractor();
00197 
00201   ~ssMultibeamGenericRenderWindowInteractor();
00202 
00209   int CalculateReductionFactor(int winSize, int renSize);
00210   
00211   ssMultibeamRenderView *renderView;
00212   int reductionFactor;
00213   int interactiveRenderEnabled;
00214 
00215 //******************************************************************************
00216                              private:
00217 
00221   ssMultibeamGenericRenderWindowInteractor(const ssMultibeamGenericRenderWindowInteractor&);
00222   void operator=(const ssMultibeamGenericRenderWindowInteractor&);
00223   };
00224 
00225 /*
00226  * $Log: ssMultibeamGenericRenderWindowInteractor.h,v $
00227  * Revision 1.4  2005/10/26 12:15:43  pfb
00228  * Fixed doxygen tags.
00229  *
00230  * Revision 1.3  2005/05/10 17:08:00  pfb
00231  * Added module info.
00232  *
00233  * Revision 1.2  2004/11/09 03:51:05  pfb
00234  * Documentation change.
00235  *
00236  * Revision 1.1  2004/02/15 16:10:34  pfb
00237  * Initial rev.
00238  *
00239  *
00240  */
00241 
00242 /*
00243  * @}
00244  */
00245 #endif