Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
Material.h
Go to the documentation of this file.
1#pragma once
2
5#include "SDL/sdl_interface.h"
6
7#include <string>
8
9namespace ph { class CookingContext; }
10
11namespace ph
12{
13
14class PrimitiveMetadata;
15
16class Material : public TSdlResourceBase<ESdlTypeCategory::Ref_Material>
17{
18public:
19 virtual void genBehaviors(const CookingContext& ctx, PrimitiveMetadata& metadata) const = 0;
20
21public:
23 {
24 ClassType clazz(std::string(sdl::category_to_string(CATEGORY)));
25 clazz.docName("Material");
26 clazz.description("Defines and models the appearance of scene elements.");
27 return clazz;
28 }
29};
30
31}// end namespace ph
Information about the world being cooked.
Definition CookingContext.h:24
Definition Material.h:17
virtual void genBehaviors(const CookingContext &ctx, PrimitiveMetadata &metadata) const =0
PH_DEFINE_SDL_CLASS(TSdlOwnerClass< Material >)
Definition Material.h:22
Collection of attached components to a primitive. This type effectively "glues" various components th...
Definition PrimitiveMetadata.h:22
SDL binding type for a canonical SDL resource class.
Definition TSdlOwnerClass.h:23
A convenient ISdlResource with core requirements implemented. This class is similar to SdlResourceBas...
Definition TSdlResourceBase.h:16
static constexpr ESdlTypeCategory CATEGORY
Definition TSdlResourceBase.h:22
std::string_view category_to_string(const ESdlTypeCategory category)
Definition ESdlTypeCategory.h:59
The root for all renderer implementations.
Definition EEngineProject.h:6