VTK  9.7.20260724
vtkOSPRayMaterialLibrary.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
20
21#ifndef vtkOSPRayMaterialLibrary_h
22#define vtkOSPRayMaterialLibrary_h
23
25
26#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_*
27#include "vtkRenderingRayTracingModule.h" // For export macro
28
29VTK_ABI_NAMESPACE_BEGIN
30
31class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayMaterialLibrary : public vtkRenderMaterialLibrary
32{
33public:
36 void PrintSelf(ostream& os, vtkIndent indent) override;
37
44 void AddMaterial(const std::string& nickname, const std::string& implname) override;
45
54 void AddTexture(const std::string& nickname, const std::string& varname, vtkTexture* tex,
55 const std::string& texturename = "unnamedTexture", const std::string& filename = "") override;
56
62 void AddShaderVariable(const std::string& nickname, const std::string& variablename, int numVars,
63 const double* x) override;
65
69 std::vector<double> GetDoubleShaderVariable(
70 const std::string& nickname, const std::string& varname) const override;
71
75 const TextureInfo* GetTextureInfo(
76 const std::string& nickname, const std::string& varname) const override;
77
84 VTK_DEPRECATED_IN_9_7_0("Use Modified() instead to notify observers of changes.")
85 void Fire();
86
90 const std::map<std::string, ParametersMap>& GetParametersDictionary() const override;
91
92protected:
96 bool InternalParseJSON(const char* filename, bool fromfile, std::istream* doc) override;
97
102 bool ReadTextureFileOrData(const std::string& texFilenameOrData, bool fromfile,
103 const std::string& parentDir, vtkTexture* textr, std::string& textureName,
104 std::string& textureFilename) override;
106 ~vtkOSPRayMaterialLibrary() override = default;
107
108 const char* GetFamilyName() const override { return "OSPRay"; }
109 const char* GetAcceptedFamilyName() const override { return "OSPRay"; }
110
111private:
113 void operator=(const vtkOSPRayMaterialLibrary&) = delete;
114};
115
116VTK_ABI_NAMESPACE_END
117#endif
a simple class to control print indentation
Definition vtkIndent.h:108
a collection of materials for OSPRay-based rendering
bool InternalParseJSON(const char *filename, bool fromfile, std::istream *doc) override
Parse JSON material file with OSPRay-specific backward compatibility handling.
bool ReadTextureFileOrData(const std::string &texFilenameOrData, bool fromfile, const std::string &parentDir, vtkTexture *textr, std::string &textureName, std::string &textureFilename) override
Load texture from file or inline XML data.
void AddTexture(const std::string &nickname, const std::string &varname, vtkTexture *tex, const std::string &texturename="unnamedTexture", const std::string &filename="") override
Add Texture Given a material nickname and a shader variable varname, set its data to a specific textu...
const TextureInfo * GetTextureInfo(const std::string &nickname, const std::string &varname) const override
Returns the texture information, resolving OSPRay parameter name aliases.
void AddShaderVariable(const std::string &nickname, const std::string &variablename, int numVars, const double *x) override
Add control variable Adds a new control variable validated against the OSPRay parameter dictionary.
std::vector< double > GetDoubleShaderVariable(const std::string &nickname, const std::string &varname) const override
Returns a uniform variable, resolving OSPRay parameter name aliases.
const char * GetFamilyName() const override
static vtkOSPRayMaterialLibrary * New()
const std::map< std::string, ParametersMap > & GetParametersDictionary() const override
Get the dictionary of all possible materials based on OSPRay documentation.
const char * GetAcceptedFamilyName() const override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOSPRayMaterialLibrary()=default
void Fire()
Invoke an update event to notify observers of changes to the material library.
void AddMaterial(const std::string &nickname, const std::string &implname) override
Add Material Adds a new material nickname to the set of known materials.
std::map< std::string, ParameterType > ParametersMap
virtual void AddShaderVariable(const std::string &nickname, const std::string &variablename, int numVars, const double *x)
Add a shader variable to a material.
handles properties associated with a texture map
Definition vtkTexture.h:168
#define VTK_DEPRECATED_IN_9_7_0(reason)