You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.0 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkWindowNode.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkWindowNode
* @brief vtkViewNode specialized for vtkRenderWindows
*
* State storage and graph traversal for vtkRenderWindow
*/
#ifndef vtkWindowNode_h
#define vtkWindowNode_h
#include "vtkRenderingSceneGraphModule.h" // For export macro
#include "vtkViewNode.h"
class vtkUnsignedCharArray;
class vtkFloatArray;
class VTKRENDERINGSCENEGRAPH_EXPORT vtkWindowNode : public vtkViewNode
{
public:
static vtkWindowNode* New();
vtkTypeMacro(vtkWindowNode, vtkViewNode);
void PrintSelf(ostream& os, vtkIndent indent) override;
/**
* Build containers for our child nodes.
*/
virtual void Build(bool prepass) override;
/**
* Get state of my renderable.
*/
virtual void Synchronize(bool prepass) override;
/**
* Return the size of the last rendered image
*/
virtual int* GetSize() { return this->Size; }
/**
* Get the most recent color buffer RGBA
*/
virtual vtkUnsignedCharArray* GetColorBuffer() { return this->ColorBuffer; }
/**
* Get the most recent zbuffer buffer
*/
virtual vtkFloatArray* GetZBuffer() { return this->ZBuffer; }
protected:
vtkWindowNode();
~vtkWindowNode() override;
// TODO: use a map with string keys being renderable's member name
// state
int Size[2];
// stores the results of a render
vtkUnsignedCharArray* ColorBuffer;
vtkFloatArray* ZBuffer;
private:
vtkWindowNode(const vtkWindowNode&) = delete;
void operator=(const vtkWindowNode&) = delete;
};
#endif