Gazebo Rendering
API Reference
9.0.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-rendering
include
gz
rendering
Material.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef GZ_RENDERING_MATERIAL_HH_
18
#define GZ_RENDERING_MATERIAL_HH_
19
20
#include <memory>
21
#include <string>
22
#include <
gz/math/Color.hh
>
23
#include <
gz/common/Material.hh
>
24
#include "gz/rendering/config.hh"
25
#include "
gz/rendering/RenderTypes.hh
"
26
#include "
gz/rendering/Object.hh
"
27
#include "
gz/rendering/ShaderType.hh
"
28
#include "gz/rendering/Export.hh"
29
30
namespace
gz
31
{
32
namespace
rendering
33
{
34
inline
namespace
GZ_RENDERING_VERSION_NAMESPACE {
35
//
37
enum
GZ_RENDERING_VISIBLE
MaterialType
38
{
40
MT_CLASSIC
= 0,
41
43
MT_PBS
= 1
44
};
45
48
class
GZ_RENDERING_VISIBLE
Material
:
49
public
virtual
Object
50
{
52
public
:
virtual
~Material
();
53
56
public
:
virtual
bool
LightingEnabled
()
const
= 0;
57
60
public
:
virtual
void
SetLightingEnabled
(
const
bool
_enabled) = 0;
61
64
public
:
virtual
void
SetDepthCheckEnabled
(
bool
_enabled) = 0;
65
68
public
:
virtual
bool
DepthCheckEnabled
()
const
= 0;
69
72
public
:
virtual
void
SetDepthWriteEnabled
(
bool
_enabled) = 0;
73
76
public
:
virtual
bool
DepthWriteEnabled
()
const
= 0;
77
80
public
:
virtual
math::Color
Ambient
()
const
= 0;
81
87
public
:
virtual
void
SetAmbient
(
const
double
_r,
const
double
_g,
88
const
double
_b,
const
double
_a = 1.0) = 0;
89
92
public
:
virtual
void
SetAmbient
(
const
math::Color
&_color) = 0;
93
96
public
:
virtual
math::Color
Diffuse
()
const
= 0;
97
103
public
:
virtual
void
SetDiffuse
(
const
double
_r,
const
double
_g,
104
const
double
_b,
const
double
_a = 1.0) = 0;
105
108
public
:
virtual
void
SetDiffuse
(
const
math::Color
&_color) = 0;
109
112
public
:
virtual
math::Color
Specular
()
const
= 0;
113
119
public
:
virtual
void
SetSpecular
(
const
double
_r,
const
double
_g,
120
const
double
_b,
const
double
_a = 1.0) = 0;
121
124
public
:
virtual
void
SetSpecular
(
const
math::Color
&_color) = 0;
125
128
public
:
virtual
math::Color
Emissive
()
const
= 0;
129
135
public
:
virtual
void
SetEmissive
(
const
double
_r,
const
double
_g,
136
const
double
_b,
const
double
_a = 1.0) = 0;
137
140
public
:
virtual
void
SetEmissive
(
const
math::Color
&_color) = 0;
141
144
public
:
virtual
double
Shininess
()
const
= 0;
145
148
public
:
virtual
void
SetShininess
(
const
double
_shininess) = 0;
149
152
public
:
virtual
double
Transparency
()
const
= 0;
153
157
public
:
virtual
void
SetDepthMaterial
(
const
double
far,
158
const
double
near) = 0;
159
162
public
:
virtual
void
SetTransparency
(
const
double
_transparency) = 0;
163
168
public
:
virtual
void
SetAlphaFromTexture
(
bool
_enabled,
169
double
_alpha = 0.5,
bool
_twoSided =
true
) = 0;
170
173
public
:
virtual
bool
TextureAlphaEnabled
()
const
= 0;
174
177
public
:
virtual
double
AlphaThreshold
()
const
= 0;
178
181
public
:
virtual
bool
TwoSidedEnabled
()
const
= 0;
182
185
public
:
virtual
double
Reflectivity
()
const
= 0;
186
189
public
:
virtual
void
SetReflectivity
(
const
double
_reflectivity) = 0;
190
193
public
:
virtual
bool
CastShadows
()
const
= 0;
194
197
public
:
virtual
void
SetCastShadows
(
const
bool
_castShadows) = 0;
198
201
public
:
virtual
bool
ReceiveShadows
()
const
= 0;
202
205
public
:
virtual
void
SetReceiveShadows
(
const
bool
_receiveShadows) = 0;
206
209
public
:
virtual
bool
ReflectionEnabled
()
const
= 0;
210
213
public
:
virtual
void
SetReflectionEnabled
(
const
bool
_enabled) = 0;
214
217
public
:
virtual
bool
HasTexture
()
const
= 0;
218
221
public
:
virtual
std::string
Texture
()
const
= 0;
222
226
public
:
virtual
void
SetTexture
(
const
std::string
&_texture)
227
{
228
this->SetTexture(_texture,
nullptr
);
229
}
230
236
public
:
virtual
void
SetTexture
(
const
std::string
&_texture,
237
const
std::shared_ptr<const common::Image>
&_img)
238
{
239
(void)_texture;
240
(void)_img;
241
}
242
246
public
:
virtual
std::shared_ptr<const common::Image>
TextureData
()
247
const
= 0;
248
250
public
:
virtual
void
ClearTexture
() = 0;
251
254
public
:
virtual
bool
HasNormalMap
()
const
= 0;
255
258
public
:
virtual
std::string
NormalMap
()
const
= 0;
259
263
public
:
virtual
std::shared_ptr<const common::Image>
NormalMapData
()
264
const
= 0;
265
268
public
:
virtual
void
SetNormalMap
(
const
std::string
&_normalMap)
269
{
270
this->SetNormalMap(_normalMap,
nullptr
);
271
}
272
278
public
:
virtual
void
SetNormalMap
(
const
std::string
&_normalMap,
279
const
std::shared_ptr<const common::Image>
&_img)
280
{
281
(void)_normalMap;
282
(void)_img;
283
}
284
286
public
:
virtual
void
ClearNormalMap
() = 0;
287
290
public
:
virtual
bool
HasRoughnessMap
()
const
= 0;
291
294
public
:
virtual
std::string
RoughnessMap
()
const
= 0;
295
299
public
:
virtual
std::shared_ptr<const common::Image>
RoughnessMapData
()
300
const
= 0;
301
304
public
:
virtual
void
SetRoughnessMap
(
const
std::string
&_roughnessMap)
305
{
306
this->SetRoughnessMap(_roughnessMap,
nullptr
);
307
}
308
314
public
:
virtual
void
SetRoughnessMap
(
315
const
std::string
&_roughnessMap,
316
const
std::shared_ptr<const common::Image>
&_img)
317
{
318
(void)_roughnessMap;
319
(void)_img;
320
}
321
323
public
:
virtual
void
ClearRoughnessMap
() = 0;
324
327
public
:
virtual
bool
HasMetalnessMap
()
const
= 0;
328
331
public
:
virtual
std::string
MetalnessMap
()
const
= 0;
332
336
public
:
virtual
std::shared_ptr<const common::Image>
MetalnessMapData
()
337
const
= 0;
338
341
public
:
virtual
void
SetMetalnessMap
(
const
std::string
&_metalnessMap)
342
{
343
this->SetMetalnessMap(_metalnessMap,
nullptr
);
344
}
345
351
public
:
virtual
void
SetMetalnessMap
(
352
const
std::string
&_metalnessMap,
353
const
std::shared_ptr<const common::Image>
&_img)
354
{
355
(void)_metalnessMap;
356
(void)_img;
357
}
358
360
public
:
virtual
void
ClearMetalnessMap
() = 0;
361
364
public
:
virtual
bool
HasEnvironmentMap
()
const
= 0;
365
368
public
:
virtual
std::string
EnvironmentMap
()
const
= 0;
369
373
public
:
virtual
std::shared_ptr<const common::Image>
EnvironmentMapData
()
374
const
= 0;
375
378
public
:
virtual
void
SetEnvironmentMap
(
const
std::string
&_environmentMap)
379
{
380
this->SetEnvironmentMap(_environmentMap,
nullptr
);
381
}
382
388
public
:
virtual
void
SetEnvironmentMap
(
389
const
std::string
&_environmentMap,
390
const
std::shared_ptr<const common::Image>
&_img)
391
{
392
(void)_environmentMap;
393
(void)_img;
394
}
395
397
public
:
virtual
void
ClearEnvironmentMap
() = 0;
398
401
public
:
virtual
bool
HasEmissiveMap
()
const
= 0;
402
405
public
:
virtual
std::string
EmissiveMap
()
const
= 0;
406
410
public
:
virtual
std::shared_ptr<const common::Image>
EmissiveMapData
()
411
const
= 0;
412
415
public
:
virtual
void
SetEmissiveMap
(
const
std::string
&_emissiveMap)
416
{
417
this->SetEmissiveMap(_emissiveMap,
nullptr
);
418
}
419
425
public
:
virtual
void
SetEmissiveMap
(
426
const
std::string
&_emissiveMap,
427
const
std::shared_ptr<const common::Image>
&_img)
428
{
429
(void)_emissiveMap;
430
(void)_img;
431
}
432
434
public
:
virtual
void
ClearEmissiveMap
() = 0;
435
438
public
:
virtual
bool
HasLightMap
()
const
= 0;
439
442
public
:
virtual
std::string
LightMap
()
const
= 0;
443
446
public
:
virtual
unsigned
int
LightMapTexCoordSet
()
const
= 0;
447
451
public
:
virtual
void
SetLightMap
(
const
std::string
&_lightMap,
452
unsigned
int
_uvSet = 0u)
453
{
454
this->SetLightMap(_lightMap,
nullptr
, _uvSet);
455
}
456
462
public
:
virtual
void
SetLightMap
(
const
std::string
&_lightMap,
463
const
std::shared_ptr<const common::Image>
&_img,
464
unsigned
int
_uvSet = 0)
465
{
466
(void)_lightMap;
467
(void)_img;
468
(void)_uvSet;
469
}
470
474
public
:
virtual
std::shared_ptr<const common::Image>
LightMapData
()
475
const
= 0;
476
478
public
:
virtual
void
ClearLightMap
() = 0;
479
485
public
:
virtual
void
SetRenderOrder
(
const
float
_renderOrder) = 0;
486
489
public
:
virtual
float
RenderOrder
()
const
= 0;
490
493
public
:
virtual
void
SetRoughness
(
const
float
_roughness) = 0;
494
497
public
:
virtual
float
Roughness
()
const
= 0;
498
501
public
:
virtual
void
SetMetalness
(
const
float
_metalness) = 0;
502
505
public
:
virtual
float
Metalness
()
const
= 0;
506
508
public
:
virtual
enum
MaterialType
Type
()
const
= 0;
509
512
public
:
virtual
enum
ShaderType
ShaderType
()
const
= 0;
513
516
public
:
virtual
void
SetShaderType
(
enum
ShaderType
_type) = 0;
517
520
public
:
virtual
MaterialPtr
Clone
(
const
std::string
&_name =
""
)
521
const
= 0;
522
525
public
:
virtual
void
CopyFrom
(
ConstMaterialPtr
_material) = 0;
526
529
public
:
virtual
void
CopyFrom
(
const
common::Material
&_material) = 0;
530
533
public
:
virtual
std::string
VertexShader
()
const
= 0;
534
537
public
:
virtual
ShaderParamsPtr
VertexShaderParams
() = 0;
538
541
public
:
virtual
void
SetVertexShader
(
const
std::string
&_path) = 0;
542
545
public
:
virtual
std::string
FragmentShader
()
const
= 0;
546
549
public
:
virtual
ShaderParamsPtr
FragmentShaderParams
() = 0;
550
553
public
:
virtual
void
SetFragmentShader
(
const
std::string
&_path) = 0;
554
};
555
}
556
}
557
}
558
#endif