Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vtkLODActor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkLODActor.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00065 #ifndef __vtkLODActor_h
00066 #define __vtkLODActor_h
00067 
00068 #include "vtkActor.h"
00069 
00070 class vtkMapper;
00071 class vtkMapperCollection;
00072 class vtkMaskPoints;
00073 class vtkOutlineFilter;
00074 class vtkPolyDataMapper;
00075 class vtkRenderer;
00076 class vtkViewport;
00077 class vtkWindow;
00078 
00079 class VTK_RENDERING_EXPORT vtkLODActor : public vtkActor
00080 {
00081 public:
00082   vtkTypeRevisionMacro(vtkLODActor,vtkActor);
00083   void PrintSelf(ostream& os, vtkIndent indent);
00084 
00088   static vtkLODActor *New();
00089 
00092   virtual void Render(vtkRenderer *, vtkMapper *);
00093 
00096   int RenderOpaqueGeometry(vtkViewport *viewport);
00097 
00101   void ReleaseGraphicsResources(vtkWindow *);
00102 
00105   void AddLODMapper(vtkMapper *mapper);
00106 
00108 
00109   vtkGetMacro(NumberOfCloudPoints,int);
00110   vtkSetMacro(NumberOfCloudPoints,int);
00112 
00114 
00116   vtkGetObjectMacro(LODMappers, vtkMapperCollection);
00118 
00121   void Modified();
00122   
00124   void ShallowCopy(vtkProp *prop);
00125 
00126 protected:
00127   vtkLODActor();
00128   ~vtkLODActor();
00129 
00130   vtkActor            *Device;
00131   vtkMapperCollection *LODMappers;
00132 
00133   // stuff for creating our own LOD mappers
00134   vtkMaskPoints       *MaskPoints;
00135   vtkOutlineFilter    *OutlineFilter;
00136   vtkTimeStamp        BuildTime;
00137   int                 NumberOfCloudPoints;
00138   vtkPolyDataMapper   *LowMapper;
00139   vtkPolyDataMapper   *MediumMapper;
00140 
00141   void CreateOwnLODs();
00142   void UpdateOwnLODs();
00143   void DeleteOwnLODs();
00144 
00145 private:
00146   vtkLODActor(const vtkLODActor&);  // Not implemented.
00147   void operator=(const vtkLODActor&);  // Not implemented.
00148 };
00149 
00150 #endif
00151 
00152