VTK
vtkLODActor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLODActor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
62 #ifndef vtkLODActor_h
63 #define vtkLODActor_h
64 
65 #include "vtkRenderingLODModule.h" // For export macro
66 #include "vtkActor.h"
67 
68 class vtkMapper;
71 class vtkPolyDataMapper;
72 class vtkRenderer;
73 class vtkViewport;
74 class vtkWindow;
75 
76 class VTKRENDERINGLOD_EXPORT vtkLODActor : public vtkActor
77 {
78 public:
79  vtkTypeMacro(vtkLODActor, vtkActor);
80  void PrintSelf(ostream& os, vtkIndent indent) override;
81 
87  static vtkLODActor* New();
88 
93  void Render(vtkRenderer *, vtkMapper *) override;
94 
99  int RenderOpaqueGeometry(vtkViewport* viewport) override;
100 
107 
112  void AddLODMapper(vtkMapper* mapper);
113 
115 
122  vtkGetObjectMacro(LowResFilter, vtkPolyDataAlgorithm);
123  vtkGetObjectMacro(MediumResFilter, vtkPolyDataAlgorithm);
125 
127 
130  vtkGetMacro(NumberOfCloudPoints, int);
131  vtkSetMacro(NumberOfCloudPoints, int);
133 
135 
139  vtkGetObjectMacro(LODMappers, vtkMapperCollection);
141 
145  void Modified() override;
146 
150  void ShallowCopy(vtkProp *prop) override;
151 
152 protected:
154  ~vtkLODActor() override;
155 
158 
159  // We can create our own LOD filters. The default is to use a
160  //
165 
168 
169  virtual void CreateOwnLODs();
170  virtual void UpdateOwnLODs();
171  virtual void DeleteOwnLODs();
172 
173 private:
174  vtkLODActor(const vtkLODActor&) = delete;
175  void operator=(const vtkLODActor&) = delete;
176 };
177 
178 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:43
vtkLODActor::LowResFilter
vtkPolyDataAlgorithm * LowResFilter
Definition: vtkLODActor.h:161
vtkLODActor::Render
void Render(vtkRenderer *, vtkMapper *) override
This causes the actor to be rendered.
vtkLODActor::ReleaseGraphicsResources
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkLODActor::LowMapper
vtkPolyDataMapper * LowMapper
Definition: vtkLODActor.h:163
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:36
vtkLODActor::UpdateOwnLODs
virtual void UpdateOwnLODs()
vtkLODActor::RenderOpaqueGeometry
int RenderOpaqueGeometry(vtkViewport *viewport) override
This method is used internally by the rendering process.
vtkLODActor::vtkLODActor
vtkLODActor()
vtkLODActor::BuildTime
vtkTimeStamp BuildTime
Definition: vtkLODActor.h:166
vtkLODActor::New
static vtkLODActor * New()
Creates a vtkLODActor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,...
vtkWindow
window superclass for vtkRenderWindow
Definition: vtkWindow.h:38
vtkLODActor
an actor that supports multiple levels of detail
Definition: vtkLODActor.h:77
vtkLODActor::~vtkLODActor
~vtkLODActor() override
vtkLODActor::MediumMapper
vtkPolyDataMapper * MediumMapper
Definition: vtkLODActor.h:164
vtkMapper
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:87
vtkLODActor::DeleteOwnLODs
virtual void DeleteOwnLODs()
vtkMapperCollection
an ordered list of mappers
Definition: vtkMapperCollection.h:36
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkLODActor::LODMappers
vtkMapperCollection * LODMappers
Definition: vtkLODActor.h:157
vtkLODActor::MediumResFilter
vtkPolyDataAlgorithm * MediumResFilter
Definition: vtkLODActor.h:162
vtkActor.h
vtkViewport
abstract specification for Viewports
Definition: vtkViewport.h:48
vtkLODActor::Device
vtkActor * Device
Definition: vtkLODActor.h:156
vtkProp
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:53
vtkLODActor::SetLowResFilter
virtual void SetLowResFilter(vtkPolyDataAlgorithm *)
You may plug in your own filters to decimate/subsample the input.
vtkLODActor::Modified
void Modified() override
When this objects gets modified, this method also modifies the object.
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkLODActor::AddLODMapper
void AddLODMapper(vtkMapper *mapper)
Add another level of detail.
vtkLODActor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkLODActor::CreateOwnLODs
virtual void CreateOwnLODs()
vtkLODActor::SetMediumResFilter
virtual void SetMediumResFilter(vtkPolyDataAlgorithm *)
vtkLODActor::ShallowCopy
void ShallowCopy(vtkProp *prop) override
Shallow copy of an LOD actor.
vtkLODActor::NumberOfCloudPoints
int NumberOfCloudPoints
Definition: vtkLODActor.h:167
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:45