VTK  9.3.1
vtkLODActor.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
47 #ifndef vtkLODActor_h
48 #define vtkLODActor_h
49 
50 #include "vtkActor.h"
51 #include "vtkRenderingLODModule.h" // For export macro
52 
53 VTK_ABI_NAMESPACE_BEGIN
54 class vtkMapper;
57 class vtkPolyDataMapper;
58 class vtkRenderer;
59 class vtkViewport;
60 class vtkWindow;
61 
62 class VTKRENDERINGLOD_EXPORT vtkLODActor : public vtkActor
63 {
64 public:
65  vtkTypeMacro(vtkLODActor, vtkActor);
66  void PrintSelf(ostream& os, vtkIndent indent) override;
67 
73  static vtkLODActor* New();
74 
79  void Render(vtkRenderer*, vtkMapper*) override;
80 
86  void ReleaseGraphicsResources(vtkWindow*) override;
87 
92  void AddLODMapper(vtkMapper* mapper);
93 
95 
100  virtual void SetLowResFilter(vtkPolyDataAlgorithm*);
101  virtual void SetMediumResFilter(vtkPolyDataAlgorithm*);
102  vtkGetObjectMacro(LowResFilter, vtkPolyDataAlgorithm);
103  vtkGetObjectMacro(MediumResFilter, vtkPolyDataAlgorithm);
105 
107 
110  vtkGetMacro(NumberOfCloudPoints, int);
111  vtkSetMacro(NumberOfCloudPoints, int);
113 
115 
119  vtkGetObjectMacro(LODMappers, vtkMapperCollection);
121 
125  void Modified() override;
126 
130  void ShallowCopy(vtkProp* prop) override;
131 
132 protected:
133  vtkLODActor();
134  ~vtkLODActor() override;
135 
138 
139  // We can create our own LOD filters. The default is to use a
140  //
145 
148 
149  virtual void CreateOwnLODs();
150  virtual void UpdateOwnLODs();
151  virtual void DeleteOwnLODs();
152 
153 private:
154  vtkLODActor(const vtkLODActor&) = delete;
155  void operator=(const vtkLODActor&) = delete;
156 };
157 
158 VTK_ABI_NAMESPACE_END
159 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:45
an ordered list of mappers
vtkPolyDataAlgorithm * LowResFilter
Definition: vtkLODActor.h:141
virtual void Render(vtkRenderer *, vtkMapper *)
This causes the actor to be rendered.
Definition: vtkActor.h:82
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
an actor that supports multiple levels of detail
Definition: vtkLODActor.h:62
int NumberOfCloudPoints
Definition: vtkLODActor.h:147
abstract specification for Viewports
Definition: vtkViewport.h:44
record modification and/or execution time
Definition: vtkTimeStamp.h:24
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkPolyDataMapper * LowMapper
Definition: vtkLODActor.h:143
void ShallowCopy(vtkProp *prop) override
Shallow copy of an actor.
abstract specification for renderers
Definition: vtkRenderer.h:61
static vtkActor * New()
Creates an actor with the following defaults: origin(0,0,0) position=(0,0,0) scale=(1,1,1) visibility=1 pickable=1 dragable=1 orientation=(0,0,0).
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
vtkPolyDataMapper * MediumMapper
Definition: vtkLODActor.h:144
vtkMapperCollection * LODMappers
Definition: vtkLODActor.h:137
vtkPolyDataAlgorithm * MediumResFilter
Definition: vtkLODActor.h:142
vtkTimeStamp BuildTime
Definition: vtkLODActor.h:146
window superclass for vtkRenderWindow
Definition: vtkWindow.h:27
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual void Modified()
Update the modification time for this object.
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:76
map vtkPolyData to graphics primitives
vtkActor * Device
Definition: vtkLODActor.h:136