8 #ifndef vtkRenderMaterialLibrary_h
9 #define vtkRenderMaterialLibrary_h
12 #include "vtkRenderingCoreModule.h"
15 #include <initializer_list>
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkRenderMaterialLibraryInternals;
57 bool ReadFile(
const char* FileName);
64 bool ReadBuffer(
const char* Buffer);
70 const std::set<std::string>& GetMaterialNames()
const;
85 std::vector<std::string> GetDoubleShaderVariableList(
const std::string& nickname)
const;
93 virtual std::vector<double> GetDoubleShaderVariable(
101 std::vector<std::string> GetTextureList(
const std::string& nickname)
const;
117 virtual const TextureInfo* GetTextureInfo(
171 virtual void AddShaderVariable(
182 const std::initializer_list<double>&
data)
184 this->AddShaderVariable(nickname, variablename, static_cast<int>(data.size()), data.begin());
198 void RemoveAllShaderVariables(
const std::string& nickname);
211 void RemoveAllTextures(
const std::string& nickname);
219 const char* WriteBuffer(
bool writeImageInline =
true);
227 void WriteFile(
const std::string& filename,
bool writeImageInline =
false);
240 virtual bool ReadTextureFileOrData(
const std::string& texFilenameOrData,
bool fromfile,
244 bool InternalParse(
const char* filename,
bool fromfile);
245 virtual bool InternalParseJSON(
const char* filename,
bool fromfile, std::istream* doc);
246 bool InternalParseMTL(
const char* filename,
bool fromfile, std::istream* doc);
248 virtual const std::map<std::string, ParametersMap>& GetParametersDictionary()
const;
275 vtkRenderMaterialLibraryInternals* Internal;
278 VTK_ABI_NAMESPACE_END
void AddShaderVariable(const std::string &nickname, const std::string &variablename, const std::initializer_list< double > &data)
Add a shader variable from an initializer list of doubles.
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual const char * GetFamilyName() const
a renderer-agnostic collection of materials for VTK apps to draw from
a simple class to control print indentation
virtual const char * GetAcceptedFamilyName() const
handles properties associated with a texture map
std::map< std::string, ParameterType > ParametersMap
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...