Photon Engine
2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
LayeredSurface.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Actor/Material/SurfaceMaterial.h
"
4
#include "
Actor/Material/Component/SurfaceLayerInfo.h
"
5
#include "
SDL/sdl_interface.h
"
6
7
#include <vector>
8
9
namespace
ph
10
{
11
12
class
LayeredSurface
:
public
SurfaceMaterial
13
{
14
public
:
15
LayeredSurface
();
16
17
void
genSurface
(
const
CookingContext
& ctx,
SurfaceBehavior
& behavior)
const override
;
18
19
void
addLayer
();
20
void
setLayer
(std::size_t layerIndex,
const
SurfaceLayerInfo
& layer);
21
22
private
:
23
std::vector<SurfaceLayerInfo> m_layers;
24
25
public
:
26
PH_DEFINE_SDL_CLASS
(
TSdlOwnerClass<LayeredSurface>
)
27
{
28
ClassType clazz(
"layered-surface"
);
29
clazz.docName(
"Layered Surface"
);
30
clazz.description(
"Model a surface as having multiple coating layers."
);
31
clazz.baseOn<
SurfaceMaterial
>();
32
33
TSdlStructArray<SurfaceLayerInfo, OwnerType>
layers(
"layers"
, &OwnerType::m_layers);
34
layers.description(
"Physical properties of each layer."
);
35
layers.required();
36
clazz.addField(layers);
37
38
return
clazz;
39
}
40
};
41
42
}
// end namespace ph
SurfaceLayerInfo.h
SurfaceMaterial.h
ph::CookingContext
Information about the world being cooked.
Definition
CookingContext.h:24
ph::LayeredSurface
Definition
LayeredSurface.h:13
ph::LayeredSurface::setLayer
void setLayer(std::size_t layerIndex, const SurfaceLayerInfo &layer)
Definition
LayeredSurface.cpp:43
ph::LayeredSurface::addLayer
void addLayer()
Definition
LayeredSurface.cpp:38
ph::LayeredSurface::genSurface
void genSurface(const CookingContext &ctx, SurfaceBehavior &behavior) const override
Definition
LayeredSurface.cpp:15
ph::LayeredSurface::PH_DEFINE_SDL_CLASS
PH_DEFINE_SDL_CLASS(TSdlOwnerClass< LayeredSurface >)
Definition
LayeredSurface.h:26
ph::LayeredSurface::LayeredSurface
LayeredSurface()
Definition
LayeredSurface.cpp:10
ph::SurfaceBehavior
Definition
SurfaceBehavior.h:15
ph::SurfaceLayerInfo
Definition
SurfaceLayerInfo.h:15
ph::SurfaceMaterial
Definition
SurfaceMaterial.h:15
ph::TSdlOwnerClass
SDL binding type for a canonical SDL resource class.
Definition
TSdlOwnerClass.h:23
ph::TSdlStructArray
Definition
TSdlStructArray.h:15
ph
The root for all renderer implementations.
Definition
EEngineProject.h:6
sdl_interface.h
Source
Actor
Material
LayeredSurface.h
Generated by
1.11.0