VTK  9.1.0
vtkLODProp3D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkLODProp3D.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=========================================================================*/
52#ifndef vtkLODProp3D_h
53#define vtkLODProp3D_h
54
55#include "vtkProp3D.h"
56#include "vtkRenderingCoreModule.h" // For export macro
57
58class vtkRenderer;
59class vtkMapper;
63class vtkProperty;
66class vtkTexture;
67class vtkLODProp3DCallback;
68
70{
73 int ID;
75 int State;
76 double Level;
77};
79
80class VTKRENDERINGCORE_EXPORT vtkLODProp3D : public vtkProp3D
81{
82public:
86 static vtkLODProp3D* New();
87
88 vtkTypeMacro(vtkLODProp3D, vtkProp3D);
89 void PrintSelf(ostream& os, vtkIndent indent) override;
90
94 double* GetBounds() VTK_SIZEHINT(6) override;
95 void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds(bounds); }
96
98
107 int AddLOD(vtkMapper* m, vtkProperty* p, vtkProperty* back, vtkTexture* t, double time);
108 int AddLOD(vtkMapper* m, vtkProperty* p, vtkTexture* t, double time);
109 int AddLOD(vtkMapper* m, vtkProperty* p, vtkProperty* back, double time);
110 int AddLOD(vtkMapper* m, vtkProperty* p, double time);
111 int AddLOD(vtkMapper* m, vtkTexture* t, double time);
112 int AddLOD(vtkMapper* m, double time);
114 int AddLOD(vtkAbstractVolumeMapper* m, double time);
115 int AddLOD(vtkImageMapper3D* m, vtkImageProperty* p, double time);
116 int AddLOD(vtkImageMapper3D* m, double time);
118
120
123 vtkGetMacro(NumberOfLODs, int);
125
127
132 vtkGetMacro(CurrentIndex, int);
134
139 void RemoveLOD(int id);
140
142
148 void SetLODProperty(int id, vtkProperty* p);
149 void GetLODProperty(int id, vtkProperty** p);
155
157
163 void SetLODMapper(int id, vtkMapper* m);
164 void GetLODMapper(int id, vtkMapper** m);
170
177
179
186
188
192 void SetLODTexture(int id, vtkTexture* t);
193 void GetLODTexture(int id, vtkTexture** t);
195
197
202 void EnableLOD(int id);
203 void DisableLOD(int id);
204 int IsLODEnabled(int id);
206
208
216 void SetLODLevel(int id, double level);
217 double GetLODLevel(int id);
218 double GetLODIndexLevel(int index);
220
222
230
232
237 vtkSetClampMacro(AutomaticLODSelection, vtkTypeBool, 0, 1);
238 vtkGetMacro(AutomaticLODSelection, vtkTypeBool);
239 vtkBooleanMacro(AutomaticLODSelection, vtkTypeBool);
241
243
247 vtkSetMacro(SelectedLODID, int);
248 vtkGetMacro(SelectedLODID, int);
250
255
259 int GetPickLODID(void);
260
262
270
272
277 vtkGetMacro(SelectedPickLODID, int);
279
281
286 vtkSetClampMacro(AutomaticPickLODSelection, vtkTypeBool, 0, 1);
287 vtkGetMacro(AutomaticPickLODSelection, vtkTypeBool);
288 vtkBooleanMacro(AutomaticPickLODSelection, vtkTypeBool);
290
294 void ShallowCopy(vtkProp* prop) override;
295
297
300 int RenderOpaqueGeometry(vtkViewport* viewport) override;
302 int RenderVolumetricGeometry(vtkViewport* viewport) override;
304
309
316
322 void SetAllocatedRenderTime(double t, vtkViewport* vp) override;
323
331
336 void AddEstimatedRenderTime(double t, vtkViewport* vp) override;
337
338protected:
340 ~vtkLODProp3D() override;
341
343
344 // Assumes that SelectedLODIndex has already been validated:
346
351
353 int ConvertIDToIndex(int id);
355
360 vtkLODProp3DCallback* PickCallback;
361
362private:
363 vtkLODProp3D(const vtkLODProp3D&) = delete;
364 void operator=(const vtkLODProp3D&) = delete;
365};
366
367#endif
abstract class specifies interface to map 3D data
Abstract class for a volume mapper.
abstract class for mapping images to the screen
image display properties
a simple class to control print indentation
Definition: vtkIndent.h:113
level of detail 3D prop
Definition: vtkLODProp3D.h:81
void GetLODMapper(int id, vtkImageMapper3D **m)
Methods to set / get the mapper of an LOD.
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
void SetLODMapper(int id, vtkMapper *m)
Methods to set / get the mapper of an LOD.
int GetAutomaticPickPropIndex(void)
void GetActors(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
void RestoreEstimatedRenderTime() override
Used when the render process is aborted to restore the previous estimated render time.
void GetVolumes(vtkPropCollection *) override
For some exporters and other other operations we must be able to collect all the actors or volumes.
void SetLODProperty(int id, vtkImageProperty *p)
Methods to set / get the property of an LOD.
void SetSelectedPickLODID(int id)
Set the id of the LOD that is to be used for picking when automatic LOD pick selection is turned off.
vtkTypeBool AutomaticLODSelection
Definition: vtkLODProp3D.h:356
vtkLODProp3DEntry * LODs
Definition: vtkLODProp3D.h:347
int IsLODEnabled(int id)
Enable / disable a particular LOD.
double GetLODLevel(int id)
Set the level of a particular LOD.
vtkAbstractMapper3D * GetLODMapper(int id)
Get the LODMapper as an vtkAbstractMapper3D.
int GetLastRenderedLODID()
Get the ID of the previously (during the last render) selected LOD index.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int SelectedPickLODID
Definition: vtkLODProp3D.h:358
int GetNextEntryIndex()
vtkLODProp3DCallback * PickCallback
Definition: vtkLODProp3D.h:360
static vtkLODProp3D * New()
Create an instance of this class.
int AddLOD(vtkAbstractVolumeMapper *m, vtkVolumeProperty *p, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
double * GetBounds() override
Standard vtkProp method to get 3D bounds of a 3D prop.
void SetLODProperty(int id, vtkProperty *p)
Methods to set / get the property of an LOD.
int SelectedLODIndex
Definition: vtkLODProp3D.h:354
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkLODProp3D.
int RenderVolumetricGeometry(vtkViewport *viewport) override
Support the standard render methods.
vtkTypeBool AutomaticPickLODSelection
Definition: vtkLODProp3D.h:359
void RemoveLOD(int id)
Delete a level of detail given an ID.
double GetLODIndexEstimatedRenderTime(int index)
Access method that can be used to find out the estimated render time (the thing used to select an LOD...
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
void GetLODMapper(int id, vtkMapper **m)
Methods to set / get the mapper of an LOD.
double GetLODIndexLevel(int index)
Set the level of a particular LOD.
void GetLODProperty(int id, vtkProperty **p)
Methods to set / get the property of an LOD.
void GetLODTexture(int id, vtkTexture **t)
Methods to set / get the texture of an LOD.
void SetLODLevel(int id, double level)
Set the level of a particular LOD.
double GetLODEstimatedRenderTime(int id)
Access method that can be used to find out the estimated render time (the thing used to select an LOD...
void EnableLOD(int id)
Enable / disable a particular LOD.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
void GetLODBackfaceProperty(int id, vtkProperty **t)
Methods to set / get the backface property of an LOD.
int ConvertIDToIndex(int id)
void SetLODMapper(int id, vtkImageMapper3D *m)
Methods to set / get the mapper of an LOD.
int AddLOD(vtkMapper *m, vtkProperty *p, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
void SetLODBackfaceProperty(int id, vtkProperty *t)
Methods to set / get the backface property of an LOD.
int AddLOD(vtkImageMapper3D *m, vtkImageProperty *p, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
int AddLOD(vtkAbstractVolumeMapper *m, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
int AddLOD(vtkMapper *m, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
void SetAllocatedRenderTime(double t, vtkViewport *vp) override
Used by the culler / renderer to set the allocated render time for this prop.
void GetLODProperty(int id, vtkImageProperty **p)
Methods to set / get the property of an LOD.
void DisableLOD(int id)
Enable / disable a particular LOD.
int AddLOD(vtkImageMapper3D *m, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
void UpdateKeysForSelectedProp()
int AddLOD(vtkMapper *m, vtkProperty *p, vtkProperty *back, vtkTexture *t, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
void SetLODMapper(int id, vtkAbstractVolumeMapper *m)
Methods to set / get the mapper of an LOD.
int AddLOD(vtkMapper *m, vtkProperty *p, vtkProperty *back, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
int GetPickLODID(void)
Get the ID of the appropriate pick LOD index.
int AddLOD(vtkMapper *m, vtkProperty *p, vtkTexture *t, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
void GetLODProperty(int id, vtkVolumeProperty **p)
Methods to set / get the property of an LOD.
void SetLODProperty(int id, vtkVolumeProperty *p)
Methods to set / get the property of an LOD.
void SetLODTexture(int id, vtkTexture *t)
Methods to set / get the texture of an LOD.
~vtkLODProp3D() override
void GetLODMapper(int id, vtkAbstractVolumeMapper **m)
Methods to set / get the mapper of an LOD.
void AddEstimatedRenderTime(double t, vtkViewport *vp) override
Override method from vtkProp in order to push this call down to the selected LOD as well.
void ReleaseGraphicsResources(vtkWindow *) override
Release any graphics resources that are being consumed by this actor.
int AddLOD(vtkMapper *m, vtkTexture *t, double time)
Add a level of detail with a given mapper, property, backface property, texture, and guess of renderi...
abstract class specifies interface to map data to graphics primitives
Definition: vtkMapper.h:171
represents an 3D object for placement in a rendered scene
Definition: vtkProp3D.h:93
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:76
represent surface properties of a geometric object
Definition: vtkProperty.h:171
abstract specification for renderers
Definition: vtkRenderer.h:182
handles properties associated with a texture map
Definition: vtkTexture.h:175
abstract specification for Viewports
Definition: vtkViewport.h:47
represents the common properties for rendering a volume.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:39
vtkProp3D * Prop3D
Definition: vtkLODProp3D.h:71
int vtkTypeBool
Definition: vtkABI.h:69
#define VTK_SIZEHINT(...)