-
Notifications
You must be signed in to change notification settings - Fork 1
/
vtkMultiChannelRenderWindowHelper.cxx
72 lines (56 loc) · 2.4 KB
/
vtkMultiChannelRenderWindowHelper.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*=========================================================================
Name: vtkMultiChannelRenderWindowHelper.cxx
Author: David Borland, The Renaissance Computing Institute (RENCI)
Copyright: The Renaissance Computing Institute (RENCI)
License: Licensed under the RENCI Open Source Software License v. 1.0.
See included License.txt or
http://www.renci.org/resources/open-source-software-license
for details.
=========================================================================*/
#include "vtkMultiChannelRenderWindowHelper.h"
#include "vtkCollection.h"
#include "vtkMultiChannelRenderWindowHelper.h"
#include "vtkObjectFactory.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowChannel.h"
#include "vtkRendererCollection.h"
#include "vtkRenderer.h"
vtkCxxRevisionMacro(vtkMultiChannelRenderWindowHelper, "$Revision: 1.0 $");
vtkStandardNewMacro(vtkMultiChannelRenderWindowHelper);
//----------------------------------------------------------------------------
vtkMultiChannelRenderWindowHelper::vtkMultiChannelRenderWindowHelper()
{
this->Channels = vtkCollection::New();
}
//----------------------------------------------------------------------------
vtkMultiChannelRenderWindowHelper::~vtkMultiChannelRenderWindowHelper()
{
this->Channels->Delete();
}
//----------------------------------------------------------------------------
vtkCollection *vtkMultiChannelRenderWindowHelper::GetChannels()
{
return this->Channels;
}
//----------------------------------------------------------------------------
void vtkMultiChannelRenderWindowHelper::Render(vtkRendererCollection *renderers)
{
// Render multiple channels.
for (int i = 0; i < this->Channels->GetNumberOfItems(); i++)
{
vtkRenderWindowChannel* channel = vtkRenderWindowChannel::SafeDownCast(this->Channels->GetItemAsObject(i));
vtkCollectionSimpleIterator iterator;
vtkRenderer *renderer;
for (renderers->InitTraversal(iterator); (renderer = renderers->GetNextRenderer(iterator)); )
{
channel->Render(renderer);
}
}
}
//----------------------------------------------------------------------------
void vtkMultiChannelRenderWindowHelper::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os,indent);
os << indent << "Channels:\n";
this->Channels->PrintSelf(os,indent.GetNextIndent());
}