VTK
9.0.1
Rendering
RayTracing
vtkOSPRayMaterialLibrary.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkOSPRayMaterialLibrary.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
25
#ifndef vtkOSPRayMaterialLibrary_h
26
#define vtkOSPRayMaterialLibrary_h
27
28
#include "
vtkObject.h
"
29
#include "vtkRenderingRayTracingModule.h"
// For export macro
30
31
#include <initializer_list>
//for initializer_list!
32
#include <map>
//for map!
33
#include <set>
//for set!
34
#include <vector>
//for vector!
35
36
class
vtkOSPRayMaterialLibraryInternals;
37
class
vtkTexture
;
38
39
class
VTKRENDERINGRAYTRACING_EXPORT
vtkOSPRayMaterialLibrary
:
public
vtkObject
40
{
41
public
:
42
static
vtkOSPRayMaterialLibrary
*
New
();
43
vtkTypeMacro(
vtkOSPRayMaterialLibrary
,
vtkObject
);
44
void
PrintSelf
(ostream& os,
vtkIndent
indent)
override
;
45
49
void
Fire();
50
56
bool
ReadFile(
const
char
* FileName);
57
61
const
char
* WriteBuffer();
62
68
bool
ReadBuffer(
const
char
* Buffer);
69
73
std::set<std::string> GetMaterialNames();
74
78
std::string
LookupImplName(
const
std::string
& nickname);
79
83
std::vector<std::string> GetDoubleShaderVariableList(
const
std::string
& nickname);
84
88
std::vector<double> GetDoubleShaderVariable(
89
const
std::string
& nickname,
const
std::string
& varname);
90
94
std::vector<std::string> GetTextureList(
const
std::string
& nickname);
95
99
vtkTexture
* GetTexture(
const
std::string
& nickname,
const
std::string
& varname);
100
106
void
AddMaterial(
const
std::string
& nickname,
const
std::string
& implname);
107
113
void
RemoveMaterial(
const
std::string
& nickname);
114
119
void
AddTexture(
const
std::string
& nickname,
const
std::string
& texturename,
vtkTexture
* tex);
120
125
void
RemoveTexture(
const
std::string
& nickname,
const
std::string
& texturename);
126
130
void
RemoveAllTextures(
const
std::string
& nickname);
131
137
void
AddShaderVariable(
138
const
std::string
& nickname,
const
std::string
& variablename,
int
numVars,
const
double
* x);
139
void
AddShaderVariable
(
const
std::string
& nickname,
const
std::string
& variablename,
140
const
std::initializer_list<double>&
data
)
141
{
142
this->AddShaderVariable(nickname, variablename,
static_cast<
int
>
(
data
.size()),
data
.begin());
143
}
151
void
RemoveShaderVariable(
const
std::string
& nickname,
const
std::string
& variablename);
152
156
void
RemoveAllShaderVariables(
const
std::string
& nickname);
157
161
enum class
ParameterType
: unsigned char
162
{
163
FLOAT,
164
NORMALIZED_FLOAT,
165
FLOAT_DATA,
166
VEC3,
167
COLOR_RGB,
168
BOOLEAN,
169
TEXTURE,
170
VEC2,
171
VEC4
172
};
173
174
using
ParametersMap
= std::map<std::string, ParameterType>;
175
179
static
const
std::map<std::string, ParametersMap>& GetParametersDictionary();
180
181
protected
:
182
vtkOSPRayMaterialLibrary
();
183
virtual
~
vtkOSPRayMaterialLibrary
();
184
185
bool
InternalParse(
const
char
*
name
,
bool
IsFile);
186
bool
InternalParseJSON(
const
char
*
name
,
bool
IsFile, std::istream* doc);
187
bool
InternalParseMTL(
const
char
*
name
,
bool
IsFile, std::istream* doc);
188
189
private
:
190
vtkOSPRayMaterialLibrary
(
const
vtkOSPRayMaterialLibrary
&) =
delete
;
191
void
operator=(
const
vtkOSPRayMaterialLibrary
&) =
delete
;
192
193
vtkOSPRayMaterialLibraryInternals* Internal;
194
};
195
196
#endif
vtkX3D::data
@ data
Definition:
vtkX3D.h:321
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:62
vtkOSPRayMaterialLibrary::ParametersMap
std::map< std::string, ParameterType > ParametersMap
Definition:
vtkOSPRayMaterialLibrary.h:174
vtkOSPRayMaterialLibrary::ParameterType
ParameterType
Lists all different parameter types.
Definition:
vtkOSPRayMaterialLibrary.h:161
vtkTexture
handles properties associated with a texture map
Definition:
vtkTexture.h:65
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:33
vtkOSPRayMaterialLibrary
a collection of materials for vtk apps to draw from
Definition:
vtkOSPRayMaterialLibrary.h:39
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkOSPRayMaterialLibrary::AddShaderVariable
void AddShaderVariable(const std::string &nickname, const std::string &variablename, const std::initializer_list< double > &data)
Add control variable Adds a new control variable.
Definition:
vtkOSPRayMaterialLibrary.h:139
vtkX3D::name
@ name
Definition:
vtkX3D.h:225
vtkObject.h
vtkX3D::string
@ string
Definition:
vtkX3D.h:496
Generated on Thu Jun 25 2020 08:31:01 for VTK by
1.8.17