VTK  9.7.1
vtkAnariPass.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
24 #ifndef vtkAnariPass_h
25 #define vtkAnariPass_h
26 
27 #include "vtkNew.h" // For vtkNew
28 #include "vtkRenderPass.h"
29 #include "vtkRenderingAnariModule.h" // For export macro
30 
31 #include "vtkAnariDevice.h" // For vtkAnariDevice
32 #include "vtkAnariRenderer.h" // For vtkAnariRenderer
33 
34 VTK_ABI_NAMESPACE_BEGIN
35 
36 // Forward declarations
37 class vtkAnariPassInternals;
38 class vtkAnariSceneGraph;
39 class vtkCameraPass;
40 class vtkViewNodeFactory;
41 
42 class VTKRENDERINGANARI_EXPORT vtkAnariPass : public vtkRenderPass
43 {
44 public:
45  static vtkAnariPass* New();
46  vtkTypeMacro(vtkAnariPass, vtkRenderPass);
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
52  void Render(const vtkRenderState* s) override;
53 
55 
58  vtkGetObjectMacro(SceneGraph, vtkAnariSceneGraph);
60 
64  vtkAnariDevice* GetAnariDevice();
65 
71  vtkAnariRenderer* GetAnariRenderer();
72 
77  virtual vtkViewNodeFactory* GetViewNodeFactory();
78 
79 private:
83  vtkAnariPass();
84 
88  ~vtkAnariPass() override;
89 
93  void SetSceneGraph(vtkAnariSceneGraph*);
94 
95  vtkAnariSceneGraph* SceneGraph = nullptr;
96  vtkNew<vtkCameraPass> CameraPass;
97 
98  vtkAnariPass(const vtkAnariPass&) = delete;
99  void operator=(const vtkAnariPass&) = delete;
100 
101  friend class vtkAnariPassInternals;
102  vtkAnariPassInternals* Internal = nullptr;
103 };
104 
105 VTK_ABI_NAMESPACE_END
106 #endif
base class to objects which create + manage an ANARI library, device, and renderer ...
Implement the camera render pass.
Definition: vtkCameraPass.h:31
Context in which a vtkRenderPass will render.
a simple class to control print indentation
Definition: vtkIndent.h:28
a render pass that uses ANARI (ANAlytic Rendering Interface) instead of OpenGL.
Definition: vtkAnariPass.h:42
factory that chooses vtkViewNodes to create
virtual void Render(const vtkRenderState *s)=0
Perform rendering according to a render state s.
base class to objects which create + manage a ANARI library + device
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Perform part of the rendering of a vtkRenderer.
Definition: vtkRenderPass.h:49
links vtkRenderers to ANARI
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.