VTK  9.5.20251126
vtkAnariRenderer.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
14
15#ifndef vtkAnariRenderer_h
16#define vtkAnariRenderer_h
17
18#include "vtkAnariDevice.h" // For device ivar
19#include "vtkObject.h"
20#include "vtkRenderingAnariModule.h" // For export macro
21#include "vtkSmartPointer.h" // For device ivar
22
23#include <anari/anari_cpp.hpp> // for ANARI handles
24
25VTK_ABI_NAMESPACE_BEGIN
26
27class vtkAnariRendererInternals;
28class vtkAnariDevice;
29
30class VTKRENDERINGANARI_EXPORT vtkAnariRenderer : public vtkObject
31{
32public:
35 void PrintSelf(ostream& os, vtkIndent indent) override;
36
38
42 vtkGetSmartPointerMacro(AnariDevice, vtkAnariDevice);
44
53 void SetSubtype(const char* subtype = "default");
54
59 const char* GetSubtype() const;
60
62
69 void SetParameterb(const char* param, bool);
70 void SetParameteri(const char* param, int);
71 void SetParameter2i(const char* param, int, int);
72 void SetParameter3i(const char* param, int, int, int);
73 void SetParameter4i(const char* param, int, int, int, int);
74 void SetParameterf(const char* param, float);
75 void SetParameter2f(const char* param, float, float);
76 void SetParameter3f(const char* param, float, float, float);
77 void SetParameter4f(const char* param, float, float, float, float);
79
83 anari::Renderer GetHandle() const;
84
89 std::vector<std::pair<std::string, int>> GetRendererParameters() const;
90
94 std::string GetRendererParameterDescription(std::pair<std::string, int> rparam) const;
95
99 bool IsRendererParameterRequired(std::pair<std::string, int> rparam) const;
100
102
105 const void* GetRendererParameterDefault(std::pair<std::string, int> rparam);
106 const void* GetRendererParameterMinimum(std::pair<std::string, int> rparam);
107 const void* GetRendererParameterMaximum(std::pair<std::string, int> rparam);
108 const void* GetRendererParameterValue(std::pair<std::string, int> rparam);
110
111protected:
116
121
122 // member variables
124
125private:
126 void CheckAnariDeviceInitialized();
127
128 vtkAnariRenderer(const vtkAnariRenderer&) = delete;
129 void operator=(const vtkAnariRenderer&) = delete;
130
131 vtkAnariRendererInternals* Internal{ nullptr };
132};
133
134VTK_ABI_NAMESPACE_END
135#endif
base class to objects which create + manage a ANARI library + device
void SetParameter4f(const char *param, float, float, float, float)
const void * GetRendererParameterMinimum(std::pair< std::string, int > rparam)
Get default, min, max, and current value for a given renderer parameter.
void SetAnariDevice(vtkAnariDevice *d)
Set/Get the anari device.
void SetParameterf(const char *param, float)
vtkSmartPointer< vtkAnariDevice > AnariDevice
const void * GetRendererParameterDefault(std::pair< std::string, int > rparam)
Get default, min, max, and current value for a given renderer parameter.
static vtkAnariRenderer * New()
const char * GetSubtype() const
Get the subtype of the current underlying anari::Renderer.
void SetParameterb(const char *param, bool)
Methods to set/commit generic parameteters on the underlying anari::Renderer object.
~vtkAnariRenderer() override
Destructor.
void SetParameter4i(const char *param, int, int, int, int)
void SetParameter2i(const char *param, int, int)
void SetParameter3f(const char *param, float, float, float)
const void * GetRendererParameterValue(std::pair< std::string, int > rparam)
Get default, min, max, and current value for a given renderer parameter.
void SetParameter2f(const char *param, float, float)
bool IsRendererParameterRequired(std::pair< std::string, int > rparam) const
Check if a given renderer parameter is required.
std::string GetRendererParameterDescription(std::pair< std::string, int > rparam) const
Provide description for a given renderer parameter.
vtkAnariRenderer()
Default constructor.
void SetSubtype(const char *subtype="default")
Set the underlying subtype of the anari::Renderer.
void SetParameteri(const char *param, int)
std::vector< std::pair< std::string, int > > GetRendererParameters() const
Returns a list of parameter names, and their respective ANARI type.
anari::Renderer GetHandle() const
Get the current ANARI renderer, which will be NULL if not yet setup.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetParameter3i(const char *param, int, int, int)
const void * GetRendererParameterMaximum(std::pair< std::string, int > rparam)
Get default, min, max, and current value for a given renderer parameter.
a simple class to control print indentation
Definition vtkIndent.h:108
Hold a reference to a vtkObjectBase instance.