Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
SurfaceMaterial.h
Go to the documentation of this file.
1#pragma once
2
4#include "SDL/sdl_interface.h"
5
6#include <memory>
7
8namespace ph
9{
10
11class SurfaceOptics;
12class SurfaceBehavior;
13
15{
16public:
17 virtual void genSurface(const CookingContext& ctx, SurfaceBehavior& behavior) const = 0;
18
19 void genBehaviors(const CookingContext& ctx, PrimitiveMetadata& metadata) const override;
20
21public:
23 {
24 ClassType clazz("surface-material");
25 clazz.docName("Surface Material");
26 clazz.baseOn<Material>();
27 return clazz;
28 }
29};
30
31}// end namespace ph
Information about the world being cooked.
Definition CookingContext.h:24
Definition Material.h:17
Collection of attached components to a primitive. This type effectively "glues" various components th...
Definition PrimitiveMetadata.h:22
Definition SurfaceBehavior.h:15
Definition SurfaceMaterial.h:15
PH_DEFINE_SDL_CLASS(TSdlOwnerClass< SurfaceMaterial >)
Definition SurfaceMaterial.h:22
virtual void genSurface(const CookingContext &ctx, SurfaceBehavior &behavior) const =0
void genBehaviors(const CookingContext &ctx, PrimitiveMetadata &metadata) const override
Definition SurfaceMaterial.cpp:8
SDL binding type for a canonical SDL resource class.
Definition TSdlOwnerClass.h:23
The root for all renderer implementations.
Definition EEngineProject.h:6