VTK
vtkCompositePainter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCompositePainter.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 =========================================================================*/
25 #ifndef vtkCompositePainter_h
26 #define vtkCompositePainter_h
27 
28 #include "vtkRenderingOpenGLModule.h" // For export macro
29 #include "vtkPainter.h"
30 #include "vtkColor.h" // needed for vtkColor3d
31 #include <stack> // needed for RenderBlockState.
32 
35 class vtkProperty;
36 class vtkRenderWindow;
37 
38 class VTKRENDERINGOPENGL_EXPORT vtkCompositePainter : public vtkPainter
39 {
40 public:
41  static vtkCompositePainter* New();
43  void PrintSelf(ostream& os, vtkIndent indent);
44 
49  virtual vtkDataObject* GetOutput();
50 
55  static vtkInformationObjectBaseKey* DISPLAY_ATTRIBUTES();
56 
62  void SetCompositeDataDisplayAttributes(vtkCompositeDataDisplayAttributes *attributes);
63  vtkGetObjectMacro(CompositeDataDisplayAttributes, vtkCompositeDataDisplayAttributes)
64 
65 protected:
68 
72  void ReportReferences(vtkGarbageCollector *collector) VTK_OVERRIDE;
73 
78  virtual void ProcessInformation(vtkInformation* information);
79 
87  virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor,
88  unsigned long typeflags, bool forceCompileOnly);
89 
91  {
92  public:
93  std::stack<bool> Visibility;
94  std::stack<double> Opacity;
95  std::stack<vtkColor3d> AmbientColor;
96  std::stack<vtkColor3d> DiffuseColor;
97  std::stack<vtkColor3d> SpecularColor;
98 
103  };
104 
105  void RenderBlock(vtkRenderer *renderer,
106  vtkActor *actor,
107  unsigned long typeflags,
108  bool forceCompileOnly,
109  vtkDataObject *dobj,
110  unsigned int &flat_index,
111  RenderBlockState &state);
112 
116  virtual void UpdateRenderingState(
118 
121 private:
122  vtkCompositePainter(const vtkCompositePainter&) VTK_DELETE_FUNCTION;
123  void operator=(const vtkCompositePainter&) VTK_DELETE_FUNCTION;
124 
125 };
126 
127 #endif
vtkCompositePainter
painter that can be inserted before any vtkDataSet painting chain to handle composite datasets.
Definition: vtkCompositePainter.h:38
vtkCompositePainter::RenderBlockState::RenderedDiffuseColor
vtkColor3d RenderedDiffuseColor
Definition: vtkCompositePainter.h:101
vtkCompositePainter::RenderBlockState::Opacity
std::stack< double > Opacity
Definition: vtkCompositePainter.h:94
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkCompositePainter::UpdateRenderingState
virtual void UpdateRenderingState(vtkRenderWindow *, vtkProperty *, RenderBlockState &)
Overridden in vtkOpenGLCompositePainter to pass attributes to OpenGL.
Definition: vtkCompositePainter.h:116
vtkCompositePainter::RenderBlockState::RenderedSpecularColor
vtkColor3d RenderedSpecularColor
Definition: vtkCompositePainter.h:102
vtkPainter::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkCompositeDataDisplayAttributes
rendering attributes for a multi-block dataset.
Definition: vtkCompositeDataDisplayAttributes.h:39
vtkCompositePainter::RenderBlockState::DiffuseColor
std::stack< vtkColor3d > DiffuseColor
Definition: vtkCompositePainter.h:96
vtkPainter::RenderInternal
virtual void RenderInternal(vtkRenderer *renderer, vtkActor *actor, unsigned long typeflags, bool forceCompileOnly)
Performs the actual rendering.
vtkCompositePainter::RenderBlockState::Visibility
std::stack< bool > Visibility
Definition: vtkCompositePainter.h:93
vtkColor.h
vtkInformationObjectBaseKey
Key for vtkObjectBase values.
Definition: vtkInformationObjectBaseKey.h:36
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:51
vtkPainter::ProcessInformation
virtual void ProcessInformation(vtkInformation *)
Called before RenderInternal() if the Information has been changed since the last time this method wa...
Definition: vtkPainter.h:233
vtkCompositePainter::RenderBlockState::SpecularColor
std::stack< vtkColor3d > SpecularColor
Definition: vtkCompositePainter.h:97
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkPainter
Abstract class for drawing poly data.
Definition: vtkPainter.h:61
vtkPainter.h
vtkGarbageCollector
Detect and break reference loops.
Definition: vtkGarbageCollector.h:99
vtkCompositePainter::OutputData
vtkDataObject * OutputData
Definition: vtkCompositePainter.h:119
vtkCompositePainter::RenderBlockState::AmbientColor
std::stack< vtkColor3d > AmbientColor
Definition: vtkCompositePainter.h:95
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkPainter::GetOutput
virtual vtkDataObject * GetOutput()
Get the output data object from this painter.
Definition: vtkPainter.h:174
vtkColor3d
Definition: vtkColor.h:231
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:63
vtkCompositePainter::RenderBlockState::RenderedOpacity
double RenderedOpacity
Definition: vtkCompositePainter.h:99
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:64
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:86
vtkPainter::ReportReferences
void ReportReferences(vtkGarbageCollector *collector) override
Take part in garbage collection.
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:64
vtkCompositePainter::RenderBlockState
Definition: vtkCompositePainter.h:90
vtkCompositePainter::RenderBlockState::RenderedAmbientColor
vtkColor3d RenderedAmbientColor
Definition: vtkCompositePainter.h:100
vtkCompositePainter::CompositeDataDisplayAttributes
vtkCompositeDataDisplayAttributes * CompositeDataDisplayAttributes
Definition: vtkCompositePainter.h:120