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