Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | 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 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00073 #ifndef __vtkLODActor_h
00074 #define __vtkLODActor_h
00075 
00076 #include "vtkActor.h"
00077 
00078 class vtkMapper;
00079 class vtkMapperCollection;
00080 class vtkMaskPoints;
00081 class vtkOutlineFilter;
00082 class vtkPolyDataMapper;
00083 class vtkRenderer;
00084 class vtkViewport;
00085 class vtkWindow;
00086 
00087 class VTK_RENDERING_EXPORT vtkLODActor : public vtkActor
00088 {
00089 public:
00090   vtkTypeRevisionMacro(vtkLODActor,vtkActor);
00091   void PrintSelf(ostream& os, vtkIndent indent);
00092 
00096   static vtkLODActor *New();
00097 
00100   virtual void Render(vtkRenderer *, vtkMapper *);
00101 
00104   int RenderOpaqueGeometry(vtkViewport *viewport);
00105 
00109   void ReleaseGraphicsResources(vtkWindow *);
00110 
00113   void AddLODMapper(vtkMapper *mapper);
00114 
00116 
00117   vtkGetMacro(NumberOfCloudPoints,int);
00118   vtkSetMacro(NumberOfCloudPoints,int);
00120 
00122 
00124   vtkGetObjectMacro(LODMappers, vtkMapperCollection);
00126 
00129   void Modified();
00130   
00132   void ShallowCopy(vtkProp *prop);
00133 
00134 protected:
00135   vtkLODActor();
00136   ~vtkLODActor();
00137 
00138   vtkActor            *Device;
00139   vtkMapperCollection *LODMappers;
00140 
00141   // stuff for creating our own LOD mappers
00142   vtkMaskPoints       *MaskPoints;
00143   vtkOutlineFilter    *OutlineFilter;
00144   vtkTimeStamp        BuildTime;
00145   int                 NumberOfCloudPoints;
00146   vtkPolyDataMapper   *LowMapper;
00147   vtkPolyDataMapper   *MediumMapper;
00148 
00149   void CreateOwnLODs();
00150   void UpdateOwnLODs();
00151   void DeleteOwnLODs();
00152 
00153 private:
00154   vtkLODActor(const vtkLODActor&);  // Not implemented.
00155   void operator=(const vtkLODActor&);  // Not implemented.
00156 };
00157 
00158 #endif
00159 
00160