KWWidgets
|
00001 /*========================================================================= 00002 00003 Copyright (c) 1998-2003 Kitware Inc. 469 Clifton Corporate Parkway, 00004 Clifton Park, NY, 12065, USA. 00005 00006 All rights reserved. No part of this software may be reproduced, distributed, 00007 or modified, in any form or by any means, without permission in writing from 00008 Kitware Inc. 00009 00010 IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR 00011 DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT 00012 OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, 00013 EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00014 00015 THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, 00016 BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 00017 PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN 00018 "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE 00019 MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 00020 00021 =========================================================================*/ 00022 // .NAME vtkKWGenericRenderWindowInteractor - Subclass of vtkGenericRenderWindowInteractor specific to KWWidgets 00023 // .SECTION Description 00024 // vtkKWGenericRenderWindowInteractor provides a way to translate native 00025 // mouse and keyboard events into vtk Events. By calling the methods on 00026 // this class, vtk events will be invoked. This will allow scripting 00027 // languages to use vtkInteractorStyles and 3D widgets. 00028 00029 00030 #ifndef __vtkKWGenericRenderWindowInteractor_h 00031 #define __vtkKWGenericRenderWindowInteractor_h 00032 00033 #include "vtkGenericRenderWindowInteractor.h" 00034 #include "vtkKWWidgets.h" // Needed for export symbols directives 00035 00036 class vtkKWRenderWidget; 00037 00038 class KWWidgets_EXPORT vtkKWGenericRenderWindowInteractor : public vtkGenericRenderWindowInteractor 00039 { 00040 public: 00041 static vtkKWGenericRenderWindowInteractor *New(); 00042 vtkTypeRevisionMacro(vtkKWGenericRenderWindowInteractor, vtkGenericRenderWindowInteractor); 00043 void PrintSelf(ostream& os, vtkIndent indent); 00044 00045 // Description: 00046 // Set the renderwidget associated to this interactor. 00047 // It is used to override the Render() method and allow the interactor styles 00048 // to communicate with the vtkKWRenderWidget (and subclasses) instance. 00049 // It is not ref-counted. 00050 virtual void SetRenderWidget(vtkKWRenderWidget *widget); 00051 vtkGetObjectMacro(RenderWidget, vtkKWRenderWidget); 00052 00053 // Description: 00054 // Override Render to render through the widget. 00055 // The superclass would call vtkRenderWindow::Render(). We want the 00056 // vtkKWRenderWidget::Render() method to be called instead. Depending 00057 // on its RenderMode (interactive, still, print) and various flag it 00058 // will perform some tests and ultimately called vtkRenderWindow::Render() 00059 // if needed. 00060 virtual void Render(); 00061 00062 protected: 00063 vtkKWGenericRenderWindowInteractor(); 00064 ~vtkKWGenericRenderWindowInteractor(); 00065 00066 vtkKWRenderWidget *RenderWidget; 00067 00068 private: 00069 vtkKWGenericRenderWindowInteractor(const vtkKWGenericRenderWindowInteractor&); // Not implemented 00070 void operator=(const vtkKWGenericRenderWindowInteractor&); // Not implemented 00071 }; 00072 00073 #endif