VTK  9.7.20260823
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
17
18#ifndef vtkAnariRenderer_h
19#define vtkAnariRenderer_h
20
21#include "vtkAnariDevice.h" // For device ivar
22#include "vtkObject.h"
23#include "vtkRenderingAnariModule.h" // For export macro
24#include "vtkSmartPointer.h" // For device ivar
25
26#include <anari/anari_cpp.hpp> // for ANARI handles
27
28VTK_ABI_NAMESPACE_BEGIN
29
30class vtkAnariRendererInternals;
31class vtkAnariDevice;
32
33class VTKRENDERINGANARI_EXPORT vtkAnariRenderer : public vtkObject
34{
35public:
38 void PrintSelf(ostream& os, vtkIndent indent) override;
39
41
45 vtkGetSmartPointerMacro(AnariDevice, vtkAnariDevice);
47
56 void SetSubtype(const char* subtype = "default");
57
62 const char* GetSubtype() const;
63
65
72 void SetParameterb(const char* param, bool);
73 void SetParameteri(const char* param, int);
74 void SetParameter2i(const char* param, int, int);
75 void SetParameter3i(const char* param, int, int, int);
76 void SetParameter4i(const char* param, int, int, int, int);
77 void SetParameterf(const char* param, float);
78 void SetParameter2f(const char* param, float, float);
79 void SetParameter3f(const char* param, float, float, float);
80 void SetParameter4f(const char* param, float, float, float, float);
82
86 anari::Renderer GetHandle() const;
87
92 std::vector<std::pair<std::string, int>> GetRendererParameters() const;
93
97 std::string GetRendererParameterDescription(std::pair<std::string, int> rparam) const;
98
102 bool IsRendererParameterRequired(std::pair<std::string, int> rparam) const;
103
105
108 const void* GetRendererParameterDefault(std::pair<std::string, int> rparam);
109 const void* GetRendererParameterMinimum(std::pair<std::string, int> rparam);
110 const void* GetRendererParameterMaximum(std::pair<std::string, int> rparam);
111 const void* GetRendererParameterValue(std::pair<std::string, int> rparam);
113
114protected:
119
124
125 // member variables
127
128private:
129 void CheckAnariDeviceInitialized();
130
131 vtkAnariRenderer(const vtkAnariRenderer&) = delete;
132 void operator=(const vtkAnariRenderer&) = delete;
133
134 vtkAnariRendererInternals* Internal{ nullptr };
135};
136
137VTK_ABI_NAMESPACE_END
138#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.